View Categories

Snippet-uri de cod utile pentru personalizare aditionala a functionalitatilor Sameday

3 min read

Pret diferentiat pentru Sameday Easybox #

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

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

Afisare exclusiva a metodei Easybox si dezactivare metoda Sameday clasica #

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

Afisare numar comanda pe AWB Sameday in zona de observatii #

add_filter('curiero_awb_details', function (array $awb, string $courier, WC_Abstract_Order $order): array {
    if (
        !class_exists(CurieRO_Printing_Sameday::class)
        || CurieRO_Printing_Sameday::$public_name !== $courier
    ) {
        return $awb;
    }
    return array_merge($awb, [
        'observation' => trim("Comanda nr. {$order->get_order_number()} {$awb['observation']}")
    ]);
}, 10, 3);

Transport gratuit prin Sameday pentru anumite categorii de produse #

Daca doriti sa oferiti livrare gratuita prin Sameday pentru anumite categorii de produse atunci inserati urmatorul snippet (ID-urile de categorii se seteaza in locul cifrelor verzi.):

add_action('curiero_overwrite_sameday_shipping', 'curiero_overwrite_sameday_shipping_for_product_categories', 10, 1);
add_action('curiero_overwrite_sameday_easybox_shipping', 'curiero_overwrite_sameday_shipping_for_product_categories', 10, 1);
function curiero_overwrite_sameday_shipping_for_product_categories($args)
{
    foreach (WC()->cart->get_cart() as $item) {
        if (has_term([19, 20, 21], 'product_cat', $item['product_id'])) {
            $args['cost'] = 0;
            $args['label'] = rtrim($args['label'], ': Gratuit') . ': Gratuit';
            return $args;
        }
    }
    return $args;
}

Afisare continut colet in zona de Observatii pentru AWB-urile in format A6 #

In cazul etichetelor pe format A6 de la Sameday, zona de Continut colet de pe AWB este limitata la 20 de caractere si daca aveti activa optiunea de afisare a continutului pe AWB si exista produse cu denumiri lungi atunci apare situatia in care sa nu fie afisate toate caracterele. De aceea va trebui sa introduceti un cod personalizat care transfera textul de la Continut colet in campul de Observatii care in formatul de AWB A6 are o limita mult mai mare si anume 200 de caractere si unde va incapea descrierea produselor completa:

add_filter('curiero_awb_details', function (array $awb_details, $courier_name, WC_Abstract_Order $order): array {
	if ($courier_name !== CurieRO_Printing_Sameday::$public_name)
		return $awb_details;

	if (empty($awb_details['priceObservation']))
		return $awb_details;

	[$awb_details['observation']] = [$awb_details['priceObservation']];
	$awb_details['priceObservation'] = '';

	return $awb_details;
}, 10, 3);

Redenumire metoda de livrare Sameday Easybox #

Daca doriti sa redenumiti metoda de livrare Sameday Easybox din zona de checkout va trebui sa folositi urmatorul snippet de cod, inlocuind numele boldat cu denumirea dorita de dumneavoastra:

add_filter('curiero_overwrite_sameday_easybox_shipping', function (array $args): array {
	$args['label'] = 'Livrare la Easybox';

	if ($args['cost'] == 0) {
		$args['label'] .= ': Gratuit';
	}

	return $args;
}, 100, 1);

Adaugare cost suplimentar la livrare daca se selecteaza plata ramburs chiar daca se declanseaza pragul de livrare gratuita #

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 2 lucruri:

  • 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 in setarile WooCommerce
add_filter('curiero_overwrite_sameday_shipping', 'curiero_add_custom_cod_fee', 10, 1);
add_filter('curiero_overwrite_sameday_easybox_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 cost suplimentar la livrare daca se selecteaza plata ramburs si excluderea lui daca se declanseaza pragul de livrare gratuita #

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 2 lucruri:

  • Codul nu mai adauga acest cost extra daca clientul atinge pragul de livrare gratuita
  • Costul trebuie ajustat avand in vedere prezenta cotei de TVA sau nu in setarile WooCommerce
add_filter('curiero_overwrite_sameday_shipping', 'curiero_add_custom_cod_fee', 10, 1);
add_filter('curiero_overwrite_sameday_easybox_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' && $args['cost'] !== 0) {
        $new_price += 6.00;
    } else {
        $new_price = 0; 
    }

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

Aplicare TVA la Costurile de Livrare #

Acest cod îl puteți aplica în cazul în care prețurile nu au TVA inclus. Codul va adăuga automat TVA de 19% la costurile de livrare pentru comenzile efectuate prin Sameday și Sameday Easybox în WooCommerce.

add_filter('curiero_overwrite_sameday_shipping', 'curiero_add_shipping_vat', 10, 1);
add_filter('curiero_overwrite_sameday_easybox_shipping', 'curiero_add_shipping_vat', 10, 1);
function curiero_add_shipping_vat(array $args): array
{
	if ($args['cost'] != 0) {
		$args['cost'] *= 1.19;
	}

	$shippingInstance = WC()->shipping->get_shipping_methods()['sameday'];
	$args['cost'] = min($args['cost'], $shippingInstance->get_option('tarif_maxim', 999999));

	return $args;
}