2.1 Utvecklarhooks
Den här sidan dokumenterar de WordPress actions och filters som Early Bird Shipping-pluginet tillhandahåller för utvecklare som vill bygga egna integrationer eller utöka pluginets funktionalitet.
Målgrupp: Den här sidan är avsedd för utvecklare som bygger egna integrationer eller vill påverka pluginets beteende med kod. Butiksadministratörer kan hoppa över den här sidan.
Actions
Pluginets livscykel
itsed_connect_earlybird_init
Körs efter att pluginet har initierats fullt ut och alla komponenter har registrerats.
add_action( 'itsed_connect_earlybird_init', function (): void {
// Pluginet är fullständigt laddat — säkert att använda dess komponenter
} );itsed_connect_earlybird_activated
Körs när pluginet aktiveras.
add_action( 'itsed_connect_earlybird_activated', function (): void {
// Kör installationslogik vid aktivering
} );itsed_connect_earlybird_deactivated
Körs när pluginet inaktiveras.
add_action( 'itsed_connect_earlybird_deactivated', function (): void {
// Städa upp vid inaktivering
} );Bokningshändelser
itsed_connect_earlybird_booking_created
Körs när en försändelsebokning har bekräftats. Använd detta för att trigga egna flöden efter att en försändelse bokats, till exempel att meddela ett lagersystem eller uppdatera ett ERP-system.
add_action( 'itsed_connect_earlybird_booking_created', function ( int $order_id ): void {
$order = wc_get_order( $order_id );
$tracking_code = $order->get_meta( '_earlybird_tracking_code' );
// Integrera med externt system
}, 10, 1 );Parametrar:
| Parameter | Typ | Beskrivning |
|---|---|---|
$order_id | int | WooCommerce order-ID |
itsed_connect_earlybird_booking_failed
Körs när ett bokningsförsök misslyckas permanent, alltså inte vid tillfälliga fel som senare kan återförsökas.
add_action( 'itsed_connect_earlybird_booking_failed', function ( int $order_id ): void {
// Skicka larm, logga eller trigga manuell hantering
}, 10, 1 );Parametrar:
| Parameter | Typ | Beskrivning |
|---|---|---|
$order_id | int | WooCommerce order-ID |
Statushändelser
itsed_connect_earlybird_status_updated
Körs efter att en statusuppdatering för en utgående försändelse har sparats på ordern, antingen via webhook eller manuell synkronisering.
add_action( 'itsed_connect_earlybird_status_updated', function ( int $order_id ): void {
$order = wc_get_order( $order_id );
$status = $order->get_meta( '_earlybird_status' );
// Reagera på statusändring
}, 10, 1 );Parametrar:
| Parameter | Typ | Beskrivning |
|---|---|---|
$order_id | int | WooCommerce order-ID |
itsed_connect_earlybird_return_status_updated
Körs efter att en statusuppdatering för en returförsändelse har sparats.
add_action( 'itsed_connect_earlybird_return_status_updated', function ( int $order_id ): void {
$order = wc_get_order( $order_id );
$return_status = $order->get_meta( '_earlybird_return_status' );
// Reagera på statusändring för retur
}, 10, 1 );Parametrar:
| Parameter | Typ | Beskrivning |
|---|---|---|
$order_id | int | WooCommerce order-ID |
Filters
itsed_connect_earlybird_is_multi_package
Gör det möjligt att påverka logiken för att avgöra om ordern ska behandlas som en försändelse med flera paket. Som standard känner pluginet själv av om WooCommerce delar upp varukorgen i flera fraktpaket. Med detta filter kan du tvinga fram eller förhindra det beteendet.
add_filter( 'itsed_connect_earlybird_is_multi_package', function ( bool $is_multi, array $packages ): bool {
// Tvinga beteendet till ett enda paket
return false;
}, 10, 2 );Parametrar:
| Parameter | Typ | Beskrivning |
|---|---|---|
$is_multi | bool | Om pluginet har identifierat flera paket |
$packages | array | WooCommerces array med fraktpaket |
Returnerar: bool – om ordern ska behandlas som en flerpaksförsändelse eller inte.
Order-meta-nycklar
Pluginet lagrar försändelsedata i WooCommerce ordermeta. Dessa nycklar kan läsas via $order->get_meta().
Utgående försändelse
| Meta-nyckel | Typ | Beskrivning |
|---|---|---|
_earlybird_type | string | Leveranstyp: home, box.delivery, express |
_earlybird_booking_id | string | Early Birds boknings- eller order-ID |
_earlybird_tracking_code | string | Primär spårningskod |
_earlybird_tracking_url | string | URL till transportörens spårningssida |
_earlybird_status | string | Aktuell försändelsestatus, till exempel InTransit eller DeliverySucceeded |
_earlybird_carrier_name | string | Namn på transportör |
_earlybird_box_name | string | Namn på vald paketbox (gäller endast box.delivery) |
_earlybird_box_address | string | Adress till vald paketbox (gäller endast box.delivery) |
_earlybird_preferred_delivery_day | string | Kundens valda leveransdag |
_earlybird_estimated_delivery | string | Beräknat leveransdatum |
Returförsändelse
| Meta-nyckel | Typ | Beskrivning |
|---|---|---|
_earlybird_return_booking_id | string | Boknings-ID för returförsändelse |
_earlybird_return_tracking_code | string | Spårningskod för retur |
_earlybird_return_status | string | Status för returförsändelse |
Obs: Meta-nycklar som börjar med _ döljs i WooCommerces vanliga gränssnitt för ordermeta. Använd $order->get_meta( '_earlybird_...' ) för att läsa dem programmatiskt.
Exempel: Synka till externt system vid leverans
add_action( 'itsed_connect_earlybird_status_updated', function ( int $order_id ): void {
$order = wc_get_order( $order_id );
$status = $order->get_meta( '_earlybird_status' );
if ( 'DeliverySucceeded' !== $status ) {
return;
}
// Meddela externt system
wp_remote_post( 'https://erp.example.com/api/delivered', [
'body' => wp_json_encode( [
'order_id' => $order_id,
'tracking_code' => $order->get_meta( '_earlybird_tracking_code' ),
'delivered_at' => current_time( 'mysql' ),
] ),
'headers' => [ 'Content-Type' => 'application/json' ],
] );
}, 10, 1 );Exempel: Egen notifiering vid misslyckad bokning
add_action( 'itsed_connect_earlybird_booking_failed', function ( int $order_id ): void {
$order = wc_get_order( $order_id );
wp_mail(
'fulfillment@example.com',
sprintf( 'Earlybird-bokning misslyckades för order #%d', $order->get_order_number() ),
sprintf(
"Order #%d kunde inte bokas med Earlybird.\n\nKund: %s %s\nRedigera: %s",
$order->get_order_number(),
$order->get_billing_first_name(),
$order->get_billing_last_name(),
$order->get_edit_order_url()
)
);
}, 10, 1 );