【问题标题】:Customize related products with a custom meta query in Woocommerce在 Woocommerce 中使用自定义元查询自定义相关产品
【发布时间】:2018-12-24 18:26:49
【问题描述】:

我一直在尝试定制 woocommerce 中的相关产品。我已经使用 woocommerce_output_related_products_args 添加 meta_query 选项,但它们没有效果,这是我的代码:

add_filter( 'woocommerce_output_related_products_args', 
'custom_related_products_args' );
 function custom_related_products_args( $args ) {
$args['posts_per_page'] = 4;
$args['columns'] = 4;
$args['meta_query'] = array(
    array(
        'key' => 'public_catalog',
        'value' => true
    ),
); 
return $args;}

【问题讨论】:

    标签: woocommerce


    【解决方案1】:

    更改相关产品查询的正确过滤器挂钩是woocommerce_product_related_posts_query...要设置发布元查询,您将使用以下(请参阅末尾的注释)

    add_filter( 'woocommerce_product_related_posts_query', 'alter_product_related_posts_query', 10, 3 );
    function alter_product_related_posts_query( $query, $product_id, $args ){
        global $wpdb;
    
        $query['join']  .= " INNER JOIN {$wpdb->postmeta} as pm ON p.ID = pm.post_id ";
        $query['where'] .= " AND pm.meta_key = 'public_catalog' AND meta_value LIKE '1' ";
    
        return $query;
    }
    

    代码进入您的活动子主题(或活动主题)的 function.php 文件中。经过测试并且可以工作。

    注意:在后台(管理员)下Woocommerce > Status > Tools > "WooCommerce transients" 点击“清除瞬态”按钮… p>

    【讨论】:

    • 嘿伙计!我又遇到了同样的问题,我如何过滤具有 2 个不同自定义字段的相关产品。我试过这个: $query['where'] .= " AND pm.meta_key = 'public_catalog' AND meta_value LIKE '1' "; $query['where'] .= "AND pm.meta_key = 'hidden' AND meta_value LIKE '0'";但不能正常工作:(
    猜你喜欢
    • 2021-03-23
    • 1970-01-01
    • 2021-10-24
    • 2018-12-24
    • 2021-04-16
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多