【发布时间】:2019-03-06 17:46:09
【问题描述】:
在 Woocommerce 中,由于服装尺寸的库存 sku 问题,我们为最终相同的产品提供两种不同的产品。我们称它为蓝色衬衫,但由于订购决定,它是我们商店中的 2 种不同产品。我创建了一个分组产品来处理它的显示。
但是,我似乎无法从我的商店中隐藏链接的产品。当我使用 WC_Product_query 类和 get_products 函数时,它似乎没有返回所有正在查询的 46 个产品。我想知道究竟是什么,我做错了和/或是否有更好的解决方案。
在我的 functions.php 子主题中放置以下内容:
add_action( 'woocommerce_product_query', 'only_grouped_products_query' );
function only_grouped_products_query( $q ) {
$query = new WC_Product_Query(array($q));
$products = $query->get_products();
$linked_array = array();
$i = 0;
foreach($products as $product){
$i++;
/*
echo $product->get_name() .' - ' . $product->product_type .'<br>';
$is_grouped = $product->product_type;
if ( $is_grouped == 'grouped' )
{
// echo $product->get_name() .' - ' . $product->product_type;
$get_child_id = $product->get_children();
if (is_array($get_child_id)){
foreach($get_child_id as $child_id){
$linked_array[] = $child_id;
}
} else {
$linked_array[] = $get_child_id;
}
}
*/
}
echo $i;
// $q->set( 'post__not_in', $linked_array );
}
上面的代码 sn-p 确实有效,但是当我转储原始 $query 变量时,它并没有提取查询显示的所有 46 个结果。 $i 只返回 10 个结果。
【问题讨论】:
标签: php wordpress woocommerce product custom-taxonomy