从电子邮件通知模板中删除客户详细信息和地址
Removing customer details and addresses from email notification templates
我正在研究为 woocommerce 创建的主题,该主题由其他一些德国开发人员构建。我已经创建了我的子主题并使用子主题的 functions.php 来更改网站的功能。
当客户订购产品时,他会收到一封包含订单 table、客户信息和账单地址以及客户送货的电子邮件。
我想删除 table 下方的所有内容并添加我自己的文本(客户信息 + 账单、送货和取货地址)。
我在发送给客户的电子邮件中的订单 table 正下方添加了我自己的文本,但是我无法删除默认显示在自定义添加文本下方的信息。我发现负责获取和显示数据的钩子是 woocommerce_email_order_meta
,但我不知道如何删除它或阻止它执行。我不想在模板文件中进行更改,我想全部通过钩子完成。
到目前为止,我试过这样做:
remove_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text, $email );
我按照 link: 并尝试了以下代码,但没有成功。
function so_39251827_remove_order_details( $order, $sent_to_admin, $plain_text, $email ){
$mailer = WC()->mailer(); // get the instance of the WC_Emails class
remove_action( 'woocommerce_email_order_details', array( $mailer, 'order_details' ), 10, 4 );
}
add_action( 'woocommerce_email_order_details', 'so_39251827_remove_order_details', 5, 4 );
我怎样才能做到这一点?
说明 - 在所有电子邮件通知模板中,您都有:
/**
* @hooked WC_Emails::customer_details() Shows customer details
* @hooked WC_Emails::email_address() Shows email address
*/
do_action( 'woocommerce_email_customer_details', $order, $sent_to_admin, $plain_text, $email );
在对 WooCommerce 核心文件进行一些研究和一些测试之后,我已经成功地从通知电子邮件中删除了客户详细信息、账单和送货地址,如您所愿。
代码如下:
add_action( 'woocommerce_email_customer_details', 'removing_customer_details_in_emails', 5, 4 );
function removing_customer_details_in_emails( $order, $sent_to_admin, $plain_text, $email ){
$mailer = WC()->mailer();
remove_action( 'woocommerce_email_customer_details', array( $mailer, 'customer_details' ), 10 );
remove_action( 'woocommerce_email_customer_details', array( $mailer, 'email_addresses' ), 20 );
}
此代码位于您的活动子主题(或主题)的 function.php 文件或任何插件文件中。
此代码已经过测试且功能齐全。
参考文献:
我正在研究为 woocommerce 创建的主题,该主题由其他一些德国开发人员构建。我已经创建了我的子主题并使用子主题的 functions.php 来更改网站的功能。
当客户订购产品时,他会收到一封包含订单 table、客户信息和账单地址以及客户送货的电子邮件。 我想删除 table 下方的所有内容并添加我自己的文本(客户信息 + 账单、送货和取货地址)。
我在发送给客户的电子邮件中的订单 table 正下方添加了我自己的文本,但是我无法删除默认显示在自定义添加文本下方的信息。我发现负责获取和显示数据的钩子是 woocommerce_email_order_meta
,但我不知道如何删除它或阻止它执行。我不想在模板文件中进行更改,我想全部通过钩子完成。
到目前为止,我试过这样做:
remove_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text, $email );
我按照 link:
function so_39251827_remove_order_details( $order, $sent_to_admin, $plain_text, $email ){
$mailer = WC()->mailer(); // get the instance of the WC_Emails class
remove_action( 'woocommerce_email_order_details', array( $mailer, 'order_details' ), 10, 4 );
}
add_action( 'woocommerce_email_order_details', 'so_39251827_remove_order_details', 5, 4 );
我怎样才能做到这一点?
说明 - 在所有电子邮件通知模板中,您都有:
/**
* @hooked WC_Emails::customer_details() Shows customer details
* @hooked WC_Emails::email_address() Shows email address
*/
do_action( 'woocommerce_email_customer_details', $order, $sent_to_admin, $plain_text, $email );
在对 WooCommerce 核心文件进行一些研究和一些测试之后,我已经成功地从通知电子邮件中删除了客户详细信息、账单和送货地址,如您所愿。
代码如下:
add_action( 'woocommerce_email_customer_details', 'removing_customer_details_in_emails', 5, 4 );
function removing_customer_details_in_emails( $order, $sent_to_admin, $plain_text, $email ){
$mailer = WC()->mailer();
remove_action( 'woocommerce_email_customer_details', array( $mailer, 'customer_details' ), 10 );
remove_action( 'woocommerce_email_customer_details', array( $mailer, 'email_addresses' ), 20 );
}
此代码位于您的活动子主题(或主题)的 function.php 文件或任何插件文件中。
此代码已经过测试且功能齐全。
参考文献: