web-dev-qa-db-fra.com

Comment simuler un login Wordpress?

Comme beaucoup d’entre vous le savent WPEngine ne supporte pas PHP SESSIONS sauf si l’utilisateur est connecté. Dans ce cas, WPEngine commence à prendre en compte PHP SESSIONS et le logiciel basé sur hybridauth like Connexion Wordpress Social ou Invitations Sociales Wordpress fonctionnera correctement.

Ma question est donc la suivante: il existe un moyen de simuler un identifiant Wordpress?

4
chifliiiii

Vous pouvez créer un utilisateur factice (sans droits) et connecter chaque visiteur à l'aide de cet utilisateur factice. Cela pourrait être fait assez facilement:

wp_set_auth_cookie($uid, true);
wp_set_current_user($uid);

Mais à mon avis, cette solution de contournement est plutôt imparfaite.

Votre principal problème est que toutes les pages des utilisateurs non connectés proviennent du cache de pages. Cela signifie également que tous les utilisateurs obtiennent la même sortie HTML tant que la mise en cache des pages est active. Donc, il ne peut y avoir de différence pour vos pages en fonction du visiteur. Tous les visiteurs obtiennent le même résultat.

Un meilleur moyen serait de créer un ticket sur WPEngine et de leur demander de désactiver la mise en cache des pages pour votre site. C'est en fait aussi la façon dont ils suggèrent sur la page que vous avez liée.

2
s1lv3r

Une solution simple et rapide consiste à mettre ceci dans votre fichier d’inclusion:

<?php
  // Re-enable sessions for WPEngine
  setcookie('wordpress_logged_in_' . md5("test"), md5("random"), time()+3600);
?>

C'est faux, mais ça marche.

1
Jayme Brereton