Trimitere automată email către utilizator după wp_create_user
Iată codul pe care l-am creat -- Funcționează, dar acum am nevoie să trimită automat numele de utilizator și parola generată la acea adresă de email ?? De asemenea, numele și prenumele nu se înregistrează ?? Mulțumesc!!
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 = __('Utilizatorul există deja. Parola a fost moștenită.');
}

"Acest răspuns a fost marcat automat ca fiind de calitate scăzută din cauza lungimii și conținutului", lucru pe care sunt sigur că nu-l doriți. Vă rugăm să explicați răspunsul dumneavoastră, în loc să postați doar cod.

Mai multe informații despre acest subiect: http://codex.wordpress.org/Function_Reference/wp_new_user_notification
Notifică administratorul blogului despre un utilizator nou, de obicei prin e-mail și trimite și un e-mail cu datele de autentificare (login/parolă) noului utilizator.

Există hook-ul user_register
, care rulează la finalul inserării utilizatorului și are ca parametru $user_id, ai putea folosi asta pentru a trimite numele de utilizator și parola, dar trebuie să folosești update_user_meta()
înainte să poți obține prenumele și alte informații, așa că ar fi mai bine să faci acest lucru la finalul creării utilizatorului și inserării metadatelor.
Singurul lucru pe care îl face crearea unui utilizator este inserarea acestuia în baza de date, trebuie să folosești update_user_meta()
pentru a adăuga valorile utilizatorului. get_the_author_meta()
are o listă cu valorile implicite ale metadatelor utilizatorului, dacă inserezi ceva cu cheia unuia dintre acestea, acesta va apărea implicit în profile.php
, altfel va trebui să extinzi profilul utilizatorului pentru a-l afișa.
De asemenea, doar o observație, se pare că setezi $random_password
la o valoare non-aleatoare și, probabil mai important, o setezi DUPĂ ce a fost folosită.

Aș folosi wp_insert_user în loc de wp_create_user pentru a putea adăuga cât mai multe date ale utilizatorului din prima. Verifică Codex-ul WordPress pentru a vedea toate câmpurile pe care le poți insera. (wp_create_user apelează de fapt această funcție oricum!)
Pentru a trimite detaliile de autentificare utilizatorului, poți folosi wp_mail($user_email, $subject, $message);
Desigur, vei dori să setezi variabila $message să includă numele de utilizator și parola în corpul mesajului.
Un alt aspect - cred că poți crea funcția wp_new_user_notification, care este o funcție pluggable și este apelată la înregistrarea unui nou utilizator. Poți include funcția de trimitere email în aceasta, știu că plugin-uri precum Register Plus Redux și Pie Register funcționează astfel.

Cred că asta este ceea ce cauți. Acest cod va adăuga numele și prenumele în metadatele utilizatorului și va trimite un email utilizatorului despre adăugarea numelui și prenumelui.
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, 'Numele și prenumele utilizatorului', sprintf('Bună, am adăugat prenumele tău :- %s și numele :- %s pe site-ul nostru.', $_POST['first_name'], $_POST['last_name']));
}
