如何找到触发操作的位置?

时间:2022-02-11 作者:shenkwen

据我所知,这个动作钩,add_action 用于将回调函数添加到exsiting 动作钩,意思是,使线条像

add_action(\'some_action_hook\',function(){ // some function})
工作,你需要有一句台词,上面写着do\\u actionsome_action_hook 代码中的某个地方。这种理解正确吗?

我遇到了一个动作钩,我找不到它的触发点:它是woocommerce的woocommerce_thankyou_bacs. 我已经在我的网站根文件夹中彻底搜索了woocommerce_thankyou_bacs, 接下来的唯一一条线是

add_action( \'woocommerce_thankyou_bacs\', array( $this, \'thankyou_page\' ) );
在中\\wp-content\\plugins\\woocommerce\\includes\\gateways\\bacs\\class-wc-gateway-bacs.php.我还对thankyou.*bacs, 结果是一样的。我也在网上和Woocommerce的文档中搜索了这个动作挂钩,但没有得到多少有用的信息。这本身微不足道,但我想知道:

理解为do_action, 必须有相应的add_action 正确,或者至少大体正确do_action 是为了某个动作钩

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

在WooCommerce(我的v6.1.1版)中,有一个名为/woocommerce/templates/checkout/thankyou.php 并且在line 79 您有一个带有动态付款方式名称的触发器,因此每个付款方式都有一个发挥其魔力的地方

<?php do_action( \'woocommerce_thankyou_\' . $order->get_payment_method(), $order->get_id() ); ?>
并回答您的问题:

恰恰相反。在哪里add_action 有一个对应的do_action 但我可以动态命名,就像上面的例子一样,没有百分之百的方法可以找到每个do_action 因为所有钩子名称都取决于开发人员的创造力。因此,乍一看,我很难像上面的例子那样找到

相关推荐

Adding custom Bulk Actions

我一直在寻找将自定义批量操作添加到类别页面的方法。他们中的大多数人说,不可能用干净的方式来做这件事,因为这件事没有挂钩。大多数解决方案包括在客户端使用JS通过DOM操作添加选项。虽然这是可行的,但它仍然是一个相当丑陋的解决方案。我读过的大多数文章都是2年前的,所以我一直在想,从那时起到现在,这个问题已经添加了一个新的挂钩或解决方案,以便对这个问题有一个更及时的解决方案。