【问题标题】:woocommerce_thankyou hook not workingwoocommerce_thankyou 挂钩不起作用
【发布时间】:2017-04-09 00:55:30
【问题描述】:

当我将下面的代码直接粘贴到thankyou.php 中时,它工作得非常好。但是当我尝试将其挂接到woocommerce_thankyou 时,什么也没有发生。

我刚刚开始使用 PHP,

add_action('woocommerce_thankyou', 'test_1', 10, 1);

function test_1() {
    $paymethod = $order->payment_method_title;
    $orderstat = $order->get_status();

    if (($orderstat == 'completed') && ($paymethod == 'PayPal')) {
        echo "something";
    } elseif (($orderstat == 'processing') && ($paymethod == 'PayPal')) {
        echo "some other shit";
    } elseif (($orderstat == 'pending') && ($paymethod == 'PayPal')) {
        echo "some other shit";
    }
}

【问题讨论】:

  • hook 是什么意思?
  • 您是如何尝试将其连接到其中的?

标签: php wordpress woocommerce hook-woocommerce orders


【解决方案1】:

首先你要在functions.php中添加函数和钩子 您的活动子主题(或主题)的文件。或者也可以在任何插件 PHP 文件。其次,您需要创建一个实例/订单对象,以 访问数据。

add_action('woocommerce_thankyou', 'wh_test_1', 10, 1);

function wh_test_1($order_id) { //<--check this line

    //create an order instance
    $order = wc_get_order($order_id); //<--check this line

    $paymethod = $order->payment_method_title;
    $orderstat = $order->get_status();

    if (($orderstat == 'completed') && ($paymethod == 'PayPal')) {
        echo "something";
    } 
    elseif (($orderstat == 'processing') && ($paymethod == 'PayPal')) {

        echo "some other code";
    } 
    elseif (($orderstat == 'pending') && ($paymethod == 'PayPal')) {
        echo "some other code";
    }
}

希望这会有所帮助!

【讨论】:

  • @HeinrichHeld 我的猜测是 add_action 行指定我们采用 1 个参数 - add_action(.., .., 10, 1) 但您的原始代码 test_1() 没有它
猜你喜欢
  • 2017-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-02
  • 2019-02-28
  • 1970-01-01
相关资源
最近更新 更多