添加确认电子邮件地址字段注册Woocommerce

时间:2020-04-21 20:35:39

标签: wordpress woocommerce

有什么方法可以在Wooocommerce注册上添加确认电子邮件地址字段?

谢谢

2 个答案:

答案 0 :(得分:1)

有几种方法...最简单的方法是向注册字段添加一个新字段,然后在提交表单时验证该字段。遵循这个...。

  1. wp-content/plugins/woocommerce/templates/myaccount/form-login.php文件复制到主题文件夹wp-content/themes/your-theme/woocommerce/myaccount/form-login.php
  2. *Email address字段下添加以下代码。.如果您尚未编辑文件..那么它是line number 88,之后您必须将其放置...

Woocommerce Regisration Form

    <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
       <label for="confirm_reg_email"><?php esc_html_e( 'Confirm Email address', 'woocommerce' ); ?>&nbsp;<span class="required">*</span></label>
       <input type="email" class="woocommerce-Input woocommerce-Input--text input-text" name="confirm_email" id="confirm_reg_email" autocomplete="email" value="<?php echo ( ! empty( $_POST['confirm_email'] ) ) ? esc_attr( wp_unslash( $_POST['confirm_email'] ) ) : ''; ?>" /><?php // @codingStandardsIgnoreLine ?>
    </p>
  1. 添加验证...检查电子邮件和确认电子邮件的值是否相同。

    function so_61352749_validate_confirm_email_register_field( $username, $email, $validation_errors ) {
    
      // Confirm email is set but empty
      if ( !isset( $_POST['confirm_email'] ) ) {
         $validation_errors->add( 'confirm_email_error', __( '<strong>Error</strong>: Confirm Email is required!', 'woocommerce' ) );
       }
    
       if ( isset( $_POST['confirm_email'] ) && $_POST['confirm_email'] !== $_POST['email'] ) {
         $validation_errors->add( 'confirm_email_error', __( '<strong>Error</strong>: Confirm Email is not matched!', 'woocommerce' ) );
       }
    
       return $validation_errors;
    }
    
    add_action( 'woocommerce_register_post', 'so_61352749_validate_confirm_email_register_field', 10, 3 );
    

答案 1 :(得分:0)

add_filter( 'woocommerce_checkout_fields' , 'codeithub_add_email_verification_field_checkout' );
   
function codeithub_add_email_verification_field_checkout( $fields ) {
  
$fields['billing']['billing_email']['class'] = array( 'form-row-first' );
  
$fields['billing']['billing_em_ver'] = array(
    'label' => 'Confirm mail Address',
    'required' => true,
    'class' => array( 'form-row-last' ),
    'clear' => true,
    'priority' => 999,
);
  
return $fields;
}
  
  
add_action('woocommerce_checkout_process', 'codeithub_matching_email_addresses');
  
function codeithub_matching_email_addresses() { 
    $email1 = $_POST['billing_email'];
    $email2 = $_POST['billing_em_ver'];
    if ( $email2 !== $email1 ) {
        wc_add_notice( 'Your email addresses do not match', 'error' );
    }
}