微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 在Woocommerce中排除相关产品ID

function woocommerce_output_related_products() {

    $args = array(
        'posts_per_page' => 4,
        'columns'        => 4,
        'orderby'        => 'rand', // @codingStandardsIgnoreLine.
        'post__not_in' => array(502,281)
    );

    woocommerce_related_products( apply_filters( 'woocommerce_output_related_products_args', $args ) );
}

我将这个函数从includes / wc-template-functions.PHPin复制到我的主题的functions.PHP

为了验证我的更改是否有效,我将posts_per_page更改为3,并且仅查询3而不是4.

我需要排除一些产品,但post__not_in不起作用.

难道我做错了什么?如何使用此功能排除产品?

我正在输出具有此功能的产品:woocommerce_output_related_products();

这样一个令人讨厌的问题.我根本无法从这里排除产品.有人可以帮忙吗?

我也试过这个:

add_filter( 'woocommerce_output_related_products_args', function( $args ) { 
    $args = wp_parse_args( array(  "post__not_in" => array('502','281') ), $args );
    return $args;
});

我做了print_r($args),它显示我的“post__not_in”被添加,但产品仍在那里.我有正确的身份证.

解决方法:

改为使用woocommerce_related_products过滤器钩子,这样:

add_filter( 'woocommerce_related_products', 'exclude_related_products', 10, 3 );
function exclude_related_products( $related_posts, $product_id, $args ){
    // HERE set your product IDs to exclude
    $exclude_ids = array('502','281');

    return array_diff( $related_posts, $exclude_ids );
}

代码位于活动子主题(或活动主题)的function.PHP文件中.经过测试和工作.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