現在、PHPを勉強している者です。(ほぼ初心者)
乏しい知識ですが、よろしくお願いします。
WordPressのContact Form 7というプラグインを使って、簡単な求人応募フォームを作ろうとしています。
フォームが送信されると同時にフォーム情報を使ってユーザー登録するようにしています。
Contact Form 7バージョン 5.1.3
選択した求人によって送信されるメールアドレスを別けるようにしています。
パイプを使って送信先を選択可能に
function filter_wpcf7_form_tag( $scanned_tag, $replace ) { if(!empty($scanned_tag)){ //nameで判別 if($scanned_tag['name'] == 'kyujin'){ //カスタム投稿タイプの取得 global $post; $args = array( 'posts_per_page' => -1, 'post_type' => 'post', 'order' => 'DESC', ); $customPosts = get_posts($args); if($customPosts){ foreach($customPosts as $post){ setup_postdata( $post ); //求人社名 $title = get_field('company'); //メールアドレス $mail = 'sample@mail.com'; //パイプ $scanned_tag['raw_values'][] = $title . '|' . $mail; } $pipes= new WPCF7_Pipes($scanned_tag['raw_values']); //$scanned_tagに情報を追加 $scanned_tag['values']= $pipes->collect_befores(); $scanned_tag['pipes']= $pipes; } wp_reset_postdata(); } } return $scanned_tag; }; add_filter( 'wpcf7_form_tag', 'filter_wpcf7_form_tag', 11, 2 );
これに関してはフォーム表示、送信される情報は正常に動いています。
function wpcf7_insert_user($contact_form) { $id = $contact_form->id(); if($id == 47) { //送信情報を取得 $submission = WPCF7_Submission::get_instance(); if($submission) { $formdata = $submission->get_posted_data(); $userdata = array( 'kyujin' => $formdata['kyujin'], 'simei' => $formdata['simei'], 'furigana' => $formdata['furigana'], 'seibetu' => $formdata['seibetu'], 'seinengappi' => $formdata['seinengappi'], ); //ユーザーデータ登録 $user_id = wp_insert_user($userdata); //登録に成功した場合 if(!is_wp_error($user_id)) { //ユーザーメタデータ登録 update_user_meta($user_id, 'kyujin', $formdata['kyujin']); update_user_meta($user_id, 'simei', $formdata['simei']); update_user_meta($user_id, 'furigana', $formdata['furigana']); update_user_meta($user_id, 'seibetu', $formdata['seibetu']); update_user_meta($user_id, 'seinengappi', $formdata['seinengappi']); } } } } add_action('wpcf7_mail_sent', 'wpcf7_insert_user', 10, 1);
フォーム情報を使ったユーザー登録の際に、求人$formdata['kyujin']
の値が「求人社名$title
」で登録されず、「メールアドレス$mail
」で登録されてしまいます。
どうすれば、求人$formdata['kyujin']
の値に「求人社名$title
」を登録できるのかご教授いただきたいです。よろしくお願いします。
ちなみに、フォーム送信時に返信されるメールは[_raw_kyujin]を使ってで正常に求人社名で表示されています。
以下をためしてみましたが正常に動いてくれませんでした。
$formData['kyujin'][1];
メールアドレスの頭文字1が登録
$formData['_raw_kyujin'];
空の状態で登録
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/28 00:11