Публикация в группе: Otshelnik-Fm - мои работы (код, плагины, дополнения, статьи и руководства)

Категории группы: Другое

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

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

Но не забывайте посещать мою группу - там много полезного - статьи, заметки, аналитика.

Для начинающих пользователей и для тех кто только начинает осваивать программирование под WP-Recall плагин я веду сборник полезностей: "Знаете ли вы что… Факты о плагине WP-Recall и единая база для разработки под WP-Recall"
и выпустил бесплатное дополнение: "WP-Recall Handbook - Справочник по плагину WP-Recall. Факты, видео, ссылки на руководства для старта разработки под плагин"

1. Удаление рейтинговой активности нужного пользователя:

Удалить всю рейтинговую активность конкретного пользователя без удаления самого пользователя:

Где 123 - идентификатор нужного пользователя.

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

 

2. Защита от спам регистраций используя функционал Wp-Recall:

В этой заметке 3 способа

 

3. Отменить функцию вывода рейтинга в записи, и вывести рейтинг поста в нужном месте:

-вставляем код в functions.php вашей темы.
Теперь рейтинг у постов не будет появляться.

Этот хук полезен, когда вы хотите сами вывести рейтинг записи, в нужном вам месте. Для этого используйте функцию:

- в нее передаете id пользователя и тип записи

4. Проверяем активирован плагин WP-Recall или нет

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

5. Проверяем активирован аддон или нет:

Полезно проверить, если у вас дополнение зависит от, как в примере ниже, рейтинговой системы (уникальный id аддона - имя его папки):

Или второй вариант:

Или третий вариант:

- id дополнения - это название папки дополнения
Описание функции rcl_exist_addon
В случае с функцией - если вы код размещаете код в functions.php или как отдельный плагин - выполняйте 4-й сниппет - проверяйте что WP-Recall активирован. Иначе при его отключении увидите ошибку о обращении к неизвестной функции. В случае с дополнением - такая проверка не имеет смысла - ведь допы работают только при включенном реколл.

6. Получить ссылку на личный кабинет авторизованного пользователя:

 

7. Как отключить сайдбар в группах:

Работает с версии 13.8.14
Деактивирует сайтбар. Но вы можете указать кроме sidebar - content или footer

 

8. проверить существует ли область в группах sidebar:

аналогично, кроме sidebar - можете проверять content или footer область группы

 

9. Как после публикации в группе, оставаться на главной странице группы, а не в созданной записи:

 

10. Хуки, экшны, фильтры:

 

11. Настройки WP-Recall в таблице wp_options:

custom_profile_search_form - настройка поиска аддона profile_search

primary-rmag-options - настройки магазина

rcl_active_addons - данные об активированных дополнениях

rcl_addons_need_update - в массиве аддоны требующие обновления

rcl_cart_fields - данные о созданных полях формы заказа дополнения магазина

rcl_global_options - здесь хранятся все глобальные настройки плагина и его дополнений

rcl_fields_% - данные о созданных произвольных полях формы публикации для различных типов записей, где % - post_type (например rcl_fields_post_1)

rcl-key - ваш rcl-key

rcl_order_tabs - настройка имен вкладок и порядок их сортировки

rcl_profile_default - данные о выводимых дефолтных полях профиля (логин, имя, отображаемое имя, статус (описание))

rcl_profile_fields - созданные произвольные поля профиля и их настройки

rcl_tempgallery - массив временных данных аддона публикации

rcl_version - текущая версия реколл

rcl_active_template - активный wp-recall шаблон

widget_rcl-new-users - виджет новых юзеров
widget_rcl-online-users - виджет кто онлайн
widget_rcl-primary-panel - виджет панели управления
widget_widget-minibasket - виджет корзины

rcl_fields_custom_tabs - массив произвольных вкладок

 

12. Настройки WP-Recall в таблице пользователя wp_usermeta:

addons_per_page - количество аддонов на одной странице аддон менеджера админки (по умолчанию 20-ть)

admin_group_% (например admin_group_17) в какой группе админит (старые данные аддона групп. Эти данные аддон груп хранит в своей таблице)

rcl_avatar - строка. хранится путь до аватарки

rcl_cover - строка, хранит путь до обложки кабинета

social_meta_rcl - массив. социальные настройки пользователя

tempgallery - массив временных данных, формы публикации, конкретного пользователя

user_group_% - (например user_group_18) в какой группе состоит (старые данные аддона групп. Эти данные аддон груп хранит в своей таблице)

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

13. Предопределенные константы плагина:

RCL_URL - урл до плагина http://ваш-сайт/wp-content/plugins/wp-recall/
RCL_PATH - Полный путь на сервере до папки плагина /home/data/www/ваш-сайт/wp-content/plugins/wp-recall/
RCL_UPLOAD_URL - урл до папки реколл загрузок http://ваш-сайт/wp-content/uploads/rcl-uploads/
RCL_UPLOAD_PATH - Полный путь на сервере до папки реколл загрузок /home/data/www/ваш-сайт/wp-content/uploads/rcl-uploads/
RCL_TAKEPATH - Полный путь на сервере до папки /home/data/www/ваш-сайт/wp-content/wp-recall/
RCL_PREF - префикс бд вашего сайта и реколл. Например wp_rcl_
RMAG_PREF - префикс бд вашего сайта и магазина реколл. Например wp_rmag_

14. Изменить баланс конкретного пользователя:

15. Вывести полный рейтинг записи:

16. Вывести ссылку на всплывающую форму входа только для гостя, например в author.php

Читаем подробней: Всё о форме входа и регистрации WP-Recall

17. Вывести блок полного рейтинга автора (или комментатора)

Или для комментатора вариант 2:

global $comment уже содержит рейтинг - запросов к бд лишних делать не надо:

18. Глобальные переменные WP-Recall

Для тех кто понимает и знает, что такое глобальные переменные - привожу их список тут. Список не полный. Мне для работы в основном нужны первые 3.

$active_addons - массив с данными о активированных аддонах (id и полный путь на сервере до него)
$user_LK - число. получает id юзера, в чьем лк находимся. Определена только в личном кабинете
$rcl_user_URL  - строка. хранит урл до ЛК текущего юзера:  http://ваш-сайт/author/petrovich

$rcl_options - массив с данными о всех глобальных настройках реколл
$rcl_avatar_sizes - массив. Зарегистрированные размеры аватарок
$rcl_userlk_action - строка. Определяется в личном кабинете пользователя.
Выводит дату последней активности пользователя чей ЛК просматриваете (дата вида: 2016-05-06 00:40:05)
$rcl_smilies - массив. Выводится в ЛК собеседника. Содержит коды смайлов и путь до смайла
$rcl_chat - объект настроек чата
$rcl_tab - объект данных вкладки. Содержит в массиве полезные данные.
$rcl_tabs - массив с данными вкладок (табов) личного кабинета
$rcl_order_tabs - массив порядка вывода вкладок ЛК
$rcl_rating_types - массив зарегистрированных типов рейтинга. Содержит тип рейтинга, название, иконку, количество баллов и др.

$rcl_user - массив. Хранит параметры пользователя выводимого через шорткод userlist - и везде где используется  шаблон user-rows.php
Для просмотра данных распечатывайте переменную из файла шаблона вывода пользователя, например: user-rows.php
$rcl_users_set - массив параметров настроек шорткода userlist

// группы
$rcl_group_widgets - Массив. Хранит данные виджетов группы. ID виджета, Название, класс, размещение, статус
$rcl_group - массив. Определяется на странице группы. Содержит ID группы, имя, id администратора, статус группы
количество участников группы роль текущего пользователя и другие данные
$rcl_group_area - массив. Хранит зарегистрированные области в группе (сайтбар, контент, футер)

// магазин
$rmag_options - массив. Хранит настройки магазина
$CartData - массив. Данные в корзине. Урл до страницы корзины, Количество товара, его id и цена, общая сумма в корзине
$product - массив. Содержит данные заказа магазина реколл. Определяется на вкладке "заказы" и в отправляемом письме
$products - массив. Все продукты в корзине или данные на отдельной записи товара
$order - массив. Хранит контент заказа
$orders - массив. Данные заказов на вкладке "заказы"
$productlist - массив. Данные шорткода productlist

// публикации
$formData - массив. Параметры формы публикации
$posts - массив. Определяется в ЛК на вкладке опубликованных записей пользователя. Хранит данные записей юзера

19. Вывод кол-ва непрочитанных сообщений в чате, в любом месте

 

20. Имена файлов в корне дополнения

Каждый addon (дополнение) WP-Recall может содержать следующие файлы:

index.php - обязателен. Основной файл с кодом
info.txt - обязателен. Необходим для описания необходимой информации. Описание
activate.php - срабатывает единожды в момент активации дополнения. Например предустановка начальных настроек, создание таблиц в БД
deactivate.php - срабатывает единожды в момент деактивации дополнения.
delete.php - срабатывает единожды в момент удаления дополнения. Подчищаем за собой (правило хорошего тона в программировании)
readme.txt - Разметка readme-файла для товара

21. Проверим что мы в личном кабинете

Способ 1:

Способ 2:

