Как отобразить бейдж в карточке товара на странице магазина?

Здраствуйте, необходимо отобразить такой вот бейдж на страницах магазина, точнее на странице магазине и категорий.
61dc316ad47fc533237210.png

Необходимо отображать только если товар находится в категории Ексклюзив, как это сделать я не разобрался.
Сделал немного по другому. Добавил мета поле чек-бокс, и массово через PW WooCommerce Bulk Edit прописал для него значения.

И вывожу бокс проверкой этого мета-поля.
Вот код
<?php

add_action( 'woocommerce_product_options_sku', 'exclusive_product_badge' );
function exclusive_product_badge() {
	global $product, $post;
	echo '<div class="options_group">';
woocommerce_wp_checkbox( array(
        'id'            => '_exclusive_product_badge',
        'value'   => get_post_meta( get_the_ID(), '_exclusive_product_badge', true ),
        'label'         => 'Відображати бейдж Ексклюзив?',
        'description'   => 'Так',
     ) );
    echo '</div>';
}


add_action( 'woocommerce_process_product_meta', 'exclusive_product_badge_save', 10 );
function exclusive_product_badge_save( $post_id ) {
    	$product = wc_get_product( $post_id );
        $exclusive_product_badge_val = isset( $_POST['_exclusive_product_badge'] ) ? 'yes' : 'no';
	    $product->update_meta_data( '_exclusive_product_badge', $exclusive_product_badge_val);
        $product->save();
}


add_action( 'woocommerce_after_shop_loop_item', 'ruta_custom_product_card_details', 6 );

function ruta_custom_product_card_details() {
    global $post;
    $exclusive_product_badge_value = get_post_meta( $post->ID, '_exclusive_product_badge', true );
	    if ( $exclusive_product_badge_value ) {
?> 
            <div class="product-card__badges_exclusive">
                Exclusive
                
               </div>

        
<?php
}

}


Но хочется сделать что бы если товар был в категории эксклюзив то выводился такой бейдж, как это сделать, я к сожалению не понял. Может кто то подскажет?
  • Вопрос задан
  • 259 просмотров
Решения вопроса 1
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
add_action( 'woocommerce_after_shop_loop_item', 'ruta_custom_product_card_details', 6 );

function ruta_custom_product_card_details() {
	global $post;

	if ( has_term( [ 'exclusive' ], 'product_cat', $post->ID ) ) {
		printf( '<div class="product-card__badges_exclusive">%s</div>', __( 'Exclusive', 'text-domain' ) );
	}
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы