remove_action不适用于插件中的函数

时间:2016-04-30 15:21:57

标签: php wordpress woocommerce hook

我正在尝试使用remove_action来阻止插件的一部分运行 - 不要问我为什么:-)。

插件中的功能是:

add_action( 'woocommerce_before_single_product_summary', array( $this, 'show_product_gallery' ), 30 );

我试图通过以下方式删除它:

remove_action( 'woocommerce_before_single_product_summary', array( $this, 'show_product_gallery' ), 30 );

出于某种原因,它并没有成功,尽管这通常适用于Wordpress / WooCommerce。

有谁能说出为什么这可能会取悦?我也尝试将我的功能挂钩到其他东西,例如。

add_action( 'init', 'remove_it' );
function remove_it() {
remove_action( 'woocommerce_before_single_product_summary', array( $this, 'show_product_gallery' ), 30 );
}

(插件代码:https://codedump.io/share/axGWwMwAH0vn/1/linzs-hook-not-working) 欢呼声,

林茨

已编辑:此问题与前一个问题有所不同,因为remove_action无效,因为这与错误的优先级有关 - 而此优先级在30时是正确的。

1 个答案:

答案 0 :(得分:1)

您需要全局访问类变量。请试试这个。

add_action( 'wp', 'remove_it' );
function remove_it() {
 global $WC_Product_Gallery_slider;
 remove_action( 'woocommerce_before_single_product_summary', array( $WC_Product_Gallery_slider, 'show_product_gallery' ), 30 );
}