サポート » プラグイン » MW WP Formのバリデーションルールが使えなくなった

  • 解決済 mountain22

    (@jpairb)



    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’ );

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • CG

    (@du-bist-der-lenz)

    「ヴァージョンアップ等で何か変わった部分があり、影響したの」か、他に要因がないかは、特定しましょう。必要で考えられたのですから、糸口は見つかりますよ。

    functions.phpへの記載が一部、間違っていたようです。
    以前使っていたコードで問題ありませんでした。
    単純なミスでした。お騒がせしました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • このトピックに返信するにはログインが必要です。