Ste*_*Vet 3 php wordpress product woocommerce
在 WooCommerce using wc_get_products()function 中,我想找到一种使用运算符按名称过滤产品的方法LIKE。
实际上,我只能按特定定义的名称过滤产品:
$args = array(
'limit' => 5,
'name' => 'Test',
);
$result = wc_get_products( $args );
Run Code Online (Sandbox Code Playgroud)
是否可以过滤名称为 LIKE 'test' 的产品?
如果您查看“添加自定义参数支持”部分末尾的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;
}
Run Code Online (Sandbox Code Playgroud)
代码位于活动子主题(或活动主题)的 functions.php 文件中。测试和工作。
带有自定义参数“like_name”的用法示例:
$args = array(
'limit' => 5,
'like_name' => 'test',
);
wc_get_products( $args );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1340 次 |
| 最近记录: |