une solution ? :)
Bonsoir à tous,
J'interviens sur un petit formulaire d'un site développer en Wordpress et le but de ce formulaire est d'envoyé des données par email dont le destinataire varie selon le sujet qui a été choisi.
Je m'explique :
J'ai rédigé dans un premier temps de manière procédurale mon code qui est le suivant (j'ai déclaré mes variables juste avant la condition)
Lorsque mes valeurs sont en dur, tout fonctionne parfaitement.
Le formulaire va bien sur la page de traitement PHP puis est redirigé selon le chemin souhaité. Ainsi dans le cas d'un succes ou non le message de session apparaît.
Mais je ne souhaite pas m'arrêter là et c'est maintenant que j'ai un problème. Je veux utiliser des fonctions wordpress pour gérer la traduction ainsi que la redirection de page qui peut être modifiable directement via le back-office.
Voilà ce que j'ai essayé et que j'aimerai faire fonctionner (et qui ne fonctionne pas pour le moment) :
Voilà pour récapituler, j'aimerai utiliser la fonction de traduction Wordpress _e() ou ___() dans mes variables de sessions ainsi qu'utiliser la fonction de redirection proposé par wordpress wp_redirect() ou wp_safe_redirect().
De plus, le script se bloque sur la page de traitement et la fonction de redirection (header) n'est plus pris en compte.
Je voulais aussi ajouté que j'utilise les fonctions de traduction dans d'autres pages et que cela fonctionne très bien.
Visiblement moins dans ma $_SESSION...
Je suis débutant en Wordpress et en développement en général et aujourd'hui je fais appel à vos connaissances pour m'aider à trouver une solution :)
Je vous remercie par avance et reste à disposition pour plus d'information.
Bonne soirée
4 réponses
La pas évident tu donne bcp de code et peu de contexte ce fichier est isolé de Wordpresse ou est intégré dans un template. Pour les session il faut que tu fasse un session_start()
Salut, merci de ta réponse :)
Je fais bien appelle a session_start() dans les deux fichiers.
Ce fichier est dans Wordpress et traite un formulaire qui se trouve dans Wordpress, j'ai trouvé une solution qui ne passe plus par l'utilisation des variables de session.
Je la partagerai ici un poil plus tard.
Pour récapituler :
J'ai un fichier page-contact.php où se trouve le formulaire.
J'ai crée un fichier au même endroit qui traitera en php ce formulaire.
J'ai crée mes conditions pour la fonction mail() car selon le sujet choisi par l'utilisateur, le destinataire sera différent.
De plus, je souhaite indiqué à l'utilisateur que son email a bien été envoyé ou non. Pour cela, j'ai utilisé des variables de sessions afin de pouvoir récupérer des variables entre les rechargement de page.
Comme indiqué sur le premier bloc de code, j'ai réalisé un script qui fonctionne en ajoutant des valeurs en dur dans les variables de session.
Le mail est bien envoyé, la redirection avec le header se fait correctement ainsi que l'apparition de message de succes ou d'erreur. (via un foreach dans le fichier où se trouve le formulaire)
Par la suite, j'ai voulu remplacé les valeurs en dur des variables de session des fonctions de traduction WP ( __() ou _e() ).
En changeant uniquement :
Qui fonctionne, par ça :
l'action du formulaire amène bien sur mon fichier de traitement php, le mail s'envoit correctement, mais le script bloque au niveau du message de session et ne prend plus en compte la suite, c'est à dire que dans l'url je reste bloqué sur ma page de traitement.
Je rajoute que mon fichier de traitement php est bien placé et qu'il devrait faire automatiquement appel au fichier functions.php de WP.
J'espère que c'est un peu plus clair, sinon je suis toujours à dispo pour des infos supp.
Merci à toi
Voila ceci est une alternative, mais si quelqu'un a la réponse concernant les variables de session, je suis preneur :)
Bon courage à tous.