Contact Form 7 Add Password field

このプラグインは、Contact Forum 7 プラグインへ password 項目を追加します。
例. [password example] (オプション) / [password* example] (必須)

Contact Form 7 Add Password field

最新

  • 2021.11.21: 2.92公開

ここでは 2.9 で実装したフックを使った Validation チェックについての紹介をします。

フックの使い方

以下、サポートしているフックを テーマのための関数「functions.php」 内でどのように記述するかの例をあげておきます。 フックを利用すると fucntions.php やプラグインから、本プラグインの Validationチェックを変更、追加できます。$_POST や $_GET 等、フォームデータを取得するときには、無害化(エスケープ)の必要性を常に考えてください。

例1. WordPress のログインユーザーのパスワードと同一かチェックする (2021-07-21)

Contact Form 7 の password フィールドに入力したデータと、とWordPress のログインユーザーのパスワードが一致するかどうかのチェックをします。

[password* password2]

のように設定しているとします。
比較するユーザーは、 sample ユーザーとします。

WordPress のパスワードは、Hash化された保存されますが、WordPress 独自のものと、MD5でハッシュ化されたものなど複数あります。そこは、生パスワードと Hash化されたパスワードのチェック関数「wp_check_password」 が吸収してくれます。

必要なこと
1. 入力したフォームからパスワードデータを取得($_POST[‘password2’])
2. WordPress の sample ユーザーの ハッシュ化されたパスワードとIDを取得

  1. パスワードのチェック

テーマの functions.php の記載例

下記の例では、$_POSTで取得したデータを比較しかしていないこと、パスワードは記号も入ることから無害化(エスケープ)はしていない

以下、Contact Form 7を使ったTiPSです。

WordPress へユーザー登録する (2021-07-22)

下記の例は、ユーザー名、パスワード、メールアドレスを Contact Form 7 および本プラグインを使って入力させた上で、送信をおした後に Contact Form 7 の  wpcf7_mail_sent フックを利用して WordPress へユーザー登録する仕組みです。既存ユーザーがいる、登録した場合のエラーメッセージ、その他各種設定は置き換える必要があります。

そのため安易の下記をコピー&ペーストして使わず、必ず設定を見直してください。
*特に安易に設定すると、勝手にWordPressのユーザーを作成できてしまうので注意が必要です。安易なパスワードを設定されないように工夫する(([password* password2 password_min:12 password_strength:4]等)など考えてください。あくまで下記はもっとも単純にしたコード例にすぎないことを覚えておいてください。

以下は、テーマの functions.php に追加することを想定したコードです。

  • ユーザー名: Conctact Form 7 の[text* your-name] から取得
  • パスワード: 本プラグインを活用し [password* password2]から取得
  • メールアドレス: Conctact Form 7 の[text* your-email] から取得
  • ユーザー権限: contributor ( https://wordpress.org/support/article/roles-and-capabilities/ の Summary of Roles参照。設定時はすべて小文字にすること。

以上の設定でデータを入力してもらったと仮定します。

2021年7月21日作成