创建插件以更改函数挂钩的操作

时间:2016-01-07 作者:Pete H

我有一个插件,可以将函数挂接到woocommerce_before_my_account 行动我希望插件将该函数挂接到woocommerce_after_my_account 行动

如果我创建自己的插件,有可能做到这一点吗?如果是,如何?

谢谢

1 个回复
SO网友:Scott Nelle

您可以使用remove_action() 函数将函数从操作中取消挂钩,然后add_action() 把它挂在别处。请注意,在删除操作时,必须严格按照添加的操作指定标记(挂钩名称)、函数和优先级。

Edit: Here are some additional details:

您必须查看另一个插件的源代码,以确定如何做到这一点。如果没有关于您所谈论的插件和功能的具体信息,我们无法给出确切的答案,但下面是一个示例:

如果插件像这样钩住函数:

add_action( \'woocommerce_before_my_account\', \'function_to_move\', 10 );

您可以执行以下操作:

function my_move_woo_functions() {
    remove_action( \'woocommerce_before_my_account\', \'function_to_move\', 10 );
    add_action( \'woocommerce_after_my_account\', \'function_to_move\', 10 );
}
add_action( \'plugins_loaded\', \'my_move_woo_functions\' );
重要的是,您必须在创建钩子之后但运行钩子之前移动动作。

相关推荐

POST_ROW_ACTIONS不适用于分层帖子类型

我正在开发一个插件,其中注册了一个自定义帖子类型(CPT),我需要向该特定帖子类型添加自定义行操作。但无法将以下代码连接到post_row_actions 工作:function ttest_copy_button( $actions, $post ) { // var_dump($actions); if( \'ttest\' === $post->post_type ) { // pass nonce to check and ve