2017-04-26 66 views
2

插件名称:WooCommerce如何WooCommerce只有电子邮件地址和密码登录

插件\ woocommerce \模板\全球\表单的login.php

<label for="username"><?php _e('Email', 'woocommerce'); ?> <span class="required">*</span></label> 

它显示的电子邮件,而不是用户名或电子邮件,其中我想

包括\类-WC-形状handler.php

if (empty($username)) { 
    throw new Exception('<strong>' . __('Error:', 'woocommerce') . '</strong> ' . __('Email is required.', 'woocommerce')); 
} 

它DISP奠定验证电子邮件正确的,但它的用户名也

我希望它只是与电子邮件和密码结账

回答

1

之前,如果你仔细地 wp-content/plugins/woocommerce/includes/class-wc-form-handler.php在 线NUM 878看起来有一个过滤器 登录登录woocommerce_process_login_errors,它接受验证 错误,用户名和密码。所以你可以用这个过滤器 帮助覆盖这个。

下面是代码:

// define the woocommerce_process_login_errors callback 
function filter_woocommerce_process_login_errors($validation_error, $post_username, $post_password) 
{ 
    //if (strpos($post_username, '@') == FALSE) 
    if (!filter_var($post_username, FILTER_VALIDATE_EMAIL)) //<--recommend option 
    { 
     throw new Exception('<strong>' . __('Error', 'woocommerce') . ':</strong> ' . __('Please Enter a Valid Email ID.', 'woocommerce')); 
    } 
    return $validation_error; 
} 

// add the filter 
add_filter('woocommerce_process_login_errors', 'filter_woocommerce_process_login_errors', 10, 3); 

代码放在functions.php文件的活跃儿童主题(或主题)的。或者也可以在任何插件php文件中使用。
代码已经过测试和工作。在WooCommerce 2.6.X

希望这会有所帮助!

+0

Thankew 4 ur help :) @Raunak Gupta。 – Ghugu

相关问题