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

Атрибуты в кратком описании

ash89

Новичок
Добрый день! Подскажите кто сталкивался и знает как решить данную проблему?

Необходимо чтобы в поле краткого описания отображались определенные атрибуты этого товара 2-3 штуки. И для каждой категории эти атрибуты разные. Допустим для категории камеры это атрибуты: Разрешение и объектив, а для категории регистраторы это скорость и объем, и т д.
 

Kvistis

Опытный
Местный
PHP:
function devise_woo_get_pa(){

     $terms_atr = get_the_terms( $post->ID, 'pa_слаг_атрибута' );
   if ( $terms_atr && ! is_wp_error( $terms_atr ) ) {
      echo 'Атрибут такой-то —';
         echo $term_atr->name;     
      }
   else {echo "";}
}
add_action('woocommerce_single_product_summary', 'devise_woo_get_pa', 13);
В функцию можно добавить необходимое количество атрибутов, если какой-либо атрибут не определен, то он просто не будет выводится. Можно добавить проверку на категорию, если атрибут определен, но не нужно его выводить, и для каждой категории написать свои атрибуты.
 

ash89

Новичок
PHP:
function devise_woo_get_pa(){

     $terms_atr = get_the_terms( $post->ID, 'pa_слаг_атрибута' );
   if ( $terms_atr && ! is_wp_error( $terms_atr ) ) {
      echo 'Атрибут такой-то —';
         echo $term_atr->name;    
      }
   else {echo "";}
}
add_action('woocommerce_single_product_summary', 'devise_woo_get_pa', 13);
В функцию можно добавить необходимое количество атрибутов, если какой-либо атрибут не определен, то он просто не будет выводится. Можно добавить проверку на категорию, если атрибут определен, но не нужно его выводить, и для каждой категории написать свои атрибуты.
Извините но я в этом деле совсем новичок :( не могли бы более понятнее написать? Т.е в function.php мне надо добавить этот код для каждого необходимого для отображения атрибута? А как указать в кратком описании какой из них должен отображаться для конктретного товара в категории?
 

Kvistis

Опытный
Местный
Т.е в function.php мне надо добавить этот код для каждого необходимого для отображения атрибута?
В этот код добавляете все атрибуты, которые будете выводить. Вставлять код в function.php.
в кратком описании какой из них должен отображаться для конктретного товара в категории?
В кратком описании самого товара ничего не указывается, этот код работает для всех товаров автоматически. Если атрибут не указан, он и не будет выводится.
Если вы хотите указать отдельные атрибуты для каждой категории, надо вставлять еще проверку по категории. Не помню как правильно написать, постараюсь позже посмотреть.
 

ash89

Новичок
В этот код добавляете все атрибуты, которые будете выводить. Вставлять код в function.php.

В кратком описании самого товара ничего не указывается, этот код работает для всех товаров автоматически. Если атрибут не указан, он и не будет выводится.
Если вы хотите указать отдельные атрибуты для каждой категории, надо вставлять еще проверку по категории. Не помню как правильно написать, постараюсь позже посмотреть.
Попробовал вставил данный код
function devise_woo_get_pa(){

$terms_atr = get_the_terms( $post->ID, 'pa_resolution' );
if ( $terms_atr && ! is_wp_error( $terms_atr ) ) {
echo 'sensitivity';
echo $term_atr->name;
}
else {echo "";}
}
add_action('woocommerce_single_product_summary', 'devise_woo_get_pa', 13);

но описания не появилось
 

Kvistis

Опытный
Местный
function devise_woo_get_pa(){

$terms_atr = get_the_terms( $post->ID, 'pa_resolution' );
if ( $terms_atr && ! is_wp_error( $terms_atr ) ) {
echo 'sensitivity';
echo $term_atr->name;
}
else {echo "";}
}
add_action('woocommerce_single_product_summary', 'devise_woo_get_pa', 13);
PHP:
function devise_woo_get_pa(){
$terms_atr = get_the_terms( $post->ID, 'pa_resolution' );
if ( $terms_atr && ! is_wp_error( $terms_atr ) ) {
echo 'sensitivity';
foreach ( $terms_atr as $term_atr ) {
echo $term_atr->name;
}
}
else {echo "";}
}
add_action('woocommerce_single_product_summary', 'devise_woo_get_pa', 13);
Недоглядела foreach, сейчас должно работать
 

ash89

Новичок
PHP:
function devise_woo_get_pa(){
$terms_atr = get_the_terms( $post->ID, 'pa_resolution' );
if ( $terms_atr && ! is_wp_error( $terms_atr ) ) {
echo 'sensitivity';
foreach ( $terms_atr as $term_atr ) {
echo $term_atr->name;
}
}
else {echo "";}
}
add_action('woocommerce_single_product_summary', 'devise_woo_get_pa', 13);
Недоглядела foreach, сейчас должно работать
Все равно не выходит :(
Если использовать этот код то краткое описание само появляется
add_action( 'woocommerce_after_shop_loop_item_title', 'my_add_short_description', 9 );
function my_add_short_description() {
echo '<span class="title-description">' . the_excerpt() . '</span><br />';
}
 

Вложения

Kvistis

Опытный
Местный
Краткое описание - это поле на странице товара. А если вам надо на странице каталога выводить атрибуты товара, как на скрине, тогда надо было и вопрос правильно задавать.
 

ash89

Новичок
Краткое описание - это поле на странице товара. А если вам надо на странице каталога выводить атрибуты товара, как на скрине, тогда надо было и вопрос правильно задавать.
Извините :) но данный код все равно не отображает атрибуты даже на странице товара :(
 

Kvistis

Опытный
Местный
Последнее, что могу предложить для вывода на странице категорий как на скрине
PHP:
function my_template_loop_product_title(){
    global $product;
    echo 'Разрешение';
    $versionvalues = get_the_terms( $product->id, 'pa_resolution');
    foreach ( $versionvalues as $versionvalue ) {
        echo $versionvalue->name;
   }
}
add_action( 'woocommerce_shop_loop_item_title', 'my_template_loop_product_title', 10 );
 

ash89

Новичок
Последнее, что могу предложить для вывода на странице категорий как на скрине
PHP:
function my_template_loop_product_title(){
    global $product;
    echo 'Разрешение';
    $versionvalues = get_the_terms( $product->id, 'pa_resolution');
    foreach ( $versionvalues as $versionvalue ) {
        echo $versionvalue->name;
   }
}
add_action( 'woocommerce_shop_loop_item_title', 'my_template_loop_product_title', 10 );
Хоть и не получилось что хотелось все равно огромное спасибо за старания ;)
 

charigin69

Новичок
[QUOTE = "Квистис, пост: 29028, участник: 6467"]
PHP:
function devise_woo_get_pa () {
$ terms_atr = get_the_terms ($ post-> ID, 'pa_resolution');
if ($ Terms_atr &&! is_wp_error ($ Terms_atr)) {
эхо «чувствительность»;
foreach ($ term_atr как $ term_atr) {
echo $ term_atr-> name;
}
}
else {echo "";}
}
add_action ('woocommerce_single_product_summary', 'devise_woo_get_pa', 13);
[/ PHP]
Недоглядела foreach, сейчас должно работать[/QUOTE]

function devise_woo_get_pa () {
$ terms_atr = get_the_terms ($ post-> ID, 'pa_tsvet');
if ($ Terms_atr &&! is_wp_error ($ Terms_atr)) {
эхо '';
foreach ($ term_atr как $ term_atr) {
echo $ term_atr-> name;
}
}
else {echo "";}
}
add_action ('woocommerce_single_product_summary', 'devise_woo_get_pa', 13);
Здравствуйте всё работает, только может есть возможность показать сам цвет
 
Последнее редактирование:

charigin69

Новичок
[QUOTE = "Вениамин_1985, должность: 40615, участник: 10500"] napitkistore.ru/product/mineralnaya-voda-bez-gaza-contrex-kontreks-0-5l / [/ QUOTE [/ QUOTE]

Про плагин всё понятно но он не показывает изображения , только текст
 
Сверху Снизу