如何重写WooCommerce AJAX函数

时间:2017-07-31 作者:Ryan Dorn

我想使用add\\u过滤器覆盖WP(WooCommerce AJAX函数)。

原始代码通过以下方式在WC OOP类中设置:

add_action( \'wp_ajax_wc_function\', array( $this, \'wc_do_stuff\' ) );
add_action( \'wp_ajax_nopriv_wc_function\', array( $this, \'wc_do_stuff\' ) );
以及wc_do_stuff 是一项公共职能。

我的问题:

我需要针对哪个回调我已经尝试过(即在我的自定义类中使用“my\\u override\\u do\\u stuff”重写“wc\\u do\\u stuff”):

// Tried this, doesn\'t work
add_filter( \'wc_do_stuff\', array( $this, \'my_override_do_stuff\' ), 20 );

// And this, also doesn\'t work
add_filter( \'wc_do_stuff\', array(\'WC_Parent_Class\', \'my_override_do_stuff\'), 20);
提前感谢!

1 个回复
SO网友:Ryan Dorn

好的,所以我不知道这是否是最好的方法,但它现在起作用了。

在我的OOP类中(我有一个自定义插件来覆盖WC插件):

    remove_action( \'wp_ajax_wc_function\', array( WC_Parent_Class, \'wc_do_stuff\' ) );
    remove_action( \'wp_ajax_nopriv_wc_function\', array( WC_Parent_Class, \'wc_do_stuff\' ) );
    add_action( \'wp_ajax_wc_function\', array( __CLASS__, \'my_override_do_stuff\' ) );
    add_action( \'wp_ajax_nopriv_wc_function\', array( __CLASS__, \'my_override_do_stuff\' ) 
希望这对某人有所帮助,如果有人有更好的方法,我将表示欢迎/感谢。:)

结束