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.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');
3) nell'intestazione supplementare del form ho aggiunto: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);
e il modulo invia all'amministrazione una e-mail per notificare che l'utente è connesso per la prima volta.codice:on_sent_ok: "location = 'http://www.myisite.it';"
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.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');
Dove potrebbe essere il problema secondo voi?
Grazie.



Rispondi quotando
