Домой Wp-Recall WP-Recall: Пишем свое дополнение и кастомизация ajax загрузка вкладки профиля пользователя
19ответ(ов) в теме
antohazmey
не в сети 3 года
На сайте с 08.01.2019
Участник
Тем 20
Сообщения 103
1
12:13
Версия WP-Recall: 16.17.12

Здравствуйте! Подскажите мне пожалуйста, можно ли сделать так, что бы вкладка userprofile работала там же, как и chat, то есть динамически загружалось через ajax. Включал поддержку данной функции, но когда нажимаю ссылку на профиль, то крутится круг загрузки и на этом все. Ссылку формирую с data-post.

$datapost_userprofile = array(
                'tab_id'=> 'userprofile',
                'master_id'=> $user_LK
            );

Ссылка
<a href="<?php echo rcl_format_url(get_author_posts_url($user_LK),'userprofile'); ?>" data-post="<?php echo rcl_encode_post($datapost_userprofile); ?>" data-toggle=".container" class="rcl-ajax">

0
Вова (Otshelnik-Fm)
не в сети 7 часов
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18647
2
14:09

Здравствуйте.

Так вкладка профиля имеет слаг profile

что это за userprofile у вас?

0
antohazmey
не в сети 3 года
На сайте с 08.01.2019
Участник
Тем 20
Сообщения 103
3
14:33

Слаг profile у авторизированного пользователя же? А я говорю про профиль пользователя когда мы к кому то в "гости" заходим.

0
antohazmey
не в сети 3 года
На сайте с 08.01.2019
Участник
Тем 20
Сообщения 103
4
14:34

Там где есть кнопка подписаться и черный список

0
Вова (Otshelnik-Fm)
не в сети 7 часов
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18647
5
16:24

Я не понимаю и не вижу такого. Да и на вкладку профиль мы только к себе зайти можем - чтобы выставить свои настройки.

Наверно это что-то стороннее у вас и как оно регистрируется - я не знаю. Может это у вас произвольная вкладка в админке создана? Ну так там есть ajax-загрузка - надо галку выставить

userprofile в ядре плагина нигде не указан

Вы не можете просматривать опубликованные ссылки
0
antohazmey
не в сети 3 года
На сайте с 08.01.2019
Участник
Тем 20
Сообщения 103
6
16:50

Дополнений я для этого не создавал. Когда мы через список пользователей переходим к какому-то пользователю в меню есть 3 ссылки: чат, публикации и профиль пользователя. Если отключить ajax загрузку, то при нажатии профиля пользователя, переходит на страницу url которой https://closedloans.ru/account-2/?user=117&tab=userprofile
Прикреплю картинку с содержимым этой страницы.
. Можно было посылать пользователя на отдельную страницу, но так как это вкладка и через шорткод не получается вывести эту страницу, то используется стандартный шаблон ЛК. А при открытии ЛК у меня сперва видна область меню, а содержимое вкладки слева, которое выдвигается. Может можно как-то обойти?

0
antohazmey
не в сети 3 года
На сайте с 08.01.2019
Участник
Тем 20
Сообщения 103
7
16:55

Или если делать кастомную вкладку, то как запихать туда содержимое правильно в таком виде, что бы поддерживалась ajax загрузка?

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

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

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

0
antohazmey
не в сети 3 года
На сайте с 08.01.2019
Участник
Тем 20
Сообщения 103
9
05:01

А почему тогда не работает ajax загрузка вкладки, например как у чата?

$content = apply_filters('rcl_tab_'.'userprofile' , $content);

