Введите часть искомого слова, названия или фразы...
↑ ↓
  1. Новые темы озаглавленные с маленькой буквы - удаляются без предупреждения!
  2. Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Решено Изменение вывода шорткода

Тема в разделе "Вопросы новичков", создана пользователем No48, 20 май 2016.

  1. No48

    No48

    Сообщения:
    2
    Симпатии:
    3
    Баллы:
    3
    Доброго времени суток.

    Требуется помощь.

    Есть вывод шорткода (несколько):
    Код:
    [best_selling_products per_page="3" columns="3"]
    
    [product_attribute attribute='svojstva' filter='besplatnaya-dostavka' per_page="3" columns="3"]
    [product_attribute attribute='svojstva' filter='skidki' per_page="3" columns="3"]
    [product_attribute attribute='svojstva' filter='novinki' per_page="3" columns="3"]
    Суть вопроса в том, как и где изменить выводимый контент?

    К примеру добавить краткое описание товара, количество отзывов...
     

    Вложения:

  2. D&B

    D&B Администратор Команда форума Местный

    Сообщения:
    3.279
    Симпатии:
    726
    Баллы:
    113
    Шорткоды тут не помогут. Нужно изменять вывод товаров в коде вашей темы для шаблонов WC, ну или искать подходящую тему.
     
  3. No48

    No48

    Сообщения:
    2
    Симпатии:
    3
    Баллы:
    3
    В общем решение описанной выше проблемы:

    В файлах template:

    content-product.php
    для получения описания после строчки:
    Код:
     do_action( 'woocommerce_shop_loop_item_title' );
    добавляем код:
    Код:
    ?>
    <p class="product-description">
    <?php
    $description = trim(strip_tags($post->post_excerpt)); // Get product short description
    if($description) {
      // Trim the length of the string up to 100 characters and add three points
      if(mb_strlen($description) > 100)
       $description =substr($description, 0, strpos($description, ' ', 100)).'...';
      $description = strip_tags(apply_filters( 'woocommerce_short_description', $description ));
    } else {
      $description = __('Description is not available', 'woocommerce');
    }
    echo $description; ?>
    </p>
    <?php
    
    rating.php
    для полуения количества отзывов после строчки:
    Код:
    if ( get_option( 'woocommerce_enable_review_rating' ) === 'no' )
    return;
    ?>
    добавляем код:
    Код:
    <span class="product-reviews">
    <?php
    if($product->post->comment_count)
      echo $product->post->comment_count.' '.__('comments', 'woocommerce');
    else
      _e('no comments', 'woocommerce');
    ?>
    </span>
    Вуаля - получаем результат как на картинке.
     
    Последнее редактирование: 24 май 2016
    • Нравится Нравится x 3
  4. Stork.71

    Stork.71 Местный

    Сообщения:
    1.046
    Симпатии:
    255
    Баллы:
    83
    по первому куску - если у нас есть do_action( 'woocommerce_shop_loop_item_title' ); , то лучше не править шаблон, а повесить нужный кусок кода на этот хук с поздним приоритетом (30, 40, 50...).
    подозреваю, что в случае со вторым куском се делается так же, только надо найти, на какой хук его подцепить.