woocommerce_output_related_products_args挂钩无法正常工作

时间:2019-06-21 14:19:35

标签: woocommerce hook-woocommerce

我想在相关产品部分显示ID为64391的特定产品,但是以下代码对此无效。我想念什么吗?

 add_filter( 'woocommerce_output_related_products_args','msrp_reconfigure_related_products_args', 20 );

     public function msrp_reconfigure_related_products_args($args)
      {

        $args['posts_per_page'] = 5; 
        $args['columns'] = 5;
        $args['post__in'] = array(64391);

        return $args;
}

1 个答案:

答案 0 :(得分:0)

您可以找到on the WC core source。过滤器挂钩woocommerce_output_related_products_args通过wc-template-functions.php文件触发,并传递给woocommerce_related_products函数。因此,$args参数不是数据库查询中使用的参数,并且您不能在其中使用post__in键。

相反,要将特定产品添加到相关产品部分,可以使用woocommerce_related_products过滤器,如下所示:

add_filter('woocommerce_related_products', 'add_related_products');
function add_related_products($related_product_ids)
{
    // WC source code stores IDs as string in this array, so I did that too
    $related_product_ids[] = '81';
    return $related_product_ids;
}

经过测试,可以正常工作。

注意:该过滤器挂钩具有3个参数:$related_posts$product_id$args。通过选中$product_id

,可以将这些新产品限制为仅在特定的单个产品页面上显示