- WordPress :6.1
- Statut : non résolu
- Ce sujet contient 9 réponses, 2 participants et a été mis à jour pour la dernière fois par
Timama, le il y a 8 années et 6 mois.
-
AuteurMessages
-
9 mars 2015 à 13 h 34 min #529009
Bonjour,
<b>Ma configuration WP actuelle</b>
<b>- Version de WordPress</b> : 4.1.1
<b>- Version de PHP/MySQL</b> :
<b>- Thème utilisé</b> : le mien
<b>- Extensions en place</b> :
<b>- Nom de l’hebergeur</b> : STARTO
<b>- Adresse du site</b> :<b>Problème(s) rencontré(s)</b> :
Bonjour,
J’ai une liste de membres. Je voudrais envoyer un Email à un membre quand je modifie mon paramètre « admission »
(je le passe de 0 à 1 par exemple ce qui veut dire qu’il fait partie du club maintenant) et seulement quand je le passe de 0 à 1.J’ai créé la fonction (d’envoi d’Email..ça ça fonctionne… je passe les détails)
<div class= »bbcode_code »>
<div class= »bbcode_code_head »>Code:</div>
<div class= »bbcode_code_body » style= »white-space: pre; »>function envoimail_admission(){
$destinataire1 = ‘mail@example.com’;
$sujet1 = ‘données’;
$contenu1 = »;
$contenu1 .= ‘Bonjour, vous avez reçu un message à partir du site web du **** .
‘;
$contenu1 .= ‘Login: ‘.$identifiant.’
‘;
$contenu1 .= ‘Mot de passe: ‘.$mot_de_passe.’
‘;
$contenu1 .= »; // Contenu du message de l’email (en XHTML)mail($destinataire1, $sujet1, $contenu1, $headers); }
add_action( ‘mail_admission’, ‘envoimail_admission’ );
</div>
</div>
Maintenant, je ne sais pas quand/où écrire le do_action.
J’ai tenté
<div class= »bbcode_code »>
<div class= »bbcode_code_head »>Code:</div>
<div class= »bbcode_code_body » style= »white-space: pre; »>if ($_POST[‘particulier_admission’] == 1)
{
do_action( ‘mail_admission’ );
}</div>
</div>
Mais forcément, dès que je mets à jour le membre, pour lui la paramètre = 1 et il envoi le mail à chaque fois.Avez vous eu cette expérience?
merci pour votre aide
Timama
-
Ce sujet a été modifié il y a 7 mois par
C_Lucien. Raison : Anonymisation à la demande de l'auteur
9 mars 2015 à 13 h 42 min #915895comme c’est un button radio que j’utilise pour la variable d’admission, est ce que je peut lancer le do_action au click ?
à votre avis?
9 mars 2015 à 13 h 50 min #915896okay, j’ai fait ça et cela à l’air de fonctionner (bon le truc c’est que je ne sais pas comment mettre un champs personnalisé avec un button radio, ce qui fait que j’ai les bouton un peu en vrac….et je ne sauve pas la valeur du bouton mais bon …ça c’est une autre question
http://www.wordpress-fr.net/support/viewtopic.php?pid=550476#p550476Donc, ce qui à l’air de fonctionner, c’est :
<td> <input type="radio" name="particulier_admission" value="1" id="oui" onchange=" » /> <label class="oui" for="oui">oui</label><br /></td>
<td> <label class="non" for="non">non</label><br /></td>Je fait mon do_action comme ça : onchange= »
Cela vous semble t’il optimal ?
merci pour vos conseils
10 mars 2015 à 10 h 14 min #915894bon, alors en fait, cela ne fonctionne pas 😉 enfin, presque pas 😉
J’essai toujours d’envoyer un Email à un membre quand je modifie mon paramètre « admission »
(je le passe de 0 à 1 par exemple ce qui veut dire qu’il fait partie du club maintenant) et seulement quand je le passe de 0 à 1.
Avec des bouton type radio (oui, non)si je met donc
add_action( ‘mail_admission’, ‘envoimail_admission’ );
function envoimail_admission(){
envoi du mail …….
}j’ai testé donc avec
<th>Admission du membre particulier par le club </th>
<td>
<input type="radio" name="particulier_admission" value="1" id="oui"
onchange= » « />
<label class="oui" for="oui">oui</label>
<br />
<input type="radio" name="particulier_admission" value="0" id="non"
/>
<label class="non" for="non">non</label>
<br />
</td>alors, cela m’envoie bien un Email, mais tout le temps : à chaque mise à jour du profil ou même si je met pas 1…
avez vous une idée sur le sujet ?
merci pour votre aide10 mars 2015 à 11 h 09 min #915892Timama wrote:Je fait mon do_action comme ça : onchange= »cela ne va pas du tout, j’ai l’impression que tu mélanges les différentes étapes de création de la page
1 : le navigateur envois une requête HTTP au serveur
2 : le serveur exécute le code PHP sur le serveur et renvoie les données (code HTML et JavaScript)
3 : le navigateur affiche le code HTML et exécute le code JavaScriptdonc le « do_action mail_admission » se fait à l’étape 2, quand la page n’est même pas encore arrivée au navigateur
si tu veux faire une action en PHP au moment de l’évènement « onchange », il faudrait que cet évènement lance une « requête AJAX » qui elle lancera un script en PHP
tu vois mieux dans quel ordre se font les choses ?dans ton cas, tu veux détecter quand l’état « admission » change mais il change seulement au moment où l’information est enregistrée en base de données avec « update_usermeta » dans le code PHP.
donc c’est à cet endroit qu’il faut comparer la nouvelle et l’ancienne valeur et envoyer un e-mail10 mars 2015 à 11 h 24 min #915891damned !! je savais bien que c’était pas bon ce que je faisais….
okay, tu as raison, j’ai zappé des étapes…merci beaucoup mathieu9512 …
donc, requête ajax qui lance le script « comparaison de l’ancienne valeur à la nouvelle dans usermeta et envoi de mail si et seulement si la nouvelle valeur = 1 »
c’est parti :search:
10 mars 2015 à 11 h 29 min #915893non tu n’as pas besoin d’AJAX, mais juste de code avant le « update_usermeta »
$ancienneValeur = get_the_author_meta( ‘particulier_admission’, $user_id );
$nouvelleValeur = $_POST[‘particulier_admission’];
if ($ancienneValeur !== $nouvelleValeur) {
// envoi e-mail
}
update_usermeta( $user_id, ‘particulier_admission’, $_POST[‘particulier_admission’] );10 mars 2015 à 11 h 35 min #915890heureusement que tu m’as arrêté dans ma lancée LOL
merci beaucoup mathieu9512, c’est vraiment sympa…. je teste ça tout de suite 😉
10 mars 2015 à 11 h 42 min #915889okay, ça fonctionne …. j’ai juste ajouté une condition
if ($ancienneValeur !== $nouvelleValeur && $nouvelleValeur==1) {
// envoi e-mail
}Sinon, cela m’envoi le mail dans les 2 cas…. génial !
merci encore beaucoup mathieu9512 😉30 mars 2015 à 5 h 48 min #915897✅
-
Ce sujet a été modifié il y a 7 mois par
-
AuteurMessages
- Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.