Snippet-uri de cod utile pentru personalizare aditionala a functionalitatilor FAN Courier

1 min read

Pret diferentiat pentru FAN Box #

Daca doriti sa afisati preturi manuale diferentiate pentru FAN vs FAN Box  atunci inserati urmatorul snippet (costul pentru FAN Box se seteaza in locul cifrelor verzi.):

add_filter('curiero_overwrite_fan_box_shipping', function (array $args): array {
  if ($args['cost'] != 0) {
    $args['cost'] = 12;
  }
  return $args;
}, 10, 1);

Afisare exclusiva a metodei FAN Box si dezactivare metoda Fan Curier clasica #

add_filter('woocommerce_package_rates', function (array $rates): array {
  if (isset($rates['fan'])) unset($rates['fan']);
  return $rates;
}, 99, 1);

Afisarea numarului de comanda pe AWB in campul Observatii #


add_filter('curiero_awb_details', function ($awb, $courier, $order) {
    if ($courier != 'FanCourier') return $awb;
   
    $awb['observatii'] = 'Comanda nr. ' . $order->get_order_number();
    
    return $awb;
}, 10, 3);

Adaugare cost suplimentar la livrare daca se selecteaza plata ramburs #

Daca doriti ca la selectarea platii ramburs sa adaugati un cost extra pentru livrare folositi snippetul de mai jos, inlocuind cifra verde cu costul dorit de dvs. Trebuie sa aveti in vedere 3 lucruri:

  • Codul functioneaza simultan si pentru metodele FAN Box si CollectPoint. Daca nu doriti adaugarea pentru una din celelalte 2 metode puteti sterge liniile 2 si/sau 3
  • Codul adauga acest cost extra si daca clientul atinge pragul de livrare gratuita
  • Costul trebuie ajustat avand in vedere prezenta cotei de TVA sau nu
add_filter('curiero_overwrite_fan_shipping', 'curiero_add_custom_cod_fee', 10, 1);
add_filter('curiero_overwrite_fan_box_shipping', 'curiero_add_custom_cod_fee', 10, 1);
add_filter('curiero_overwrite_fan_collect_point_shipping', 'curiero_add_custom_cod_fee', 10, 1);

function curiero_add_custom_cod_fee(array $args): array {
    $chosen_gateway = WC()->session->get('chosen_payment_method');
    $new_price = curiero_string_to_float($args['cost']);

    if ($chosen_gateway === 'cod') {
        $new_price += 6.00;
    }

    return array_merge($args, [
        'cost' => $new_price
    ]);
}

Adaugare suma suplimentara la tariful de livrare #

Dacă doriți să adăugați o sumă suplimentară la tariful de livrare, introduceți acest cod.

add_action('curiero_overwrite_fan_shipping', function($args){
    if ($args['cost'] != 0) 
	$args['cost'] += suma;
    return $args;
}, 10, 1);

Adaugare cost fix suplimentar la livrare daca exista kilometri suplimentari (inlocuieste costul pe Km suplimentar) #

Dacă doriți să adăugați o sumă suplimentară fixa indiferent de cati KM suplimentari exista si nu doriti sa calculati in checkout costul in functie de numarul de kilometri suplimentari, adaugati snippet-ul de mai jos si nu uitati sa inlocuiti numarul cu verde cu suma fixa dorita a fi adaugata aditional la costul standard de livrare:

add_filter('curiero_overwrite_fan_shipping', function (array $args, string $judetdest, ?string $extra_km): array {
	if (empty($extra_km)) {
		return $args;
	}

	$args['cost'] += 15;
	$args['label'] = preg_replace('/(: ' . __('Gratuit', 'curiero-plugin') . ')/', '', $args['label']);

	return $args;
}, 10, 4);