Novinka: Vizuální editor pro éru AI webů. Poslední dílek skládačky, když chcete upravovat web a ne psát e-maily. www.directedit.dev

💬

Automatický příplatek podle varianty produktu

Řešili jste někdy v košíku, jak tam přidat extra příplatek za nějakou položku?

Řešili jste někdy v košíku, jak tam přidat extra příplatek za nějakou položku?

Potkala jsem to u e-shopu u lyží, kde bylo třeba v určitých případech připočíst poplatek za montáž, pokud u lyží byla potřeba. A bylo to potřeba dokonce u produktových variant, které bylo třeba projít a podle varianty poplatek přičíst nebo ne. Samozřejmě je třeba toto zmínit i na stránce produktu!

Skvělá věc je, že se to propíše na e-maily i fakturu.

Tady je kód – stačí libovolně upravit a dát do Child theme nebo snippetů.

add_action('woocommerce_cart_calculate_fees','jk_extra_fee_based_on_product_variation', 10, 1);

function jk_extra_fee_based_on_product_variation( $cart ) {
	
    //go trough cart items
    foreach ( $cart->get_cart() as $cart_item ) {
	        
		$product_title = get_the_title($cart_item['product_id']);
		
        //if variable product
		if (array_key_exists('variation', $cart_item)) {
			
            //the proper variant is on the list
			if (array_key_exists('attribute_pa_varianta', $cart_item['variation'])){
				if (str_contains($cart_item['variation']['attribute_pa_varianta'], "podlozka")){ //contains "podlozka"
					$quantity = (int)$cart_item['quantity']; 
					$extra_fee = 100 * $quantity;  //multiply quantity and price
					$cart->add_fee( $quantity.'x montáž lyží '.$product_title, $extra_fee, true, 'standard' );  //to know precisely, what's the extra fee for
				}
			}
		}
	}
	
	$cart->add_fee('CD o carvingu jako dárek', 0, true, 'standard' );
}

Líbil se vám článek? Pošlete ho dál:

Jitka Klingenbergová

Jitka Klingenbergová

Absolventka ČVUT FIT oboru Informatika | Programátorka | Webová vývojářka, konzultantka a mentorka
tvorime@vyladeny-web.cz

Vaše komentáře

Zanechte první komentář

Zpět k tipům

Pravidelná dávka užitečných tipů až do schránky