contact form7で送信時に別サーバへデータ送信
contact form7でフォーム送信時に別サーバーでフォーム内容をPOST送信したかった。以下に方法をメモ。
送信側
WordPressのテーマフォルダ内にあるfunctions.phpに以下を追記する。
add_action('wpcf7_mail_sent', 'gloc_wpcf7_insert_post', 10, 1); function gloc_wpcf7_insert_post(){ $submission = WPCF7_Submission::get_instance(); if ( $submission ) { $formdata = $submission->get_posted_data(); //var_dump($formdata); //$formdataの中にフォーム送信内容が入る $url = 'http://test.com/get.php'; //受け取り先のURL //$formdataのkeyは適宜書き換える $query = array( 'name' => $formdata['name'], 'mail' => $formdata['mail'], 'pass' => $formdata['pass'], ); //URLエンコードされたクエリ文字列を生成 $content = http_build_query($query, '', '&'); //ヘッダ設定 $header = array( 'Content-Type: application/x-www-form-urlencoded', //form送信の際、クライアントがWebサーバーに送信するコンテンツタイプ 'Content-Length: '.strlen($content) //メッセージ本文の長さ ); //ストリームコンテキスト設定 $context = array( 'http' => array( 'ignore_errors' => true, //ステータスコードが失敗を意味する場合でもコンテンツを取得 'method' => 'POST', //メソッド。デフォルトはGET 'header' => implode("\r\n", $header), //ヘッダ設定 'content' => $content //送信したいデータ ) ); $res = file_get_contents($url, false, stream_context_create($context)); } }
受信側
今回はデータを受け取ってデータベースに格納するという想定。以下ファイルを設置する。
header('Access-Control-Allow-Origin: *'); //クロスドメイン対策 $msg = 0; if( $_POST['name'] && $_POST['mail'] && $_POST['pass'] ){ $sql = ' INSERT INTO test_table (name, mail, pass, regist) VALUES ( "'.$mysqli->real_escape_string($_POST['name']).'", "'.$mysqli->real_escape_string($_POST['mail']).'", "'.$mysqli->real_escape_string($_POST['pass']).'", now() ) '; $row = $mysqli->query($sql); $msg = ($row) ? $mysqli->insert_id : 0; } echo $msg;
その他
別サーバーかつ受取側がHTTPSだったので、そのあたりで躓くかと思いきや特に問題は発生しなかった。
参考サイト
関連記事
-
-
WordPressでスケジュール実行される日時を調べる方法
WordPressであるシステムを実装し、その際に毎日1回スケジュール実行(WP ...
-
-
WordPressの管理画面で記事一覧にアイキャッチ画像を表示
WordPressの管理画面で記事一覧にアイキャッチ画像を表示させる方法のメモ。 ...
-
-
さくらvpsにワードプレスを導入
さくらvpsで立ち上げたサーバーにWordPressを導入した際のメモ。 ①ダウ ...
-
-
WordPressで閲覧者にテーマを変更させるプラグイン
「新規サイトを○○みたいなイメージでWordPressのテーマを見繕って欲しい」 ...
-
-
ACFでセレクトメニューを動的に生成
WordPressでカスタムフィールド設定用のプラグインAdvanced Cus ...
-
-
WordPressで固定ページに記事一覧を表示させるプラグイン
WordPressで固定ページ編集時にショートコードを書くことで、記事一覧を表示 ...
-
-
WordPressで記事検索時に投稿ID順にならない場合
WordPressでサイト上から記事検索を行った場合、通常であれば投稿IDが新し ...
-
-
WordPressのWP-Mail-SMTPプラグインが動かない
PHPのバージョンを下げてからWordPressで外部メールサーバが使えるWP- ...
-
-
youtubeの検索結果をWordPressに自動投稿する方法
youtubeから特定のキーワードで検索した動画をWordPressに自動で投稿 ...
-
-
WordPressでタグやカテゴリの複数検索
WordPressでカテゴリのアンド検索や、タグとカテゴリの同時検索を行いたかっ ...
- PREV
- contact form7で送信数を測定
- NEXT
- Plesk12の設定方法