Skip to content
SvenskaNot available in English
Get in touch

För utvecklare

Mallfunktioner, filter och REST-läsning för teman och integrationer.

Sändningsdatat lagras som dold ordermeta vars nyckelnamn kan ändras mellan versioner. Funktionerna och filtren här är den stödda vägen in, de ändras inte utan att det står i versionshistoriken.

Mallfunktioner

Funktioner för teman och andra tillägg som vill visa sändningsdata. Varje funktion tar en order eller ett order-id, och saknas uppgiften returneras ett tomt värde av rätt typ: tom sträng, tom lista eller noll.

dt_frakt_tracking_link( $order );   // Spårningslänk, eller tom sträng
dt_frakt_tracking_number( $order ); // Spårningsnummer, eller tom sträng
dt_frakt_shipment_id( $order );     // Sändningens id hos Fraktjakt, eller 0
dt_frakt_documents( $order );       // Lista med frakthandlingarnas adresser
dt_frakt_agent( $order );           // Valt utlämningsställe, namn och adress
dt_frakt_status_label( $status );   // Läsbar etikett för en sändningsstatus

Funktionerna finns bara när tillägget är aktivt. Anropa dem bakom en function_exists-kontroll, så överlever temat att tillägget avaktiveras.

Exempel, spårningslänk på tacksidan:

add_action( 'woocommerce_thankyou', function ( $order_id ) {
    if ( ! function_exists( 'dt_frakt_tracking_link' ) ) {
        return;
    }
    $link = dt_frakt_tracking_link( $order_id );
    if ( '' !== $link ) {
        printf(
            '<p><a href="%s">Spåra din leverans</a></p>',
            esc_url( $link )
        );
    }
} );

Filter

FilterGör
dt_frakt_add_rateJustera eller stoppa en liverat innan den läggs i kassan. Null döljer raten
dt_frakt_coupon_free_rateAvgör per liverat om en rabattkod med "Tillåt fri frakt" ska nolla den. Standard: alla
dt_frakt_commodity_from_cart_itemJustera eller uteslut en vara ur prisförfrågan. Null utesluter
dt_frakt_residentialÅsidosätt bedömningen privat- eller företagsleverans i kassan. Bokningen följer filtrets val när den använder kassans offert. Bokas frakten med en ny sökning bedöms orderns företagsfält utan filtret
dt_frakt_no_book_statusesOrderstatusar som aldrig bokas. Standard: avbruten, återbetald, misslyckad, kassautkast och papperskorg
dt_frakt_auto_book_orderAvgör per order om den bokas automatiskt när den når statusen för automatisk bokning, och om den tas med i massbokningen. Standard: ja. Från 0.64.5
dt_frakt_combined_statusesOrderstatusar som räknas som oskickade för Samfrakt. Standard: Behandlas och Pausad
dt_frakt_combined_open_orderAvgör per oskickad order om nya ordrar kan samfraktas med den. Standard: ja. Från 0.64.5
dt_frakt_cart_amount_in_store_currencyRäkna om varukorgens belopp till butikens valuta, för valutatillägg utan inbyggt stöd
dt_frakt_order_amount_in_store_currencySamma omräkning för ordrar vid bokning
dt_frakt_export_reasonExportorsak på utrikes sändningar. Standard SALE
dt_frakt_carrier_logo_urlEgen logotypfil för en transportör
dt_frakt_expose_restÅsidosätt REST-exponeringen per order
dt_frakt_emit_pickup_pointsLeverera ombudslistan som pickup points-metadata även till kassor tillägget inte känner igen
dt_frakt_walley_delivery_methodsJustera alternativraderna innan svaret till Walley byggs
dt_frakt_walley_method_availableÅsidosätt om fraktmetoden Fraktjakt i Walley-kassan ska visas
dt_frakt_walley_hide_cart_shippingVisa frakt i varukorgen ändå i Walley-läget
dt_retur_delivered_statusesOrderstatusar som räknas som levererade i returportalen. Standard: Färdigbehandlad
dt_retur_client_ipBesökarens adress för returportalens gränser. Standard: anslutningens adress

Exempel, dölj en tjänst ur livepriserna:

add_filter( 'dt_frakt_add_rate', function ( $rate_args, $rate ) {
    if ( isset( $rate['name'] ) && false !== strpos( $rate['name'], 'Varubrev' ) ) {
        return null;
    }
    return $rate_args;
}, 10, 2 );

Exempel, låt en rabattkod med fri frakt bara gälla ombudstjänsten och låt övriga tjänster behålla livepriset:

add_filter( 'dt_frakt_coupon_free_rate', function ( $free, $rate ) {
    return false !== stripos( $rate->get_label(), 'Service Point' );
}, 10, 2 );

Filtret får raten som andra argument. Tjänstens id finns i ratens metadata under dt_frakt_shipping_product_id för den som hellre matchar på id än namn.

Kustom-läget har egna filter med prefixet dt_frakt_ksa_, bland annat dt_frakt_ksa_shipping_options för att justera alternativraderna innan de serveras och dt_frakt_ksa_hide_cart_shipping för att visa frakt i varukorgen ändå.

I Walley-läget läses kundens val ur Walley Checkouts ordermeta _collector_delivery_module_data. Alternativens id börjar med dt_frakt_walley: följt av radens id, och samma id sitter på orderns fraktrad under dt_frakt_walley_option.

Läsa data utifrån

Med REST-åtkomsten påslagen får WooCommerces order-API ett dt_frakt-objekt per order, med status, spårning och nedladdningslänkar till frakthandlingarna. Autentisera med WooCommerces API-nycklar:

curl -u ck_xxx:cs_xxx https://butik.se/wp-json/wc/v3/orders/123

"dt_frakt": {
  "shipment_id": "11931243",
  "status": "ready_to_ship",
  "tracking_number": "1005959489",
  "tracking_link": "https://www.fraktjakt.se/trace/...",
  "documents": ["https://butik.se/wp-json/dt-frakt/v1/order/123/document/0"],
  ...
}

Dokumentlänkarna pekar på butiken, inte på Fraktjakt, och hämtas med samma API-nyckel. Svaret är själva PDF-filen.

Tilläggets interna ordermeta med understrecksprefix är inte ett kontrakt. Läs via funktionerna eller REST i stället, så överlever integrationen versionsbyten.