Фильтровать продукты Woocommerce на основе значения атрибута пользовательского продукта
В Woocommerce у меня есть атрибут продукта под названием restriction_id
. Я хочу отфильтровать продукты на основе определенных идентификаторов ограничений . Например, если значение равно 35
в переменной сеанса php я хочу отфильтровать любой продукт, для атрибута restriction_id которого установлено значение 35
.
Что бы я сюда положил?
Вот мой стартовый код:
// Define the woocommerce_product_query callback
function action_woocommerce_product_query( $q, $instance ) {
// The code
};
// Add the action
add_action( 'woocommerce_product_query', __NAMESPACE__.'\\action_woocommerce_product_query', 10, 2 );
Любая помощь приветствуется.
2
Author: LoicTheAztec, 2018-03-29
1 answers
Обновлено: Попробуйте вместо этого выполнить следующий налоговый запрос :
add_filter( 'woocommerce_product_query_tax_query', 'custom_product_query_meta_query', 10, 2 );
function custom_product_query_meta_query( $tax_query, $query ) {
if( is_admin() ) return $tax_query;
// HERE set the taxonomy of your product attribute (custom taxonomy)
$taxonomy = 'pa_restriction_id'; // Note: always start with "pa_" in Woocommerce
// HERE Define your product attribute Terms to be excluded
$terms = array( '35' ); // Note: can be a 'term_id', 'slug' or 'name'
// The tax query
$tax_query[] = array(
'taxonomy' => $taxonomy,
'field' => 'slug', // can be a 'term_id', 'slug' or 'name'
'terms' => $terms,
'operator' => 'NOT IN', // Excluded
);
return $tax_query;
}
Вводится код function.php файл вашей активной дочерней темы (или активной темы). Проверено и работает.
2
Author: LoicTheAztec, 2018-03-29 14:44:14