Utiliser les sessions avec WordPress

Je me suis aperçu en développant un nouveau plugin que WordPress ne supportait pas les sessions par défaut. Une vérification dans le code source du système le confirme. WordPress utilise un cookie pour gérer son propre système de sessions.
Pour faire marcher les sessions dans un plugin, il suffit de  d’ajouter session_start()
Le problème est « où l’ajouter » ?Une recherche sur Google conduit à  quelques sites anglophones, qui proposent chacun une endroit différent pour placer le session_start() :

  • au début du fichier index.php : pas très satisfaisant, ce fichier risque d’être écrasé lors de la prochaine mise à  jour de WordPress
  • dans
    To see the full content, share this page by clicking one of the buttons below
0

A propos de l'auteur

Ajouter une réponse 7 commentaires

Matt - 15 février 2010 Répondre

Bonjour,

Parti à la recherche de solutions sur internet, je suis tombé sur ton site et je pense ne plus être très loin de la délivrance !

Mon pb est le suivant : J’ai installé un plugin ecommerce ouvert via Paypal mais le soucis c’est que mes sessions étant mal configurées, mon panier se vide à chaque changement d’URL.

J’aimerais appliquer ta solution sur mon site cependant, avec mes faibles connaissances en PHP, je n’ai pas saisi où fallait il coller le code que tu donnes (!)…

Je te remercie par avance si tu pouvais me donner un coup de main là dessus.

Merci
Matt

Spirion - 15 février 2010 Répondre

Bonjour,

Le code est à ajouter dans le fichier principal du plugin (celui qui a le même nom que le plugin) dans la fonction __construct().

Sinon, si tu ne veux pas toucher au plugin (afin de ne pas avoir à refaire la modification à chaque mise à jour), tu peux ajouter ces lignes en haut du fichier functions.php de ton thème.

Loïc

Matt - 15 février 2010 Répondre

Merci pour ta réponse rapide !
Je ne veux pas abuser de ton temps mais voila j’ai collé ces quelques lignes de code dans le fichier functions.php, mais ça me fait une page blanche (!)
J’ai biensur essayé de la coller à différents niveaux mais je dois couiller quelquepart…

 »
add_action(‘template_redirect’, ‘wp_shopping_cart’, 0);

function wp_shopping_cart () {

$session_id = session_id();

if(empty($session_id))

{

session_start();

}
 »

Merci encore
Matt

Spirion - 15 février 2010 Répondre

A mon avis le nom wp_shopping_cart est déjà utilisé. Il faut que tu en choisisses un nouveau.

par exemple
add_action(‘template_redirect’, ‘ma_session_init’, 0);
puis
function ma_session_init() …

Matt - 15 février 2010 Répondre

Ok, et tu colles ce CODE juste après la balise PHP en tête de page ?

Spirion - 15 février 2010 Répondre

oui 😉
Une page blanche dans WordPress en général c’est qu’il y a une erreur de syntaxe php.

Matt - 15 février 2010 Répondre

En effet j’avais un petit problème de syntaxe…
Cependant, cela ne change rien. (ma page s’affiche mais le panier ne fonctionne toujours pas correctement). Je ne sais plus où chercher…

En tous les cas je te remercie beaucoup pour ta disponibilité et tes conseils !

Matt

Ajouter une réponse:







*