Подскажите, кто знает.
Фиксирую в логе сайта действие пользователя, хук - 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); // Запись в ЛОГ }
А как в функции сделать проверку и убрать (пропускать) первое изменение роли?
Или лучше вешаться на хук user_register
Но если в настройках убрать - требуется подтверждение, то тогда вообще можно пропустить запись в лог. Тогда нужно делать проверку на настройку - подтверждение эл. почты.
Как получить значение этой настройки?