我试图通过以下方式删除Woocommerce订阅声明的Wordpress操作:
class WC_Subscriptions_Synchroniser {
public static function init() {
add_action( 'woocommerce_single_product_summary', __CLASS__ . '::products_first_payment_date', 31 );
}
add_action( 'init', 'WC_Subscriptions_Synchroniser::init' );
}
Codex有一些示例用于删除已在类中声明的操作: https://codex.wordpress.org/Function_Reference/remove_action
我已经适应了哪些&以下列方式合并而没有成功:
$my_class = new WC_Subscriptions_Synchroniser;
function remove_my_class_action(){
global $my_class;
remove_action( 'woocommerce_single_product_summary', array( $my_class, 'products_first_payment_date' ), 40 );
remove_action( 'woocommerce_single_product_summary', array( 'WC_Subscriptions_Synchroniser', 'products_first_payment_date' ), 40 );
}
add_action( 'woocommerce_single_product_summary', 'remove_my_class_action', 40 );
我还尝试用remove_my_class_action
挂钩init
行动,但这也不起作用。
请帮忙!
答案 0 :(得分:2)
两件事......首先,products_first_payment_date()
方法是静态的,因此您不需要实例化类对象以便将其删除。其次,在运行之前需要删除一个函数。因此,我认为您add_action()
的早期优先级应该可以解决问题。
function remove_my_class_action(){
remove_action( 'woocommerce_single_product_summary', array( 'WC_Subscriptions_Synchroniser', 'products_first_payment_date' ), 40 );
}
add_action( 'woocommerce_single_product_summary', 'remove_my_class_action', 10 );