Inviare email automatica all'utente dopo wp_create_user

29 gen 2012, 21:43:23
Visualizzazioni: 26.4K
Voti: 3

Ho creato questo codice che funziona, ma ora ho bisogno che invii automaticamente username e password generata a quell'indirizzo email. Inoltre nome e cognome non vengono registrati. Grazie!

require('wordpress/wp-blog-header.php');

// Ottiene email e nome utente dal form
$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 = __('Utente già esistente. Password ereditata.');
}
0
Tutte le risposte alla domanda 4
2

Puoi usare questo: wp_new_user_notification( $user_id, $random_password);

16 giu 2013 05:26:40
Commenti

"Questa risposta è stata automaticamente contrassegnata come di bassa qualità a causa della sua lunghezza e contenuto", cosa che sono sicuro non desideri. Per favore, spiega la tua risposta, invece di limitarti a pubblicare del codice.

s_ha_dum s_ha_dum
16 giu 2013 06:29:23

Ulteriori informazioni su questo: http://codex.wordpress.org/Function_Reference/wp_new_user_notification

Notifica all'amministratore del blog un nuovo utente, normalmente via email, e invia anche un'email con login/password al nuovo utente.

bryceadams bryceadams
8 feb 2015 12:39:05
0

Esiste l'hook user_register, che viene eseguito alla fine dell'inserimento dell'utente e ha $user_id come parametro, potresti sfruttarlo per inviare username e password, ma devi prima usare update_user_meta() per poter ottenere nome, cognome e altri dati, quindi potrebbe essere meglio farlo alla fine della creazione dell'utente e dell'inserimento dei metadati.

L'unica cosa che fa la creazione di un utente è inserirlo nel database, devi usare update_user_meta() per aggiungere i valori dell'utente. get_the_author_meta() contiene un elenco dei valori predefiniti dei metadati utente, se inserisci qualcosa con la chiave di uno di quelli, apparirà automaticamente in profile.php, altrimenti dovrai estendere il profilo utente per visualizzarlo.

Inoltre, solo una nota, sembra che tu stia impostando $random_password su un valore non casuale e, probabilmente ancora più importante, lo stai impostando DOPO che è stato utilizzato.

29 gen 2012 22:01:31
0

Userei wp_insert_user invece di wp_create_user così puoi aggiungere tutti i dati utente che desideri fin dal primo momento. Controlla il codex di Wordpress per vedere tutto ciò che puoi inserire. (wp_create_user in pratica richiama questa funzione comunque!) Per inviare i dettagli di accesso all'utente puoi chiamare wp_mail($user_email, $subject, $message); Ovviamente dovrai impostare $message in modo che includa username e password nel corpo del messaggio. Un'altra cosa, penso che tu possa creare la funzione wp_new_user_notification che è una funzione pluggable e viene chiamata alla registrazione di un nuovo utente, puoi inserire la funzione mail lì dentro, so che plugin come Register Plus Redux e Pie Register funzionano così.

29 nov 2012 16:16:54
0

Penso che questo sia quello che stai cercando. Questo aggiungerà il nome e il cognome ai metadati dell'utente e invierà una mail all'utente riguardo l'aggiunta del nome e cognome.

 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('Ciao, abbiamo aggiunto il tuo nome :-% e cognome:- % al nostro sito.',$_POST['first_name'],$_POST['last_name']));
}
16 giu 2013 05:47:37