2016-12-07 3 views
1

J'ai un formulaire que j'essaie d'avoir rediriger vers http://www.example.com après avoir envoyé un email avec succès. J'ai essayé différentes approches, y compris on_sent_ok dans les paramètres supplémentaires, ainsi queFormulaire de contact 7 ne pas rediriger sur le courrier électronique envoyé

if(jQuery('.wpcf7-mail-sent-ok').length > 0) 
window.location.replace("http://stackoverflow.com"); 

dans mon JavaScript, mais cela ne semble pas fonctionner aussi bien.

Modifier: J'ai oublié de mentionner que lorsque l'utilisateur clique sur Soumettre, je fais un empêchement par défaut afin de faire quelques calculs et générer un PDF. Une fois que tout est fait, je fais

$("form.wpcf7-form").unbind('submit').submit(); 

pour permettre la soumission à se produire. Cela pourrait-il causer des problèmes avec la redirection?

+0

Je ne sais pas quoi que ce soit à propos Formulaire de contact 7, mais il ne devrait pas avoir un paramètre pour rediriger après la soumission? J'ai trouvé ceci dans les docs: http://contactform7.com/redirecting-to-another-url-after-submissions/. ** Edit: ** oh nvm, je viens de remarquer que vous avez dit que cela ne fonctionne pas. –

+1

Etes-vous sûr d'utiliser correctement le format de l'on_sent_ok? Il devrait être 'on_sent_ok:" location = 'http://stackoverflow.com/'; "' en fonction du lien que j'ai posté. –

+0

Je viens de l'essayer, malheureusement cela n'a pas fonctionné – mikepsb

Répondre

2

La forme de contact 7 a fait un appel ajax. Après le succès, l'élément est inséré. Ensuite, vous pouvez vérifier si l'élément existe:

jQuery(document).ajaxComplete(function() { 
    if (jQuery('.wpcf7-mail-sent-ok').length) { 
    alert(1); 
    //window.location.replace("http://stackoverflow.com"); 
    } 
}); 
+0

Cela a fonctionné parfaitement, merci beaucoup! J'ai résolu mon problème depuis quelques jours. – mikepsb

0

Eh bien, peut-être que j'écris en retard, mais ce code va certainement faire l'affaire. (Si vous travaillez dans wordpress). Je l'utilise jusqu'à présent et ça fonctionne normalement. N'oubliez pas de placer ce code dans le fichier de vos fonctions et n'oubliez pas que vous devez utiliser l'un ou l'autre, pas les deux ...!

add_action('wp_head', 'RedirectsCF7'); 
// Start of function. 
function RedirectsCF7() { 

    if(is_page("contact-page-or-whatever-page-name-is")) { 

    echo "<script>document.addEventListener('wpcf7mailsent', function(event) {location = 'https://www.google.com/';}, false);</script>"; 

    } 
} 

// Or simply add this code to all pages, like this. 
    if(!is_admin()) { 

    echo "<script>document.addEventListener('wpcf7mailsent', function(event) {location = 'https://www.google.com/';}, false);</script>"; 

    } 
} 

Référence here