Intereting Posts
Сохранить выбранную таксономию Текст текста, а не значение Два текстовых поля отображаются в комментариях.php Как показать пользовательское значение (флажок) в списке сообщений администратора? Будет ли импорт инструментов wordpress делать все, что мне нужно, чтобы скопировать один сайт на другой Разве я не понимаю плагинов? Tagcloud: разный цвет для разного размера текста Эхо пользовательские значения таксономии Как проверить версию другого плагина, а затем добавить в него страницу подменю Поле ввода Frontend Woocomerce Невозможно получить paginations на single.php для работы с моими пользовательскими типами сообщений Страница, защищенная паролем Hash url PHP / Ручное использование изображений? – 2 вопроса Как запустить функцию один раз на каждом посту в базе данных? Удалить? Preview = true из адреса пользовательских типов сообщений Автоблокировка ключевых слов в тексте с тегами

Отправить автоматическую электронную почту пользователю после wp_create_user

Итак, вот какой код я придумал – он работает, но теперь мне нужно, чтобы он автоматически отправил имя пользователя и пароль, сгенерированные на этот адрес электронной почты? Также первое и последнее имя не записывается ?? Благодаря!!

require('wordpress/wp-blog-header.php'); $user_email = trim(isset($_POST['payer_email']) ? $_POST['payer_email'] : ""); $user_name = trim(isset($_POST['first_name']) ? $_POST['first_name'] : ""); $user_id = username_exists( $user_name ); if ( !$user_id ) { $random_password = wp_generate_password( 12, false ); $user_id = wp_create_user( $user_name, $random_password, $user_email ); } else { $random_password = __('User already exists. Password inherited.'); } 

Вы можете использовать это: wp_new_user_notification( $user_id, $random_password);

Существует крючок user_register , который запускается в конце пользовательской вставки и имеет $ user_id в качестве параметра, вы можете использовать это, чтобы отправить имя пользователя и пароль, но вы должны update_user_meta() прежде чем сможете получить имя и прочее, так что может быть лучше сделать это в конце создания пользователя и вставки usermeta.

Единственное, что создает пользователь, это вставить пользователя в БД, вам нужно использовать update_user_meta() чтобы добавить пользовательские значения. get_the_author_meta() имеет список значений usermeta по умолчанию, если вы вставляете что-то с ключом из одного из них, оно будет отображаться в profile.php по умолчанию, иначе вам придется расширить профиль пользователя, чтобы отобразить его.

Кроме того, просто примечание, кажется, что вы устанавливаете $random_password для неслучайного значения, а также, возможно, более важно, устанавливая его ПОСЛЕ того, как он был использован.

Я бы использовал wp_insert_user вместо wp_create_user, чтобы вы могли добавить столько пользовательских данных, сколько хотите в первом экземпляре. Проверьте код WordPress для всего, что вы можете вставить. (wp_create_user просто вызывает эту функцию в любом случае!) Чтобы отправить данные для входа в систему, вы можете вызвать wp_mail ($ user_email, $ subject, $ message); Конечно, вы захотите установить $ message, чтобы указать имя пользователя и пароль в тексте сообщения. Другое дело, я думаю, вы можете создать функцию wp_new_user_notification, которая является подключаемой функцией и вызывается при регистрации нового пользователя, вы можете поместить в нее почтовую функцию, я знаю, что такие плагины, как Register Plus Redux и Pie Register, делают это так.

Я думаю, это вы ищете. Это добавит имя и фамилию пользователя к мета и отправит почтой пользователю о добавлении имени и фамилии.

  add_action('user_register', 'add_user_custom_meta'); function add_user_custom_meta($user_id) { $user_info=get_userdata( $user_id ); if ( isset( $_POST['first_name'] ) ) update_user_meta($user_id, 'first_name', $_POST['first_name']); if ( isset( $_POST['last_name'] ) ) update_user_meta($user_id, 'last_name', $_POST['last_name']); wp_mail($user_info->user_email, 'User first and last name', sprintf('Hi we have added your first name :-% and last name:- % to our site.',$_POST['first_name'],$_POST['last_name'])); }