function my_add_profile_content($content){

	$content .= '<div class="profile-cont" style="display: block; width: 100%;">';
	$content .= '<div id="lk-conteyner">';
	$content .= do_action('rcl_area_top');
	$content .= '<div class="cab_lt_line">';
	$content .= '<div class="cab_lt_title">';
	$content .= '<h2>';
	$content .= rcl_username();
	$content .='</h2>';
	$content .= '<div class="rcl-action">';
	$content .= rcl_action();
	$content .= '</div>';
	$content .= '</div>';
	$content .= '<div class="cab_bttn_lite">';
	$content .= do_action('rcl_area_counters');
	$content .= '</div>';
	$content .= '</div>';
	$content .= '</div>';
	$content .= '<div class="lk-avatar">';
	$content .= rcl_avatar(200);
	$content .= '</div>';
	$content .= '<div class="cab_bttn">';
	$content .= do_action('rcl_area_actions');
	
	$content .= '</div>';
	$content .= '</div>';
	return $content;
}
add_filter('rcl_tab_userprofile', 'my_add_profile_content', 10);

Содержимое вкладки делаю вот так

0
antohazmey
не в сети 3 года
На сайте с 08.01.2019
Участник
Тем 20
Сообщения 103
10
06:22

Как я понял проблема в функциях и хуках. я их не так вызываю, подскажите как их правильно вызывать?

0
antohazmey
не в сети 3 года
На сайте с 08.01.2019
Участник
Тем 20
Сообщения 103
11
09:26

Каким образом вывести хотя бы аватарку пользователя через фильтр? Если просто текст таким образом выводить получается нормально,и ajax загрузка тоже работает.

0
Вова (Otshelnik-Fm)
не в сети 7 часов
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18647
12
09:39

antohazmey сказал(а)
Каким образом вывести хотя бы аватарку пользователя через фильтр?

пошел оффтоп.

Здесь решаем вопрос обозначенный в 1м сообщении. Если у вас новый вопрос - создавайте новую тему и внятно описываем что делаем и что не получается

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

Приведенный код просто ужасен, вы сами не понимаете, что у в нем происходит.
Оставлю за скобками применение функционала фильтров, с этим тут явные проблемы, но если остановиться на содержимом функции my_add_profile_content(), то внутри можно увидеть массу экшнов и функций, которые НЕ ВОЗВРАЩАЮТ результат в переменную $content, а ВЫВОДЯТ данные на экран, в результате никакой ajax тут корректно не отработает.
Что вы вообще делаете? Хотите вывести все элементы в отдельной вкладке ЛК? Такую задачу уже решали тут

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

доп бесплатный, смотрите как это реализовано там.

Редакции сообщения
29.07.2019 09:41Андрей CSПричина: не указано
0
antohazmey
не в сети 3 года
На сайте с 08.01.2019
Участник
Тем 20
Сообщения 103
14
10:13

Все, что я хочу - это вывести аватар и кнопки подписаться и черный список.

0
antohazmey
не в сети 3 года
На сайте с 08.01.2019
Участник
Тем 20
Сообщения 103
15
10:17

Я поражаюсь, как трудно показать, как использовать функцию в фильтре, что бы все вопросы отпали.

1
Вова (Otshelnik-Fm)
не в сети 7 часов
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18647
16
10:29

antohazmey сказал(а)
Все, что я хочу - это вывести аватар и кнопки подписаться и черный список.

в первом сообщении об этом не упоминали.

antohazmey сказал(а)
Я поражаюсь, как трудно показать, как использовать функцию в фильтре, что бы все вопросы отпали.

вы поднимайте свой уровень. Если вы не умеете работать с вордпресс фильтрами - это ваша проблема и головная боль.

Итак - вопрос обозначенный в первом сообщении решен? Мы тут не "аватарку" и не "подписаться" начали обсуждать. Прекращаем оффтоп. Один вопрос - одна тема на форуме.

0
Андрей CS
не в сети 10 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16855
17
10:29

Меня тоже удивляет, то как многие пытаются использовать функционал не пытаясь обратиться к докам.
Основное правило в работе с фильтрами - контент в фильтре должен возвращаться через return, если вы не видите разницы между return и echo значит проблема еще глубже, это основы php.

0
antohazmey
не в сети 3 года
На сайте с 08.01.2019
Участник
Тем 20
Сообщения 103
18
10:44

По своему сделал, закрывайте тему

0
antohazmey
не в сети 3 года
На сайте с 08.01.2019
Участник
Тем 20
Сообщения 103
19
10:45

Да понятна разница между return и echo. Были бы функции которые возвращали через return

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