2016-09-16 121 views
0

在WooCommerce中,有一個公共靜態類WC_Emails,定義見/woocommerce/includes/class-wc-emails.php從'woocommerce_email_customer_details'鉤子中刪除'email_addresses'動作

在該類中,有一個對稱爲woocommerce_email_customer_details的鉤子的引用。爲此,分配了一個名爲email_addresses的操作,該操作僅僅是一個PHP文件,該文件生成一些用於計費和送貨地址的HTML以添加到電子郵件通知中。

add_action('woocommerce_email_customer_details', array($this, 'email_addresses'), 20, 3); 

我試圖刪除該操作,但似乎無法弄清楚如何操作。

這裏是代碼的例子位我的孩子主題的functions.php不起作用:

add_action('init', 'remove_default_addresses'); 
    function remove_default_addresses() { 
    remove_action('woocommerce_email_customer_details', 
        array('WC_Emails', 'email_addresses'), 20); 
} 

取而代之的是init鉤的存在,我已經試過wp-head。由於WC_Emails是一個靜態函數,上面的代碼是WordPress Codex建議的方式,就使用上面的array()而言,而不僅僅是操作名稱。無論如何,這是不行的,或者(只有動作的名稱):

add_action('init', 'remove_default_addresses'); 
function remove_default_addresses() { 
    remove_action('woocommerce_email_customer_details', 'email_addresses', 20); 
} 

20是在add_action佑優先呢,我也明白,一個remove_action()必須具有相同的優先級是什麼原add_action()了。

無論我嘗試什麼,帳單和送貨地址仍會出現在電子郵件通知中。

一旦獲得工作,這將是偉大的!然而,還有一個額外的要求:這隻需要在Woo的woocommerce_order_status_pending_to_processing_notification鉤子的代碼中出現。

換言之,我有火災,併產生當來自待到處理訂單狀態改變(和我曾嘗試我上面的代碼與它的該鉤內的所有變化也一樣)的電子郵件的其他代碼。我需要帳單和送貨地址纔不會顯示在生成的自定義電子郵件中。

任何想法?非常感謝。 :)

+0

請,你就可以開始你的問題告訴你想要的首次明確(可能是一個明確的截屏),因爲我不真正理解你真正想要什麼,以及你想要做什麼。對不起......謝謝 – LoicTheAztec

+0

謝謝@LoicTheAztec。基本上,它將從電子郵件通知中刪除運費和帳單地址。我想,不需要截圖。 :) –

回答

0

下面是代碼:

add_action('woocommerce_email', function ($email_class) { 
    remove_action('woocommerce_email_customer_details', array($email_class, 'email_addresses'), 20, 3); 
}); 

Source

+2

添加一些解釋與答案這個答案如何幫助OP在解決當前問題 –