web-dev-qa-db-ja.com

お問い合わせフォーム7 - メール送信後のコード実行

私はメールを送信する前に何かをする方法を考え出しました、しかし私はそれが送信された後に起こる行動も必要です。

wpcf7_after_send_mailを試しましたが、成功しませんでした...

問題についての任意の助けは大歓迎です。

3

編集:

2017年時点で 'on_sent_ok'は非推奨 です。これは、あなたのコードが将来のある時点で機能しなくなることを意味します(おそらく2017年末までに)。推奨される解決策は、DOMイベントリスナーを直接使用することです。たとえば、次のように使用したとします。

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

あなたはそれを置き換える必要があります:

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

JavaScriptコードは次のように配置できます。あなたのページのフッターに。

元の答え:

わかりました。特定のフォーム設定で、追加フィールドタブに進みます。以下を入力してください:on_sent_ok: "location.replace('http://www.website-redirect.com');"

それは今私にとって魅力的なように働いています。これが将来他の開発者にも役立つことを願っています。

enter image description here 

私はその画像がオランダ語であることを知っています...しかしタブ名の周りに 大きな赤い線 を付けて見逃すことはできません。

5

Eメールの送信後にPHPコードを実行する方法を探しているなら、Contact Form 7にwpcf7_mail_sentフックがあります。使い方は少し似ています。

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

wpcf7_mail_failedもあり、これはEメールが失敗したときにフックすることを可能にします。

7
adamtomat

contactform7.com/additional-settings で説明されているようにon_sent_okを使用すると、 のような単純なJavaScriptを追加する場合に非常に役立ちます

ただし、現在のWordPressテーマまたは他の使用しているプラ​​グインのいずれかとJavascriptが競合しているため、失敗する傾向があります。

on_sent_okはContact Form 7で最後に実行されるものなので、干渉するJavascript Conflictが発生するとこれを完了できなくなる可能性があります。

別の方法として、Contact Form 7には http://hookr.io/plugins/contact-form-7/ にリストされている多数のフックがあります。これらは、より的を絞った、より堅牢なソリューションを提供できます。

2
buzztone