请解释一下这些挂钩是如何工作的

时间:2018-02-26 作者:Zhi V

我读过关于钩子和动作的书,我知道当我们看到do_action(\'some_hook\') 这意味着某处add_action(\'some_hook\', function() {...}); 或功能some_hook() 存在于主题的functions.php.

但这是什么?!:

从…起woocommerce/includes/class-wc-checkout.php 第943行:

public function process_checkout() {
    try {
        /////////////
        do_action( \'woocommerce_before_checkout_process\' ); <----!!!

        if ( WC()->cart->is_empty() ) {
            throw new Exception( sprintf( __( \'Sorry, your session has expired. <a href="%s" class="wc-backward">Return to shop</a>\', \'woocommerce\' ), esc_url( wc_get_page_permalink( \'shop\' ) ) ) );
        }

        do_action( \'woocommerce_checkout_process\' ); <-----!!!
我找不到woocommerce_checkout_processwoocommerce_before_checkout_process 文件中的任何位置!他们是做什么的?

1 个回复
最合适的回答,由SO网友:Dave Romsey 整理而成

有可能在不使用的情况下提供动作挂钩,这就是这里发生的情况。

woocommerce_before_checkout_processwoocommerce_checkout_process 是WooCommerce提供的挂钩,但WooCommerce本身并不将回调函数附加到这些挂钩中的任何一个。它们允许插件和主题在触发相应挂钩时运行代码。

如果要将函数附加到woocommerce_checkout_process hook(例如),您可以将以下代码添加到主题或插件中:

add_action( \'woocommerce_checkout_process\', \'wpse_woocommerce_checkout_process\' );
function wpse_woocommerce_checkout_process() {
    // Do something...
}
此代码将在线路调用时运行do_action( \'woocommerce_checkout_process\' ); 在WooCommerce中执行。

结束

相关推荐

theme functions (hooks)

WordPress已经提出了这个问题,但没有答案。我只是想在这个论坛上试试,如果有人知道的话,因为我也有同样的问题。要使用jquery滑块编辑我的主题,如何转到该脚本?,显示“$主题->挂钩(\'content\\u before\');”在content div标记中。有人能帮忙吗?我的主题索引。php包含以下内容<div id=\"main\"> <?php $theme->hook(\'main_before\'); ?> &#x