Szállítás elrejtése termékkategória szerint
A Szállítás lehetőség elrejtése a Szállítási mód lépésben, ha a kosárban egy megadott kategóriájú termék van, így csak a helyi átvétel marad.
Alapból a pénztár szállítási mód lépése minden kosárnál felajánlja a szállítást. Ha a kínálatod egy része nem szállítható, és csak személyesen vehető át, ezt kóddal kikényszerítheted: amint a kosárban van egy megadott kategóriájú termék, a szállítás lehetőség eltűnik, és csak a helyi átvétel marad.
Mikor hasznos?
Szekció neve “Mikor hasznos?”- terjedelmes, törékeny vagy veszélyes áruknál, amelyeket futár nem vihet;
- romlandó vagy rendelésre készülő termékeknél, amelyeket helyben kell átvenni;
- helyszíni szolgáltatásoknál, tanfolyamoknál vagy jegyeknél, amelyeknél nincs mit szállítani.
Kikényszerítés nélkül a vásárlón múlik, hogy elolvassa a figyelmeztetést, és a helyi átvételt válassza. Ha nem teszi, rendeléseket kell lemondanod, szállítási díjat visszatérítened, és újrafoglalásra kérned a vevőt.
Beállítás
Szekció neve “Beállítás”Előfeltétel, hogy a Helyi átvétel már be legyen kapcsolva szállítási módként (lásd Helyi átvétel).
- Nézd meg a kategória előtagját (slug): Termékek → Kategóriák.
- Másold be az alábbi kódot a gyermektéma
functions.phpfájljába vagy egy kódrészlet-kezelő bővítménybe. - Cseréld le a
your-category-slugértéket a saját kategóriád előtagjára.
/** * Igaz, ha a kosárban van legalább egy termék a megadott kategóriából. * Változatos termékeknél a szülő termék azonosítóját vizsgáljuk, * mert a változatok nem hordoznak saját kategóriát. */function is_product_of_category_in_cart( $category_slug ) { if ( WC()->cart && ! WC()->cart->is_empty() ) { foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { $product = $cart_item['data'];
if ( $product->get_type() === 'variation' ) { $checked_product_id = $product->get_parent_id(); } else { $checked_product_id = $product->get_id(); }
if ( has_term( $category_slug, 'product_cat', $checked_product_id ) ) { return true; } } }
return false;}
/** * A Szállítás lehetőség letiltása, ha a kosárban van ilyen kategóriájú termék. */add_filter( 'cfw_local_pickup_disable_shipping_option', function () { $category = 'your-category-slug'; // Írd át a saját kategóriád előtagjára.
return is_product_of_category_in_cart( $category );} );A kód egyszerű és változatos termékeknél is működik.
Vegyes kosarak
Szekció neve “Vegyes kosarak”A szállítás lehetőség akkor is el lesz rejtve, ha a kosárban a kijelölt kategória mellett szállítható termék is van. Ha egy A kategóriás (csak átvehető) és egy B kategóriás (szállítható) termék van a kosárban, kizárólag a helyi átvétel lesz választható. Ha azt szeretnéd, hogy a szállítható termékek vegyes kosárban is szállíthatók maradjanak, ez a kód nem megfelelő.
Készült: