В данной записи будут описываться примеры кода, решающие мелкие задачи для WordPress плагина WP-Recall. Полезная информация и коллекция ссылок.
Все сниппеты располагаются в файле functions.php вашей активной вордпресс темы.
Ссылки на другие полезные страницы:
Моя группа на этом сайте - где я публикую полезности к плагину.
Все группы - где другие пользователи также предлагают свои решения.
Большой FAQ - Знаете ли вы что… Факты о плагине WP-Recall и единая база для разработки под WP-Recall.
WP-Recall Handbook - Справочник по плагину WP-Recall. Факты, видео, ссылки на руководства для старта разработки под плагин. Дополнение для плагина WP-Recall.
API RCL - раздел сайта с документацией
Сниппеты:
- Проверяем - активирован плагин WP-Recall или нет
- Проверяем - активировано дополнение или нет
- Вставим инлайн стили (фильтр)
- Подключим свой шаблон
- Проверим - что мы в личном кабинете (своём, чужом)
- Получить ссылку на личный кабинет авторизованного пользователя
- Сформируем ссылку в личный кабинет или вкладку кабинета
- Проверим что мы во вкладке Чат
- Проверим что мы в дочерней вкладке "Друзья друзей"
- Вывод количества непрочитанных сообщений в чате, в любом месте
- Удаление рейтинговой активности нужного пользователя
- Отменить функцию вывода рейтинга в одиночной записи, и вывести рейтинг записи в нужном месте
- Вывести полный рейтинг записи
- Вывести блок полного рейтинга автора (или комментатора)
- Как отключить область в группах на примере отключения сайдбара групп
- Проверить - существует ли область в группах на примере области sidebar
- Как после публикации в группе, оставаться на главной странице группы, а не в созданной записи
- Получить баланс конкретного пользователя
- Изменить баланс конкретного пользователя
- Удалим блок автора
- Статус пользователя - В сети/не в сети
- Расписание, крон задачи (crontab)
- Отключим кнопки: "черновик" и "удалить" в типе записей post
- Добавим в массив валют новую валюту - Киргизский Сом
- Человекопонятное время
- Получим ссылку до дополнения
Информация:
- Предопределенные константы плагина WP-Recall
- Предопределенные стили в админке на странице настроек WP-Recall
- Хуки – экшны (actions) и фильтры (filters)
- Фильтры вкладок личного кабинета
- Настройки WP-Recall в таблице wp_options
- Настройки WP-Recall в таблице пользователя wp_usermeta
- Имена файлов в корне дополнения (пишем свое дополнение)
Коллекции:
- Список шаблонов WP-Recall
- js хуки (actions) и фильтры
- Отдельная тема по реколлбар и куча сниппетов к нему
- Отдельная тема по форме входа и регистрации
- Защита от спам регистраций используя функционал Wp-Recall
- Глобальные переменные WP-Recall
Проверяем - активирован плагин WP-Recall или нет:
Эту проверку необходимо делать, чтобы при деактивации этого плагина на вашем сайте не вылетала фатальная ошибка. Например когда вы вставляете код (свой виджет) в файл функций темы или в другие файлы темы
if(function_exists('wp_recall')){ // если включен плагин реколл - тут ваш код }
Проверяем - активировано дополнение или нет:
Полезно проверить, если у вас дополнение зависит от, как в примере ниже, рейтинговой системы (уникальный id аддона - имя его папки):
// так проверяем активирован аддон или нет global $active_addons; if(!$active_addons['rating-system']) return false; // а тут весь вывод если аддон активен
Или второй вариант:
// или так global $active_addons; if($active_addons['rating-system']){ // если дополнение рейтинга активировано то выполняем } else {}
Или третий вариант:
if(rcl_exist_addon('rating-system')){ // доп активирован }
- id дополнения - это название папки дополнения
Описание функции rcl_exist_addon
В случае с функцией - если вы размещаете код в functions.php или как отдельный плагин - выполняйте предыдущий сниппет - проверяйте что WP-Recall активирован. Иначе при отключении WP-Recall увидите ошибку о обращении к неизвестной функции. В случае с дополнением - такая проверка не имеет смысла - ведь допы работают только при включенном реколл.
Вставим инлайн стили:
Когда стилей у вашего дополнения мало (1-3 правило), то целесообразности подключать их в отдельный css файл нет. Или если стили формируются у вас динамически - например настройки стилей из настроек админки, то есть смысл подключить их инлайном - т.е. в тело html страницы.
Пример: Добавим инлайн стили в кабинет:
Для этого используем фильтр rcl_inline_styles
Но так как это фильтр, то нам надо возвращать результат при всех проверках, иначе написав return false; - мы затронем другие дополнения использующие этот фильтр.
// добавим инлайн стили реколл в кабинет в хедер // он удалит сам пробелы, переносы, табуляцию function my_add_inline_css($styles){ if(!rcl_is_office()) return $styles; // мы не в кабинете $styles .= ' .some_class { box-shadow: 0 0 1px 1px #ddd; } '; return $styles; } add_filter('rcl_inline_styles','my_add_inline_css',10);
- при проверке кабинета мы вернули $styles, а ниже - если мы в кабинете, дописали свои стили (конкатенация). Без открывающих и закрывающих тегов style! т.е. как мы их пишем в стилевом файле.
Прелесть этого фильтра - что он сам произведет всю минификацию - сожмет в одну строку и удалит пробелы.
Подключим свой шаблон:
В своем дополнении создайте папку templates
В ней разместите свой php шаблон (к примеру otfm-card.php)
и в своей функции вы можете обратиться к нему так:
$out = rcl_get_include_template('otfm-card.php',__FILE__); // подключим шаблон
Описание rcl_get_include_template
Подключает из вашего аддона из папки:
add-on/our-addon/templates/
шаблон, но предварительно проверяет его наличие по пути:
wp-content/wp-recall/templates/
Если он находит его в пользовательской папке - берет оттуда.
Тогда пользователи смогут воспользоваться функционалом шаблонов WP-Recall
Проверим - что мы в личном кабинете (своём, чужом):
Способ 1:
global $user_LK; if($user_LK){ // мы в кабинете } // или так: global $user_ID, $user_LK; if($user_ID == $user_LK){ // мы в своем кабинете }
Способ 2:
if(rcl_is_office()){ // мы в кабинете } // или так: global $user_ID; if(rcl_is_office($user_ID)){ // мы в своем кабинете }
Эта функция проверяет выводится ли сейчас личный кабинет,
Если передать в нее ИД юзера, то она проверит выводится ли ЛК этого пользователя.
В случае с функцией - если вы код размещаете код в functions.php или как отдельный плагин - проверяйте что WP-Recall активирован (первый сниппет). Иначе при его отключении увидите ошибку о обращении к неизвестной функции. В случае с дополнением - такая проверка не имеет смысла - ведь допы работают только при включенном реколл.
Получить ссылку на личный кабинет авторизованного пользователя:
<?php global $rcl_user_URL; // хранит урл до ЛК пример: ?> <a href="<?php echo $rcl_user_URL ?>"><i class="fa fa-user"></i><span>Личный кабинет</span></a>
Сформируем ссылку в личный кабинет или вкладку кабинета:
Учитывает как выводится кабинет (шорткодом или через author.php)
rcl_format_url(get_author_posts_url($user_ID),'forum');
В зависимости от вывода личного кабинета (шорткодом или через author.php) будет формироваться урл
Верно подставляться к вкладке & или ? (&tab=forum или ?tab=forum)
Вернет:
http://across-ocean.otshelnik-fm.ru/account/?user=1&tab=forum
или
http://across-ocean.otshelnik-fm.ru/author/wawan/?tab=forum
Проверим что мы во вкладке Чат:
// проверим что мы в вкладке Чат global $rcl_tab; if($rcl_tab->id == 'chat') echo 'мы в вкладке чат';
Проверим что мы в дочерней вкладке "Друзья друзей":
// Проверим что мы в дочерней вкладке "Друзья друзей" global $rcl_tab; if($rcl_tab->active_subtab == 'friends_of_friends') echo 'мы в дочерней вкладке Друзья друзей';
Вывод количества непрочитанных сообщений в чате, в любом месте:
if ( is_user_logged_in() ) { echo rcl_chat_noread_messages_amount( get_current_user_id() ); }
- функция принимает id пользователя, чье кол-во непрочитанных сообщений нужно получить
Удаление рейтинговой активности нужного пользователя:
Удалить всю рейтинговую активность конкретного пользователя без удаления самого пользователя:
function init_delete_rayt_user(){ rcl_delete_ratingdata_user(123); } add_action('init','init_delete_rayt_user')
Где 123 - идентификатор нужного пользователя.
Внедряете этот код в файл функций, один раз перезагружаете свой сайт и после этого удаляете это код. В результате рейтинговая активность указанного пользователя будет полностью вычищена с сайта.
Отменить функцию вывода рейтинга в одиночной записи, и вывести рейтинг записи в нужном месте:
// отменяем рейтинг в конце записи function remove_filter_post_rayt(){ if(is_single()){ remove_filter('the_content', 'rcl_post_content_rating', 10); } } add_action('wp','remove_filter_post_rayt');
- теперь рейтинг у постов не будет появляться.
Этот хук полезен, когда вы хотите сами вывести рейтинг записи, в нужном вам месте. Для этого используйте функцию:
rcl_get_html_post_rating($post->ID, $post->post_type);
- в нее передаете id пользователя и тип записи
Подробней в этом руководстве "Как вывести форму рейтинга записи / комментария в любом месте?"
Вывести полный рейтинг записи:
echo rcl_get_total_rating($post->ID,'post'); // передаем id записи и тип записи // вернет число
- описание функции rcl_get_total_rating
Вывести блок полного рейтинга автора (или комментатора):
$rat = rcl_get_user_rating_value(11); echo '' . rcl_format_rating($rat) . ''; // вернет html блок: <span class="rating-value rating-plus">48</span> // т.е. будет указан стиль - нейтральный, положительный или отрицательный рейтинг // в функцию rcl_get_user_rating_value передаете id автора или комментатора (11)
Или для комментатора вариант 2:
global $comment уже содержит рейтинг - запросов к бд лишних делать не надо:
add_filter('comment_text','add_rating_user_data'); function add_rating_user_data($text){ global $comment; $rating = '<span class="newclass">' . rcl_rating_block(array('value'=>$comment->rating_author)) . '</span>'; $text = $rating.$text; return $text; }
Как отключить область в группах на примере отключения сайдбара групп:
add_action('init','rcl_remove_group_sidebar',100); function rcl_remove_group_sidebar(){ rcl_remove_group_area('sidebar'); }
Деактивирует сайдбар. Но вы можете указать кроме sidebar - "content" или "footer"
Проверить - существует ли область в группах на примере области sidebar:
if(rcl_is_group_area('sidebar')){...}
- аналогично, кроме sidebar, можете проверять "content" или "footer" область группы
Как после публикации в группе, оставаться на главной странице группы, а не в созданной записи:
add_action('update_post_rcl','redirect_group_after_post',10,3); function redirect_group_after_post($post_id,$postdata,$update){ //проверяем на редактирование if($update) return false; //проверяем на тип публикации if($postdata['post_type']!='post-group') return false; //получаем ИД группы по ИД публикации $group_id = rcl_get_group_id_by_post($post_id); //получаем ссылку на группу по ИД группы $group_url = get_term_link( (int)$group_id, 'groups' ); //редиректим в группу wp_redirect($group_url);exit; } // использовали экшн "update_post_rcl" из // wp-content/plugins/wp-recall/add-on/publicpost/rcl_editpost.php
- после публикации в группе - автор будет возвращен в группу
Получить баланс конкретного пользователя:
$balance = rcl_get_user_balance($user_id);
- функция принимает id пользователя
Описание функции rcl_get_user_balance
Изменить баланс конкретного пользователя:
rcl_update_user_balance($balance,$user_id,'Изменение баланса');
$balance - число
$user_id - ИД пользователя
3 аргумент - комментарий к обновлению баланса
Описание функции rcl_update_user_balance
Удалим блок автора:
// Удалим блок автора. Например чтобы потом вывести в другом месте (ниже) function otfm_remove_author_block(){ if(!is_admin()){ remove_filter('the_content', 'rcl_author_info', 70); } } add_action('wp','otfm_remove_author_block');
И выведем блок автора в нужном нам месте (размещаете в нужном файле)
// вывести блок автора echo rcl_get_author_block();
Пример 2 - удалим блок автора в публикациях всех групп:
// скрыть автора в публикациях всех групп. function dd3_remove_author_info_group(){ global $post; if($post->post_type == 'post-group'){ remove_filter('the_content','rcl_author_info',70); } } add_action('wp','dd3_remove_author_info_group');
Пример 3 - удалим блок автора в записях конкретных групп:
// скрыть в записях конкретных групп? function dd3_remove_author_info_some_group(){ if(has_term(9, 'groups')){ remove_filter('the_content','rcl_author_info',70); } } add_action('wp','dd3_remove_author_info_some_group', 20);
9 - терм. Получается так https://yadi.sk/i/_z5OKgDt39xa4Q
Пример 4 - удалим блок автора у определенного типа записи:
// уберем у типа записи 'item' блок автора function dd3_remove_about_author() { global $post; if ($post && $post->post_type == 'item') { // выбираем где не надо выводить (укажем свой тип записи) remove_filter('the_content','rcl_author_info',70); } } add_filter('wp', 'dd3_remove_about_author', 10);
Пример 5 - удалим блок автора в определенных рубриках
Статус пользователя - В сети/не в сети:
Такст "Не в сети 3 часа". Или значок онлайна:
<?php $action = rcl_get_time_user_action($user_ID); echo rcl_get_miniaction($action); ?>
$user_ID - id нужного юзера.
Пример 2:
надпись "В сети" "Не в сети"
$action = rcl_get_time_user_action($user_ID); $last_action = rcl_get_useraction($action); $class = (!$last_action&&$action)?'в сети':'не в сети'; echo $class;
$user_ID - id нужного юзера. А на месте текста можете вывести свои иконки
Расписание, крон задачи (crontab):
Описал здесь
Анонс с 14-й версии реколл
Пример: запустим нашу функцию раз в час
function otfm_one_hour_function(){ // do stuff } add_action('rcl_cron_hourly','otfm_one_hour_function',10);
Отключим кнопки: "черновик" и "удалить" в типе записей post:
// отключим кнопки: "черновик" и "удалить" в типе записей post function dd3_custom_edit_object_public_form($form){ if($form->post_type!='post') return $form; $form->button_draft = false; //удаляем кнопку черновика $form->button_delete = false; //удаляем кнопку удаления return $form; } add_filter('rcl_public_form_object','dd3_custom_edit_object_public_form',10);
Добавим в массив валют новую валюту - Киргизский Сом:
для дополнения Recall Commerce
// Добавим в массив валют - Киргизский Сом function dd3_add_currency($curs){ $curs['KGZ'] = array('сом','сом','сом'); return $curs; } add_filter('currency_list','dd3_add_currency');
Человекопонятное время:
вернет человечное время: 1 минута, 1 час, 17 часов, 5 месяцев, 2 года.
// на вход подаем время вида: 2015-03-07 13:33:16 rcl_human_time_diff($time_action);
Получим ссылку до дополнения:
Получить урл нашего дополнения поможет функция rcl_addon_url()
Например получим урл заглушки изображения:
rcl_addon_url('inc/no-image-icon.png',__FILE__)
получим:
http://наш-сайт/wp-content/wp-recall/add-on/наш-доп/inc/no-image-icon.png
Информация:
Предопределенные константы плагина WP-Recall:
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_
VER_RCL - текущая версия плагина. Например 16.6.7
RCL_SERVICE_HOST - урл до сервисной страницы (обновления, репозиторий) http://downloads.codeseller.ru
p.s. чтобы получить урл нашего дополнения смотрим тут Получим ссылку до дополнения
Предопределенные стили в админке на странице настроек WP-Recall:
Можно использовать для выделения текста в админке сайта - в настройках https://yadi.sk/i/lzyQH5Uh3ETNaY
с версии 14.4 в админке в файле admin.css для разработчиков добавились стили:
.wrap-recall-options .adm_warn { color: #d32723; } .wrap-recall-options .adm_succ { color: #52ae02; } .wrap-recall-options .adm_b14 { font: bold 14px Arial,Georgia,Verdana; } .wrap-recall-options .adm_b16 { font: bold 16px Arial,Georgia,Verdana; } .wrap-recall-options .adm_b18 { font: bold 18px Arial,Georgia,Verdana; }
т.е. по методологии БЭМ мы можем у аддона указать стиль текста
например:
<div class="adm_warn adm_b16">Наш текст предупреждения</div>
- так мы зададим красный цвет 16 пиксельного болдового шрифта
В админке, для стилизации, вы можете применять набор иконок dashicons https://developer.wordpress.org/resource/dashicons/#dismiss (Включено в вордпресс. Это не реколл)
Хуки – экшны (actions) и фильтры (filters):
// action когда отправляется сообщение: add_action( 'rcl_new_private_message', 'your_functions', 10, 2 ); // action когда подтверждает регистрацию: add_action('rcl_confirm_registration','your_functions');
Фильтры вкладок личного кабинета:
Позволяют получить данные вкладок личного кабинета и сделать все что нам нужно
Хорошее руководство
add_filter('rcl_tab','my_function'); // фильтр вкладок. Но некоторых дочерних там может не быть add_filter('rcl_tabs','my_function'); // а вот тут они все add_filter('rcl_pre_output_tab','my_function'); // а здесь финальный набор вкладок перед выводом (учитывает полномочия - например набор вкладок для гостей)
Смотрим что в них:
function my_function($tab_data){ var_dump($tab_data); }
Настройки 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 - массив произвольных вкладок
Настройки 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 указан там же, по раскрытию списка.
Имена файлов в корне дополнения (пишем свое дополнение):
Каждый addon (дополнение) WP-Recall может содержать следующие файлы:
index.php - обязателен. Основной файл с кодом
info.txt - обязателен. Необходим для описания необходимой информации. Описание
icon.jpg - иконка дополнения. Размеры: 50 пикселей в ширину
activate.php - срабатывает единожды в момент активации дополнения. Например предустановка начальных настроек, создание таблиц в БД
deactivate.php - срабатывает единожды в момент деактивации дополнения.
delete.php - срабатывает единожды в момент удаления дополнения. Подчищаем за собой (правило хорошего тона в программировании)
readme.txt - Разметка readme-файла для товара
Коллекции:
Список шаблонов WP-Recall:
- все шаблоны плагина WP-Recall собраны здесь
js хуки (actions) и фильтры:
Собрал и описал работу здесь
Отдельная тема по реколлбар и куча сниппетов к нему:
Вынес в отдельную тему. Здесь
Отдельная тема по форме входа и регистрации:
Читаем подробней: Всё о форме входа и регистрации WP-Recall - часть 1
Всё о форме входа и регистрации WP-Recall — часть 2. Шаблоны, хуки, кастомизация
Защита от спам регистраций используя функционал Wp-Recall:
Глобальные переменные WP-Recall:
Глобальные переменные плагина собраны тут
p.s. Сниппеты будут коллекционироваться тут!
Добавил 5 пункт "Отменить функцию вывода рейтинга в записи, и вывести рейтинг поста в нужном месте"
Полезно например если вы хотите рейтинг записи вывести в своем блоке автора
С выходом след.версии данный хук не будет работать, некоторые функции и фильтры будут переписаны 😉
Ну думаю мы найдем, совместными усилиями, новую зацепку как удалить его, и как вывести где нам надо 😉
Добавлен 10-й и 11-й пункт - где реколл хранит свои настройки. Подробней не найдете 😉
"Otshelnik-Fm" как всегда на высоте, все четко, ясно и главное полезно... Спасибо за статью, помогла решить пару вопросов, единственное к пункту (4) я бы еще приложил название/слог основных дополнений, ну или ссылку если это уже где-то есть на сайте! 😉
По 4-му пункту можно проверять и так
Я не ответил тогда конкретно на ваш вопрос, а предложил альтернативу...
Но теперь отвечу - "откуда взять значение для $active_addons, чтобы проверить, активирован аддон или нет?" - это имя папки в которой он находится.
Вот так вот просто работать с плагином WP-Recall 😉
Да мне-то это понятно, да и многим кто этим занимается, а вот новичкам или тем кто решил попробовать, им, как и мне раньше, все нужно разжевывать и объяснять! 😉
Очередное и крупное обновление сниппетов:
3й пункт теперь к актуальной версии реколл привел.
Появился 4 пункт.
Дописал 5й.
Новый 6й пункт.
с 13го по 17й пункты новые.
Обратите внимание на 13 пункт - "Предопределенные константы плагина" - наиполезнейшая вещь!
Объявляю этот день - днем документации WP-Recall 🙂
18 пункт - Глобальные переменные WP-Recall
Добрый вечер! Подскажите как отключить AutoScroll при переходе по вкладкам профиля?
Закомментируйте в папке плагина в js/recall.js
Спасибо!
К коллекции Отшельника , может кому пригодится - вывод количество не прочитанных сообщений в чате в любом месте:
Спасибо. Добавил.
Будет еще что - пишите не стесняйтесь. Такие мелочи не нужно упускать.
Создание уведомлений. Протестировал - все работает. Пока занят, но в будущем прикручу это для уведомлений о ответах в теме bbpress. Так же хочу иметь возможность создавать уведомления сразу для всех пользователей, но пока не знаю как, не помню как там хранятся в базе уведомления, но вроде для каждого юзера свое. А значит 10к уведомлений рассылать - такое себе. В идеале надо добавить в поле назначения поддержку all или user_id 0 (если 0 не используется) или еще что то, что бы это уведомление подхватывали все
Тут надо сделать пометку, что эта функция не из базового функционала реколл, а из дополнения Rcl-Notification. Без него будет выдавать фаталити 😡
Поэтому еще надо все это дело оборачивать проверкой что функция существует (что доп активирован)
В аргументах еще возможно передавать 'notice_time' - но если его не передали то пишется текущее время mysql
Есть параметр 'notice_author' - я так понимаю от чьего лица уведомление. У меня в бд по 0 оно. Смена значения ни к чему не приводит. Видимо это задумки для дальнейшего развития.
и 'notice_status' - 0 - не прочитано. 1 - прочитано
Ну это да.
Но, зачем указывать notice_time - хз, ибо время срабатывания создания уведомления = текущему времени, не понятно как это может пригодиться.
notice_status - так же не могу представить зачем указывать, т.к. по дефолту будет не прочитано, а зачем прочитанное уведомления - не могу придумать )
notice_author - это да, не понятно зачем, мб что бы удалять уведомления при удалении пользователя.
Так же посмотрев БД стало ясно что создавать уведомления сразу для всех не получится, только если каждому отдельно. Точнее можно добавить поддержку ID 0 или там 99999999 и что бы это уведомление выводилось всем, но вот если кто-то 1 его прочтет то оно у всех станет прочитано.
notice_time можно указывать, например, при создании уведомления, если проверка на произведенное действие вызывается по крону, т.е. само действие уже произошло, а уведомление создаем через час, соотвественно уведомление создаем с временем действия, а не текущим, так гибче все-таки.
- возможно когда часовые пояса различаются. И указывать их из настроек ВП
- возможно не только 0 и 1 едины. В будущем можно ввести статус 2 или 3 - для важности, или еще каких задумок. Думаю опция на вырост.
Тип int(20) позволяет вводить и отрицательные значения. Но тут для отображения "всем", надо логику допа дописывать. И расширять внедрив вторую табличку - прочитал юзер это сообщение для всех или нет.
В 3 пункте надо
Заменить на
А то при первом варианте мне возвращался ID поста и форма для голосования, а в логах было предупреждение "PHP Warning: Missing argument 1 for rcl_post_content_rating(),"
Спасибо, обновил.
Глобальное обновление сниппетов. Добавил целую кучу - учите, используйте.
Мего полезно! Буду изучать и применять, спасибо.
не срабатывает. если просто ловить global $rcl_tabs; - показывает. Я что то не так делаю?
Это делайте в файле index.php вашего дополнения - тогда этот фильтр будет в области видимости. У меня распечатал https://yadi.sk/i/CVQQzyPw3EWkqs или вот https://yadi.sk/i/sihilxLZ3EWm9n
Раздел сниппеты переработан, структурирован. Появилось меню - позволит быстрей вам найти нужный сниппет
В очередной раз выручает статья, ногти бы изгрыз до последней фаланги если бы не она 🙂
Не могу найти сниппет для вывода рейтинга услуги на странице категории услуг. Подскажите, есть ли такая возможность...
Подобные вопросы решаем на форуме в кастомизациях
А как их использовать? Зашёл в файл functions.php активной вордпресс темы, там этих сниппетов нет, добавил - весь сайт вместо русского языка стал выводить непонятно что. Что не так?
Не знаю что у вас. Эта информация - шпаргалка для разработчиков.
p.s. если остались вопросы - в ветке форума https://codeseller.ru/forum/ "кастомизации" можете задавать вопросы. Но от вас нужно будет больше информации - в какой функции, в каком контексте использовали сниппет.