Публикация в группе: Кастомизация WP-Recall и Wordpress

Добавлено в закладки: 0

Решил сделать наглядный пример по добавлению своего типа достижения и его выдачи, если вдруг кто захочет добавить то, чего нет.

Итак, первое что нам надо сделать - зарегистрировать свой тип достижения, добавив его к глобальной переменной $Achiev_types:

Переменная $Achiev_type содержит в себе массив со всеми зарегистрированными типами переменных и имеет структуру:

 

 

Рассмотрим 2 примера добавления.

Добавим в существующую группу опций. Например к разделу достижений primeforum

В итоге это будет так:

Добавим в свою группу опций.

В итоге будет так:

Остановимся на 1ом варианте.

 

Все, теперь пользователь может создавать достижения с нашим типом. В данном примере это достижение будет: За номер созданной темы на форуме. Т.е. будут считаться не тему пользователя, а все темы на форуме и если пользователь создал тему на форуме, а она оказалась 10ой - то выдаем ему достижение, если оно, конечно же, есть.

В примере рассмотрим достижение за 47 тему на форуме. Т.е. когда кто-то создает тему, мы посчитаем какая она по счету и если 47я - то выдадим автору достижение. Вот как заполнены поля достижения:

Достижение добавлено:

Теперь нам нужна функция, которая будет выдавать достижение.

Вот она:

Выдача достижения происходит с помощью функции insert_achiev_to_user которая принимает след. параметры:

$a_id - ID достижения, которым награждаем

$user_id - ID пользователя которого награждаем

$type - тип достижения (в примере 'pfm_topic_num')

$a_status - статус достижения (1 - выдается автоматически, 0 - вручную)

 

Вот и все! Теперь как только кто-то создаст на форуме тему и она окажется 47ой по счету, автор этой темы получит достижение:

4

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

не в сети 6 часов

Preci

457

1

Комментарии: 187Публикации: 34Регистрация: 11-11-2014Продаж/Покупок: 962/34