【问题标题】:Override Wordpress plugin hook覆盖 Wordpress 插件挂钩
【发布时间】:2018-10-09 04:25:02
【问题描述】:

我正在为 Stripe 使用 Wordpress 插件,它有一个名为:

do_action( 'wc_stripe_checkout_receipt_page_before_form' ); 

此操作位于 Stripe 支付表单上方,我想在此处显示一些文本,那么如何利用此钩子?

可以在下面的第 541 行的源代码中找到此操作

https://github.com/woocommerce/woocommerce-gateway-stripe/blob/master/includes/class-wc-gateway-stripe.php

这是我尝试过的

remove_action('wc_stripe_checkout_receipt_page_before_form');
add_action('foobar', 'wc_stripe_checkout_receipt_page_before_form');

function foobar(){
    echo 'foo';
}

产生以下警告,但不显示我的 echo 'foo'

Missing argument 2 for remove_action(),

【问题讨论】:

    标签: wordpress hook


    【解决方案1】:

    您的错误告诉了您需要知道的一切。
    remove_action 至少需要 2 个参数 - 操作名称和与之挂钩的函数名称。
    在您的情况下,您不应该将其删除,而应挂钩它。你做错了什么。 add_action 的第一个参数是您尝试挂钩的操作(在您的情况下为wc_stripe_checkout_receipt_page_before_form),第二个是应该在该操作上执行的函数(在您的情况下为foobar)。正确的称呼:

    add_action('wc_stripe_checkout_receipt_page_before_form', 'foobar');
    

    这样,您的“foo”将显示在表单之前,因为这是调用操作的地方。

    【讨论】:

    • 非常感谢您的详细回复。我知道错误在说什么,但不知道丢失的 arg 应该是什么!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-08
    • 2016-10-29
    • 2019-01-27
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多