こんにちは
確認画面でフォームで入力した email を取得する方法は、ちょっと分かりませんが、mwform_validation_rules フィルターフックでバリデーションルールを追加できるので、これを利用するのはどうでしょうか?
https://plugins.2inc.org/mw-wp-form/filter-hook/mwform_validation_rules/
サンプルコードを書いてみました。
if ( class_exists( "MW_WP_Form_Abstract_Validation_Rule" ) ) {
class MW_WP_Form_Validation_Rule_Custom_Mail extends MW_WP_Form_Abstract_Validation_Rule {
protected $name = 'custommail';
public function rule( $key, array $options = array() ) {
$value = $this->Data->get( $key );
if ( ここでメールアドレスをチェックする ) {
$defaults = array(
'message' => 'このメールアドレスは使用できません。'
);
$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" />カスタムメールアドレス</label>
<?php
}
}
function mwform_validation_rule_custom_mail( $validation_rules ) {
$instance = new MW_WP_Form_Validation_Rule_Custom_Mail();
$validation_rules[$instance->getName()] = $instance;
return $validation_rules;
}
add_filter( 'mwform_validation_rules', 'mwform_validation_rule_custom_mail' );
}
ishitaka様
このような使い方があったんですね。
とても参考になりました。
同一メールであった場合は、特定のページへリダイレクトさせるように調整して、
予定していた動作を完璧に行うことが出来ました。
ありがとうございます。
if ( class_exists( "MW_WP_Form_Abstract_Validation_Rule" ) ) {
class MW_WP_Form_Validation_Rule_Custom_Mail extends MW_WP_Form_Abstract_Validation_Rule {
protected $name = 'custommail';
public function rule( $key, array $options = array() ) {
$value = $this->Data->get( $key );
if ( $key == 'email' ) {
global $wpdb;
$user_count = 0;
$user_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->postmeta WHERE meta_key='email' && meta_value='".$value."'" );
if ( $user_count > 0 ) {
header('Location: ' .home_url( 'justonce/' ) .$accessdir);
exit();
}
}
}
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" />カスタムメールアドレス</label>
<?php
}
}
function mwform_validation_rule_custom_mail( $validation_rules ) {
$instance = new MW_WP_Form_Validation_Rule_Custom_Mail();
$validation_rules[$instance->getName()] = $instance;
return $validation_rules;
}
add_filter( 'mwform_validation_rules', 'mwform_validation_rule_custom_mail' );
}