[Résolu] Redirection dans functions.php donne une page blanche

  • WordPress :4.7
  • Statut : résolu
  • Ce sujet contient 1 réponse, 1 participant et a été mis à jour pour la dernière fois par Timama, le il y a 3 années.
2 sujets de 1 à 2 (sur un total de 2)
  • Auteur
    Messages
  • #1616236
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL :
    • Thème utilisé : le mien
    • Extensions en place : Gravity form
    • Nom de l’hébergeur : Strato
    • Adresse du site :

    Problème(s) rencontré(s) :

    Bonjour,

    J’ai une page de connexion qui utilise Gravity form.

    J’utilise le tuto http://wp-doin.com/2014/09/24/gravity-front-end-login-register/ pour la connexion.
    J’ai testé mon code, normalement tout fonctionne sauf la redirection quand l’utilisateur est connecté (ou pas).
    Je fais des redirection mais cela me donne une page blanche.

    /*Gform after submission hook*/
    add_action( "gform_after_submission_124", "login_form_after_submission_124", 10, 2 );
    function login_form_after_submission_124($entry, $form) {
    	// get the username and pass
    	$username = $_POST['user_login'];
    	$pass = $_POST['user_password'];
    	$creds = array();
    		
    	// create the credentials array
    	$creds['user_login'] = $username;
    	$creds['user_password'] = $pass;
    	
    	// sign in the user and set him as the logged in user
    	$user = wp_signon( $creds );
    	wp_set_current_user( $user->ID );
    }
    
    /*Gform field validation hook*/
    add_filter( "gform_field_validation_124", "login_validate_field_124", 10, 4 );
    function login_validate_field_124($result, $value, $form, $field) {
    // make sure this variable is global
    	global $user;
    	// validate username
    	if ( $field['cssClass'] === 'benutzername' ) {
    		$user = get_user_by( 'login', $value );
    		if ( empty( $user->user_login ) ) {
    			$result["is_valid"] = false;
    			$result["message"] = "Invalid username provided.";
    		}
    	}
    	// validate pass
    	if ( $field['cssClass'] === 'passwort' ) {
    		if ( !$user or !wp_check_password( $value, $user->data->user_pass, $user->ID ) ) {
    			$result["is_valid"] = false;
    			$result["message"] = "Invalid password provided.";
    		}
    	}		
    	$user_role = array_shift($user->roles);
    	//echo 'user_role=' .$user_role;?> </br> <?php
    
    	if ($user_role !== 'mitglieder_partnerlieferanten' ) 
    	 {	
    	  //echo 'PASSAGE différent de mitglieder_partnerlieferanten';	
    		if ($user_role == 'mitglieder_mitglieder' ) 
    		{
    			$admission = $user->usermitglieder_admission;
    			
    		}
    		if ($user_role == 'mitglieder_partnerorganisationen' ) 
    		{
    			$admission = $user->userpartnerorga_admission;
    		}
    	 
    	   if (($admission == 'ja' ) OR ($user_role == 'administrator' ) )
    		{
    		//echo 'admission=' .$admission;?> </br> <?php
    		//echo 'PASSAGE admission ja  ou administrator';
    		  wp_redirect(get_permalink(3558));
    		  exit();
    		}
    
    		else
    		{
    		echo '<script type="text/javascript">window.alert(" Sie sind nicht Miglieder ");</script>';
    		wp_redirect(get_permalink(6773));
    		exit();
    		}
    		return $result;
    
    	}
    	else
    	 {
    	 echo '<script type="text/javascript">window.alert(" Sie können nur in Lieferantenbereich anmelden ");</script>';
    	 	wp_redirect(get_permalink(6773));
    	 	exit();
    	}
    
    
    }

    Je passe bien les étapes jusqu’à  ‘PASSAGE admission ja  ou administrator’  mais là la redirection ne fonctionne pas et c’est une page blanche.

    Et je ne sais pas pourquoi….. que j’utilise wp_redirect comme dans mon code ou avec une url explicite, cela ne fonctionne pas…

    Avez vous rencontrez ce problème ?

    merci par avance pour vos conseils

    Timama

    #1616407
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    en fait, ce n’est pas un problème de redirecton mais un problème de lecture de données dans la fonction gform_field_validation

    (ajouter des cas d’étude à la fonction gform_field_validation)

    https://wpfr.net/support/sujet/gform_field_validation-et-page-de-login-utilisateur-wordpress/#post-1616405

    J’ai résolu ce problème sous le post ci dessus..

     

     

2 sujets de 1 à 2 (sur un total de 2)
  • Vous devez être connecté pour répondre à ce sujet.