Отзывы / Комментарии по теме Woocommerce

Вопрос или проблема

Итак, я создаю тему для WordPress и дошел до того момента, когда пытаюсь получить список отзывов, но HTML-шаблон по умолчанию comments_template() не такой, как мне нужно.

У меня нет файла /comments.php в корне темы, но я пытаюсь использовать это:

comments_template( 'single-product/reviews.php' ); 

Не знаю почему, но отображается код по умолчанию с изображениями аватаров и так далее. Мне это не нужно. В основном, мне нужно только их имя и 5 звезд (с помощью font-awesome). Я знаю, что у меня не так много кода, чтобы показать, так как я застрял на шаблоне комментариев. Даже если я попробую comments_template( '' );, он отображает шаблон по умолчанию wp.

Эта функция комментариев вызывается из content-single-product.php, если это что-то значит. Может быть, стоит отметить, что я строю это на основе underscores, это может иметь значение.

Стоит ли просто вручную закодировать раздел отзывов? Я только перечисляю отзывы и выводю форму, верно?

content-single-product.php звучит как шаблон woocommerce, который находится здесь wp-content/plugins/woocommerce/templates. Вы можете переопределить этот шаблон в своей теме или дочерней теме, создав файл wp-content/themes/your-theme/woocommerce/content-single-product.php.

Ответ или решение

Создание темы для WooCommerce может быть сложной задачей, особенно когда речь идет о кастомизации секции отзывов. В вашем случае, вы столкнулись с проблемой вывода отзывов, и стандартная функция comments_template() не предоставляет должного результата. Давайте рассмотрим, как можно решить эту проблему, сохранив при этом высокий уровень кастомизации и контроля.

1. Понимание структуры комментирования в WooCommerce

Сначала важно отметить, что WooCommerce использует систему комментариев WordPress для управления отзывами о товарах. По умолчанию, функция comments_template() выводит стандартный шаблон комментариев. Поскольку вы указали, что у вас отсутствует файл comments.php, функция не может загрузить его и продолжает использовать стандартный вывод.

Существует возможность переопределить стандартные шаблоны WooCommerce, включая секцию отзывов. Это можно сделать, создав свой файл в вашей теме или дочерней теме.

2. Создание кастомного шаблона для отзывов

Вы можете самостоятельно создать файл reviews.php внутри папки woocommerce/single-product вашей темы. Вот шаги, которые вам нужно выполнить:

  1. Создайте нужную папку: В вашей теме создайте структуру папок, если её ещё нет:

    wp-content/themes/your-theme/woocommerce/single-product/
  2. Создание файла reviews.php: Создайте файл reviews.php в этой папке. Этот файл будет использоваться для вывода отзывов и должен включать необходимую логику для отображения отзывов без лишних элементов, таких как аватары.

    Пример минимальной реализации:

    <?php
    // Получаем все отзывы
    global $product;
    $comments = get_comments(array(
       'post_id' => $product->get_id(),
       'status' => 'approve',
    ));
    
    if ($comments) {
       echo '<ul class="product-reviews">';
       foreach ($comments as $comment) {
           $rating = intval(get_comment_meta($comment->comment_ID, 'rating', true));
           echo '<li>';
           echo '<strong>' . esc_html($comment->comment_author) . '</strong>';
           echo '<div class="star-rating" style="display:inline-block;">';
           for ($i = 1; $i <= 5; $i++) {
               if ($i <= $rating) {
                   echo '<span class="fa fa-star" style="color:gold;"></span>';
               } else {
                   echo '<span class="fa fa-star-o"></span>';
               }
           }
           echo '</div>';
           echo '<p>' . esc_html($comment->comment_content) . '</p>';
           echo '</li>';
       }
       echo '</ul>';
    } else {
       echo '<p>' . __('Отзывов еще нет.', 'your-text-domain') . '</p>';
    }

3. Использование функции comments_template()

Теперь, когда вы создали свой шаблон, вы можете использовать его в content-single-product.php:

comments_template('woocommerce/single-product/reviews.php');

Это вызовет ваш кастомный файл вместо стандартного шаблона.

4. Возможные проблемы и их решение

Если ваш кастомный код всё еще не отображается правильно, убедитесь, что:

  • Вы очистили кэш на сайте, если вы используете плагины кэширования.
  • Проверили, нет ли ошибок в логах PHP (включите WP_DEBUG для отладки).
  • Убедились, что ваш файл reviews.php корректно подключается.

Заключение

Создавая собственный шаблон для вывода отзывов, вы получите полный контроль над тем, как они будут отображаться. Это позволит избежать лишних элементов и предоставить пользователям именно то, что они хотят видеть. Также, эта методология соблюдает принцип модульности, что облегчает дальнейшую поддержку кода. Надеюсь, эта информация будет вам полезна в вашем проекте. Удачи в разработке!

Оцените материал
Добавить комментарий

Капча загружается...