...

Ten kod PHP jest specyficzny dla WooCommerce i służy do automatycznego zmieniania statusu zamówienia. Kiedy klient dokonuje zakupu i zamówienie przechodzi do stanu „processing„, ten kod natychmiast zmienia status zamówienia na „on-hold„. Zmiana ta następuje po zdarzeniu „woocommerce_thankyou„, które jest wywoływane po sfinalizowaniu zakupu przez klienta. Kod jest zabezpieczony przed próbą manipulacji zamówieniem bez podanego identyfikatora zamówienia.

function   QuadLayers_change_order_status( $order_id ) {  
                if ( ! $order_id ) {return;}            
                $order = wc_get_order( $order_id );
                if( 'processing'== $order->get_status() ) {
                    $order->update_status( 'wc-on-hold' );
                }
}
add_action('woocommerce_thankyou','QuadLayers_change_order_status');

function QuadLayers_change_order_status( $order_id ): Ta linia definuje nową funkcję o nazwie QuadLayers_change_order_status. Funkcja ta przyjmuje jeden argument, $order_id, który reprezentuje identyfikator zamówienia.

{ if ( ! $order_id ) {return;}: Jeśli funkcja nie otrzyma identyfikatora zamówienia ($order_id), zwraca null i kończy wykonywanie. Jest to mechanizm zabezpieczający przed próbą manipulacji zamówieniem, które nie istnieje.

$order = wc_get_order( $order_id );: To jest wywołanie funkcji wc_get_order z WooCommerce, które pobiera zamówienie na podstawie podanego identyfikatora zamówienia. Obiekt zamówienia jest następnie zapisywany w zmiennej $order.

if( 'processing’== $order->get_status() ): Ta linia kodu sprawdza, czy status obiektu zamówienia jest równy ’processing’. Jeśli tak, to kod wewnątrz tej instrukcji warunkowej zostanie wykonany.

$order->update_status( 'wc-on-hold’ );: Jeśli powyższy warunek jest spełniony (status zamówienia to ’processing’), ta linia kodu aktualizuje status zamówienia na ’wc-on-hold’.

add_action(’woocommerce_thankyou’, 'QuadLayers_change_order_status’);: Ostatnia linia kodu dodaje wcześniej zdefiniowaną funkcję QuadLayers_change_order_status do zdarzenia ’woocommerce_thankyou’. To zdarzenie jest wywoływane przez WooCommerce po sfinalizowaniu zamówienia przez klienta. Oznacza to, że każde zamówienie, które zostanie złożone i przejdzie do statusu ’processing’, automatycznie zmieni swój status na ’wc-on-hold’.

Nie znalazłeś funkcji, która Cię interesuje?
Napisz do mnie.

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *