WordPressのプラグイン「MW WP Form」で作成したフォームから、SalesforceのWeb-to-リードへ情報を登録できるようにしました。
WordPressの管理画面でやったこと
MW WP Formのフォーム編集でname属性にoid、その値に識別子(xxxxxxxxxは置き換えてください)を入れたhiddenフィールドを書きます。
[mwform_hidden name="oid" value="xxxxxxxxx"]
functions.phpでやったこと
MW WP Formのアクションフック「mwform_after_send_mw-wp-form-xxx(xxxは置き換えてください)」とcurlコマンドで、入力された情報をWeb-to-リードへ送信。
コード例
function my_mwform_after_send($Data) {
$url = Web-to-リードの送信先のURL;
$dataArray = ((array)$Data);
$sendData = http_build_query($dataArray["\0*\0"."POST"], "", "&");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $sendData);
$output = curl_exec($ch);
curl_close($ch);
}
add_action('mwform_after_send_mw-wp-form-xxx', 'my_mwform_after_send');
入力情報が入ってる$Dataを配列に変換し、http_build_query()でクエリ文字列を生成。そして、curlコマンドで送信。
$Dataには入力された情報以外にも様々な情報が入ってます。必要な情報は配列に変換した$dataArray["*POST"]だけです。
以上で、MW WP Formで入力→確認→メール送信→完了という流れに影響を与えることなく、SalesforceのWeb-to-リードへ情報を登録することができました。