• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Как изменить карточку товара только для определенных категорий товара

Image CMS

Kitanaell

Форумчанин
#1
Подскажите пожалуйста, как изменить карточку товара только для определенных категорий товара?
 

searchingman

Гуру
Местный
#2
Если речь про выделение стилями товара определенной категории, то в карточке товара есть класс категории.
 

Kitanaell

Форумчанин
#3
Если речь про выделение стилями товара определенной категории, то в карточке товара есть класс категории.
Спасибо, что откликнулись! Я имела в виду, как сделать изменения в php файле отвечающем за вывод одиночного товара только для определенных категорий товара или применить хук в functions.php.
Например, убрать кнопку "В корзину", поле с кол-вом товара.
Нужно было еще убрать цену, но мне нужно было это сделать применительно ко всем товарам, а не к определенным категориям, это я сделала в functions.php своей темы указав:
Код:
add_filter( 'woocommerce_variable_free_price_html',  'hide_free_price_notice' );
add_filter( 'woocommerce_free_price_html',           'hide_free_price_notice' );
add_filter( 'woocommerce_variation_free_price_html', 'hide_free_price_notice' );
function hide_free_price_notice( $price ) {
  return '';
}
,
теперь если не указать цену, вместо цены не выводится Бесплатно и при этом отображаются картинки атрибутов.
 
Последнее редактирование:

searchingman

Гуру
Местный
#4
Вот общий принцип для проверки принадлежности товара к указанным категориям по id категорий в "карточке" товара.
PHP:
function my_woocommerce_single_product_summary() {
    global $product;

    // id категорий для проверки
    $category_id = array(25,46);
    // получаем категории товаров
    $categories = get_the_terms( $product->id, 'product_cat' );
  
    // проверяем принадлежность товара к вышеуказанным категориям по id
    $product_in_category = false;
    foreach ($categories as $item) {
        if (in_array((int)$item->term_id, $category_id)) {
            $product_in_category = true;
            break;
        }  
     } 
    if ($product_in_category) {
        echo 'Товар входит в категории';
    }
    else echo 'Товар не входит в категории';
}
add_filter( 'woocommerce_single_product_summary', 'my_woocommerce_single_product_summary');
Код используйте в любом нужном вам хуке.
 

dim70

Опытный
#6
Вот общий принцип для проверки принадлежности товара к указанным категориям по id категорий в "карточке" товара.
PHP:
function my_woocommerce_single_product_summary() {
    global $product;

    // id категорий для проверки
    $category_id = array(25,46);
    // получаем категории товаров
    $categories = get_the_terms( $product->id, 'product_cat' );

    // проверяем принадлежность товара к вышеуказанным категориям по id
    $product_in_category = false;
    foreach ($categories as $item) {
        if (in_array((int)$item->term_id, $category_id)) {
            $product_in_category = true;
            break;
        }
     }
    if ($product_in_category) {
        echo 'Товар входит в категории';
    }
    else echo 'Товар не входит в категории';
}
add_filter( 'woocommerce_single_product_summary', 'my_woocommerce_single_product_summary');
Код используйте в любом нужном вам хуке.
Простите, а куда (в какой файл темы или надо создать отдельную страницу) надо данный код?