2016-02-24 106 views
3

我想從woocommerce編輯帳戶頁面中刪除電子郵件字段以防止用戶更改其電子郵件地址。從woocommerce編輯帳戶頁面刪除電子郵件

通過編輯myaccount/form-edit-account.php模板很容易刪除前端部分。但它只是從形式而已。

我想從後端刪除,所以沒有人可以將帶有電子郵件名稱的文本框添加到表單中並更改電子郵件。

後端功能,做編輯過程是在這裏

https://github.com/woothemes/woocommerce/blob/master/includes/class-wc-form-handler.php#L141

你可以看到,沒有過濾器或操作從處理中排除郵件。

任何幫助,將不勝感激。

解決方案(感謝@Reigel)

正如我所說的,我已經從模板文件中刪除的電子郵件領域,但惡意用戶可以用ACCOUNT_EMAIL注入一個輸入字段和更改電子郵件。我想要的是忽略POSTED電子郵件,如果有的話。

所以使用woocommerce_save_account_details_errors行動,有可能做到這一點

類的例子

add_action('woocommerce_save_account_details_errors', array($this, 'remove_email_from_edit_account_process'), 10, 
      2); 


    public function remove_email_from_edit_account_process($errors, $user) { 
     if (! empty($user->user_email)) { 
      unset($user->user_email); 
     } 
    } 
+0

你的鏈接與我的問題無關。這是關於計費字段,但我的意圖是從後端進程中刪除account_email。 – eMehran

回答

2

使用woocommerce_save_account_details_errors的行動,以錯誤信息的電子郵件字段不能改變......

+0

謝謝隊友!我使用該操作從用戶的stdClass實例中取消設置電子郵件。所以當有人試圖爲account_email注入一個html字段來編輯電子郵件時,它將從用戶實例中取消設置並被忽略。我將把解決方案放在主要問題描述中。 – eMehran

相關問題