我需要使用自定义字段在类别页面上显示产品。
例如,我有自定义字段“ members_access_role”(多次检查)并尝试
add_action( 'woocommerce_product_query', 'action_product_query', 10, 2 );
function action_product_query( $q, $query ) {
$meta_query = $q->get( 'meta_query');
$q->set( 'meta_query', array( array(
'key' => 'members_access_role',
'value' => 'wholesale',
'compare' => 'IN',
) ) );
$q->set( 'meta_query', $meta_query );
}
这不起作用,我尝试将更改与“ LIKE”,“ =”进行比较,但什么也没有。
答案 0 :(得分:0)
请替换如下函数:
add_action( 'woocommerce_product_query', 'action_product_query', 10, 2 );
function action_product_query( $q, $query ) {
$meta_query = $q->get( 'meta_query');
$meta_query[] = array(
'key' => 'members_access_role',
'value' => 'wholesale',
'compare' => 'IN'
);
$q->set( 'meta_query', $meta_query );
}
答案 1 :(得分:0)
您似乎两次设置了meta_query
,而第二次设置与使用get方法收到的完全相同。
这是一种编写方式
function action_product_query( $q, $query ) {
$meta_query = $q->get( 'meta_query'); //Get the query
//Update the array.
$meta_query[] = array(
'key' => 'members_access_role',
'value' => 'wholesale',
'compare' => '=',
);
//Set the updated value below.
$q->set( 'meta_query', $meta_query );
}