Установил плагин wp pay access
Хочу через шорткод скрыть возможность переписки для юзеров у которых нету vip аккаунта
Пробывал в /message/index.php
сделать так
return do_shortcode('[wpa id_access="1"]'.$privat_block.'[/wpa]');
Скрывает, когда юзер оплачивает аккаунт платный то ничего не выводит
Если перейти на аакаунт у которого по умолчанию vip аккаунт то он видит этот закрытый контент
В cabinet.php не получаеться скрыть переписку
может нужно скрыть в этой части кода
$def_addons = array('review','profile','feed','publicpost','message','rayting'); foreach($def_addons as $addon){ $path = RCL_PATH.'add-on/'.$addon.'/index.php'; if ( false !== strpos($path, '\') ) $path = str_replace('\','/',$path); $active_addons[$addon]['src'] = $path; $install_src = RCL_PATH.'add-on/'.$addon.'/activate.php'; $index_src = RCL_PATH.'add-on/'.$addon.'/index.php'; if(file_exists($install_src)) include($install_src); if(file_exists($index_src)) include($index_src);
Посоветуйте как это реально сделать
Напоминаю, что я хочу закрыть возможность переписки для тех у кого нету vip аккаунта
В статье
описывается возможность изменения содержимого любой вкладки.
Идентификатор вкладки личной переписки - privat
Проверяйте доступ текущего пользователя по содержимому глобальной переменной $User_Access - массив с текущими данными доступа.
Если нужный доступ имеется то возвратите из своей функции false;
Так вы сначала распечатайте $User_Access из под випа и из обычного пользователя и посмотрите что вам надо оттуда.
Если нужный доступ имеется то возвратите из своей функции false;
$data['args']['public'] = 1;
Опция 'public' определяет приватность данной вкладки. Единица говорит о том, что приватности нет, вкладка публичная, 0 - вкладка доступна только хозяину ЛК, -1 - данную вкладку видит любой другой зарегистрированный пользователь, кроме хозяина ЛК.
'private' - это идентификтор вкладки
$data['id']!='private'
Он расшарил екран свой и смотрел код. Я наблюдал и пытался подсказать давая ему комменты Андрея. Смотрел через var_damp и print-r что выводит функции
Через jquery получилось закрыть вкладку, но условие действует если нажать на кнопку приватный чат. Мне так не подходит
2 часа игрались и ничего не получилось. Я готов заплатить только бы сделали
я вам дал ссылку на статью, в которой подробно описывается как получить данные любой вкладки и оказать влияние на их вывод, что именно было сделано по этой статье? Какой код и как вы пытались применить?
Если вы хотите, чтобы вам помогли, то прошу сообщать описание конкретных действий, что сделано, что не получилось.
Пока только понял, что вы "где то что то потыкали и ничего не получилось". Кстати, jquery для решения вашей задачи вообще не нужен.
Я плохо разбераюсь в php. Ищу человека кто решит мою задачу. Пытаюсь максимально описать ему вашими комментами что нужно сделать, но не получаеться. Сам я не иогу этого сделать.
Задача. Если аккаунт у юзера куплен то выводить содержимое вкладки приватный чат в обычном режиме
Если аккаунт не куплен то выводить во вкладке приватный чат сообщение: купите про аккаунт, а все остальное не выводить(чат, переписка и т.д.)
Мне показалось, что вы уже нашли "программиста".
Этот код должен решать задачу скрытия вкладки личного чата, если доступ не приобретен.
add_filter('tab_data_rcl','edit_privat_tab_data'); function edit_privat_tab_data($data){ global $User_Access; if($data['id']!='privat') return $data; if($User_Access) return $data; return false; }
Спасибо, код скрывает вообще вкладку приватный чат, и даже другие юзеры не могут перейти в эту вкладку на странице пользователя у которого не оплачен аккаунт.
Нужно что б всем было доступна эта кнопка и они могли писать не vip аккаунту, а самому юзеру содержимое вкладки не доступно.
return do_shortcode('[wpa id_access="1"]'.$privat_block.'[/wpa]');
Я уже так пытался скрыть. Получалось, но когда юзер оплатил аккаунт то ничего потом вообще не выводилось
я дал вам код который вы можете использовать как основу для реализации своей задачи со своим программистом.
глобальная переменная $User_Access содержит данные о доступах текущего пользователя.
Если необходимо получить данные доступа произвольного пользователя, то используйте функцию get_active_access($user_id), она возвращает аналогичный массив с текущими данными доступа указанного пользователя.
Код приведенный в теме актуален для 14 версии? Пытаюсь его применить выдает ошибку в ЛК и вкладки становятся не активны.
Вообще актуальная тема для тех у кого стоит плагин wp pay access. И его совместная работа в автоматическом режите с дополнением Profile Types Manager (Типы профиля)
Андрей Plechev сказал(а)
если речь об этом коде
add_filter('tab_data_rcl','edit_privat_tab_data'); function edit_privat_tab_data($data){ global $User_Access; if($data['id']!='privat') return $data; if($User_Access) return $data; return false; }то да, должен быть актуальным
к сажалению выдает ошибку
Fatal error: Function name must be a string in /var/www/********/data/www/сайт.ру/content/plugins/wp-recall/functions/rcl_tabs.php on line 178