Donc, voici un code que je suis venu avec - cela fonctionne, mais maintenant je dois lui envoyer le nom d'utilisateur et mot de passe qu'il a généré à cette adresse email automatiquement? De plus, le prénom et le nom de famille ne sont pas enregistrés? Merci!!
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.');
}
Vous pouvez utiliser ceci: wp_new_user_notification( $user_id, $random_password);
Il y a le hook user_register
, qui fonctionne à la fin de l'insertion de l'utilisateur et dont le paramètre est $ user_id, vous pouvez en tirer parti pour envoyer le nom d'utilisateur et le mot de passe, mais vous devez update_user_meta()
avant de pouvoir obtenir le nom et le contenu, il serait donc préférable de le faire à la fin de la création de l'utilisateur et de l'insertion de usermeta.
La seule chose qui crée un utilisateur est de l'insérer dans la base de données. Vous devez utiliser update_user_meta()
pour ajouter les valeurs de l'utilisateur. get_the_author_meta()
a une liste des valeurs usermeta par défaut. Si vous insérez quelque chose avec la clé d’une de celles-ci, il apparaîtra par défaut dans profile.php
, sinon vous devrez étendre le profil de l’utilisateur pour l’afficher.
En outre, juste une remarque, il semblerait que vous ayez défini $random_password
sur une valeur non aléatoire et que, ce qui est probablement plus important, que vous le définissiez APRÈS l’utilisation.
Je voudrais utiliser wp_insert_user au lieu de wp_create_user afin que vous puissiez ajouter autant de données utilisateur que vous le souhaitez dans la première instance. Vérifiez le codex Wordpress pour tout ce que vous pouvez insérer. (wp_create_user appelle quand même cette fonction!) Pour envoyer les informations de connexion de l'utilisateur, vous pouvez appeler wp_mail ($ user_email, $ subject, $ message); Bien sûr, vous voudrez que $ message inclue le nom d'utilisateur et le mot de passe dans le corps du texte du message. Une autre chose, je pense que vous pouvez créer la fonction wp_new_user_notification qui est une fonction pluggable et appelée lors de l'enregistrement d'un nouvel utilisateur, vous pouvez mettre la fonction mail dans cette fonction.
Je pense que c'est ce que vous recherchez. Cela ajoutera le prénom et le nom à la méta de l'utilisateur et enverra un courrier à l'utilisateur à propos de l'ajout du prénom et du nom.
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']));
}