Hook și trimitere date Woocommerce după apăsarea butonului Plasare Comandă

22 ian. 2018, 05:32:50
Vizualizări: 55.3K
Voturi: 3

Caut o modalitate de a adăuga un hook la pagina de checkout din WooCommerce (http://localhost/checkout). Intenționez să trimit produsele din coș, adresa de facturare și informațiile utilizatorului către o altă pagină, cum ar fi http://localhost/hooking după ce se face click pe butonul Plasare Comandă pentru utilizare ulterioară. Este posibil acest lucru și cum poate fi realizat?

2
Comentarii

Cel mai bine ar fi să o faci la finalizarea comenzii

Mederic Mederic
22 ian. 2018 05:34:26

Pentru că am o altă metodă de plată care necesită articolele din coșul Woocommerce pentru a începe plata. @@. Lucruri foarte confuze @@.

Mulțumesc pentru răspuns, @Mederic.

bonjourimcam bonjourimcam
22 ian. 2018 05:41:00
Toate răspunsurile la întrebare 1
5

Pentru aceste trei posibilități:

Dacă chiar doriți să faceți acest lucru la plasarea comenzii, ar trebui să utilizați hook-ul:

woocommerce_new_order

Cu toate acestea, v-aș recomanda să utilizați hook-ul:

woocommerce_order_status_completed

Acest lucru vă va asigura că comanda este finalizată înainte de a trimite informațiile.

Pentru a prelua informațiile înainte de facturare, puteți utiliza întotdeauna:

woocommerce_before_checkout_billing_form

Dacă încă nu funcționează, puteți verifica lista de hook-uri:

https://docs.woocommerce.com/wc-apidocs/hook-docs.html

Apoi, ați putea avea ceva de genul:

add_action( 'woocommerce_order_status_completed', 'wc_send_order_to_mypage' );
function wc_send_order_to_mypage( $order_id ) {
$shipping_add = [
            "firstname" => $order->shipping_first_name,
            "lastname" => $order->shipping_last_name,
            "address1" => $order->shipping_address_1,
            "address2" => $order->shipping_address_2,
            "city" => $order->shipping_city,
            "zipcode" => $order->shipping_postcode,
            "phone" => $order->shipping_phone,
            "state_name" => $order->shipping_state,
            "country" => $order->shipping_country
        ];
//din $order puteți obține toate informațiile despre produse etc 
//mai sus este doar un exemplu simplu despre cum funcționează
//codul dvs. pentru a trimite datele
}

Deoarece scopul final este să aveți propriul sistem de plată, v-aș recomanda să consultați acest tutorial care explică cum să integrați propria pasarelă de plată

https://www.skyverge.com/blog/how-to-create-a-simple-woocommerce-payment-gateway/

22 ian. 2018 05:42:03
Comentarii

Cum ar fi să folosești acest hook: woocommerce_review_order_after_submit. Problema este că pagina mea http://localhost/hooking este o pagină PHP, am încercat să adaug niște cod precum global $woocommerce; $items = $woocommerce->cart->get_cart(); function process_payment($order_id) { $order = new WC_Order($order_id); return array('result' => 'success', 'redirect' => $order->get_checkout_payment_url( true )); } dar se pare că nu funcționează

bonjourimcam bonjourimcam
22 ian. 2018 05:49:13

Codul pe care ți l-am dat ar trebui să fie într-un plugin sau în functions.php al temei tale, iar în acea funcție wc_send_order_to_mypage faci o cerere POST către pagina ta PHP, de exemplu

Mederic Mederic
22 ian. 2018 05:56:41

Mulțumesc, dar cum pot obține lista de articole și să o transmit către mypage?

bonjourimcam bonjourimcam
22 ian. 2018 06:01:00

Dacă nu știi cum să faci o redirecționare în php, nu ar trebui să codezi ceva de genul acesta. Verifică asta: https://www.skyverge.com/blog/how-to-create-a-simple-woocommerce-payment-gateway/

Mederic Mederic
22 ian. 2018 06:03:53

Da, o să verific asta, mulțumesc pentru ajutor, prietene. Mulțumesc mult!!!!.

bonjourimcam bonjourimcam
22 ian. 2018 06:33:17