Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di exFelino
    Registrato dal
    Jul 2014
    residenza
    Aci Catena (CT)
    Messaggi
    708

    [Wordpress] [Contact Form 7] Funzione personalizzata: ho un problema.

    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:
    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';"
    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:
    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.

  2. #2
    Utente di HTML.it L'avatar di exFelino
    Registrato dal
    Jul 2014
    residenza
    Aci Catena (CT)
    Messaggi
    708
    Risolto grazie alla segnalazione di un utente,
    il problema era presente in questo if:
    codice:
    if ( $logincontrol and  acceptPrivacyControl) {

    manca il $ nel secondo parametro:
    codice:
    if ( $logincontrol and  $acceptPrivacyControl) {

    Una svista.

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.