ContactForm7 送信内容からユーザーを自動登録

「Contact Form 7」でフォーム送信時の内容からユーザー登録を自動でおこなう方法を紹介したいと思います。

フォームから送信された内容を利用してユーザー登録をが可能。登録できる内容はメールアドレスやパスワードなどの必須項目はもちろんですが、カスタムフィールドも対応可能で、問い合わせフォームからの情報をもとに自動でユーザー登録したい場合に便利なのでぜひ利用してみてください。

スポンサードサーチ

functions.phpにコードを追加

functions.php
//フォーム送信時にユーザー登録
function wpcf7_insert_user($contact_form) {
  //送信情報を取得
  $submission = WPCF7_Submission::get_instance();
  if($submission) {
    $formdata = $submission->get_posted_data();
    $userdata = array(
      'user_login'    => $formdata['your-login'],
      'user_email'    => $formdata['your-email'],
      'user_pass'     => $formdata['your-password']
    );
    $user_id = wp_insert_user($userdata);
  }
}
add_action('wpcf7_mail_sent', 'wpcf7_insert_user', 10, 1);

Contact From 7でフォーム作成

Contact Form 7
<table class="form-table">
  <tbody>
    <tr class="table_name">
      <th>ログイン名</th>
        <td>[text* your-login id:your-login class:your-login placeholder "Login Name"]</td>
    </tr>
    <tr class="table_company">
      <th>E-mail</th>
        <td>[text* your-email id:your-email class:your-email placeholder "email@sample.com"]</td>
    </tr>
    <tr class="table_address">
      <th>Password</th>
        <td>[text* your-password id:your-password class:your-password placeholder "******"]</td>
    </tr>
  </tbody>
</table>
<p class="check">上記の内容でよろしければ送信ボタンを押してください。</p>
<div class="submit">[submit class:btn "送信する"]</div>