2016-02-07 19 views
0

我正在使用以下過濾器&操作在woocommerce註冊過程中產生一些自定義驗證錯誤。如何在默認錯誤之前在WooCommerce用戶註冊中顯示驗證錯誤

過濾

woocommerce_registration_errors 

行動

woocommerce_register_post 

的問題是,上述兩種掛鉤的,是woocommerce的一些基本的驗證,如收發電子郵件和密碼後被解僱。

我想限制一些IP不註冊,錯誤應該在驗證錯誤的頂部。所以首先我們檢查一下ip是否有效,現在我們可以繼續進行其他驗證。

我找不到任何其他操作或過濾器。

+0

我不知道woocomerce驗證通過IP地址密碼檢查,但另一種方式是爲什麼你不簡單地限制用戶的IP地址定義在htaccess或使用插件[鏈接](https://wordpress.org/plugins/restricted-site-access/screenshots/) – Noman

+0

@Noman,我的問題不是關於IP限制。這是一個例子。實際上,我想在woocommerce默認驗證之前顯示最高優先級的驗證錯誤。 – eMehran

回答

1

在深入瞭解源代碼之後,我意識到在wc_create_new_customer函數之前會有另一個過濾器被執行。

這裏的過濾鉤子

woocommerce_process_registration_errors 

您可以添加你想要的用戶名,電子郵件之前顯示這些錯誤,並使用此過濾器

 add_filter('woocommerce_process_registration_errors', array($this, 'process_registration_errors')); 

     public function process_registration_errors($errors) { 

      if (isset($_POST['first_name']) && empty($_POST['first_name'])) { 
       $errors->add('first_name_error', 
       __('First name is required!', 'xxx')); 
      } 
     }