Skip to content

Hooks

Το Wolt Drive for WooCommerce περιλαμβάνει PHP hooks για custom integrations που χρειάζεται να προσαρμόσουν τον τρόπο με τον οποίο οι διευθύνσεις παράδοσης στέλνονται στη Wolt.

Τα hooks αυτά απευθύνονται σε developers. Προσθέστε τα custom callbacks στο functions.php του theme σας, σε child theme, ή σε ένα μικρό custom plugin.

woltdrive_checkout_dropoff_address

Φιλτράρει τη διεύθυνση drop-off που χρησιμοποιείται όταν το WooCommerce υπολογίζει το Wolt Drive shipping rate στο checkout.

Χρησιμοποιήστε αυτό το hook όταν το checkout αποθηκεύει τη διεύθυνση παράδοσης σε custom fields αντί για τα native shipping address fields του WooCommerce.

add_filter(
'woltdrive_checkout_dropoff_address',
function ($dropoff_address, $package, $shipping_method) {
$custom_address = WC()->session->get('custom_delivery_address');
if (! empty($custom_address)) {
return $custom_address;
}
return $dropoff_address;
},
10,
3
);

Παράμετροι

ΠαράμετροςΤύποςΠεριγραφή
$dropoff_addressstringΗ προεπιλεγμένη διεύθυνση από το checkout destination του WooCommerce.
$packagearrayΤο WooCommerce shipping package που χρησιμοποιείται για τον υπολογισμό.
$shipping_methodWoltDrive\WooCommerce\ShippingMethodΤο Wolt Drive shipping method instance.

Επιστροφή

Επιστρέψτε ένα μη κενό formatted address string. Αν η τιμή δεν είναι string ή είναι κενή μετά το trim, το Wolt Drive rate δεν προστίθεται.

woltdrive_order_dropoff_address

Φιλτράρει τη διεύθυνση drop-off που χρησιμοποιείται όταν δημιουργείται η Wolt Drive παραγγελία από μία WooCommerce παραγγελία.

Χρησιμοποιήστε αυτό το hook όταν η τελική WooCommerce παραγγελία δεν αποθηκεύει τη διεύθυνση παράδοσης στα native shipping address fields του WooCommerce.

add_filter(
'woltdrive_order_dropoff_address',
function ($dropoff_address, $order) {
$custom_address = $order->get_meta('_custom_delivery_address');
if (! empty($custom_address)) {
return $custom_address;
}
return $dropoff_address;
},
10,
2
);

Παράμετροι

ΠαράμετροςΤύποςΠεριγραφή
$dropoff_addressstringΗ προεπιλεγμένη διεύθυνση από τα shipping address fields της WooCommerce παραγγελίας.
$orderWC_OrderΗ WooCommerce παραγγελία.

Επιστροφή

Επιστρέψτε το formatted address string που πρέπει να σταλεί στη Wolt ως drop-off address.

woltdrive_geocode_address

Φιλτράρει τις συντεταγμένες που χρησιμοποιούνται για ένα formatted address που στέλνεται στη Wolt.

Χρησιμοποιήστε αυτό το hook όταν έχετε ήδη latitude και longitude για μία διεύθυνση, ή όταν θέλετε να χρησιμοποιήσετε δική σας geocoding υπηρεσία.

add_filter(
'woltdrive_geocode_address',
function ($coordinates, $formatted_address) {
$custom_coordinates = my_custom_geocoder($formatted_address);
if ($custom_coordinates) {
return [
'lat' => (float) $custom_coordinates['lat'],
'lon' => (float) $custom_coordinates['lon'],
];
}
return $coordinates;
},
10,
2
);

Παράμετροι

ΠαράμετροςΤύποςΠεριγραφή
$coordinates`nullarray`
$formatted_addressstringΗ formatted διεύθυνση που στέλνεται στη Wolt.

Επιστροφή

Επιστρέψτε null ή array με τιμές lat και lon:

[
'lat' => 37.9838,
'lon' => 23.7275,
]

Αν το returned array δεν περιλαμβάνει έγκυρες τιμές lat και lon, το plugin το αγνοεί και καταγράφει warning.

Παράδειγμα Custom Checkout

Τα checkout και order hooks συνήθως χρειάζεται να χρησιμοποιούνται μαζί. Το checkout hook ελέγχει αν θα εμφανιστεί το Wolt Drive shipping method, ενώ το order hook ελέγχει τη διεύθυνση που θα σταλεί όταν δημιουργηθεί η Wolt Drive παραγγελία.

add_filter(
'woltdrive_checkout_dropoff_address',
function ($dropoff_address) {
$address = WC()->session->get('custom_delivery_address');
return ! empty($address) ? $address : $dropoff_address;
}
);
add_filter(
'woltdrive_order_dropoff_address',
function ($dropoff_address, $order) {
$address = $order->get_meta('_custom_delivery_address');
return ! empty($address) ? $address : $dropoff_address;
},
10,
2
);

Το custom checkout implementation είναι υπεύθυνο να αποθηκεύει τη διεύθυνση παράδοσης στο WooCommerce session κατά το checkout και σε order meta όταν δημιουργείται η παραγγελία.