WooCommerce: скрыть цикл товаров на странице магазина - PullRequest
0 голосов
/ 13 июня 2018

Я использую следующий код, чтобы скрыть цикл товаров на странице магазина Woo:

add_action( 'pre_get_posts', 'bbloomer_remove_products_from_shop_page' );

function bbloomer_remove_products_from_shop_page( $q ) {

    if ( ! $q->is_main_query() ) return;
    if ( ! $q->is_post_type_archive() ) return;

    if ( ! is_admin() && is_shop() ) {

        $q->set( 'tax_query', array(array(
            'taxonomy' => 'product_cat',
            'field' => 'slug',
            'terms' => array( 'null' ),
            'operator' => 'IN'
        )));

    }

    remove_action( 'pre_get_posts', 'bbloomer_remove_products_from_shop_page' );

}

function wc_no_products_found() {
    if ( is_shop() ) {
echo '<style>p.woocommerce-info{display:none}</style';
}
}

Это работает.Он удаляет все продукты и выводит сообщение об ошибке Woo no products.

Проблема заключается в следующем:

Поскольку приведенный выше код удаляет сообщение об ошибке «Продукты не найдены».В случае, если кто-то ищет в одной из моих категорий что-то, что не существует, результирующая страница результатов поиска также пуста.

Итак, простыми словами, я хочу удалить сообщение об ошибке "нет товаров" только изСтраница магазина.Где я удалил все продукты.И все же сообщение об ошибке отображается на (неудачной) странице результатов поиска.

Заранее благодарим за любую помощь.

1 Ответ

0 голосов
/ 13 июня 2018

Измените вашу функцию wc_no_products_found с помощью этой

add_action( 'woocommerce_no_products_found', function(){

 if(is_shop()) {
    remove_action( 'woocommerce_no_products_found', 'wc_no_products_found', 10 );
}
}, 9 );

Надеюсь, этот код поможет вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...