如何在woocommerce购物车页面中添加基于当前产品的相关产品?

时间:2016-03-09 18:25:09

标签: php wordpress woocommerce

目前,我正在尝试根据添加到woocommerce购物车中的产品输出相关产品。

它类似于我们在单个产品页面中显示它的方式,但这仅适用于一种产品,并且您知道我们可以向购物车添加许多产品。因此,我的问题的解决方案是什么?

1 个答案:

答案 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');

使用瞬态缓存相关产品计算的结果是明智的(为简洁起见,此处未显示)。