Intereting Posts
не может захватывать метатеги из расширенного класса Walker_Category должным образом Разница между WordPress и Tumblr? Добавить ссылку «Продолжить чтение», если длина сообщения больше трех строк текста? Язык Woocomerce Как добавить пост-пост-типа в другой пользовательский пост-пост после редактирования экрана с помощью AJAX? Страницы тестовых сайтов попадают на главный сайт Пользовательская домашняя страница с полным сообщением только для первого Получить пользовательский пост по запросу в одном из своих настраиваемых полей Как добавить класс в edit_post_link? Тема, которая следует за всеми лучшими практиками, чтобы учиться? Как редактировать содержимое страницы после загрузки файлов сайта Укажите несколько категорий для настраиваемого шаблона сообщения – FATAL ERROR Создание фильтруемого каталога сообщений BuddyPress: добавление новой вкладки в группы Использование условий OR в meta_query для аргумента query_posts

wp_create_user hook

Я использую плагин UserUltra Pro, и мне нужно создать собственный тип сообщения после регистрации пользователя на сайте. Плагин UserUltra использует wp_create_user() который, как я знаю, является оберткой для wp_insert_user() . Более того, я знаю, что «user_register» – это hook, вызванный после wp_insert_user() .

Кроме того, я не могу создать новый пользовательский тип сообщения, потому что кажется, что hook user_register не вызван. Это возможно? Как я могу это сделать?

На самом деле есть два действия : одно, когда профиль обновляется, и один, когда пользователь зарегистрирован .

 # Fires immediately after an existing user is updated. do_action( 'profile_update', $user_id, $old_user_data ); # Fires immediately after a new user is registered. do_action( 'user_register', $user_id ); 

Поэтому до тех пор, пока логин пользователя не пуст и имя пользователя не существует, оно должно продолжаться. Взгляните на предложения возврата:

 if ( empty( $user_login ) ) { return new WP_Error('empty_user_login', __('Cannot create a user with an empty login name.') ); } if ( ! $update && username_exists( $user_login ) ) { return new WP_Error( 'existing_user_login', __( 'Sorry, that username already exists!' ) ); } 

Это означает, что если вы не WP_Error объект WP_Error , он должен выполнить. Вы можете попробовать многочисленные фильтры внутри основной функции, чтобы сузить место, где вещи сломаются, если ваш крючок не выполняется. Тот, который работает до того, как возвращается ошибка, выглядит следующим образом:

 apply_filters( 'pre_user_login', $sanitized_user_login ); 

Если это работает, то плагин просто не проверяет is_wp_error() и игнорирует отказ в вызове вставки.

 <?php /** Plugin Name: Test if wp_insert_user() filters work */ add_filter( 'pre_user_login', function( $user ) { var_dump( current_filter()." works fine" ); return $user; } );