skip to Main Content

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
Cet article comporte 7 commentaires
  1. 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

  2. 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

  3. 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

  4. 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() …

  5. 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

Click on a tab to select how you'd like to leave your comment

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Back To Top