web-dev-qa-db-fra.com

Formulaire de contact 7 - Exécuter le code APRÈS l'envoi du courrier

J'ai compris comment faire quelque chose AVANT d'envoyer le courrier, mais il me faut aussi une action APRÈS l'envoi.

J'ai essayé wpcf7_after_send_mail mais sans succès ...

Toute aide en la matière serait grandement appréciée.

3
Menno van der Krift

EDIT:

Veuillez noter qu'à partir de 2017 'on_sent_ok' est obsolète . Cela signifie que votre code cessera de fonctionner à un moment donné dans l'avenir (probablement d'ici la fin de 2017). La solution recommandée consiste à utiliser directement les écouteurs d'événements DOM. Par exemple, si vous avez utilisé:

on_sent_ok: "ga( 'send', 'event', 'Contact Form', 'submit' );"

Vous devriez le remplacer par:

document.addEventListener( 'wpcf7mailsent', function( event ) {
    ga( 'send', 'event', 'Contact Form', 'submit' );
}, false );

Le code JavaScript peut être placé, par exemple. dans le pied de page de votre page.

RÉPONSE ORIGINALE:

Ok l'a compris. Dans les paramètres de formulaire spécifiques, accédez à l'onglet Champs supplémentaires. Tapez ce qui suit: on_sent_ok: "location.replace('http://www.website-redirect.com');"

Cela fonctionne comme un charme pour moi maintenant. J'espère que cela aidera également d'autres développeurs à l'avenir.

 enter image description here 

Je sais que l'image est en néerlandais ... mais vous ne pouvez pas la manquer avec le grandes lignes rouges autour du nom de l'onglet.

5
Menno van der Krift

Pour tous ceux qui débarquent encore ici à la recherche d'un moyen d'exécuter du code PHP après l'envoi de l'e-mail, le formulaire de contact 7 dispose d'un crochet wpcf7_mail_sent pour cela. L'utilisation ressemble un peu à:

// ...in functions.php
add_action('wpcf7_mail_sent', function ($cf7) {
    // Run code after the email has been sent
});

Il existe également wpcf7_mail_failed, qui vous permet de vous connecter lorsque le courrier électronique échoue.

7
adamtomat

Utiliser on_sent_ok comme expliqué à contactform7.com/additional-settings peut être très utile pour ajouter du JavaScript simple comme rediriger vers une autre page .

Cependant, il est plutôt sujet aux échecs en raison de conflits Javascript avec votre thème WordPress actuel ou l'un des autres plugins que vous utilisez.

on_sent_ok est la dernière chose qui fonctionne dans le formulaire de contact 7, donc tout conflit Javascript qui interfère peut empêcher cette opération de se terminer.

En guise d'alternative, le formulaire de contact 7 comporte un grand nombre de crochets répertoriés dans http://hookr.io/plugins/contact-form-7/ . Ceux-ci peuvent fournir une solution mieux ciblée et plus robuste.

2
buzztone