【WordPress】MW WP FormからSalesforceのWeb-to-リードに情報を登録したい

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-リードへ情報を登録することができました。

参考サイト