Použití filtrů
Základní informace
- zasilkovna_shipping_cost– Zásilkovna
- cesko_nejlevnejsi_doruceni_shipping_cost – Zásilkovna nejlevnější doručení na adresu
- zasilkovna_cp_cz_cost – Česká Pošta CZ
- zasilkovna_dpd_cz_cost – DPD CZ
- zasilkovna_express_brno_cz_cost – Expresní doručení Brno
- zasilkovna_express_praha_cz_cost – Expresní doručení Praha
- zasilkovna_express_ostrava_cz_cost – Expresní doručení Ostrava
Každý filtr přijímá tři hodnoty:
- $cost – aktuální cenu dopravy
- $country – vybranou zemi
- $weight – hmotnost položek v košíku
Každá funkce, použitá ve filtru by měla vracet hodnotu $cost. V případě, že chcete dopravu deaktivovat, styčí nastavit $cost na false.
Dynamický filtr
Další filtry
- zasilkovna_allow_multiple_submissions
- zasilkovna_order_number
- zasilkovna_dobirka_shipping_id
- zasilkovna_free_shipping_rates
- zasilkovna-sledovani-link
- dobirka_is_virtual_product_in_cart
Přiklad omezení Zásilkovny pro produkty, které jsou delší než 50cm:
Příklad navýšení ceny dopravy pro konkrétní produkt:
Doprava zdarma pro Českou Poštu:
Filtr pro nastavení váhy objednávky
Definice filtru
$weight = apply_filters( 'zasilkovna_packeta_weight_check', $weight );
Příklad filtru
Upozornění:
Použití filtru je na vlastní zodpovědnost, Zásilkovna vydávala prohlášení, že bude balíčky v případě nedostatků přeštítkovávat a toto si zpoplatní za každý nalepený štítek. Také se může stát, že pobočka půjde zákazníkovi vybrat, protože máte sice filtrem nastavenou váhu u objednávky, ale zboží v košíku žádnou váhu nemá, Zásilkovna zjistí, že balík neváží tolik, kolik je na Vašem štítku a že pobočka na kterou měl být balíček doručen, bere např. balíky pouze do 5 kg. Tedy nebude možné Váš balík na tuto pobočku doručit a balík přesměrují na jinou pobočku.
Nejlepší řešení je místo filtru přidat skutečnou váhu ke každému produktu, váhu v detailu produktu nastavíte jednou a máte u všech budoucích objednávek váhu vyřešenou.
Filtr pro nastavení stavů podaných zásilek
apply_filters( 'zasilkovna_status_cron_order_status',array('wc-pending', 'wc-processing', 'wc-on-hold'))
Pokud si chcete upravit počet objednávek na jeden běh CRONu, tak si tuto funkci můžete upravit pomocí filtru:
'limit' => apply_filters( 'zasilkovna_status_cron_limit', 20 )
Filtr pro nastavení DPH dobírky
$tax_class = apply_filters( 'zasilkovna_taxclass_dobirka', $FeeData['tax_class'] );
(includes/class-zasilkovna-fee.php ř.:89)
Příklad filtru:
add_filter( 'zasilkovna_taxclass_dobirka','change_cost_zasilkovna_for_product', 10, 1 );
function change_fee_zasilkovna( $FeeData ){
$FeeData = [ "tax_class" => "21", ];
return $FeeData;
}
Filtr dobirka_is_virtual_product_in_cart
Filtr je součástí platební metody Dobírka v metodě is_virtual_product_in_cart, která vrací false, nebo true, podle toho, zda objednávka obsahuje produkt, který není virtuální.
Pokud objednávka obsahuje pouze virtuální produkty, Dobírka by se neměla zobrazit, metoda vrátí false. Pomocí filtru můžete změnit výchozí chování.
Definice filtru
return apply_filters( 'woo_doprava_is_virtual_product_in_cart', $has_virtual, $this );
- $has_virtual – true/false
- $this – objekt platební metody Dobírka
Filtr zasilkovna_order_number
Přijímá hodnoty $order_number a $order. Slouží k možné úpravě čísla objednávky, které se defaultně zasílá do Zásilkovny.
Definice filtru
$zasilkovna_order_number = apply_filters( 'zasilkovna_order_number', $order_number, $order );
- $order_number – číslo objednávky
- $order – objekt objednávky
Filtr zasilkovna_allow_multiple_submissions
Jeho jedinou hodnotou je false. Výchozí chování pluginu je, neumožnit odeslání zásilky do Zásilkovny, pokud je již zásilka vytvořena. Pokud vrátíte pomocí filtru true, bude vám umožněno opakované odeslání zásilky.
Definice filtru
apply_filters(‚zasilkovna_allow_multiple_submissions‘, false)
Filtr zasilkovna_filter_id_cost
Tento filtr je dynamický a je společný pro více doprav. Jeho funkce je stejná, jako u podpobných filtrů, umožňuje manipulaci s cenou dopravy.
Definice filtru
$cost = apply_filters( ‚zasilkovna_‘.$filter_id.’_cost‘, $cost );
$cost – cena dopravy
Hodnoty proměnné filtr_id
austria-at
germany-de
germany-dpd
de-hermes
fr-colissimo
gb-royal-mail
gb-hermes
hu-nejlevnejsi-doruceni
hungary-hu
dpd-hu
transoflex-hu
su-posta
li-posta
it-gls
pl-nejlevnejsi-doruceni
poland-pl
pl-mail-24
pl-inpost
pl-paczkomaty
slovensko-doruceni
slovenska-posta
express-bratislava
slovensko-kuryr
ro-nejlevnejsi-doruceni
dpd-ro
fan-ro
ro-cargus
gls-sl
dpd-bl
bg-speedy-office
ukrajina-doruceni
ua-nova-posta
Filtr zasilkovna_express_ostrava_cz_cost
Filtr je součástí třídy class-zasilkovna-shipping.php.
Přijímá cenu zásilky a je určen pro dopravu Expresní doručení Ostrava.
Definice filtru
$cost = apply_filters( 'zasilkovna_express_ostrava_cz_cost', $cost );
- $cost – cena dopravy
Filtr zasilkovna_express_ostrava_cz_cost
Filtr je součástí třídy class-zasilkovna-shipping.php.
Přijímá cenu zásilky a je určen pro dopravu Expresní doručení Ostrava.
Definice filtru
$cost = apply_filters( 'zasilkovna_express_ostrava_cz_cost', $cost );
- $cost – cena dopravy
Filtr zasilkovna_express_praha_cz_cost
Filtr je součástí třídy class-zasilkovna-shipping.php.
Přijímá cenu zásilky a je určen pro dopravu Expresní doručení Praha.
Definice filtru
$cost = apply_filters( ‚zasilkovna_express_praha_cz_cost‘, $cost );
- $cost – cena dopravy
Filtr zasilkovna_express_brno_cz_cost
Filtr je součástí třídy class-zasilkovna-shipping.php.
Přijímá cenu zásilky a je určen pro dopravu Expresní doručení Brno.
Definice filtru
$cost = apply_filters( 'zasilkovna_express_ostrava_cz_cost', $cost );
- $cost – cena dopravy
Filtr zasilkovna_dpd_cz_cost
Filtr je součástí třídy class-zasilkovna-shipping.php.
Přijímá cenu zásilky a je určen pro dopravu DPD Česko.
Definice filtru
$cost = apply_filters( 'zasilkovna_dpd_cz_cost', $cost );
- $cost – cena dopravy
Filtr cesko_nejlevnejsi_doruceni_shipping_cost
Filtr je součástí třídy class-zasilkovna-shipping.php.
Přijímá cenu zásilky a je určen pro dopravu Zásilkovna nejlevnější doručení na adresu.
Definice filtru
$cost = apply_filters( 'cesko_nejlevnejsi_doruceni_shipping_cost', $cost );
- $cost – cena dopravy
Filtr zasilkovna_cp_cz_cost
Filtr je součástí třídy class-zasilkovna-shipping.php.
Přijímá cenu zásilky a je určen pro dopravu Česká Pošta.
Definice filtru
$cost = apply_filters( 'zasilkovna_cp_cz_cost', $cost );
- $cost – cena dopravy
Filtr zasilkovna_shipping_cost
Filtr je součástí třídy class-zasilkovna-shipping.php.
Přijímá cenu zásilky a je společný pro všechny země, které obsahují dopravu na pobočku Zásilkovny.
Definice filtru
$cost = apply_filters( 'zasilkovna_shipping_cost', $cost, $moje_country, $weight );
- $cost – cena dopravy
- $weight – celková hmotnost košíku
- $moje_country – zvolená země doručení
Příklad použití – změna ceny dopravy pokud je v košíku konkrétní produkt.
Filtr pro úpravu textu Doprava zdarma
Filtrem upravíte text „Zdarma“ u dopravy při splnění podmínek dopravy zdarma.
Definice filtru:
apply_filters( 'zasilkovna_free_shipping_label', $text );
(includes/class-zasilkovna-shipping.php ř.:474)
Příklad filtru:
add_filter( 'zasilkovna_free_shipping_label', 'zasilkovna_free_shipping_label_fce', 10, 1);
function zasilkovna_free_shipping_label_fce( $text ){
return 'doprava je zdarma';
}
Filtr zasilkovna_group_print_services_format
V případě, že vám nevyhovuje výchozí formát stažení štítků, je možné jej pomocí filtru zasilkovna_group_print_services_format upravit.
Povolené hohodnoty najdete zde.