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_address | string | Η προεπιλεγμένη διεύθυνση από το checkout destination του WooCommerce. |
$package | array | Το WooCommerce shipping package που χρησιμοποιείται για τον υπολογισμό. |
$shipping_method | WoltDrive\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_address | string | Η προεπιλεγμένη διεύθυνση από τα shipping address fields της WooCommerce παραγγελίας. |
$order | WC_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 | `null | array` |
$formatted_address | string | Η 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 όταν δημιουργείται η παραγγελία.