Contact Form 7 - Executarea codului DUPĂ trimiterea emailului

30 iul. 2015, 16:38:54
Vizualizări: 72.2K
Voturi: 9

Am reușit să execut cod ÎNAINTE de trimiterea emailului, dar am nevoie și de o acțiune care să se întâmple DUPĂ ce a fost trimis.

Am încercat wpcf7_after_send_mail dar fără succes...

Orice ajutor în această privință ar fi foarte apreciat.

4
Comentarii

Nu poți folosi setările adiționale din configurațiile plugin-ului pentru formularul de contact? - http://contactform7.com/additional-settings/

Andy Andy
30 iul. 2015 16:51:08

Tocmai citeam despre asta în timp ce caut pe Google, dar nu știu unde sunt acele setări. Permite acest lucru redirecționarea unui anumit formular? Am nevoie doar ca un formular specific să fie redirecționat, nu toate formularele.

Menno van der Krift Menno van der Krift
30 iul. 2015 16:58:56

Poți încerca să aplici acest tip de abordare ?

birgire birgire
30 iul. 2015 17:00:03

Ahh tocmai l-am găsit și funcționează perfect :D Wordpress-ul meu este în olandeză, de aceea nu am putut găsi câmpurile adiționale atât de ușor xD

Menno van der Krift Menno van der Krift
30 iul. 2015 17:05:33
Toate răspunsurile la întrebare 3
5
17

Pentru cei care ajung aici în căutarea unei modalități de a rula cod PHP după trimiterea email-ului, Contact Form 7 are un hook wpcf7_mail_sent exact pentru asta. Utilizarea arată cam așa:

// ...în functions.php
add_action('wpcf7_mail_sent', function ($cf7) {
    // Rulează cod după trimiterea email-ului
});

Există și wpcf7_mail_failed, care vă permite să interceptați momentul în care email-ul nu este trimis.

5 ian. 2017 16:10:19
Comentarii

Nu a funcționat pentru mine.

Pons Pons
1 mar. 2017 18:31:30

Ce versiune de CF7 folosești? Eu am făcut asta să funcționeze folosind versiunea 4.6.1 cu WordPress 4.7.2

adamtomat adamtomat
2 mar. 2017 11:02:36

Cred că am găsit eroarea în codul meu: am încadrat apelul add_action cu o verificare has_action. Dar probabil când codul meu (într-un plugin) este executat, acțiunea wpcf7_mail_sent nu există încă. Eliminarea verificării has_action a făcut să funcționeze.

Pons Pons
3 mar. 2017 11:24:31

Ce reprezintă acest parametru ($cf7)? Am nevoie de el?

Kevin.a Kevin.a
15 mar. 2017 12:48:48

Este o instanță a clasei WPCF7_ContactForm, care conține o serie de informații despre formularul trimis.

De exemplu, poți obține ID-ul formularului cu $cf7->id(). S-ar putea să nu ai nevoie de el, caz în care poți să îl omiți până când apare necesitatea.

Iată un link către clasa din GitHub în caz că vrei să vezi ce funcționalități are: https://github.com/wp-plugins/contact-form-7/blob/master/includes/contact-form.php

adamtomat adamtomat
16 mar. 2017 11:05:08
3

EDITARE:

Vă rugăm să rețineți că începând din 2017 'on_sent_ok' este depreciat. Aceasta înseamnă că codul dumneavoastră va înceta să funcționeze la un moment dat în viitor (cel mai probabil până la sfârșitul anului 2017). Soluția recomandată este utilizarea directă a ascultătorilor de evenimente DOM. De exemplu, dacă ați folosit:

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

Ar trebui să înlocuiți cu:

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

Codul JavaScript poate fi plasat, de exemplu, în subsolul paginii dumneavoastră.

RĂSPUNS ORIGINAL:

Am rezolvat. În setările specifice formularului, accesați fila pentru câmpuri adiționale. Introduceți următoarele: on_sent_ok: "location.replace('http://www.website-redirect.com');"

Funcționează perfect acum. Sper că acest lucru va ajuta și alți dezvoltatori în viitor.

imagine cu setările formularului

Știu că imaginea este în olandeză ... dar nu o puteți rata datorită liniilor roșii groase din jurul numelui filei.

30 iul. 2015 17:07:04
Comentarii

cum salvăm un cookie folosind Tab-ul Adițional? Am încercat asta on_submit: "ooid = document.getElementById('customer_orderid').value;document.cookie = 'myorderiiid='+ooid+'; expires=Thu, 18 Dec 2025 12:00:00 UTC; path=/';"; dar niciun cookie nu a fost salvat.. DE CE?

Mostafa Mostafa
13 apr. 2017 09:29:53

Vă rugăm să rețineți că aceasta a fost o întrebare de acum DOI ANI...

Menno van der Krift Menno van der Krift
30 oct. 2017 12:12:33

Îmi pare rău, nu aveam suficientă reputație pentru a o adăuga ca comentariu la acea vreme, așa că singura modalitate de a include această informație a fost prin editare.

Amade Amade
23 feb. 2018 13:15:40
0

Utilizarea funcției `on_sent_ok` așa cum este explicat la contactform7.com/additional-settings poate fi foarte utilă pentru a adăuga JavaScript simplu precum redirecționarea către o altă pagină.

Totuși, această metodă este destul de predispusă la eșecuri din cauza conflictelor JavaScript cu tema WordPress curentă sau cu unul dintre celelalte plugin-uri pe care le utilizați.

`on_sent_ok` este ultimul lucru care rulează în Contact Form 7, așa că orice conflict JavaScript poate împiedica finalizarea acestuia.

Ca alternativă, Contact Form 7 are un număr mare de hook-uri care sunt enumerate la http://hookr.io/plugins/contact-form-7/. Acestea pot oferi o soluție mai precisă și mai robustă.

1 aug. 2015 08:42:36