Ciao a tutti,
ho creato un step personalizzato per nuovi utenti del mio sito tramite delle funzioni custom e l'utilizzo del plugin Contact Form 7.
1) Quando l'amministratore aggiungere un nuovo account, il sistema crea due user_meta personalizzati:
2) quando l'utente accede per prima volta, viene eseguito un reindirizzamento ad una pagina personalizzata: in questa pagina vi è un modulo con una casella di controllo che l'utente deve selezionare per andare avanti.
3) nell'intestazione supplementare del form ho aggiunto:
e il modulo invia all'amministrazione una e-mail per notificare che l'utente è connesso per la prima volta.
4) Quando l'utente clicca sul pulsante, viene aggiornato il valore dei due user_meta:
Funziona molto bene, ma ho un problema: anche se l'utente si sta loggando per la secondo volta e le successive, il modulo invia all'amministrazione una e-mail come se si trattasse del primo login.
Dove potrebbe essere il problema secondo voi?
Grazie.
ho creato un step personalizzato per nuovi utenti del mio sito tramite delle funzioni custom e l'utilizzo del plugin Contact Form 7.
1) Quando l'amministratore aggiungere un nuovo account, il sistema crea due user_meta personalizzati:
Codice:
function function_new_user($user_id) {
add_user_meta( $user_id, '_new_user', '1' );
add_user_meta( $user_id, '_user_accept_privacy', '1' );
}
add_action( 'user_register', 'function_new_user');
2) quando l'utente accede per prima volta, viene eseguito un reindirizzamento ad una pagina personalizzata: in questa pagina vi è un modulo con una casella di controllo che l'utente deve selezionare per andare avanti.
Codice:
function function_check_login_redirect($user_login, $user) {
$logincontrol = get_user_meta($user->ID, '_new_user', 'TRUE');
$acceptPrivacyControl = get_user_meta($user->ID, '_user_accept_privacy', 'TRUE');
//Se entrambi sono TRUE eseguo il redirect
if ( $logincontrol and acceptPrivacyControl) {
wp_redirect( home_url( $path = '/trattamento-dei-dati-personali/' ), 302 ); exit;
}
}
add_action('wp_login', 'function_check_login_redirect', 10, 2);
3) nell'intestazione supplementare del form ho aggiunto:
Codice:
on_sent_ok: "location = 'http://www.myisite.it';"
4) Quando l'utente clicca sul pulsante, viene aggiornato il valore dei due user_meta:
Codice:
function wpcf7_redirect_on_submit($contact_form)
{
$user = wp_get_current_user();
//print_r($contact_form);
$id_contact_form = $contact_form->id;
if($id_contact_form == 828)
{
//Imposto i due TAG a FALSE
update_user_meta( $user->ID, '_new_user', '0' );
update_user_meta( $user->ID, '_user_accept_privacy', '0' );
}
}
add_action('wpcf7_mail_sent', 'wpcf7_redirect_on_submit');
Funziona molto bene, ma ho un problema: anche se l'utente si sta loggando per la secondo volta e le successive, il modulo invia all'amministrazione una e-mail come se si trattasse del primo login.
Dove potrebbe essere il problema secondo voi?
Grazie.