Домой Wp-Recall WP-Recall: Проблемы и решения Скрыть переписку в личном кабинете
17ответ(ов) в теме
pava467@gmail.com
не в сети 7 лет
На сайте с 03.12.2015
Участник
Тем 32
Сообщения 130
1
23:26

Установил плагин 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 аккаунта

0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16925
2
11:38

В статье

Вы не можете просматривать опубликованные ссылки

описывается возможность изменения содержимого любой вкладки.
Идентификатор вкладки личной переписки - privat
Проверяйте доступ текущего пользователя по содержимому глобальной переменной $User_Access - массив с текущими данными доступа.
Если нужный доступ имеется то возвратите из своей функции false;

0
pava467@gmail.com
не в сети 7 лет
На сайте с 03.12.2015
Участник
Тем 32
Сообщения 130
3
20:19

Андрей, укажите более подробнее в каком файле найти User_Access или в каком месте что возвращать. Что мне программисту показывать?

0
Вова (Otshelnik-Fm)
не в сети 1 неделя
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18653
4
20:23

Скажите ему что в глобальной переменной $User_Access - содержится массив с текущими данными доступа.
Покажите ему ответ Андрея

0
pava467@gmail.com
не в сети 7 лет
На сайте с 03.12.2015
Участник
Тем 32
Сообщения 130
5
11:06

Андрей, вчера 2 часа программист пытался решить эту задачу, так ни чего и не получилось!
То есть нужно проверить если в User_Access доступ = 1, то $data['args']['private'] = 1;
???

0
Вова (Otshelnik-Fm)
не в сети 1 неделя
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18653
6
11:19

Так вы сначала распечатайте $User_Access из под випа и из обычного пользователя и посмотрите что вам надо оттуда.

Если нужный доступ имеется то возвратите из своей функции false;

$data['args']['public'] = 1;

Опция 'public' определяет приватность данной вкладки. Единица говорит о том, что приватности нет, вкладка публичная, 0 - вкладка доступна только хозяину ЛК, -1 - данную вкладку видит любой другой зарегистрированный пользователь, кроме хозяина ЛК.

Вы не можете просматривать опубликованные ссылки

'private' - это идентификтор вкладки

$data['id']!='private' 

0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16925
7
11:56

pava467@gmail.com сказал(а)

Андрей, вчера 2 часа программист пытался решить эту задачу, так ни чего и не получилось!

Реализация любой задачи включает в себя несколько этапов.
Что конкретно не получилось, на каком этапе?

0
pava467@gmail.com
не в сети 7 лет
На сайте с 03.12.2015
Участник
Тем 32
Сообщения 130
8
12:15

Он расшарил екран свой и смотрел код. Я наблюдал и пытался подсказать давая ему комменты Андрея. Смотрел через var_damp и print-r что выводит функции
Через jquery получилось закрыть вкладку, но условие действует если нажать на кнопку приватный чат. Мне так не подходит
2 часа игрались и ничего не получилось. Я готов заплатить только бы сделали

0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16925
9
12:22

я вам дал ссылку на статью, в которой подробно описывается как получить данные любой вкладки и оказать влияние на их вывод, что именно было сделано по этой статье? Какой код и как вы пытались применить?
Если вы хотите, чтобы вам помогли, то прошу сообщать описание конкретных действий, что сделано, что не получилось.
Пока только понял, что вы "где то что то потыкали и ничего не получилось". Кстати, jquery для решения вашей задачи вообще не нужен.

0
pava467@gmail.com
не в сети 7 лет
На сайте с 03.12.2015
Участник
Тем 32
Сообщения 130
10
12:31

Я плохо разбераюсь в php. Ищу человека кто решит мою задачу. Пытаюсь максимально описать ему вашими комментами что нужно сделать, но не получаеться. Сам я не иогу этого сделать.
Задача. Если аккаунт у юзера куплен то выводить содержимое вкладки приватный чат в обычном режиме
Если аккаунт не куплен то выводить во вкладке приватный чат сообщение: купите про аккаунт, а все остальное не выводить(чат, переписка и т.д.)

0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16925
11
12:37

Мне показалось, что вы уже нашли "программиста".
Этот код должен решать задачу скрытия вкладки личного чата, если доступ не приобретен.

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;
}

0
pava467@gmail.com
не в сети 7 лет
На сайте с 03.12.2015
Участник
Тем 32
Сообщения 130
12
12:46

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

return do_shortcode('[wpa id_access="1"]'.$privat_block.'[/wpa]');

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

0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16925
13
12:58

я дал вам код который вы можете использовать как основу для реализации своей задачи со своим программистом.
глобальная переменная $User_Access содержит данные о доступах текущего пользователя.
Если необходимо получить данные доступа произвольного пользователя, то используйте функцию get_active_access($user_id), она возвращает аналогичный массив с текущими данными доступа указанного пользователя.

0
pava467@gmail.com
не в сети 7 лет
На сайте с 03.12.2015
Участник
Тем 32
Сообщения 130
14
13:01

Хорошо, большое спасибо

0
Петр Володин
не в сети 8 месяцев
На сайте с 13.11.2014
Участник
15
20:51

Код приведенный в теме актуален для 14 версии? Пытаюсь его применить выдает ошибку в ЛК и вкладки становятся не активны.

Вообще актуальная тема для тех у кого стоит плагин wp pay access. И его совместная работа в автоматическом режите с дополнением Profile Types Manager (Типы профиля)

0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16925
16
21:18

если речь об этом коде

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;
}

то да, должен быть актуальным

0
Петр Володин
не в сети 8 месяцев
На сайте с 13.11.2014
Участник
17
22:40

Андрей 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

0
Тема закрыта. Публикация новых сообщений запрещена.