Спрятать в продаже товары с шорткода на домашней странице в Woocommerce - PullRequest
0 голосов
/ 13 декабря 2018

Я пытаюсь скрыть все товары для продажи на главной странице, где отображаются товары с использованием шорткода Woocommerce.Я новичок здесь и после поиска высоко и низко, я не мог найти решение.

Я пытался использовать Скрыть все товары в продаже на странице магазина Woocommerce код ответа, и он работает на странице магазина.

Есть ли способ, чтобы этот код былприменяется к домашней странице вместо страницы магазина?

Я попробовал эту слегка измененную версию:

add_filter( 'woocommerce_product_query_meta_query', 'on_sale_products_not_in_archives', 10, 2 );
function on_sale_products_not_in_archives( $meta_query, $query ) {
    // For woocommerce shop pages
    if( is_page( 87 ) ){
        $meta_query[] = array(
            'key'     => '_sale_price',
            'value'   => '',
            'compare' => '=',
       );
    }
    return $meta_query;
}

Но это не сработало.

Любая помощь по этому вопросу приветствуется.

1 Ответ

0 голосов
/ 13 декабря 2018

Чтобы отфильтровать запрос продукта с помощью коротких кодов, вам нужно использовать woocommerce_shortcode_products_query фильтр-хук, но он будет работать со всеми продуктами, кроме переменных.

Код (только для домашней страницы) :

add_filter( 'woocommerce_shortcode_products_query', 'hide_on_sale_products_in_home', 50, 3 );
function hide_on_sale_products_in_home( $query_args, $atts, $loop_name ){
    if( is_front_page() ){

        $query_args['meta_query'] = array( array(
            'key'     => '_sale_price',
            'value'   => '',
            'compare' => '=',
        ) );
    }
    return $query_args;
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы).Проверено и работает.

...