фильтр «woocommerce_shortcode_products_loop_no_results» неправильно работает при использовании «on_sale=true» в WooCommerce

#php #wordpress #woocommerce #hook-woocommerce #shortcode

Вопрос:

Я использую woocommerce_shortcode_products_loop_no_results фильтр вот так:

 add_action('woocommerce_shortcode_products_loop_no_results', function() {
  echo '<h1 class="text-white p-4 border bg-secondary">NO PRODUCTS HERE!</h1>';
});
 

Поэтому, если шорткод не возвращает никаких продуктов, мы должны увидеть NO PRODUCTS HERE!

А теперь:

  • Если мы попытаемся использовать шорткод, как [products category="empty-category"] это работает нормально. В этой категории нет товаров, поэтому действие woocommerce_shortcode_products_loop_no_results возвращается NO PRODUCTS HERE!
  • Но если мы попытаемся использовать такой шорткод [products category="empty-category" on_sale="true"] (а у нас есть некоторые продукты on_sale из другой категории), woocommerce_shortcode_products_loop_no_results действие не сработает.

Это похоже на ошибку с запросами базы данных WooCommerce, поэтому, возможно, мне следует добавить «флаг» где-то в более раннем фильтре? Может быть, что-то из woocommerce_shortcode_products_query_results ?

Комментарии:

1. Это ошибка в WooCommerce. Как бы то ни было, если вы просто используете [products on_sale="true"] (без категории..), это не имеет значения, сообщение «нет результатов» также не отображается