2017-04-26 321 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

相關問題