Title: undo_master's Replies | WordPress.org

---

# undo_master

  [  ](https://wordpress.org/support/users/undo_master/)

 *   [Profile](https://wordpress.org/support/users/undo_master/)
 *   [Topics Started](https://wordpress.org/support/users/undo_master/topics/)
 *   [Replies Created](https://wordpress.org/support/users/undo_master/replies/)
 *   [Reviews Written](https://wordpress.org/support/users/undo_master/reviews/)
 *   [Topics Replied To](https://wordpress.org/support/users/undo_master/replied-to/)
 *   [Engagements](https://wordpress.org/support/users/undo_master/engagements/)
 *   [Favorites](https://wordpress.org/support/users/undo_master/favorites/)

 Search replies:

## Forum Replies Created

Viewing 2 replies - 1 through 2 (of 2 total)

 *   Forum: [Plugins](https://wordpress.org/support/forum/plugins-and-hacks/)
    In
   reply to: [[MW WP Form] 特定のセッションがないときにメールを送信をエラーにしたい（バリデー](https://wordpress.org/support/topic/%e7%89%b9%e5%ae%9a%e3%81%ae%e3%82%bb%e3%83%83%e3%82%b7%e3%83%a7%e3%83%b3%e3%81%8c%e3%81%aa%e3%81%84%e3%81%a8%e3%81%8d%e3%81%ab%e3%83%a1%e3%83%bc%e3%83%ab%e3%82%92%e9%80%81%e4%bf%a1%e3%82%92%e3%82%a8/)
 *  Thread Starter [undo_master](https://wordpress.org/support/users/undo_master/)
 * (@undo_master)
 * [9 years, 11 months ago](https://wordpress.org/support/topic/%e7%89%b9%e5%ae%9a%e3%81%ae%e3%82%bb%e3%83%83%e3%82%b7%e3%83%a7%e3%83%b3%e3%81%8c%e3%81%aa%e3%81%84%e3%81%a8%e3%81%8d%e3%81%ab%e3%83%a1%e3%83%bc%e3%83%ab%e3%82%92%e9%80%81%e4%bf%a1%e3%82%92%e3%82%a8/#post-6920704)
 * 下記をfunctions.phpに記述することにより何とかその場しのぎで解決しました。
    「
   お問い合わせ内容」というname属性のテキストボックスにバリデーションルールを適用
   していることにまりますので、当然メッセージは「お問い合わせ内容」のテキストボックス
   の下に出ることになります。
 *     ```
       require_once(WP_PLUGIN_DIR . '/mw-wp-form/classes/models/class.abstract-validation-rule.php');
       class MW_Validation_Rule_noSession extends MW_WP_Form_Abstract_Validation_Rule {
   
       	protected $name = 'nosession'; //名前は自由につけてください。
   
       	protected $Data;
   
       	public function __construct() {
       		if ( !$this->getName() ) {
       			exit( 'MW_WP_Form_Abstract_Validation_Rule::$name must override.' );
       		}
       	}
   
       	public function set_Data( MW_WP_Form_Data $Data ) {
       		$this->Data = $Data;
       	}
   
       	public function getName() {
       		return $this->name;
       	}
   
       	/* 下記のrule関数をいじることになります。プラグインのフォルダに入ってるnoempty.phpなどを参考にしましょう。 */
       	public function rule( $key, array $options = array() ) {
       		if ( empty( $_SESSION['xxxx'] ) ) {
       			$defaults = array(
       				'message' => __( 'Please enter.', 'mw-wp-form' )
       			);
       			$options = array_merge( $defaults, $options );
       			return $options['message'];
       		}
       	}
   
       	public function admin( $key, $value ) {
       		?>
       		<label><input type="checkbox" <?php checked( $value[$this->getName()], 1 ); ?> name="<?php echo MWF_Config::NAME; ?>[validation][<?php echo $key; ?>][<?php echo esc_attr( $this->getName() ); ?>]" value="1" /><?php esc_html_e( 'Session', 'mw-wp-form' ); ?></label>
       		<?php
       	}
       }
   
       function my_validation_rule($validation_rules,$key) {
           $validation_rules['nosession'] = new MW_Validation_Rule_noSession($key);
           return $validation_rules;
       }
       add_filter( 'mwform_validation_rules', 'my_validation_rule',10,2 );
   
       function my_validation( $Validation, $data, $Data ) {
          $Validation->set_rule( 'お問い合わせ内容', 'nosession',array(
               'message' => 'sessionがありません' //メッセージは自由に決めましょう。
           ) );
           return $Validation;
       }
       add_filter( 'mwform_validation_mw-wp-form-xxx', 'my_validation', 10, 3 );
       ```
   
 * 作者様、素晴らしいプラグインをありがとうございます。
 *   Forum: [Plugins](https://wordpress.org/support/forum/plugins-and-hacks/)
    In
   reply to: [[MW WP Form] 特定のセッションがないときにメールを送信をエラーにしたい（バリデー](https://wordpress.org/support/topic/%e7%89%b9%e5%ae%9a%e3%81%ae%e3%82%bb%e3%83%83%e3%82%b7%e3%83%a7%e3%83%b3%e3%81%8c%e3%81%aa%e3%81%84%e3%81%a8%e3%81%8d%e3%81%ab%e3%83%a1%e3%83%bc%e3%83%ab%e3%82%92%e9%80%81%e4%bf%a1%e3%82%92%e3%82%a8/)
 *  Thread Starter [undo_master](https://wordpress.org/support/users/undo_master/)
 * (@undo_master)
 * [10 years, 4 months ago](https://wordpress.org/support/topic/%e7%89%b9%e5%ae%9a%e3%81%ae%e3%82%bb%e3%83%83%e3%82%b7%e3%83%a7%e3%83%b3%e3%81%8c%e3%81%aa%e3%81%84%e3%81%a8%e3%81%8d%e3%81%ab%e3%83%a1%e3%83%bc%e3%83%ab%e3%82%92%e9%80%81%e4%bf%a1%e3%82%92%e3%82%a8/#post-6920616)
 * class.validation.phpを下記のように書き換えるやり方だと、完了画面でフォームが消
   えないバグが発生してしまいました。。。
 *     ```
       public function flag_a() {
   
       $flagA = false;
   
       if(isset($_SESSION['aaaa'])){
       $flagA = true;
       break;
       }
       return $flagA;
       }
   
       protected function is_valid() {
       $errors = $this->Error->get_errors();
       if ( empty( $errors )&& $this->flag_a() ) {
       return true;
       } else {
       return false;
       }
       }
       ```
   

Viewing 2 replies - 1 through 2 (of 2 total)