セールスフォース(salesforce)のPardotとMW WP Formを連携する

実現したいこと

・MW WP FORMで確認画面のあるFORMを作成
・そのフォームにPardotを連携させる
 

やることをまとめる

・こちらのサイト「Pardotのフォームハンドラーについて&設定方法」の「1.Pardotのフォームについて」に記載がありますが、今回はMW WP FORMで作成したフォームにpardotを連携させたいので、「フォームハンドラー(Form Handlers)」という方法をとる
 
・Pardotの設定はクライアントが行うため、私のほうでは上記サイトの「3.フォームハンドラーを設定する(フォーム側)」と「2.フォームハンドラーを設定する(Pardot側)」でクライアントが割り当てた「External Field Name」というものをフォーム側のinputのnameに割り当てる
(フォームですでに設定済のnameをpardotに割り当てる方法でも良く、そこはクライアントとの進め方によると思います。)

 

実際の作業

①MW WP Formの編集画面にて、Pardotの「External Field Name」に設定されている値をフォーム側のnameに設定します。

 

Formの項目のnameのすべてをPardotの設定と合わせます。
 

②確認画面のFormタグのaction先を変更する

・上記参考サイトの「3.フォームハンドラーを設定する(フォーム側)」に記載があるように、formタグのaction先に「Endpoint URL」というものを設定しなくてはいけません。
 
・そこでやったことは、「do_shortcode_tag」のフックを使って、formタグのURLの書き換えです。
▼functions.phpに記載します。

※$attr[‘key’] ) && ‘912’の「912」というところは、自分が設定したMW WP Formのフォーム番号を入れてください。
※$_SERVER[‘REQUEST_URI’] == ‘/contact/confirm/’というところで、自分のフォームの確認画面のURIを入れてください。(この記述があることで、フォームの入力画面ではaction先はデフォルトのまま、確認画面のaction先のみ変更することができました。)
※$output = からのコードで、元のformタグを書き換える指定をしています。「指定のEndpoint URL」という記載のところに、Pardotで割り振られた「Endpoint URL」を記載します。

これで基本は完了です。
ただ、実際に私が作成したMW WP Formで動きを試してみたところ、最後完了画面に飛ばないという事象が起きました。

解決方法は、こちら「https://quartet-communications.com/info/other-ads/64194#h-20」のページの「成功した場所」の記載でした。
私のほうで作成したフォームの完了画面のURL「https://●●/contact/complete/」を、このpardot側での「成功した場所」という箇所にクライアントに設定してもらったところ、上手く動くようになりました。

自動返信、管理者宛てのメール、また無事パードットから通知受信が来たとクライアントの確認もとれたので、これにてOKだと思います!