депозит в woocommerce

Бывает иногда необходимо при расчете стоимости доставки добавить дополнительное поле для (pfand) депозит в Woocommerce. Например, если доставка осуществляется в паллете и он потом возвращается отправителю. Такое случилось и к меня, для одного магазина необходимо было добавить дополнительное поле для учета депозита, причем их было три (за стеклянную тару, за коробку и за паллет). Конечно, можно было найти и использовать какой-нибудь плагин, но это не наш путь)).

Что бы много не писать вот готовый код, который нужно вставить в function.php активной темы, ну или оформить в виде плагина.

add_action( 'woocommerce_cart_calculate_fees','woocommerce_pfand_kiste' );
function woocommerce_pfand_kiste() {

        if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

        global $woocommerce;

        $shipcharge = 0;
		$min = 289;
		$stepqty = 96;
		$stepeuro = 24;
		$euroinitial = 96;

        foreach( WC()->cart->get_cart() as $cart_item )
        $shipcharge = $woocommerce->cart->cart_contents_count;
		
		$eurototal = $euroinitial + floor(($shipcharge - $min) / $stepqty) * $stepeuro;
		
		if($shipcharge < 240)
        $woocommerce->cart->add_fee;
	        elseif($shipcharge < 289)
	   	$woocommerce->cart->add_fee( 'Pfand Kiste (1.50€ pro Kiste)', 72 , false, '' );
	        else
		$woocommerce->cart->add_fee( 'Pfand Kiste (1.50€ pro Kiste)', floor($eurototal) , false, '' );
}

Код получает количество товара в корзине и в зависимости от количества рассчитывает нужный депозит. Магазин, в котором это реализовано http://unverpackt-umgedacht.de/.

Вот так легко добавить депозит в Woocommerce.

Вопросы?

Добавить комментарий