Php WC_get_产品元查询被忽略

Php WC_get_产品元查询被忽略,php,wordpress,woocommerce,meta-query,Php,Wordpress,Woocommerce,Meta Query,我对wc\u get\u产品元查询有问题。我试图排除SKU中有许可或快递的产品,并且SKU的格式是这样的;(这不是我的选择,这是公司几个月前决定的!) 我的俱乐部-快车-项目 我的俱乐部-清除-项目 另一个俱乐部-标准-项目 下面是我的args,有人能告诉我它们有什么问题吗 'post_status' => array('publish', 'pending', 'draft', 'future', 'private'), 'parent' => array( 13,

我对wc\u get\u产品元查询有问题。我试图排除SKU中有
许可
快递
的产品,并且SKU的格式是这样的;(这不是我的选择,这是公司几个月前决定的!)

我的俱乐部-快车-项目 我的俱乐部-清除-项目 另一个俱乐部-标准-项目

下面是我的args,有人能告诉我它们有什么问题吗

    'post_status' => array('publish', 'pending', 'draft', 'future', 'private'),
    'parent' => array( 13, 14, 15 ),
    'limit' => 1000,
    'orderby' => 'id',
    'order'   => 'asc',
    'type' => array( 'simple', 'variable' ),
    'meta_query' => array(
                    'relation' => 'and',
                        array(
                            'relation'  => 'or',
                                array(
                                'key' => '_sku',
                                'value' => 'clearance',
                                'compare' => 'NOT LIKE',
                                ),
                            ),
                        array(
                            'relation' => 'or',
                                array(
                                'key' => '_sku',
                                'value' => 'fxpe',
                                'compare' => 'NOT LIKE',
                                ),
                            ),
                        )
);
我还完成了woocommerce步骤(在页面底部),如下所示:

function handle_custom_query_var( $query, $query_vars ) {
    if ( ! empty( $query_vars['_sku'] ) ) {
        $query['meta_query'][] = array(
            'key' => '_sku',
            'value' => esc_attr( $query_vars['_sku'] ),
        );
    }

    return $query;
 }

 add_filter( 'woocommerce_product_data_store_cpt_get_products_query', 'handle_custom_query_var', 10, 2 );
我还尝试了反转元查询,并将比较更改为
,比如
=但没有任何功能或似乎不会影响查询

任何帮助都非常感谢

谢谢

更新----------------------

我在最初的帖子中打了一个大错,以确认我使用的是wc\u get\u products no wp\u query

我一直在尝试一些元查询的变体,但到目前为止没有任何效果

仅仅使用一个元查询似乎也不起作用

'meta_query' => array(
                        'key' => '_sku',
                        'value' => 'express',
                        'compare' => '!=',  // also tried 'NOT LIKE'

                        ),

由于与查询的初始混淆,我将霍华德E的问题标记为正确,因为它是用于wp_查询的,并使用正确的信息重新发布。

尝试更新您的元查询。对于
clearance
express
之间的关系,您首先要说“或”

'meta_query' => array(
    'relation' => 'AND',
    array(
        'relation'  => 'OR',
            array(
            'key' => '_sku',
            'value' => 'clearance',
            'compare' => 'NOT LIKE',
            ),
        ),
    array(
        'relation' => 'OR',
            array(
            'key' => '_sku',
            'value' => 'express',
            'compare' => 'NOT LIKE',
            ),
        ),
    )
*处理更新的问题*

function handle_custom_query_var( $query, $query_vars ) {
    if ( ! empty( $query_vars['_sku'] ) ) {
        $query['meta_query'][] =  array(
        array(
                'relation'  => 'or',
                    array(
                    'key' => '_sku',
                    'value' => 'fxpe',
                    'compare' => 'NOT LIKE',
                    ),
                ),
            array(
                'relation' => 'or',
                    array(
                    'key' => '_sku',
                    'value' => 'clearance',
                    'compare' => 'NOT LIKE',
                    ),
                ),
            );
    }

    return $query;
 }
然后只需在产品查询中使用
\u sku
,并使用值

$products = wc_get_products(array(
     'post_status' => array('publish', 'pending', 'draft', 'future', 'private'),
    'parent' => array( 13, 14, 15 ),
    'limit' => 1000,
    'orderby' => 'id',
    'order'   => 'asc',
    'type' => array( 'simple', 'variable' ),
    '_sku' => true,
));

但是,添加此筛选器将在WC查询中筛选
\u sku
的任何实例。如果需要,您可能需要添加其他条件。

删除元查询时,您的查询是否提供了预期结果?返回了正确的结果,但其中包括带有“express”和“clearance”sku的产品。是的,如果删除元查询,一切正常抱歉,我说得太早了!查询仍将忽略元查询。所有结果都在加载,包括我想要排除的…这些SKU是什么样子的?所有字符,例如“我的俱乐部-类别-项目”,不是我所知道的最好的,但由于be的强大功能,它一定是这样的。我还尝试将其剥离为一个似乎也不起作用的元查询,返回所有结果,包括排除的结果。是否尝试将这两个关系都更改为“和”?