Woocommerce Показ избранных и скрытых продуктов выше магазина и категории - PullRequest
0 голосов
/ 02 апреля 2020

Мне нужно отобразить рекомендуемые товары выше l oop на странице магазина и категории. Я могу это сделать, но мне также нужно скрыть эти продукты в l oop по умолчанию. Я хотел решить эту проблему с помощью настроек видимости продукта, но продукты всегда отображаются или скрываются в обоих циклах.

В идеале я хотел бы установить продукты как выделенные и скрытые, а также настроить свой пользовательский l oop игнорировать настройки видимости. Я просто не могу понять это.

Я сейчас использую этот код:

function featured_products_beforeloop() {
    $args = array(
        'post_type' => 'product',
        'posts_per_page' => 12,
        'tax_query' => array(
            array(
                'field'    => 'name',
                'terms'    => 'featured',
            ),
        ),
    );

    $loop = new WP_Query( $args ); ?>
    <ul class="products columns-<?php echo esc_attr( wc_get_loop_prop( 'columns' ) ); ?>">
        <?php while ( $loop->have_posts() ) : 
        global $product; ?>
            <li <?php wc_product_class( '', $product ); ?>>  
            <?php  if ( has_post_thumbnail( $loop->post->ID ) ) 
                echo get_the_post_thumbnail( $loop->post->ID, 'shop_catalog' ); 
            else 
                echo '<img src="' . woocommerce_placeholder_img_src() . '" alt="' . $product->get_title() . '" class="attachment-shop_catalog size-shop_catalog wp-post-image" width="300px" height="300px" />'; ?>
            <h3><?php the_title(); ?></h3>

            <?php if ( $price_html = $product->get_price_html() ) : ?>
            <span class="price"><?php echo $price_html; ?></span>
            <?php endif;
            woocommerce_template_loop_add_to_cart( $loop->post, $product ); ?>    
        </li>
        <?php 
    endwhile; ?>
</ul> <?php
    wp_reset_postdata();    
} 

add_action( 'woocommerce_before_shop_loop', 'featured_products_beforeloop', 10 );

1 Ответ

0 голосов
/ 02 апреля 2020

Вы пробовали:

$args = array(
    'post_type' => 'product',
    'posts_per_page' => 12,

    'tax_query' => array(
        array(
            'taxonomy' => 'product_visibility',
            'field'    => 'name',
            'terms'    => 'featured',
        ),
        // allow both hidden and not hidden featured items
        array(
            'relation' => 'OR',
            array(
                'taxonomy' => 'product_visibility',
                'field'    => 'name',
                'terms'    => 'hidden',
                'operator' => 'NOT IN',
            ),
            array(
                'taxonomy' => 'product_visibility',
                'field'    => 'name',
                'terms'    => 'hidden',
                'operator' => '=',
            ),
        )
    ),
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...