woocommerce_thankyou挂钩不工作

时间:2017-04-09 00:55:31

标签: php wordpress woocommerce hook-woocommerce orders

当我将下面的代码直接粘贴到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";
    }
}

1 个答案:

答案 0 :(得分:7)

  

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

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 shit";
    } 
    elseif (($orderstat == 'pending') && ($paymethod == 'PayPal')) {
        echo "some other shit";
    }
}

希望这有帮助!