目前,我正在尝试根据添加到woocommerce购物车中的产品输出相关产品。
它类似于我们在单个产品页面中显示它的方式,但这仅适用于一种产品,并且您知道我们可以向购物车添加许多产品。因此,我的问题的解决方案是什么?
答案 0 :(得分:1)
首先,我获取购物车商品并检索他们的相关产品(并合并并洗牌)。然后我将其作为post__in
过滤器中的woocommerce_related_products_args
查询参数提供。
以下是代码示例:
function wp_234123ds_related_products_args($args)
{
global $woocommerce;
// Fetching cart contents
$items = $woocommerce->cart->get_cart();
// Checking if there is something in a cart
if (count($items) > 0) {
$related = array();
// Traversing through collection
foreach ($items as $item) {
// Fetching product
$product = wc_get_product($item['product_id']);
// Fetching and merging related product IDS
$related = array_merge($related, $product->get_related());
}
// Lets check if they have any related products
if (count($related) > 0) {
shuffle($related);
// Finally we overwrite the "post__in" argument
$args['post__in'] = $related;
}
}
return $args;
}
add_filter('woocommerce_related_products_args', 'wp_234123ds_related_products_args');
使用瞬态缓存相关产品计算的结果是明智的(为简洁起见,此处未显示)。