我需要在 WooCommerce 网站的电子邮件中包含自定义数据,即交货日期和时间。
我尝试使用此代码覆盖现有的钩子“woocommerce_email_order_meta”,我暂时将其写入functions.php,然后在其工作时移动到插件文件。
remove_action('woocommerce_email_order_meta', 'woocommerce_email_order_meta', 10, 4);
add_action('woocommerce_email_order_meta', 'custom_email_order_meta', 10, 4);
function custom_email_order_meta($order, $sent_to_admin, $plain_text, $email) {
echo "Custom Text: This is my custom text.\n";
}
当我测试电子邮件时,会打印自定义文本行。不过,WC Hook 的原始内容也印在下面。 有没有办法完全覆盖 WC 挂钩,我是否必须尝试创建一个新挂钩?如果我创建一个新邮件,它是否会列在电子邮件编辑器中,以便我可以加入?
您可以尝试两种不同的方法,替换此行代码:
remove_action('woocommerce_email_order_meta', 'woocommerce_email_order_meta', 10, 4);
1)。最好的办法:
add_filter('woocommerce_email_order_meta_fields', '__return_empty_array', 9000);
2)。另一种选择:
remove_action( 'woocommerce_email_order_meta', array( WC()->mailer, 'order_meta' ), 10, 3 );
两者都应该有效。