View Categories

Snippet-uri de cod utile pentru personalizarea aditionala a functiilor Bookurier

1 min read

Integrarea denumirilor produselor în secțiunea de observații a AWB-ului
#

Acest fragment de cod vă va ajuta să afișați denumirea produselor din comandă pe AWB în secțiunea de observații.

add_filter('curiero_awb_details', function (array $awb_details, $courier_name, WC_Abstract_Order $order): array {
    if (
        !class_exists(CurieRO_Printing_Bookurier::class)
        || $courier_name !== CurieRO_Printing_Bookurier::$public_name
    ) {
        return $awb_details;
    }

    $item_details = curiero_extract_order_items_details($order, 'name');
    $awb_details['notes'] = $item_details['contents'];

    return $awb_details;
}, 10, 3);


Hook nou pentru statusul AWB-ului
#

Am introdus un hook nou care vă permite să actualizați automat statusul unei comenzi, în funcție de statusul livrării.

Acest hook se numește curiero_awb_status_changed și poate fi folosit, de exemplu, pentru a marca automat o comandă ca Anulată dacă coletul a fost refuzat de client.

Vă oferim un exemplu de cod mai jos. Trebuie să completați exact denumirea statusurilor de livrare pe care le considerați ca fiind refuzuri (ex: pentru Sameday și DPD, vedeți liniile din cod marcate).
De asemenea, dacă aveți un status personalizat pentru comenzile anulate, înlocuiți linia $status = 'cancelled'; cu denumirea statusului folosit de dumneavoastră.

add_action('curiero_awb_status_changed', function ($public_name, $order, $awb, $response) {
$refusal_statuses = [
'generic' => ['Refuzat'],
'Bookurier' => ['17'],
'DPD' => ['Expedierea ta a fost refuzată.'],
'ExpressCourier' => ['Refuz primire destinatar'],
'FanCourier' => ['6', 'S6'],
'Sameday'=> [
'Refusal of receipt',
'Order refused by recipient'
]
];

if( isset($refusal_statuses[$public_name]) &&
in_array($response, $refusal_statuses[$public_name])
) {
$status = 'cancelled';
$order->update_status($status, 'Livrarea a fost refuzată.');
}
}, 10, 4);