J’ai un formulaire de connexion vers un espace membre. Ce sont des utilisateurs wordpress qui peuvent se connecter.
Je rentre dans l’espace membre mais le is_user_logged_in() est à false.
Ce qui fait que les autres tests que je fais en utilisant is_user_logged_in() ne fonctionne pas. Comme celui ci :
et donc cela ne va pas dans http://www.mysite.de comme is_user_logged_in() est false.....
J'ai lu qu'il y avait des problème de cookie ... j'ai testé plein de choses mais je n'ai toujours rien trouvé...
tout mon code est dans funtions.php..... normalement mon code doit être lu avant le header....
est ce que placer mon code dans functions.php fait qu'il s'exécute avant header?
merci pour votre aide
Je rentre dans l’espace membre mais le is_user_logged_in() est à false.
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;
$creds['remember'] = true;
// sign in the user and set him as the logged in user
$user = wp_signon($creds, false);
wp_set_current_user( $user->ID );
}
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, $current_user, $user_ID, $logged;
// 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.";
}
// AJOUT TEST POUR SAVOIR SI LE USER EST LIEFERANTEN
$user_role = array_shift($user->roles);
if ($user_role !== 'mitglieder_partnerlieferanten' )
{
if ($user_role == 'mitglieder_mitglieder' )
{
$admission = $user->usermitglieder_admission;
}
if ($user_role == 'mitglieder_partnerorganisationen' )
{
$admission = $user->userpartnerorga_admission;
}
// AJOUT TEST POUR SAVOIR SI LE USER EST ADMIS (ou administrato = admis direct)
if (($admission == 'ja' ) OR ($user_role == 'administrator' ) )
{
//echo 'PASSAGE admission ja ou administrator ';
return $result;
}
else
{
echo '<script type="text/javascript">window.alert(" Sie sind nicht Miglieder ");</script>';
}
}
else
{
echo '<script type="text/javascript">window.alert(" Sie können nur in Lieferantenbereich anmelden ");
</script>';
}
// FIN AJOUT
}
// 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.";
}
//View is_user_logged_in
var_dump(is_user_logged_in());
return $result;
}
Ce qui fait que les autres tests que je fais en utilisant is_user_logged_in() ne fonctionne pas. Comme celui ci :
/* déconnexion */
function wpa_remove_menu_item( $items, $menu, $args ) {
global $user, $current_user,$user_ID, $logged;
if ( is_admin() || ! is_user_logged_in() )
return $items;
foreach ( $items as $key => $item ) {
if ( 'Benutzername' == $item->title )
unset( $items[$key] );
if ( 'Abmelden' == $item->title ) {
$items[$key]->url = wp_logout_url('http://www.mysite.de');
}
}
return $items;
}
add_action( 'wp_get_nav_menu_items', 'wpa_remove_menu_item', 10, 3 );
et donc cela ne va pas dans http://www.mysite.de comme is_user_logged_in() est false.....
J'ai lu qu'il y avait des problème de cookie ... j'ai testé plein de choses mais je n'ai toujours rien trouvé...
tout mon code est dans funtions.php..... normalement mon code doit être lu avant le header....
est ce que placer mon code dans functions.php fait qu'il s'exécute avant header?
merci pour votre aide