やりたいこと
既存のMW WP Formで作成したフォームに登録された情報を自動でAccount Engagementのプロスペクトとして登録したい
参考
https://kohimoto.com/labo/study/system/6483/
https://webmemolog.com/web/20230506_1027
詰まるまでにやったこと
上記の記事を参考にAccount Engagementでフォームハンドラーを作成。
このときの注意点としては、
- フォームのname属性を正確にAccount Engagementの名前属性に転記する
- Account Engagmementで必須項目でないものが必須項目チェックされていないか確認する
プロスペクト作成時のエラーは通知されないとのサポート回答もあり。特に上記2点は引っ掛かりやすい。
詰まったところ
フォームに実際入力すると、完了ページに遷移せず入力画面に戻される。
URLの遷移を見て、エラー発生場所はなんとなく把握。
WPフォーム確認画面
▽
Account Engagementへの情報送信
▽ ←どうもここの遷移が上手く動かず、MW WP Formがリダイレクトを繰り返しフォーム入力画面に戻されているようだった。
WPフォーム完了画面
このエラーが起きた時はプロスペクトだけ作成され、WordPressのデータベースには登録されていない。MW WP Formからの自動返答メールも発出されていない。
シークレットモードでは問題なくフォーム入力完了・プロスペクト作成・自動返答メール受信ができる。
解決
先例も少なくどうにも詰まっていたが、function.phpの記述を変更することで解決した。
詰まっていた時、function.phpには下記コードを記述していた。
elseif ( 'mwform_formkey' == $tag && isset( $attr['key'] ) && 'フォームID' == $attr['key'] && $_SERVER['REQUEST_URI'] == '確認画面URI' ) {
$output = str_replace(
'<form method="post" action="" enctype="multipart/form-data">',
'<form action="https://go.pardot.com/l/XXX/XXXX/XXX" method="post">',
$output
);
}
この時の<form action="https://go.pardot.com/l/XXX/XXXX/XXX" method="post">
内にあるURLのドメインを、汎用のgo.pardot.com
ドメインからカスタムしたトラッカードメインに変更したところ解決。
何故これで解決するのか、理由まではわからなかった。
仮説
トラッカードメインがWEBサイトドメインの子ドメインだったためエラーが起きなくなったのだろうか?