undo_master
Forum Replies Created
Viewing 2 replies - 1 through 2 (of 2 total)
-
Forum: Plugins
In reply to: [MW WP Form] 特定のセッションがないときにメールを送信をエラーにしたい(バリデー下記を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
In reply to: [MW WP Form] 特定のセッションがないときにメールを送信をエラーにしたい(バリデー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)