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

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

Kitanaell

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

searchingman

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

Kitanaell

Форумчанин
Если речь про выделение стилями товара определенной категории, то в карточке товара есть класс категории.
Спасибо, что откликнулись! Я имела в виду, как сделать изменения в 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

Гуру
Местный
Вот общий принцип для проверки принадлежности товара к указанным категориям по 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

Опытный
Вот общий принцип для проверки принадлежности товара к указанным категориям по 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');
Код используйте в любом нужном вам хуке.
Простите, а куда (в какой файл темы или надо создать отдельную страницу) надо данный код?
 
Сверху Снизу