Inviare email di attivazione all'utente dopo la registrazione
Vorrei inviare un'email a tutti gli utenti immediatamente dopo la registrazione che richieda loro di cliccare un link all'interno dell'email per "attivare" il loro indirizzo email.
Idealmente ogni account utente dovrebbe avere uno stato che mostri se questa operazione è stata completata o meno.
Qualcuno può suggerirmi un modo per realizzare questo?

Per il processo di attivazione puoi seguire questi passaggi:
- Come puoi vedere la colonna
user_activation_key
nella tabellawp_users
. Puoi utilizzare questa colonna per inviare il link di attivazione all'utente. Durante la registrazione degli utenti puoi inserire un codice specifico in quella colonna con una query SQL personalizzata. Dopo che l'utente si è registrato con
wp_insert_user()
e viene restituito un id in$user_id
, puoi eseguire un inserimento SQL personalizzato$user_id = wp_insert_user($user_detail); if ( $user_id && !is_wp_error( $user_id ) ) { $code = sha1( $user_id . time() ); global $wpdb; $wpdb->update( 'wp_users', //nome tabella array( 'user_activation_key' => $code, // stringa ), array( 'ID' => $user_id ), array( '%s', // valore1 ) ); $activation_link = add_query_arg( array( 'key' => $code, 'user' => $user_id ), get_permalink( /* ID della tua pagina di attivazione qui*/ )); wp_mail( $user_email, 'OGGETTO', 'Link di attivazione : ' . $activation_link ); }.
Questo invierà all'utente un link di attivazione come
http://example.com/pagina-attivazione/?key=CHIAVE_SPECIFICA&user=ID_UTENTE
alla sua email e nella pagina di attivazione puoi eseguire il codice per attivare gli utenti modificando un'altra colonnauser_status
da 0 a 1.Dopo questo puoi eseguire un altro aggiornamento per la colonna
user_status
conglobal $wpdb; $wpdb->update( 'wp_users', //nome tabella array( 'user_status' => 1, // intero ), array( 'ID' => $_GET['user'], //clausola where 'user_activation_key'=>$_GET['key'] //clausola where ), array( '%d', //valore1 ) );
Poi puoi permettere agli utenti con status 1 di effettuare il login.
