5 ответ(ов) в теме
Андрей
не в сети 12 часов
На сайте с 23.01.2019
Участник
Тем 16
Сообщения 54
1
15:43

Подскажите, кто знает.
Фиксирую в логе сайта действие пользователя, хук - set_user_role, изменение роли.
Но почему-то делает две записи! Сначала присваивает subscriber и тут же need-confirm.
У меня в настройках RCL указано, что нужно подтверждение эл.почты. Это должно остаться.
Судя по всему сначала WP назначает роль - подписчик, но т.к. в настройках указано требование подтверждения, то тут же меняет на need-confirm.
Но как сделать, что бы делалась одна запись?
Или нужно использовать другой хук? Наиболее подходящий нашёл только этот.

На всякий случай привожу кусок кода:

add_action( 'set_user_role', 'save_log', 10, 3 );
function save_log( $user_id, $role, $old_roles ){
    global $wpdb;
    $time = current_time('timestamp');      // текущее время    
    $sql = "INSERT INTO log (systime, user_id, ...) VALUES ('$time', '$user_id', ...)";
    $wpdb->query($sql);    // Запись в ЛОГ 
    }

0
Андрей CS
не в сети 16 минут
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 12852
2
15:51

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

0
Андрей
не в сети 12 часов
На сайте с 23.01.2019
Участник
Тем 16
Сообщения 54
3
16:03

А как в функции сделать проверку и убрать (пропускать) первое изменение роли?

Или лучше вешаться на хук user_register
Но если в настройках убрать - требуется подтверждение, то тогда вообще можно пропустить запись в лог. Тогда нужно делать проверку на настройку - подтверждение эл. почты.
Как получить значение этой настройки?

Редакции сообщения
05.06.2019 16:06АндрейПричина: не указано
0
Андрей CS
не в сети 16 минут
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 12852
4
17:31

Андрей сказал(а)
убрать (пропускать) первое изменение роли?

видимо надо дерегистрировать хук при котором производится первое назначение роли, в ядре ВП надо смотреть что повешено на хук user_register

0
Андрей
не в сети 12 часов
На сайте с 23.01.2019
Участник
Тем 16
Сообщения 54
5
17:44

Эх, для меня это пока сложно - копаться в ядре ВП, а главное времени на это не выделить. Придётся отложить до лучших времен.

0
Вы не имеете права на публикацию сообщений в этой теме