Публикация в группе: Плагин WP-Recall - Личный кабинет на WordPress

Категории группы: Полезное

Итак, задача - надо подключить к системе рейтинга какой-то объект, чтобы этому объекту можно было изменять рейтинг и этот рейтинг влиял на общий рейтинг автора этого объекта.

Под объектом мы подразумеваем какую то сущность, у которой есть автор или хозяин - пользователь опубликовавший этот объект или за которым этот объект закреплен. Объектами могут быть, например, публикации, комментарии, отзывы, посты на форуме, фото в галерее, а может вообще вся страница профиля пользователя и тп. Перечень можно продолжать, плагин Wp-Recall не может учесть все потребности пользователей, поэтому важно знать, что систему рейтинга надо только подключить нужным вам объектам и система рейтинга будет нормально с ними работать.

Первое, что нужно сделать, это зарегистрировать новый тип рейтинга. Определяемся, какой именно объект мы хотим подключить, пусть это будет страница профиля пользователя, чтобы другие пользователи могли проголосовать за страницу профиля другого пользователя, так сказать, высказать своем мнение о нем или о его странице путем нажатия на плюс или минус.

Новому типу рейтинга дадим имя 'profile-page', имя типа рейтинга должно быть уникальным и повторять ранее зарегистрированные типы рейтинга.

Когда определились к чему будем подключать рейтинг и какое будет имя у нового типа, можно приступать к его регистрации в системе:

add_action( 'init', 'rcl_register_rating_profile_type', 10 );
function rcl_register_rating_profile_type() {

	if ( ! rcl_exist_addon( 'rating-system' ) )
		return false;

	rcl_register_rating_type( array(
		'rating_type'	=> 'profile-page',
		'type_name'	=> __( 'Страница профиля' ),
                'style'         => true,
		'icon'		=> 'fa-user'
	) );
}

Основа в этом коде - функция rcl_register_rating_type(), именно она регистрирует новый тип рейтинга в системе, чтобы в дальнейшем мы могли с этим типом работать. Кроме того, данная функция автоматически создаст для нового типа настройки в рейтинговой системе, например, значение рейтинга за один голос, оказывать влияние на общий рейтинг пользователя или нет и тд.

После того, как тип рейтинга был зарегистрирован и настройки были, надо вывести кнопки рейтинга для возможности голосования пользователями.

Для этого  надо разместить функцию rcl_get_html_post_rating() в нужном месте и передать в нее нужные данные. От того, где будет размещена эта функция зависит место вывода кнопок для голосования, в нашем случае, за страницу профиля пользователя. Код для вывода выглядит так:

echo rcl_get_html_post_rating($object_id,'profile-page',$user_id);

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

Функцию rcl_get_html_post_rating() можно вывести и через известный фильтр или хук, надо только их знать.

Вот и все, данный код подключает профиль пользователя к рейтинговой системе, добавляет настройки для данного типа рейтинга, выведет историю изменения рейтинга по данному типу в общем рейтинге пользователя и выводит кнопки для голосования другими пользователями за этот профиль. Если все сделано верно, то все будет работать.

 

5

Автор публикации

не в сети 17 минут

Андрей CS

12K
Комментарии: 2747Публикации: 482Регистрация: 30-11--0001Продаж/Покупок: 0/0