Použití filtrů

Plugin Zásilkovna v současné době obashuje následující filtry:

* zasilkovna_shipping_cost- Zásilkovna
* zasilkovna_cp_cz_cost – Česká Pošta CZ
* zasilkovna_intime_cz_cost – In Time 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
* zasilkovna_austria_at_cost – Rakouská Pošta
* zasilkovna_germany_de_cost – Německá Pošta
* zasilkovna_hungary_hu_cost – Maďarská Pošta
* zasilkovna_dpd_hu_cost – DPD HU
* zasilkovna_transoflex_hu_cost – Transoflex HU
* zasilkovna_poland_pl_cost – Polská Pošta
* zasilkovna_dpd_pl_cost – DPD PL
* zasilkovna_slovensko_na_adresu_cost – Slovensko Doručení na adresu
* zasilkovna_slovenska_posta_cost – Slovenská Pošta
* zasilkovna_expres_bratislava_cost – Expresní doručení Bratislava
* zasilkovna_slovensko_kuryr_cost – Slovensko Kurýr
* zasilkovna_fan_ro_cost – Rumunsko FAN
* zasilkovna_dpd_ro_cost – DPD RO
* zasilkovna_dpd_bl_cost – DPD BL

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.

Přiklad omezení Zásilkovny pro produkty, které jsou delší než 50cm:

add_filter( 'zasilkovna_shipping_cost', 'hide_zasilkovna_for_big_package' );
function hide_zasilkovna_for_big_package( $cost ){

    $items = WC()->cart->get_cart();

    foreach($items as $item => $values) { 
     $_product = wc_get_product( $values['data']->get_id() ); 
     $lenght = $_product->get_length();
     if( $lenght > 50 ){
      $cost = false;
     }
    }
    return $cost;
}

Příklad navýšení ceny dopravy pro konkrétní produkt:

add_filter( 'zasilkovna_shipping_cost', 'hide_zasilkovna_for_big_package' );
function hide_zasilkovna_for_big_package( $cost ){

    $items = WC()->cart->get_cart();

    foreach($items as $item => $values) {
        $_product = wc_get_product( $values['data']->get_id() );
        $lenght = $_product->get_length();
        if( $values['data']->get_id() == 31 ){
           $cost = $cost * 3;
        }
    }

    return $cost;

}