ご教示ありがとうございます。
さっそくやってみます。
先ほどご教示頂いた方法を試しています。
function my_validation_rule( $Validation, $data ) {
if(isset($_POST[‘チェックボックスのname’]))
{
$Validation->set_Rule( ‘テキストフィールドのname’, ‘required’, array(
‘message’ => ‘必須項目です。’
) );
}
return $Validation;
add_filter( ‘mwform_validation_mw-wp-form-フォーム識別子の key’, ’my_validation_rule’, 10, 2 );
}
と記述してみたのですが、うまくいきません。考え方が間違っていますか?たびたびすいませんがよろしくお願い致します。
function my_validation_rule( $Validation, $data ) {
if (isset($data[‘チェックボックスのname’])) {
$Validation->set_rule( ‘テキストフィールドのname’, ‘noEmpty’ );
}
return $Validation;
}
add_filter( ‘mwform_validation_mw-wp-form-フォーム識別子の key’, ‘my_validation_Rule’, 10, 2 );
とやってみました。
しかしうまくいかず、確認したところ
echo $data[‘チェックボックスのname’];
と記述しても確認画面で値が表示されていないみたいです。
どこが間違っているか教えていただけませんか?
function my_validation_rule( $Validation, $values, $Data ) {
var_dump( $Data->get( 'チェックボックスのname' ) );
exit;
if ( !is_null( $Data->get( 'チェックボックスのname' ) ) {
$Validation->set_rule( 'テキストフィールドのname', 'noEmpty' );
}
return $Validation;
}
add_filter( 'mwform_validation_mw-wp-form-xxx', 'my_validation_rule', 10, 3 );
のようにするとどうでしょう?処理が途中でとまらず普通に画面が表示された場合はきちんとフックを通っていませんのでフック名を確認してください。途中でとまった場合は、チェックボックスの値が表示されるはずですが、チェックしたのに null の場合はチェックボックスのnameが間違っている可能性があるので確認してください。
たびたびありがとうございます。
ご教示頂いたコードを記述したのですが、フォームを表示させる時点で画面に「NULL」とだけ表示されてしまいます。
どこが原因でしょうか?
たびたびすいませんがよろしくお願い致します。
あ、すみません、ちょっと勘違いしていました。でも NULL と表示されたということはフックはきちんと通っているということなので、exit; の部分を削除するとどうなりますか?
ご回答ありがとうございます。
exit;
を削除したら無事バリデーションが適応になりました。
大変ありがとうございました。