2017-04-09 11 views
0

以下のコードをthankyou.phpに直接貼り付けると、問題なく動作します。しかし、それをwoocommerce_thankyouにフックしようとすると、何も起こりません。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"; 
    } 
} 
+0

「フック」とはどういう意味ですか? – Neil

+0

あなたはどのようにそれにフックしようとしますか? –

答えて

2

あなたのアクティブな子テーマ(またはテーマ)の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 shit"; 
    } 
    elseif (($orderstat == 'pending') && ($paymethod == 'PayPal')) { 
     echo "some other shit"; 
    } 
} 

は、この情報がお役に立てば幸い!

+0

これは...働いた。どうもありがとう!!!なぜ私は完全にはわからない –

関連する問題