为了账号安全,请及时绑定邮箱和手机立即绑定

在 WooCommerce 的 WC_Product_Query 中按名称“LIKE”过滤产品

在 WooCommerce 的 WC_Product_Query 中按名称“LIKE”过滤产品

PHP
Cats萌萌 2023-04-21 15:02:45
在使用wc_get_products()函数的 WooCommerce 中,我想找到一种使用运算符按名称LIKE过滤产品的方法。实际上我只能通过特定的定义名称过滤产品:$args = array(    'limit' => 5,    'name' => 'Test',);$result = wc_get_products( $args );是否可以过滤名称为LIKE 'test' 的产品?
查看完整描述

1 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

如果您在“添加自定义参数支持”部分末尾查看WooCommerce 官方文档,WC_Product_Query您将看到您可以使用自定义挂钩函数来操作 WC_Product_Query。


因此,要使用产品名称“LIKE”参数过滤查询,您可以使用搜索“s”参数扩展查询,这将达到以下目的:


add_filter( 'woocommerce_product_data_store_cpt_get_products_query', 'handle_custom_query_var', 10, 2 );

function handle_custom_query_var( $query, $query_vars ) {

    if ( isset( $query_vars['like_name'] ) && ! empty( $query_vars['like_name'] ) ) {

        $query['s'] = esc_attr( $query_vars['like_name'] );

    }


    return $query;

}

代码进入您的活动子主题(或活动主题)的 functions.php 文件。测试和工作。


带有自定义参数“like_name”的用法示例:


$args = array(

    'limit' => 5,

    'like_name' => 'test',

);


wc_get_products( $args );


查看完整回答
反对 回复 2023-04-21
  • 1 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信