Да, это можно сделать, но придется поработать с кодом.
Сначала надо зарегистрировать новый тип рейтинга, который будем назначать публикации при оставлении отзыва
add_action( 'rcl_reviews_init', 'rcl_init_post_review_rating_type', 10 );
function rcl_init_post_review_rating_type() {
rcl_init_reviews_type( array(
'rating_type' => 'post-review',
'type_name' => __( 'Отзывы к публикации'),
'style' => true,
'add_form' => true,
'init_tab' => true
)
);
}
Затем убрать стандартную форму комментирования в шаблоне используемой темы.
Вместо нее вывести форму отзыва и указать для нее обязательные параметры:
echo rcl_get_review_form( array( 'object_id' => $post_id, //идентификатор объекта за который голосуем 'rating_type' => 'post-review', //тип рейтинга 'object_author' => $post_author, //идентификатор автора объекта 'user_id' => $author_review //идентификатор автора отзыва ) );
и затем останется только вывести оставленные отзывы где то, например там же, под публикацией
echo rcl_get_reviews_list( array( 'object_id' => $post_id, //идентификатор объекта за который голосуем 'rating_type' => 'post-review', //тип рейтинга ) );
по идее все должно работать, но надо проверять и пошагово выявлять ошибки, если они будут.
И подобным образом можно добавлять отзывы к любым объектам и сущностям.
вот вариант рабочего кода, который был размещен в файле comments.php используемой темы на замену форме комментирования
global $post,$user_ID;
//выводим все отзывы к объекту
echo rcl_get_reviews_list( array(
'object_id' => $post->ID,
'rating_type' => 'post-review',
) );
//получаем отзыв к объекту от текущего пользователя
$userRvwId = rcl_get_review_by_args( array(
'object_id' => $post->ID,
'rating_type' => 'post-review',
'user_id' => $user_ID,
'fields' => array( 'review_id' )
) );
if(!$userRvwId){
//выводим форму отзыва
echo rcl_get_review_form( array(
'object_id' => $post->ID,
'rating_type' => 'post-review',
'object_author' => $post->post_author,
'user_id' => $user_ID
) );
}
А можно чуть подробнее, для около нулевого уровня так сказать?)
Я понимаю что заменить надо вот это
rating_type' => 'post-review
но не понимаю на что.
И еще вопрос. А как добавить возможность загрузки картинок в эти отзывы?
Обычная запись
Если написать вот так, то при оставлении отзыва пишет - Не был указан рейтинг!
//выводим все отзывы к объекту
echo rcl_get_reviews_list( array(
'object_id' => $post->ID,
'rating_type' => 'rating_post',
) );
//получаем отзыв к объекту от текущего пользователя
$userRvwId = rcl_get_review_by_args( array(
'object_id' => $post->ID,
'rating_type' => 'rating_post',
'user_id' => $user_ID,
'fields' => array( 'review_id' )
) );
if(!$userRvwId){
//выводим форму отзыва
echo rcl_get_review_form( array(
'object_id' => $post->ID,
'rating_type' => 'rating_post',
'object_author' => $post->post_author,
'user_id' => $user_ID
) );
}
Если написать 'rating_type' => 'post', все работает. Спасибо.
Я выше уже спрашивал, но видимо пропустили.
И еще вопрос. А как добавить возможность загрузки картинок в эти отзывы?
Я так понимаю возможно сделать тоже самое И для публикации товаров
Если я правильно понял нужно изменить Вот это поле
'rating_type' => 'postЕсли я правильно понял нужно изменить Вот это поле
На
'rating_type' => 'products'
Или если возможно Подскажите как изменить пример вашего кода чтобы сделать вместо комментариев отзывы только к опубликованным товаром
Андрей CS сказал(а)
видимо, вывели рейтинг во всех постах, сделайте проверку на тип поста и там выводите
Спасибо!
Просто я код вставил не так, надо было ниже, а не выше записи if (is single() || is Page. Теперь все в порядке, только теперь буду думать что с комментарием сделать, хочу сделать как вопрос ответ.