Ř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' );
}

