12ответ(ов) в теме
Александр
не в сети 10 лет
На сайте с 21.10.2014
Участник
1
09:32

Свои хуки или других плагинов не работают при ajax запросах. У меня стоит хук на свой аватар по умолчанию, (меняет человека-загадку на другую картинку), так же плагин wp social login подменяет стандартные аватары на свои, но когда вызывается get_avatar через какой-либо ajax-request.php (в моем случае в message), то выводится аватар "человек-загадка", даже если у пользователя есть свой. Например, если в профиле пользователя просматривать переписки, то изначально аватар того с кем была переписка имеется (рис. 1), но стоит отсортировать по "месяц"/"все время", то через ajax возвращается "человек-загадка" (рис. 2). Или в непосредственно в переписке, когда ее открываешь в профиле, то все аватары прогружаются (рис. 3), но если загрузить старые сообщения, то они по ajax уже придут дефолтные (рис. 4).
Как я понимаю, дело в подключении функционала wp в ajax-request.php, но пока не понял как исправить.
рис. 1 -

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

рис. 2 -

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

рис. 3 -

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

рис. 4 -

Вы не можете просматривать опубликованные ссылки
0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16925
2
09:48

Эта проблема известна.
Дело в том, что в связи с необходимостью снижения нагрузки при ajax-запросах, ядро ВП отключается и стандартная функция get_avatar не работает. Подключается ее не совсем полноценная замена в файле replacement.php. Работа этой функции-замены и является причиной, можете ее поковырять.

0
Александр
не в сети 10 лет
На сайте с 21.10.2014
Участник
3
12:08

Переделал.
Добавил пару функций:

function get_user_sl_avatar( $user_id ) {
$user_avatar = get_usermeta( $user_id, 'wsl_current_user_image');
if( ! $user_avatar )
{
$user_avatar = get_usermeta( $user_id, 'wsl_user_image');
}
return $user_avatar;
}
function get_id_by_email($email) {
global $wpdb;
$user = $wpdb->get_var("SELECT ID FROM ".$wpdb->prefix."users WHERE user_email = '$email'");
return $user;
}

В get_avatar перед return apply_filters(...) добавил:

if(isset($id))
{
$aurl = get_user_sl_avatar($id);
}
elseif(!empty($email))
{
$id = get_id_by_email(trim($email));
$aurl = get_user_sl_avatar($id);
}
if(isset($aurl))
{
$avatar = "<img alt="{$safe_alt}" src="{$aurl}" class="avatar avatar-{$size} photo" height="{$size}" width="{$size}" />";
}

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

Добавил в функцию get_user_sl_avatar
if( ! $user_avatar ) $user_avatar = get_usermeta( $user_id, 'ulogin_photo');

можно узнать, эти поля от какого плагина навешивается? 'wsl_user_image' и 'wsl_current_user_image'

0
Александр
не в сети 10 лет
На сайте с 21.10.2014
Участник
5
14:17

Вот от этого

Вы не можете просматривать опубликованные ссылки
0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16925
6
14:20

понятно, спасибо, перенесем это в следующее обновление, думаю, не будет лишним.

0
Александр
не в сети 10 лет
На сайте с 21.10.2014
Участник
7
14:45

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

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

Да, мысль хорошая. Будем к этому стремиться.

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

А почему именно сейчас неудобно заниматься кастомизацией? Ведь почти каждый элемент ЛК выводится через свой хук, можно же их просто отключать со стороны любого другого дополнения или назначать для определенных функций другие хуки. Таким образом, можно менять порядок размещения различных блоков или вообще их убирать не меняя код плагина.
Пока хотя бы так, но заниматься кастомизацией можно.

0
Кос Кокос
не в сети 2 года
На сайте с 02.03.2013
Участник
Тем 22
Сообщения 110
10
17:41

Думаю, каждый блок можно заключить в шорткод или что-то типа того, и создать в настройках доп настройку, где пользователь сможет перетаскивать блоки. (Которые потом будут отображаться в лк)

0
Александр
не в сети 10 лет
На сайте с 21.10.2014
Участник
11
09:37

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

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

в следующем обновлении плагина будет добавлен функционал шаблонов для кастомизации личного кабинета путем изменения верстки.

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