こんにちは
mwform_validation_rules フィルターフックでバリデーションルールを追加できるので、これを利用するのもいいかと思います。
https://plugins.2inc.org/mw-wp-form/filter-hook/mwform_validation_rules/
下記は、必須または選択したチェックボックス項目を検証するバリデーションルールを追加するサンプルコードです。
functions.php 等に、
if ( ! class_exists( "MW_WP_Form_Validation_Rule_RequiredCheckbox" ) ) {
class MW_WP_Form_Validation_Rule_RequiredCheckbox extends MW_WP_Form_Abstract_Validation_Rule {
protected $name = 'requiredcheckbox';
public function rule( $key, array $options = array() ) {
$value = $this->Data->get( $key );
if ( !is_null( $value ) ) {
$target = $this->Data->get( $options['target'] );
if ( empty( $value ) && MWF_Functions::is_empty( $target ) ) {
$defaults = array(
'target' => null,
'message' => sprintf( '未入力です。入力しない場合は「%s」を選択してください。', $options['target'] )
);
$options = array_merge( $defaults, $options );
return $options['message'];
}
}
}
public function admin( $key, $value ) {
$target = '';
if ( is_array( $value[$this->getName()] ) && isset( $value[$this->getName()]['target'] ) ) {
$target = $value[$this->getName()]['target'];
}
?>
<table>
<tr>
<td>必須または選択したチェックボックス項目</td>
<td><input type="text" value="<?php echo esc_attr( $target ); ?>" name="<?php echo MWF_Config::NAME; ?>[validation][<?php echo $key; ?>][<?php echo esc_attr( $this->getName() ); ?>][target]" /></td>
</tr>
</table>
<?php
}
}
}
function mwform_validation_rule_requiredcheckbox( $validation_rules ) {
$instance = new MW_WP_Form_Validation_Rule_RequiredCheckbox();
$validation_rules[$instance->getName()] = $instance;
return $validation_rules;
}
add_filter( 'mwform_validation_rules', 'mwform_validation_rule_requiredcheckbox' );
ご返信ありがとうございました。
サンプルコードをfunctions.phpに記載すると、希望通りのチェック項目ができました!
助かりました。ほんとうにありがとうございました。
-
この返信は7年、 1ヶ月前に
riverが編集しました。
-
この返信は7年、 1ヶ月前に
riverが編集しました。