WordPress как на ладони

Не срабатывает событие после регистрации пользователя

Необходимо после регистрации нового пользователя создавать папку с его ID в каталоге USERS.

Событие не срабатывает почему-то именно при регистрации пользователя. Перепробовал все возможные хуки регистрации - без результатов.

Пробовал заменить на другое событие (создание новой записи) - успешно. Каталог создавался.

Данный код лежит в начале functions.php

add_action( 'register_new_user', 'add_dirs_user' );
function add_dirs_user( $user_id ) {
	$user_dir = '../uploads/users/111';
	mkdir($user_dir, 0777);
}
Заметки к вопросу:
Kama 5.5 лет назад

А ты как регаешь через функцию register_new_user()? Без нее не будет работать этот хук.

И путь для файла лучше абсолютный укажи.

shamil 5.5 лет назад

Решил проблему. Всё оказалось банальнее: нужно было указать абсолютный путь. Относительные пути срабатывают только когда ты уже авторизован. Спасибо за помощь!

0
shamil
5.5 лет назад 21
  • 1
    campusboy4742 www.youtube.com/c/wpplus

    Проверил, вот так работает:

    add_action( 'user_register', 'add_dirs_user' );
    
    function add_dirs_user( $user_id ) {
    	$upload   = wp_upload_dir();
    	$dir_path = $upload['basedir'] . '/users/' . $user_id;
    
    	wp_mkdir_p( $dir_path );
    }

    WP в админке не использует register_new_user(). Эта функция юзается только в файле wp-login.php.

    shamil 5.5 лет назад

    Нет, сам хук срабатывал. Не создавались именно папки. Проблему решил, всё дело в относительном пути к папке.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация