こんにちは
wpcf7_validate フィルターフックで入力値を検証できます。下記ページが参考になると思います。
https://qiita.com/kd9951/items/1717fc384c16e00d6458
例)functions.php 等に、
function wpcf7_validate_customize( $result, $tags ) {
$form = WPCF7_Submission::get_instance();
$posted_datas = $form->get_posted_data();
$names = array( 'checkbox1', 'checkbox2', 'checkbox3', 'checkbox4', 'checkbox5' );
$counter = 0;
foreach ( $names as $name ) {
if ( ! empty( $posted_datas[$name][0] ) ) $counter++;
}
if ( $counter < 2 ) {
$result->invalidate( 'checkbox5', '2 個以上選択してください。' );
}
return $result;
}
add_filter( 'wpcf7_validate', 'wpcf7_validate_customize', 11, 2 );
ishitaka 様
ありがとうございます!
お教えいただいた記述ですが
チェックボックスが5種類存在し、その5種類のうち2種類にチェックが入るというモノですよね?
お教えいただいた記述で
ひらがな : □ あいう □ かきく □ さしす
カタカナ : □ アイウ □ カキク □ サシス
英字 : □ ABC □ DEF □ GHI
数字 : □ 123 □ 456 □ 789
記号 : □ *** □ $$$ □ ###
の場合
ひらがな : ■ あいう □ かきく □ さしす
カタカナ : □ アイウ □ カキク ■ サシス
英字 : □ ABC □ DEF □ GHI
数字 : □ 123 □ 456 □ 789
記号 : □ *** □ $$$ □ ###
で OK! ということですよね?
私の説明不足で申し訳ありませんが
下記のような場合を想定していました。
例2
ひらがな : □ あいう □ かきく □ さしす □ たちつ □ なにぬ
の場合で
ひらがな : ■ あいう ■ かきく □ さしす □ たちつ □ なにぬ
のように考えています。
(1種類でチェックが2つ以上必須)
通常、コンタクトフォームで「タグの作成」を行なうと
名前は「checkbox-***」、選択肢のname属性は全て同じ「checkbox-***[]」となってしまいます。
(***は数字)
お手数をおかけして申し訳ありませんでした。
get_posted_data() で全ての項目の入力値を取得できるので、それぞれでチェックしてください。
また、参照ページのサンプルコードが参考になると思います。
こんな感じでしょうか。
function wpcf7_validate_customize( $result, $tags ) {
$form = WPCF7_Submission::get_instance();
$posted_datas = $form->get_posted_data();
// ひらがな
if ( count( $posted_datas['checkbox-1'] ) < 2 ) {
$result->invalidate( 'checkbox-1', '2つ以上選択してください。' );
}
// カタカナ
if ( count( $posted_datas['checkbox-2'] ) < 2 ) {
$result->invalidate( 'checkbox-2', '2つ以上選択してください。' );
}
(省略)
return $result;
}
add_filter( 'wpcf7_validate', 'wpcf7_validate_customize', 11, 2 );
無事、2点以上のチェック必須で動作させることができました。
本当にありがとうございました!