【问题标题】:How to add_action to Woocommerce hook?如何将_action 添加到 Woocommerce 钩子?
【发布时间】:2019-05-24 14:59:49
【问题描述】:

我只是想向现有的 Woocommerce 钩子(在本例中为 woocommerce_after_cart)添加一个操作。使用add_action() 添加函数并重新加载页面后,我的函数无法运行。直到我手动 do_action() 我的函数才最终运行。我只是想知道为什么当我最初添加动作时,它没有被确认。

我已经检查了 Wordpress codex 的钩子,似乎我做的一切都是正确的。我在自定义主题中添加动作,而不是 functions.php,但我也尝试过。

完整的东西是这样的:

function abc() {
   print_r("hello world");
}
add_action('woocommerce_after_cart','abc');

Hello world 在页面加载时不打印,只有在我调用do_action() 之后才会打印,为什么?

【问题讨论】:

    标签: php wordpress hook-woocommerce


    【解决方案1】:

    为了使任何add_action() 工作,必须调用do_action()。

    woocommerce_after_cart 动作在模板“/cart/cart.php”中被调用 https://github.com/woocommerce/woocommerce/search?utf8=%E2%9C%93&q=woocommerce_after_cart

    在您的主题或子主题中,您是否有文件“/woocommerce/cart/cart.php”? 可能是 WooCommerce 购物车模板被覆盖,并且该模板没有 <?php do_action( 'woocommerce_after_cart' ); ?> 调用。

    我已经测试了你的 abc 函数,它可以在 Woo 和 WP 的开箱即用的香草安装中运行。

    您需要将<?php do_action( 'woocommerce_after_cart' ); ?> 操作添加到cart.php 模板文件中。

    希望这会有所帮助:)

    【讨论】:

    • 我没有覆盖任何模板,do_action() 在原始模板中。阅读您的回答后,我改变了对如何处理购物车页面的看法,因此虽然它在技术上没有回答我的问题,但它确实帮助我到达了那里。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    • 2018-11-30
    • 2016-01-16
    • 2014-08-01
    相关资源
    最近更新 更多