2017-04-09 2 views
0

Lorsque je colle le code ci-dessous directement dans le thankyou.php, cela fonctionne parfaitement bien. mais quand j'essaye de l'accrocher en woocommerce_thankyou, rien ne se passe.woocommerce_thankyou crochet ne fonctionne pas

Je viens juste de commencer avec 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

Qu'entendez-vous par 'hook'? – Neil

+0

comment vous essayez de l'accrocher? –

Répondre

2

tout d'abord, vous devez ajouter la fonction et crochet dans functions.php fichier de votre thème enfant actif (ou le thème). Ou encore dans tous les fichiers PHP plugin. Deuxièmement, vous devez créer une instance/objet d'ordre, à accéder aux données.

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"; 
    } 
} 

Hope this helps!

+0

cela ... travaillé. Merci beaucoup!!! même si je ne suis pas entièrement sûr pourquoi –