【问题标题】:Remove action 'woocommerce_email_before_order_table' not working删除操作“woocommerce_email_before_order_table”不起作用
【发布时间】:2014-03-09 09:17:44
【问题描述】:

我正在尝试从 Woocommerce BACS 网关感谢页面和电子邮件中删除“我们的银行信息”和付款说明。

我知道只需删除 woocommerce_thankyou_bacs 和 woocommerce_email_before_order_table 操作即可完成。

我设法从感谢页面中删除了该消息,但它仍然出现在电子邮件中。我检查了,woocommerce_thankyou_bacs 和 woocommerce_email_before_order_table 都已从 wp_filter 全局中删除。

我依赖于我从这里复制的一个函数:http://wpquestions.com/question/showChrono/id/9204,因为由于不同的唯一 id 而导致 remove_action 无法正常工作的类似问题,并且它的工作原理是这些操作从 wp_filter 全局中消失。

我尝试了各种优先级,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 ) );
        }
    }
}

【问题讨论】:

    标签: wordpress email hook woocommerce payment-gateway


    【解决方案1】:

    试试这个:

    add_action( 'woocommerce_email_before_order_table', function() {
        if( function_exists( 'wc_gateway_remove_hook' ) ) {
            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 ) );
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 2018-06-22
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 2019-04-18
      相关资源
      最近更新 更多