Comment obtenir l’URL d’activation de l’utilisateur dans wordpress ?
pour le code suivant :
add_action( 'user_register', 'my_user_register', 10, 1 );
function my_user_register($user_id){
// how do i get user activation url
// todo: send user an activation email
}
Je souhaite envoyer un e-mail d’activation à l’utilisateur, mais je ne sais pas comment obtenir l’URL d’activation. S’il vous plaît des conseils.
Solution n°1 trouvée
vous pouvez envoyer un lien d’activation par e-mail comme celui-ci.
global $theme_settings;
$hidDiv="none";
$login_page_url = get_permalink($theme_settings['userlogin_page']);
$home_url = get_option('siteurl');;
$firstname = sanitize_text_field($_POST['firstname']);
$username = sanitize_text_field($_POST['email']);
$password = sanitize_text_field($_POST['password']);
$email = sanitize_text_field($_POST['email']);
$lastname = $_POST['lastname'];
$company = $_POST['company'];
$city = $_POST['city'];
$state = $_POST['state'];
$zipcode = $_POST['zipcode'];
$mailemail = $_POST['mailingaddress'];
$user_id = wp_create_user( $username, $password, $email );
if ( is_wp_error( $user_id ) ) {
$error_string = $user_id->get_error_message();
}else
{
theme_user_register($user_id);
$thanks_msg_page_url = get_permalink($theme_settings['userthanks_page']);
$trackcode = get_user_meta($user_id, 'p_user_registration_code', true);
$site_name = get_option('blogname');
$track_url = get_option('siteurl').'/confirmation?trackid='.$user_id.'&trackcode='.$trackcode;
$headers = "MIME-Version: 1.0";
$headers .= "Content-Type: text/html; charset=UTF-8";
$headers .= "From: $site_name < $from >" . "rn";
$message = "<p> Hello ".$username;
$message.="<p>Thank you for registering with us. Please click on the below link or copy and paste to the browser to activate your account.</p>";
$message.="<p> $track_url</p><br>Best Regards,<br>Support Team";// Need to change this
$from = get_option('admin_email');
$site_name = get_option('blogname');
wp_mail($email, 'Registration Confirmation', $message, $headers,'');
$thanks_msg_page_url = get_permalink(theme_settings['userthanks_page']);
wp_redirect($thanks_msg_page_url);
exit;
}
Solution n°2 trouvée
Je ne sais pas si je comprends pourquoi vous souhaitez obtenir l’URL d’activation via le codage, sauf bien sûr si vous souhaitez personnaliser l’e-mail de notification de nouvel utilisateur par défaut envoyé par WordPress.
Si vous souhaitez simplement personnaliser l’e-mail de notification envoyé au nouvel utilisateur lors de l’inscription réussie de l’utilisateur, vous devez utiliser les filtres wp_new_user_notification_email
– personnaliser l’e-mail envoyé à l’utilisateur et/ou wp_new_user_notification_email_admin
– personnaliser l’e-mail envoyé à l’administrateur.
Ces deux fonctions sont dans « wp-includes/pluggable.php ». Les définitions de filtre sont les suivantes…
/**
* Filters the contents of the new user notification email sent to the site admin.
*
* @since 4.9.0
*
* @param array $wp_new_user_notification_email {
* Used to build wp_mail().
*
* @type string $to The intended recipient - site admin email address.
* @type string $subject The subject of the email.
* @type string $message The body of the email.
* @type string $headers The headers of the email.
* }
* @param WP_User $user User object for new user.
* @param string $blogname The site title.
*/
$wp_new_user_notification_email_admin = apply_filters( 'wp_new_user_notification_email_admin', $wp_new_user_notification_email_admin, $user, $blogname );
… et …
/**
* Filters the contents of the new user notification email sent to the new user.
*
* @since 4.9.0
*
* @param array $wp_new_user_notification_email {
* Used to build wp_mail().
*
* @type string $to The intended recipient - New user email address.
* @type string $subject The subject of the email.
* @type string $message The body of the email.
* @type string $headers The headers of the email.
* }
* @param WP_User $user User object for new user.
* @param string $blogname The site title.
*/
$wp_new_user_notification_email = apply_filters( 'wp_new_user_notification_email', $wp_new_user_notification_email, $user, $blogname );
Le bloc de code de fonction de filtre typique ressemble à ceci…
function custom_wp_new_user_notification_email( $wp_new_user_notification_email, $user, $blogname ) {
$wp_new_user_notification_email['subject'] = 'Your Subject';
$wp_new_user_notification_email['message'] = 'Your Email Message';
return $wp_new_user_notification_email;
}
Dans les add_filter
fonctions de ces filtres, vous pouvez obtenir les informations spécifiques à l’utilisateur en utilisant le $user passé à la fonction de filtre, comme…
$user_name = $user->user_login;
$user_email = $user->user_email;
À l’aide de l’objet $user, vous pouvez obtenir les informations sur l’utilisateur et créer votre propre lien d’activation.
Encore une fois, je ne suis pas sûr d’avoir bien suivi le motif de cette question; mais c’est le chemin que je suivrai si je suis dans ce genre de choses à mettre en uvre.
0 commentaire