Hook e invio dei dati Woocommerce dopo il click sul pulsante Effettua Ordine

22 gen 2018, 05:32:50
Visualizzazioni: 55.3K
Voti: 3

Sto cercando un modo per aggiungere un hook alla mia pagina di checkout di WooCommerce (http://localhost/checkout). Vorrei inviare gli articoli del carrello, l'indirizzo di fatturazione e le informazioni dell'utente a un'altra pagina come http://localhost/hooking dopo aver cliccato sul pulsante Effettua Ordine per ulteriori scopi, è possibile e come si può fare?

2
Commenti

Sarebbe meglio farlo quando l'ordine è completato

Mederic Mederic
22 gen 2018 05:34:26

Perché ho un altro metodo di pagamento, che necessita degli articoli del carrello Woocommerce per iniziare a pagare. @@. Roba molto confusa @@.

Grazie per la risposta, @Mederic.

bonjourimcam bonjourimcam
22 gen 2018 05:41:00
Tutte le risposte alla domanda 1
5

Per queste tre possibilità:

Se vuoi davvero farlo al momento dell'ordine dovresti usare l'hook:

woocommerce_new_order

Comunque ti consiglio di usare l'hook:

woocommerce_order_status_completed

In questo modo ti assicuri che l'ordine sia completato prima di inviare le informazioni.

Per intercettare le informazioni prima del pagamento puoi sempre usare:

woocommerce_before_checkout_billing_form

Se ancora non funziona puoi controllare la lista degli hook:

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

Dovresti poi avere qualcosa del genere:

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
        ];
//da $order puoi ottenere tutte le informazioni sugli articoli ecc 
//sopra è solo un semplice esempio di come funziona
//il tuo codice per inviare i dati
}

Visto che l'obiettivo finale è avere il tuo sistema di pagamento, ti consiglio di controllare questo tutorial che spiega come integrare il tuo gateway di pagamento

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

22 gen 2018 05:42:03
Commenti

Cosa ne dici di utilizzare questo hook: woocommerce_review_order_after_submit. Il problema è che il mio http://localhost/hooking è una pagina php, ho provato a inserire del codice come 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 )); } ma sembra non funzionare

bonjourimcam bonjourimcam
22 gen 2018 05:49:13

Il codice che ti ho dato dovrebbe essere in un plugin o nel functions.php del tuo tema e in quella funzione wc_send_order_to_mypage fai una richiesta post alla tua pagina php per esempio

Mederic Mederic
22 gen 2018 05:56:41

Grazie, ma come posso ottenere la lista degli articoli e portarla su mypage ?

bonjourimcam bonjourimcam
22 gen 2018 06:01:00

Se non sai come fare un reindirizzamento in php non dovresti scrivere codice come questo. Dai un'occhiata a questo: https://www.skyverge.com/blog/how-to-create-a-simple-woocommerce-payment-gateway/

Mederic Mederic
22 gen 2018 06:03:53

Sìì, darò un'occhiata, grazie per l'aiuto, amico. Grazie mille !!!!.

bonjourimcam bonjourimcam
22 gen 2018 06:33:17