実現したいこと
Wordpressでコンタクトフォーム7の電話番号の初めの数字が090か080の人は送信ができ、それ以外の人はできないようにしたいです。
ここに質問の内容を詳しく書いてください。
functions.phpにバリテーションを追加する必要があるというところまでは来たのですが、細かい記述やフォームへの反映仕方が分かりません。
自分でコードを書けないのでネット見つけた参考の記述をもとにして作成しています。
発生している問題
couponの個所を統一すれば反映さると思ったのですが、
判定の際の$coupon != '123456'部分が123456ではないと反映されません。
エラーメッセージ
該当のソースコード
ネットにあったソースコード(クーポンを例にしているのでクーポンの話になってます)
<?php add_filter( 'wpcf7_validate', 'kaiza_wpcf7_validate', 11, 2 ); function kaiza_wpcf7_validate( $result, $tags ) { foreach ( $tags as $tag ) { $name = $tag['name']; if ( $name == 'coupon' ) { $coupon = (int) $_POST[ $name ]; if ( $coupon != '123456' ) { $result->invalidate( $name, 'クーポン番号が間違っているため送信できません。' ); } } } return $result; } ?>コンタクトフォーム7のフォーム部分
<label>お電話番号(ハイフンなし)
[tel* coupon]
</label>
PHP Wordpressのコンタクトフォーム7
試したこと
ネットにあったソースコードでタグ?(coupon)を統一したことで123456以外をはじいたので、123456以外の以下のルールに変えました。
$coupon != '^\d{7}$' 7桁の数字という意味だと思っています。
しかし、どんな桁数でも送信できてしまいます。
ここに問題に対して試したことを記載してください。
いろいろな正規表現を試しましたが、ずべてダメでした。
数字のベタ打ちしか反映されていないみたいです。
補足情報(FW/ツールのバージョンなど)
WordPress 5.1.11
PHP 5.4
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/11/12 07:45
2021/11/12 08:06