Платформа LearnPress отлично подходит для создания онлайн-курсов на WordPress, но встроенный функционал для рейтингов и отзывов к курсам ограничен. В этой статье подробно разберём, как добавить систему оценок и отзывов к курсам LearnPress с помощью плагинов и собственного кода. Это поможет повысить вовлечённость учеников и улучшить качество курсов.
Почему важно добавить рейтинг и отзывы к курсам LearnPress
Отзывы и оценки — мощный инструмент для повышения доверия к курсам. Студенты ориентируются на опыт других при выборе курса, а преподаватели получают обратную связь для улучшения контента. К сожалению, базовый LearnPress не предоставляет удобного механизма для отзывов и рейтингов прямо на странице курса.
Добавление рейтингов поможет визуально выделить лучшие курсы и подстегнуть продажи. К тому же, отзывы можно модерировать и использовать для маркетинга.
Обзор плагинов для рейтингов и отзывов в LearnPress
Реализацию можно сделать несколькими способами:
- LearnPress - Reviews — официальный аддон LearnPress, добавляющий базовые отзывы и рейтинги. Работает просто, но функционал ограничен.
- WP Review Lite — бесплатный плагин с гибкой системой рейтингов звездочками и пользовательскими отзывами. Можно встроить в шаблон курса.
- Clearfy Pro — расширенный плагин оптимизации, который поддерживает улучшение отзывов и рейтингов, а также ускоряет загрузку страниц курсов.
В зависимости от задач можно использовать готовые решения или создать собственный функционал.
Как самостоятельно добавить рейтинг к курсам LearnPress с помощью кода
Если вы хотите гибко контролировать логику, можно добавить пользовательское поле рейтинга и отзывы, используя стандартные механизмы WordPress — пользовательские метаполя и комментарии.
Добавление поля рейтинга в форму отзыва
Для этого расширим форму комментариев для курсов LearnPress, добавив в неё поле "Рейтинг". В файл functions.php вашей темы или в плагин добавьте следующий код:
function learnpress_add_rating_field($comment_form) {
if (is_singular('lp_course')) {
$comment_form['fields']['learnpress_rating'] =
'<p class="comment-form-rating"><label for="learnpress_rating">Оценка курса<span class="required">*</span></label>'
.'<select name="learnpress_rating" id="learnpress_rating" required>'
. '<option value="">Выберите оценку</option>'
. '<option value="5">5 — Отлично</option>'
. '<option value="4">4 — Хорошо</option>'
. '<option value="3">3 — Удовлетворительно</option>'
. '<option value="2">2 — Плохо</option>'
. '<option value="1">1 — Очень плохо</option>'
. '</select></p>';
}
return $comment_form;
}
add_filter('comment_form_defaults', 'learnpress_add_rating_field');
Этот код добавляет обязательное поле рейтинга в виде селекта с оценками от 1 до 5 при оставлении отзыва на странице курса.
Сохранение рейтинга в комментариях
Далее нужно сохранить рейтинг как метаполе комментария при отправке:
function learnpress_save_comment_rating($comment_id) {
if (isset($_POST['learnpress_rating']) && !empty($_POST['learnpress_rating'])) {
$rating = intval($_POST['learnpress_rating']);
if ($rating >= 1 && $rating <= 5) {
add_comment_meta($comment_id, 'learnpress_rating', $rating);
}
}
}
add_action('comment_post', 'learnpress_save_comment_rating');
Отображение рейтинга на странице курса LearnPress
Теперь выведем средний рейтинг и сами оценки с отзывами под описанием курса. Добавьте такой код в шаблон single-lp_course.php или в подходящий хук:
function learnpress_display_course_ratings() {
if (!is_singular('lp_course')) {
return;
}
global $post;
$comments = get_approved_comments($post->ID);
$ratings = [];
foreach ($comments as $comment) {
$rating = get_comment_meta($comment->comment_ID, 'learnpress_rating', true);
if ($rating) {
$ratings[] = intval($rating);
}
}
if (count($ratings) === 0) {
echo '<p>Рейтинг пока отсутствует</p>';
return;
}
$average = round(array_sum($ratings) / count($ratings), 2);
echo '<div class="learnpress-course-rating">';
echo '<p><strong>Средний рейтинг курса: </strong>' . $average . ' из 5 (' . count($ratings) . ' отзывов)</p>';
// Выводим отзывы с рейтингом
foreach ($comments as $comment) {
$rating = get_comment_meta($comment->comment_ID, 'learnpress_rating', true);
if (!$rating) continue;
echo '<div class="learnpress-single-review">';
echo '<strong>Оценка: </strong>' . intval($rating) . '/5<br>';
echo '<strong>Комментарий: </strong>' . esc_html($comment->comment_content);
echo '</div>';
}
echo '</div>';
}
add_action('learn-press/course-content-summary', 'learnpress_display_course_ratings');
Этот код выводит средний рейтинг и список комментариев с оценками. Хук learn-press/course-content-summary подходит для вставки после описания курса, но при необходимости замените на подходящий для вашей темы.
Преимущества собственного решения и советы по улучшению
Самописный функционал даёт максимум контроля — вы можете добавлять дополнительные поля, модерацию, сортировку отзывов и даже интегрировать с другими системами. Однако если хотите быстро и без проблем, лучше использовать готовые плагины.
Для улучшения опыта пользователей и SEO советуем:
- Добавить микроразметку Schema.org для рейтингов — это улучшит отображение в поисковой выдаче.
- Внедрить AJAX-отправку отзывов, чтобы не перезагружать страницу.
- Использовать Quizle для создания тестов и опросов после курса, что дополнительно повысит вовлечённость.
Заключение
Добавление рейтингов и отзывов существенно улучшает пользовательский опыт и помогает развивать платформу LearnPress. Вы можете использовать как готовые плагины, так и реализовать собственное решение через метаданные комментариев, как показано выше. Это позволит гибко настраивать отображение, модерировать отзывы и анализировать качество курсов.
Если хотите расширить функционал и оптимизировать сайт, обратите внимание на Clearfy Pro, который улучшит работу WordPress и LearnPress в целом.