在使用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 );
- 1 回答
- 0 关注
- 127 浏览
添加回答
举报
0/150
提交
取消