WooCommerce 訂單通知信重複顯示內容

近期在串接金流時為了要將 ATM 的虛擬帳號可以寄送給顧客,因此使用勾點 woocommerce_email_order_meta 將帳號資訊寫入,結果不知道為何管理員跟顧客收到的第一封信,輸出的內容都會多重複一筆:

由於我是把勾點放在 Payment Gateway 的類別裡面執行,不知道是不是哪邊重複呼叫到還是有其他原因,最後我的解法是用 CSS 把第二個轉帳資訊的地方隱藏,但更詭異的是當我寫了 <style> 後第二個 div 就沒出現了…

add_action(
	'woocommerce_email_order_meta',
	function() {
		$html = '
		  <style>.account-info+.account-info{display:none}</style>
		  <div style="margin-bottom:40px" class="account-info">
			<h2 class="woocommerce-order-details__title">轉帳資訊</h2>
		  </div>
  		';
		echo $html;
	}
)

後來小程跟我說官方文件有提醒不要把勾點放在 Payment Gateway 的類別來執行,不然很有可能不會觸發到,文件翻譯如下:「在 Gateway 類別內部加入勾點可能不會觸發。Gateway 只會在需要時載入,例如在結帳過程以及在設定頁面內。如果您需要從類別中加入 WordPress 事件,應將勾點放在類別之外或使用 WC-API。」

AI 文章延伸

讓 AI 幫你讀這篇文章

選擇平台後會自動帶入閱讀脈絡,快速整理重點、補齊盲點,並延伸到同站相關文章。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料。