Эта функция проверяет выводится ли сейчас личный кабинет,
Если передать в нее ИД юзера, то она проверит выводится ли ЛК этого пользователя.

В случае с функцией - если вы код размещаете код в functions.php или как отдельный плагин - выполняйте 4-й сниппет - проверяйте что WP-Recall активирован. Иначе при его отключении увидите ошибку о обращении к неизвестной функции. В случае с дополнением - такая проверка не имеет смысла - ведь допы работают только при включенном реколл.

22. Подключим свой шаблон

В своем дополнении создайте папку templates
В ней разместите свой php шаблон (к примеру otfm-card.php)
и в своей функции вы можете обратиться к нему так:

Описание rcl_get_include_template
Подключает из вашего аддона из папки add-on/our-addon/templates/ шаблон, но предварительно проверяет его наличие по пути wp-content/wp-recall/templates/
Если он находит его в пользовательской папке - берет оттуда

тогда пользователи смогут воспользоваться функционалом шаблонов WP-Recall

 

23. Удалим блок автора

И выведем блок автора в нужном нам месте (размещаете в нужном файле)

Пример 2 - удалим блок автора в публикациях всех групп:

 

Пример 3 - удалим блок автора в записях конкретных групп:

9 - терм. Получается так https://yadi.sk/i/_z5OKgDt39xa4Q

Пример 4 - удалим блок автора у определенного типа записи:

Пример 5 - удалим блок автора в определенных рубриках

24. Предопределенные стили в админке

Можно использовать для выделения текста в админке сайта - в настройках https://yadi.sk/i/lzyQH5Uh3ETNaY
с версии 14.4 в админке в файле admin.css для разработчиков добавились стили:

т.е. по методологии БЭМ мы можем у аддона указать стиль текста
например:

- так мы зададим красный цвет 16 пиксельного болдового шрифта

В админке, для стилизации, вы можете применять набор иконок dashicons https://developer.wordpress.org/resource/dashicons/#dismiss (Включено в вордпресс. Это не реколл)

25. Статус пользователя - В сети/не в сети

Такст "Не в сети 3 часа". Или значок онлайна:

$user_ID - id нужного юзера.

Пример 2:

надпись "В сети" "Не в сети"

$user_ID - id нужного юзера. А на месте текста можете вывести свои иконки

26. Скроем реколлбар для гостей и уберем отступы

 

27. Сформируем линк на вкладку кабинета

Учитывает как выводится кабинет (шорткодом или через author.php)

В зависимости от вывода личного кабинета (шорткодом или через author.php) будет формироваться урл
Верно подставляться к вкладке & или ?  (&tab=forum или ?tab=forum)

Вернет:

 

28. Вставим инлайн стили

Когда стилей у вашего дополнения мало (1-3 правило), то целесообразности подключать их в отдельный css файл нет. Или если стили формируются у вас динамически - например настройки стилей из настроек админки, то есть смысл подключить их инлайном - т.е. в тело html страницы.

Пример: Добавим инлайн стили в кабинет:
Для этого используем фильтр rcl_inline_styles
Но так как это фильтр, то нам надо возвращать результат при всех проверках, иначе написав return false; - мы затронем другие дополнения использующие этот фильтр.

- заметьте что при проверки кабинета мы вернули $styles, а ниже - если мы в кабинете, дописали свои стили. Без открывающих и закрывающих тегов style! т.е. как мы их пишем в стилевом файле.
Прелесть этого фильтра - что он сам произведет всю минификацию - сожмет в одну строку и удалит пробелы.

29. Проверим что мы во вкладке Чат

 

30. js хуки (actions) и фильтры

Собрал и описал работу здесь

31. Расписание, крон задачи (crontab)

Описал здесь
Анонс с 14-й версии реколл

Пример: запустим нашу функцию раз в час

32. фильтры вкладок

Позволяют получить данные вкладок личного кабинета и сделать все что нам нужно
Хорошее руководство

Смотрим что в них:

33. отключим кнопки: "черновик" и "удалить" в типе записей post

34. Добавим в массив валют - Киргизский Сом

для дополнения Recall Commerce

35. Человекопонятное время:

вернет человечное время: 1 минута, 1 час, 17 часов, 5 месяцев, 2 года.

p.s. Сниппеты будут коллекционироваться тут!

Рейтинг: 9

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

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

Otshelnik-Fm

4 234

http://across-ocean.otshelnik-fm.ru/ - список моих работ к плагину WP-Recall

"User Info Tab" - еще больше жизни! Coming Soon!!!

Комментарии: 911Публикации: 111Регистрация: 27-01-2013Продаж/Покупок: 4453/116