MW WP Formのバリデーションルールが使えなくなった
-
MW WP Formを使ったお問合せフォームについての質問です。
メール入力(確認用再入力欄付)で、基本は必須項目にして、チェックボックス、例えば「メールアドレスがない」にチェックを入れると必須ルールが解除されるようなカスタマイズを希望しています。
以前、当フォーラムにて、以下のコードを教えていただき、このカスタイマイズができたのですが、いつからか分かりませんが、バリデーションルールが使えなくなっていました。
ヴァージョンアップ等で何か変わった部分があり、影響したのでしょうか。
PHP初心者で、原因が分からず困っています。どうぞよろしくお願いいたします。以前のトピックhttps://ja.wordpress.org/support/topic/mw-wp-form%E3%81%A7%E3%81%AE%E6%9D%A1%E4%BB%B6%E5%88%86%E5%B2%90/
——–以前、使えたコード——-
/* MWフォーム バリデーション追加 */
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( ‘未入力です。メールアドレスのない方は下欄のチェックを入れてください。’, $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’ );
- トピック「MW WP Formのバリデーションルールが使えなくなった」には新たに返信することはできません。