插件名称: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' ) );
}
它显示正确的电子邮件验证,但也使用用户名登录
我希望它在结帐前只使用电子邮件和密码登录
答案 0 :(得分:1)
如果仔细观察
wp-content/plugins/woocommerce/includes/class-wc-form-handler.php
at 第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中
希望这有帮助!