使用带有额外参数的挂钩

时间:2016-11-21 作者:Izack

我想将我自己的函数添加到已经存在的挂钩中。定义如下:

do_action( \'woocommerce_before_single_product_summary\' );
使用它的原始函数如下所示:

add_action( 
    \'woocommerce_before_single_product_summary\',
    \'woocommerce_template_single_title\', 
    5 
);
由于我不想触碰主题,也不想触碰Woocommerce模板,我想添加我自己的功能,但优先级较低,还有3个额外的参数,如:

add_action( \'woocommerce_before_single_product_summary\', \'my_own_function\', 6,  3);
有可能吗<如果是,这些参数是在哪里定义的

1 个回复
SO网友:birgire

自从

do_action( \'woocommerce_before_single_product_summary\' );
没有任何其他输入参数,如:

do_action( \'woocommerce_before_single_product_summary\', $args1, $args2, $args3 );
然后,将始终在没有任何输入参数的情况下调用操作回调。

function my_own_function ()
{
    // ...
}
因此,您必须通过其他方式获得它:例如通过函数、类或从其他挂钩中获取值。

但你肯定可以改变优先级:

add_action( \'woocommerce_before_single_product_summary\', \'my_own_function\', 5 );
如果您可以将其修改(例如在子主题中)为:

do_action( \'woocommerce_before_single_product_summary\', $args1, $args2, $args3 );
然后您可以使用:

add_action( \'woocommerce_before_single_product_summary\', \'my_own_function\', 5, 3 );
回调为:

function my_own_function ( $args1, $args2, $args3 )
{
    // ... you have now access to $args1, $args2, $args3
}

相关推荐

OOP development and hooks

我目前正在为Wordpress编写我的第一个OOP插件。为了帮助我找到一点结构,a boiler plate 这为我奠定了基础。在里面Main.php 有一种方法可以为管理员加载JS和CSS资产:/** * Register all of the hooks related to the admin area functionality * of the plugin. * * @since 0.1.0 * @access private