Я настроил запрос продукта WooCommerce, чтобы включить продукты, которые имеют определенное значение настраиваемого поля, например external_id = 1234 или production_year = 2017. Это работает, как предполагалось, и WooCommerce отображает только те продукты с правильным значением настраиваемого поля.
Далее я хотел скрыть пустые категории товаров в виджете категорий товаров, поскольку я не хочу отображать пустые категории для пользователей. Запрос продукта по-прежнему использует значения настраиваемых полей для фильтрации любых нежелательных продуктов.
Казалось, что решение было добавить
$list_args['hide_empty'] = 1;
к хуку фильтра woocommerce_product_categories_widget_args. Но, к сожалению, пустые категории продуктов по-прежнему отображаются, даже если они пусты. Кажется, что виджет не использует тот же запрос товара, чтобы проверить, есть ли в категориях какие-либо товары. Таким образом, виджет по-прежнему показывает категории.
Так как же я могу скрыть категории товаров, если запрос товара не дал результатов?
UPDATE:
Индивидуальный код запроса:
public function vehicle_model_query($q)
{
$id = self::get_current_vehicle_model_id();
if (isset($id) && !empty($id)) {
$meta_query = $q->get('meta_query');
$meta_query[] = array(
array(
'key' => 'wcwb_product_vehicle_models',
'value' => $id
)
);
$q->set('meta_query', $meta_query);
}
}