首页 > 解决方案 > 为什么 woocommerce_product_query 不起作用?

问题描述

我正在尝试将我的自定义添加meta_query到 WooCommerce 主查询。

我试过这段代码:

function testing_woo_product_query( $q ){ 
    $args = array(
      'relation' => 'AND',
      array(
        'meta_key'  => '_price',
        'value'     => 10,
        'compare'   => '>=',
      ),
      array(
        'meta_key'  => '_price',
        'value'     => 30,
        'compare'   => '<=',
      )
    );

    $q->set( 'meta_query', $args ); 

}
add_action( 'woocommerce_product_query', 'testing_woo_product_query' );

但是代码不起作用。谁能告诉我问题出在哪里?

标签: wordpresswoocommercehook-woocommerce

解决方案


您的元查询应该使用key而不是meta_key- 您也可以使用"between => array (low number, high number). 您可以在此处查看正确的格式WP Function Reference meta_query

这将完成您在上面尝试做的事情:

function testing_woo_product_query( $q ){ 
    $args = array(
      array(
        'key'       => '_price',
        'value'     => array( 10 , 30 ),
        'compare'   => 'BETWEEN',
        'type'      => 'numeric'  
      ),
    );

    $q->set( 'meta_query', $args );

}
add_action( 'woocommerce_product_query', 'testing_woo_product_query' );

但请注意,这将影响商店和存档/类别页面,除非您使用特定详细信息来限定您的功能。


推荐阅读