Tovább a tartalomhoz

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.

  • 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.

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).

  1. Nézd meg a kategória előtagját (slug): Termékek → Kategóriák.
  2. Másold be az alábbi kódot a gyermektéma functions.php fájljába vagy egy kódrészlet-kezelő bővítménybe.
  3. 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.

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:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások