- Statut : non résolu
- Ce sujet contient 40 réponses, 2 participants et a été mis à jour pour la dernière fois par Timama, le il y a 9 années et 6 mois.
-
AuteurMessages
-
19 mars 2015 à 17 h 15 min #548071
Bonjour,
Ma configuration WP actuelle
– Version de WordPress : 4.1.1
– Version de PHP/MySQL :
– Thème utilisé : le mien
– Extensions en place :
– Nom de l’hebergeur : STRATO
– Adresse du site :Problème(s) rencontré(s) :
Bonjour,
Je n’arrive pas à envoyer un Email à la suite d’un validation de formulaire car l’adresse Email n’arrive pas jusqu’à ce point du code.
En résumé :
Dans mon tpl-accueil.php, je fais une boucle sur mes évènements (car je les affiches tous).
Pour chaque évènements, je récupère 2 variables de custom post type (événements) et j’apelle mon formulaire//boucle sur les événements
while ($the_query->have_posts()) :
$the_query->the_post();
global $nom_evenement, $email_evenement;
$nom_evenement = get_post_meta($post->ID,’nom_evenement’,true);
$email_evenement = get_post_meta( $post->ID, ’email_evenement’, true );
<h3> <a href="#" data-width="630" data-rel="formulaire-inscriptionenligne" class="poplight" > <?php echo $texte_inscriptionenligne; ?> </a></h3>
<?php include("inscriptionenligne-evenement.php"); ?>
endwhile;
wp_reset_postdata();Dans mon inscriptionenligne-evenement.php, si je fais afficher ces 2 variables, elles s’affichent.
Quand je valide le formulaire de inscriptionenligne-evenement.php, j’apelle un autre fichier php qui doit envoyer un Email.
Mais apparement, même avant d’appeler ce fichier php, les variables sont perdues, enfin , plus précisément, ces variable sont passées à l’évènement suivant, c’est à dire que je n’ai plus le bon nom d’évenement et la bonne adresse Email.Je ne vois pas comment garder les bonnes variables pour l’envoi d’un Email.
si vous avez une idée, un conseil … merci beaucoup pour votre aide
Timama
20 mars 2015 à 7 h 43 min #998531Bonjour,
J’ai trouvé une solution.
j’ai inclu le code dans le fichier php qui envoi l’email à la fin du code du formulaire.Et là les variables passent bien : ce sont les bonnes variables du bon évènements.
AU départ, je pense que le code d’envoi de l’Email était mal « placé » dnas le programme par rapport à l’évolution des évènements.
voilà !
✅
20 mars 2015 à 8 h 36 min #998532heu alors non, ce n’est pas tout à fait résolu ! 😳
Mes valeurs passent bien maintenant mais j’ai donc une boucle sur les évènement, et il me prend toujours que le premier évènement (nom et Email) pour tous les autres évènements.
Donc quand j’ai plusieurs évènement, ça bloque …
avez vous une idée? un indice ?
merciTimama
20 mars 2015 à 9 h 23 min #998533rebonjour, j’ai trouvé quelquechose mais j’ai encore besoin de votre aide:
Alors, j’ai donc une boucle sur des évènements.
Pour chaque évènement, j’ai un formulaire.
Dans ce formulaire doit apparaître le nom de l’évènement.La liste de mes évènements s’affichent bien MAIS quand j’ouvre le formulaire correspondant à un évènement, ils ont tous le même nom que le premier évènement de la liste.
Chose bizarre, c’est que quand je regarde le code source de la page sur mon navigateur, et bien, le bon nom d’évènement s’écrit !
Pourquoi cela ne s’affiche pas bien « hors code source » ? avez vous une idée sur ce sujet?
merci beaucoup pour votre aide….
Timama
20 mars 2015 à 10 h 03 min #998534:search:
alors, autres indices, j’ai ma boucle
while
evenement –> formulaire (pour inscription)
fin whileMes évènement s’affichent bien, j’ai la liste:
evenement 1
evenement 2
evenement 3Si je clique sur le formulaire evenement 1 –> bon nom d’évènement qui s’afiche
Si je clique sur le formulaire evenement 2 –> nom d’évènement1 qui s’affiche
Si je clique sur le formulaire evenement 3 –> nom d’évènement1 qui s’afficheSi je remplie le formulaire d ‘évènement 2 et que je l’envoi –> envoi un Email à l’adresse Evenement 1 avec nom evenement 1 + envoie un Email à l’adresse Evenement 2 avec nom evenement 2
Si je remplie le formulaire d ‘évènement 3 et que je l’envoi –> envoi un Email à l’adresse Evenement 1 avec nom evenement 1 + envoie un Email à l’adresse Evenement 2 avec nom evenement 2 + envoie un Email à l’adresse Evenement 3 avec nom evenement 3
AUriez vous un indice qui me permettrait :
1- d’afficher les bon nom dans le formulaire ?
2- d’envoyer 1 seul formulaire?merci pour vos conseils..
Timama :search:
20 mars 2015 à 10 h 49 min #998535alors, comme cela semblait être du à la boucle while le problème, j’ai mis la partie (formulaire/envoi de mail) en dehors de la boucle.
Le problème c’est que si je le met à la suite de la boucle while, tous mes évènements on le nom de l’évènement 3 (le dernier) et si je le place avant la boucle while, là forcement, il n’y a plus rien (enfin, pas de nom qui s’affiche).
avez vous un conseil à me donner? je ne vois pas du tout comment faire !
je cherche encore :search:merci si vous pouvez m’aider
21 mars 2015 à 21 h 28 min #998536dans le 5e message, tu parles de « clic sur sur le formulaire evenement 2 »
quand tu cliques, tu changes de page ou bien il se page quelque chose en JavaScript ?22 mars 2015 à 12 h 51 min #998537merci mathieu9512 d’intervenir.
Oui, effectivement, quand je clique sur le formulaire, il est en popup et fait appel à du javascript pour de « l’overlay FADE ».
Là, je suis en train de tester cela :
– lire une première fois tous les évènements et mettre dans un tableau là où il y aura formulaire
– lire une deuxième fois tous les évènements et les afficher en utilisant le tableau pour les formulaires.Je voulais faire plus rapide dans le sens que ça va allonger le temps d’exécution tout ça mais bon…. .. je teste…
Je dirais si ça fonctionne22 mars 2015 à 13 h 16 min #998538est ce que tu peux nous montrer un peu plus de code du formulaire parce que j’ai du mal à me représenter comment ça fonctionne et comment les données sont transmises aux différents endroits du code
22 mars 2015 à 14 h 33 min #998539Merci mathieu9512 pour ton soutien. Tu as raison.
J’ai donc essayé de traiter « le formulaire » à part, créer un tableau en plus mais sans succès pour le moment.
Alors, voici le code de ma page d’accueil (j’ai pas tout mis, juste l’essentiel)./** Mise dans tableau des évènements avec inscription en ligne */
$argsinscription= array(
‘post_type’ => ‘evenements’,
‘posts_per_page’ =>-1,
‘meta_query’ => array(
array(
‘key’ => ‘inscriptionenligne_evenement’,
‘value’ => ‘1’,
),
array(
‘key’ => ‘accueil_evenement’,
‘value’ => ‘1’,
),
array(
‘key’ => ‘affichage_evenement’,
‘value’ => ‘1’,
),
)
);
$the_inscription = new WP_Query($argsinscription);
$i=0;
while ($the_inscription->have_posts()) :
$the_inscription->the_post();
$nom_evenement = get_post_meta($post->ID,’nom_evenement’,true);
$email_evenement = get_post_meta( $post->ID, ’email_evenement’, true );
$tab_formulaire[$i] = array ($nom_evenement,$email_evenement) ;
$i=$i+1;
endwhile;
wp_reset_postdata();
/** AFFICHAGE des EVENEMENTS les plus récents*/
$args= array(
‘post_type’ => ‘evenements’,
‘orderby’ => ‘meta_value’,
‘meta_key’ => ‘date_evenement’,
‘order’ => ‘asc’,
‘posts_per_page’ =>-1,
‘meta_query’ => array(
array(
‘key’ => ‘accueil_evenement’,
‘value’ => ‘1’,
),
array(
‘key’ => ‘affichage_evenement’,
‘value’ => ‘1’,
),
)
);
$the_query = new WP_Query($args);
$fond = 0;
while ($the_query->have_posts()) :
$the_query->the_post();
$nom_evenement = get_post_meta($post->ID,’nom_evenement’,true);
$inscriptionenligne = get_post_meta($post->ID,’inscriptionenligne_evenement’,true);
$email_evenement = get_post_meta( $post->ID, ’email_evenement’, true );
<?php
echo 'email_evenement000 = ' .$email_evenement. '</br>‘;
echo ‘nom_evenement000 = ‘ .$nom_evenement.’</br>‘;
$ligne=0;
foreach ($tab_formulaire as $ligne => $valeur)
{
echo $ligne.’<br />‘;
if ($valeur[0] == $nom_evenement)
{
$nom_event = $valeur[0] ;
$email_event = $valeur[1] ;
echo ‘nom_event = ‘ .$nom_event. ‘</br>‘;
echo ’email_event = ‘ .$email_event. ‘</br>‘;
}
}
?>
<h3> <a href="#" class="poplight"> </a></h3>
<?php
}et inscriptionenligne-evenement.php est le suivant :
<?php
echo 'nom_event = ' .$nom_event. '</br>‘;
echo ’email_event = ‘ .$email_event. ‘</br>‘;
?>
<!-- FORMULAIRE ENTREPRISE -->
<div id="formulaire-inscriptionenligne" class="popup_block">
<div class="titre">
<h1> <img src="/images/lion.png » alt= »lion »> </h1>
<div class="titre-underline"> </div>
</div>
<form class="forminscriptionenligne" method="post" action=" » id= »inscriptionenligneform »>
<?php
echo 'email_evenement1 = ' .$email_evenement. '</br>‘;
echo ‘nom_evenement1= ‘ .$nom_evenement.’</br>‘;
?>
<p id="intro-form"> </p>
<div id="cadrebleu_inscriptionenligne">
</br>
<ul class="inline">
<li><p><label id="inscriptionenligneouinon_membre"> </label></p></li>
<li><p> </p></li>
<li><p><label class="membreoui" for="oui"></label><br /></p></li>
<li><p> </p></li>
<li><p><label class="membrenon" for="non"></label><br /></p></li>
<li><p><label for="inscriptionenligne_nummembre" class="num_membre">:</label></p></li>
<li><p></p></li>
</ul>
</br>
</div>
<br class="clear"></br>
<fieldset id="inscriptionenligne1">
<p id="text-form">
<br class="clear">
<label for="anrede"></label>
——-
<br class="clear"></br>
<label for="inscriptionenligne_titel"></label>
<br class="clear"></br>
<label for="inscriptionenligne_vorname">*</label>
<br class="clear"></br>
<label for="inscriptionenligne_nachname">*</label>
<br class="clear"></br>
<label for="inscriptionenligne_rue1">*</label>
<br class="clear"></br>
<label for="inscriptionenligne_rue2"> </label>
<br class="clear"></br>
<label for="inscriptionenligne_plz">*</label>
<br class="clear"></br>
<label for="inscriptionenligne_ville">*</label>
<br class="clear"></br>
<label for="inscriptionenligne_pays">*</label>
</p> <!-- texte form -->
</fieldset>
<fieldset id="inscriptionenligne2">
<p id="text-form">
<br class="clear"></br>
<br class="clear">
<label for="inscriptionenligne_email">*</label>
<br class="clear"></br>
<label for="inscriptionenligne_tel">*</label>
<br class="clear"></br>
<label for="inscriptionenligne_societe"></label>
<br class="clear"></br>
<label for="inscriptionenligne_kommentar"></label>
<textarea name="inscriptionenligne_kommentar" id="inscriptionenligne_kommentar"></textarea>
<br class="clear"></br>
</p> <!-- texte form -->
</fieldset>
<fieldset id="inscriptionenligne3">
<p id="text-form">
<label for="inscriptionenligneantispam" class="antispam">*</label>
<br class="clear"></br>
<label for="submit"></label>
<input type="submit" name="submitinscriptionenligne" id="submit" value=" » class= »submit » />
</p> <!-- texte form -->
</fieldset>
<p id="text-form">
<strong> </strong>
<br class="clear"></br>
</p>
<div id="pb-technique">
<h3><a href="mailto:info@club-d-affaires.de"> info@club-d-affaires.de </a></h3>
</div>
</form>
</div>
<?php
if (isset($_POST['submitinscriptionenligne']))
{
//Pop up affirmant l'inscription à l'événement
$popupincriptionevent = $lang['popup_incriptionevent'];
echo 'window.alert(« ‘.$popupincriptionevent.' »);’;
// Récupération des variables et sécurisation des données
$ouinon = $_POST[‘ouinon’];
$inscriptionenligne_nummembre = $_POST[‘inscriptionenligne_nummembre’];
$anrede = $_POST[‘anrede’];
$titel = $_POST[‘inscriptionenligne_titel’];
$vorname = $_POST[‘inscriptionenligne_vorname’];
$nom = $_POST[‘inscriptionenligne_nachname’];
$strasse1 = $_POST[‘inscriptionenligne_rue1’];
$strasse2 = $_POST[‘inscriptionenligne_rue2’];
$plz = $_POST[‘inscriptionenligne_plz’];
$ort = $_POST[‘inscriptionenligne_ville’];
$land = $_POST[‘inscriptionenligne_pays’];
$email = $_POST[‘inscriptionenligne_email’];
$tel = $_POST[‘inscriptionenligne_tel’];
$firma = $_POST[‘inscriptionenligne_societe’];
$kommentar = $_POST[‘inscriptionenligne_kommentar’];
// Code PHP pour traiter l’envoi de l’email – header général
if (!preg_match(« #^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$# », $email))
{
$passage_ligne = « rn »;
}
else
{
$passage_ligne = « n »;
}
// Sélection du mail suivant la langue
if ($langue == ‘de’)
{
$user = get_user_by( ‘login’, ’emailinscriptionde’);
$emailinscription = $user->user_email;
}
else
{
$user = get_user_by( ‘login’, ’emailinscriptionfr’);
$emailinscription = $user->user_email;
}
$headers = ‘From: Club d’affaires franco-allemand du Bade-Wurtemberg e.V. ‘.$passage_ligne;
$headers .= « MIME-Version: 1.0 ».$passage_ligne;
$headers .= ‘Content-type: text/html; charset=UTF-8’ .$passage_ligne;
// EMAIL AU CLUB D’AFFAIRES
// header le même qu’au dessus
$destinataire = $email_evenement;
$sujet = $lang[‘sujet_inscriptionenligne’];
$sujet = $sujet; // Titre de l’email
$contenu = ‘<title>Titre du message</title>‘;
$contenu .= ‘<p>Bonjour, vous avez reçu un message à partir du site web du club d’affaires franco-allemand du Bade-Wurtemberg .</p>‘;
$contenu .= ‘<p>Inscription en ligne pour l’évènement’ .$nom_evenement.’ </p>‘;
$contenu .= ‘<p>—————————————-</p>‘;
$contenu .= ‘</br>‘;
$contenu .= ‘<p><strong>Membre</strong>: ‘.$ouinon.’</p>‘;
$contenu .= ‘<p><strong>Numéro de membre</strong>: ‘.$inscriptionenligne_nummembre.’</p>‘;
$contenu .= ‘</br>‘;
$contenu .= ‘<p>—————————————-</p>‘;
$contenu .= ‘</br>‘;
$contenu .= ‘<p><strong>Anrede</strong>: ‘.$anrede.’</p>‘;
$contenu .= ‘<p><strong>titel</strong>: ‘.stripslashes($titel);’</p>‘;
$contenu .= ‘<p><strong>Vorname</strong>: ‘.stripslashes($vorname);’</p>‘;
$contenu .= ‘<p><strong>Nachname</strong>: ‘.stripslashes($nom);’</p>‘;
$contenu .= ‘<p><strong>Strasse</strong>: ‘.stripslashes($strasse1);’</p>‘;
$contenu .= ‘<p><strong>Strasse</strong>: ‘.stripslashes($strasse2);’</p>‘;
$contenu .= ‘<p><strong>Plz</strong>: ‘.$plz.’</p>‘;
$contenu .= ‘<p><strong>Ort</strong>: ‘.stripslashes($ort);’</p>‘;
$contenu .= ‘<p><strong>Land</strong>: ‘.stripslashes($land);’</p>‘;
$contenu .= ‘</br>‘;
$contenu .= ‘<p>—————————————-</p>‘;
$contenu .= ‘</br>‘;
$contenu .= ‘<p><strong>Email </strong>: ‘.$email.’</p>‘;
$contenu .= ‘<p><strong>Tel fixe </strong>: ‘.$tel.’</p>‘;
$contenu .= ‘<p><strong>Tel mobile </strong>: ‘.stripslashes($firma).’</p>‘;
$contenu .= ‘<p><strong>Commentaire</strong>: ‘.stripslashes($kommentar);’</p>‘;
$contenu .= ‘</br>‘;
$contenu .= ‘<p>—-FIN données inscription particulier—–</p>‘;
$contenu .= ‘</br>‘;
$contenu .= »; // Contenu du message de l’email (en XHTML)
// Envoyer l’email au club d’affaires
mail($destinataire, $sujet, $contenu, $headers);
// Fin du code pour traiter l’envoi de l’email
}
?>Je fais afficher
echo ‘nom_event = ‘ .$nom_event. ‘‘;
echo ’email_event = ‘ .$email_event. ‘‘;
en début de formulaire, mais je n’arrive toujorus pas à récupérer les bons nom d’évènement et adresse Email qui doivent s’afficher dans le formulaire. Cela me met toujours le dernier évènement.Ppourtant, là, j’ai placé les évènements, qui propose un formulaire d’inscription, dans un tableau, avant la boucel d’affichage. Mais je n’arrive toujorus pas à avoir le bon nom et Email de l’évènement correspondant.
Peut être que je recherche mal dans mon tableau…
:search:
22 mars 2015 à 15 h 00 min #998540pour passer des données au code qui va envoyer l’e-mail, tu peux par exemple mettre des balise « input type=hidden » dans le formulaire et tu récupèreras l’information dans le tableau $_POST
22 mars 2015 à 15 h 19 min #998541merci mathieu9512 pour ta réponse. Mon problème est complexe, ej n’arrive pas à l’expliquer.
J’ai des évènements dans mon wordpress sous forme de CPT, et vie ces CPT, je donne un nom et une adresse Email à chaque évènement.
Dans ma page accueil, je fais afficher mes évènements. Et je propose un formulaire d’inscription.
Pour l’affichage, j’utilise une boucle while.Dans ma page d’accueil, les données « nom » et « Email » pour chaque évènement sont corrects si je les fait afficher.
Mais si je les fait afficher dans le formulaire, dans ce cas, si je clique sur les formulaires de chaque évènements pour voir cet affichage, et bien je vois le nom et l’adresse Email correspondant au dernier évènement de la liste.Tout ce qui se passe après dans le formulaire et l’envoi d’Email sont bon.
Sauf que ça aura reçu (de la page d’accueil) un mauvais nom et une mauvaise adresse Email.J’ai donc essayé de mettre les données (nom et adresse Email) dans un tableau à part, faire une boucle supplémentaire à part, mais quand je fais appel à ce tableau apparemment, cela ne change rien (ou je le fais mal c’est possible). C’est pas toi qui me disait de me mettre aux tableaux parce qu’il y en a partout ? 🙂
Je continue à chercher……
:search:23 mars 2015 à 7 h 30 min #99854223 mars 2015 à 7 h 45 min #99854323 mars 2015 à 7 h 56 min #998544merci mathieu9512 d’être toujours là 😉
pour , c’est juste le texte qui s’affiche en plusieurs langue. c’est en gros « inscription en ligne » où la personne va cliquer et là où ça ouvrira la formulaire pour l’inscription.
Dans ton message 11, si j’ai bien compris, c’est le passage de variable du formulaire à l’email. c’est ça ?
Mais ce n’est pas ça mon problème (si j’ai bien compris ton message 11).J’ai des évènements dans mon wordpress sous forme de CPT, et vie ces CPT, je donne un nom et une adresse Email à chaque évènement.
Dans ma page accueil, je fais afficher mes évènements. Et je propose un formulaire d’inscription.
Pour l’affichage, j’utilise une boucle while.Dans ma page d’accueil, les données « nom » et « Email » pour chaque évènement sont corrects si je les fait afficher.
Mais si je les affiche dans le formulaire, dans ce cas, si je clique sur les formulaires de chaque évènements pour voir cet affichage, et bien je vois le nom et l’adresse Email correspondant au dernier évènement de la liste.Tout ce qui se passe après dans le formulaire et l’envoi d’Email sont bon.
Sauf que ça aura reçu (de la page d’accueil) un mauvais nom et une mauvaise adresse Email. -
AuteurMessages
- Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.