根据 WooCommerce 中的自定义字段过滤产品
Filter products based on a custom field in WooCommerce
我对 WooCommerce 中的自定义字段有疑问:有什么方法可以根据自定义字段元键和值显示产品吗?
我为交付创建了一个产品自定义字段,元键是 custom_text_field_delivery
,值是 24h
、5days
和 7days
。
然后我尝试通过 URL 获取它们,例如:localhost/shop/?custom_text_field_delivery=24h
,但没有成功。
有什么方法可以显示它们,或者我应该为每个选项创建一个页面?
您可以使用以下方法根据查询字符串中的自定义字段过滤产品:
add_filter( 'woocommerce_product_query_meta_query', 'filter_products_with_custom_field', 10, 2 );
function filter_products_with_custom_field( $meta_query, $query ) {
$meta_key = 'custom_text_field_delivery'; // <= Here define the meta key
if ( ! is_admin() && isset($_GET[$meta_key]) && ! empty($_GET[$meta_key]) ) {
$meta_query[] = array(
'key' => $meta_key,
'value' => esc_attr($_GET[$meta_key]),
);
}
return $meta_query;
}
您将能够按 URL 筛选产品,例如:localhost/shop/?custom_text_field_delivery=24h
。
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
我对 WooCommerce 中的自定义字段有疑问:有什么方法可以根据自定义字段元键和值显示产品吗?
我为交付创建了一个产品自定义字段,元键是 custom_text_field_delivery
,值是 24h
、5days
和 7days
。
然后我尝试通过 URL 获取它们,例如:localhost/shop/?custom_text_field_delivery=24h
,但没有成功。
有什么方法可以显示它们,或者我应该为每个选项创建一个页面?
您可以使用以下方法根据查询字符串中的自定义字段过滤产品:
add_filter( 'woocommerce_product_query_meta_query', 'filter_products_with_custom_field', 10, 2 );
function filter_products_with_custom_field( $meta_query, $query ) {
$meta_key = 'custom_text_field_delivery'; // <= Here define the meta key
if ( ! is_admin() && isset($_GET[$meta_key]) && ! empty($_GET[$meta_key]) ) {
$meta_query[] = array(
'key' => $meta_key,
'value' => esc_attr($_GET[$meta_key]),
);
}
return $meta_query;
}
您将能够按 URL 筛选产品,例如:localhost/shop/?custom_text_field_delivery=24h
。
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。