1
我想从Woocommerce BACS网关谢谢您的页面和电子邮件中删除“我们的银行信息”和付款指示。删除行动'woocommerce_email_before_order_table'不起作用
我知道这应该通过删除woocommerce_thankyou_bacs和woocommerce_email_before_order_table操作来完成。
我设法从thankyou页面中删除邮件,但它仍然出现在电子邮件中。我检查了woocommerce_thankyou_bacs和woocommerce_email_before_order_table都从wp_filter全局中删除。
我依靠的是我从这里复制的一个函数:http://wpquestions.com/question/showChrono/id/9204,由于具有类似的remove_action问题,因为不同的唯一ID而无法工作,并且它的工作方式使得这些操作从wp_filter global中消失。
我已经尝试了各种优先级,0-20,谢谢你的页面消息已经消失,但电子邮件仍然显示付款说明。
我的代码如下:
add_action('woocommerce_thankyou_bacs', function() {
if(function_exists('wc_gateway_remove_hook')) {
//Remove BACS payment instructions from thankyou page <- WORKS!
wc_gateway_remove_hook('WC_Gateway_BACS', 'woocommerce_thankyou_bacs', 'thankyou_page');
//Remove BACS payment instructions from email <- DOESN'T WORK!
wc_gateway_remove_hook('WC_Gateway_BACS', 'woocommerce_email_before_order_table', 'email_instructions');
}
}, 10);
function wc_gateway_remove_hook($classname, $hook, $callback) {
foreach((array) $GLOBALS['woocommerce']->payment_gateways->payment_gateways as $key => $gateway_obj) {
if($classname === get_class($gateway_obj)) {
remove_action($hook, array($gateway_obj, $callback));
}
}
}