Pochopte základní strukturu výpočtu poštovného v WooCommerce.
Než začnete nastavovat vlastní pravidla, musíte porozumět třem základním pilířům systému přepravních poplatků WooCommerce:Shipping Zones(Dodací oblast),Shipping Methods(Způsob doručení) aShipping Classes(Kategorie doručení). Tyto tři prvky spolupracují a tvoří logický základ pro výpočet nákladů na dopravu.
Shipping Zones Jedná se o soubor geografických oblastí. Můžete celý svět rozdělit na několik oblastí, například “čínská pevnina”, “Evropská unie” nebo “Severní Amerika”. Každá oblast může být nezávisle nakonfigurována pro různé způsoby doručení. Když zákazník provádí platbu, systém automaticky přiřadí odpovídající oblast doručení na základě zadané dodací adresy a zobrazí pouze dostupné způsoby doručení v této oblasti. To je první krok k diferencovaným poplatkům za doručení v různých regionech.
Shipping Methods Jedná se o konkrétní pravidla pro výpočet poštovného. V každé oblasti doručování můžete přidat jeden nebo více způsobů, například “jednotná sazba”, “bezplatná doprava” nebo “osobní odběr”. Zákazníci si obvykle mohou při pokladně vybrat z několika způsobů doručení v téže oblasti. WooCommerce nabízí několik vestavěných metod, jejichž logiku lze dále přizpůsobit pomocí kódu nebo pluginů.
Doporučujeme k přečtení. Podrobné vysvětlení pluginu WooCommerce: kompletní průvodce od počáteční konfigurace až po pokročilé přizpůsobení.。
Shipping Classes Používá se k třídění samotných produktů. Můžete například vytvořit různé kategorie doručování, jako “malé balíky”, “velké těžké zásilky” nebo “chlazené čerstvé produkty”. Jeho hlavní funkcí je, že když nákupní košík obsahuje zboží různých kategorií, můžete vypočítat smíšené poštovné na základě těchto kategorií. To je přesnější než pouhé vypočítání na základě celkové ceny nebo hmotnosti.
Nastavte základní pravidla poštovného pomocí integrované funkce.
Backend WooCommerce poskytuje intuitivní grafické rozhraní, které umožňuje implementovat mnoho běžných možností dopravy bez nutnosti psát kód. Tato část práce se provádí především na stránce “WooCommerce -> Nastavení -> Doručení”.
Nastavte jednotné poštovné na základě geografické oblasti
To je nejčastější požadavek. Nejprve vytvořte novýShipping ZoneNapříklad pojmenujte oblast “Jiangsu, Zhejiang a Šanghaj s dopravou zdarma”. V části “Rozsah oblasti” vyberte zemi “Čína” a poté konkrétní provincie (například Šanghaj, Jiangsu a Zhejiang). Následně v této oblasti “přidejte způsob doručení”.
Vyberte “jednotnou sazbu” a pojmenujte ji například “Běžná pošta”. V nastavení uvidíte pole “Náklady”. Zde můžete zadat nejen pevnou částku (například “10”), ale také použít stručné vzorce pro proměnné. Například zadání “10 + [qty] * 2” znamená, že základní poštovné bude činit 10 juanů a k tomu se připočte 2 juany za každou položku v nákupním košíku. Můžete také přidat “dodatečné poplatky” za konkrétní položky.Shipping ClassesZavést dodatečné poplatky.
Bezplatná doprava na základě minimální hodnoty objednávky.
Free Shipping(Dodání zdarma) je silný propagační nástroj. Můžete jej nabídnout společně s “jednotnou sazbou” v rámci jedné distribuční oblasti a nechat zákazníky vybrat si jednu z těchto možností. Klíčem je nastavit spouštěcí podmínky.
Doporučujeme k přečtení. Kompletní průvodce WooCommerce: praktické strategie od založení obchodu po optimalizaci výkonnosti.。
Po přidání možnosti “Doprava zdarma” přejděte do jejího nastavení. Najděte rozbalovací nabídku “Požadavky na dopravu zdarma”. Vyberte “Minimální částka objednávky” a do následujícího pole zadejte částku, například “199,00”. To znamená, že zákazníci uvidí a budou moci vybrat tuto možnost dopravy zdarma pouze v případě, že celková cena objednávky (bez daní a poplatků za dopravu) dosáhne 199 juanů. Můžete také zaškrtnout políčko “Povolit kupóny na dopravu zdarma”, aby se tato možnost zpřístupnila také při použití kupónů na dopravu zdarma vydaných obchodem.
Realizujte pokročilou logiku přidáním vlastního kódu.
Pokud nastavení na pozadí není schopné vyhovět komplexní nebo dynamické fakturační logice, nejflexibilnějším řešením je přidání vlastních pravidel pomocí kódu. Kód se obvykle přidává do aktuálního tématu. functions.php V dokumentu nebo pomocí pluginu pro správu kódových fragmentů.
Výpočet dynamických poštovních poplatků na základě celkové hmotnosti nákupního košíku.
Předpokládejme, že vaše poštovní politika zní “10 juanů za první kilogram a 5 juanů za každý další kilogram”. Nejprve musíte zjistit celkovou hmotnost všech produktů v nákupním košíku a poté provést výpočet. To lze provést pomocí woocommerce_package_rates Je to implementováno pomocí filtračních háčků, které vám umožní upravit náklady na dopravu před jejich zobrazením.
add_filter('woocommerce_package_rates', 'calculate_weight_based_shipping', 20, 2);
function calculate_weight_based_shipping($rates, $package) {
// 获取购物车商品总重量(单位:公斤)
$total_weight = WC()->cart->get_cart_contents_weight();
$calculated_cost = 0;
if ($total_weight > 0) {
$first_weight_cost = 10; // 首重费用
$extra_weight_cost = 5; // 续重单价
$first_weight_limit = 1; // 首重限制
if ($total_weight <= $first_weight_limit) {
$calculated_cost = $first_weight_cost;
} else {
$extra_weight = ceil($total_weight - $first_weight_limit); // 续重向上取整
$calculated_cost = $first_weight_cost + ($extra_weight * $extra_weight_cost);
}
// 找到目标配送方式并更新其成本(例如 ID 为 flat_rate:1 的统一费率)
if (isset($rates['flat_rate:1'])) {
$rates['flat_rate:1']->cost = $calculated_cost;
// 可选:同时更新费用标签,让客户看到计算依据
// $rates['flat_rate:1']->label .= ' (基于重量计算)';
}
}
return $rates;
} Přidejte fixní příplatek za konkrétní kategorii produktů.
Pokud některé produkty (například instalační služby nebo dárkové balení) vyžadují účtování pevné ceny, je lepší je označit jako “poplatky” namísto poštovného. K tomuto účelu lze použít woocommerce_cart_calculate_fees Akční háky.
add_action('woocommerce_cart_calculate_fees', 'add_fixed_surcharge_for_category');
function add_fixed_surcharge_for_category() {
if (is_admin() && !defined('DOING_AJAX')) {
return; // 确保只在前台执行
}
$surcharge = 0;
$target_category_slug = 'installation-required'; // 目标产品类别的别名
foreach (WC()->cart->get_cart() as $cart_item) {
$product_id = $cart_item['product_id'];
// 检查商品是否属于目标分类
if (has_term($target_category_slug, 'product_cat', $product_id)) {
$surcharge += 50; // 每件符合条件的商品增加50元费用
// 如果只收一次,可以 break;
}
}
if ($surcharge > 0) {
// 将费用添加到购物车,true 表示该费用需要计税
WC()->cart->add_fee('上门安装服务费', $surcharge, true);
}
} Využijte profesionální pluginy k zpracování komplexních scén.
V případě velkých obchodů, více skladových zásilek nebo scénářů vyžadujících cenové nabídky pro expresní doručení v reálném čase je použití profesionálních rozšíření stabilnější a efektivnější volbou. Poskytují grafický nástroj pro vytváření pravidel a silnější integrační schopnosti.
Vytvořte podmíněné poplatky za přepravu pomocí nástroje pro vytváření vizuálních pravidel.
Pluginy, jako například WooCommerce Advanced Shipping 或 Flexible Shipping Umožňují vám vytvářet komplexní pravidla “Pokud-pak” pouhým kliknutím. Například můžete snadno vytvořit pravidlo: “Pokud je částka objednávky mezi 100 a 500 juany a město doručení je ‘Peking’ a nákupní košík obsahuje zboží z kategorie ‘Křehké”, pak náklady na dopravu budou činit 15 juanů.“ Tyto pluginy vizualizují komplexní logické výpočty, významně snižují technické požadavky a jsou obvykle lépe kompatibilní s pluginy pro caching.
Doporučujeme k přečtení. Kompletní návod k WooCommerce: praktický tutoriál pro vytvoření e-shopu od instalace až po spuštění.。
Integrace výpočtů v reálném čase pro logistiku třetích stran.
Pro obchody, které potřebují zobrazovat ceny za přepravu v reálném čase od více kurýrních společností (například SF Express, ZTO Express, DHL), je nutné použít specializované pluginy pro logistickou integraci, jako například WooCommerce Shipping 或 ShipStation IntegrationTyto pluginy se připojí k poskytovatelům logistických služeb prostřednictvím rozhraní API a automaticky získají přesné nabídky založené na skutečné hmotnosti, objemu a místu určení balíku při pokladní transakci. Zákazníci si mohou vybrat z několika služeb s různými dodacími lhůtami a cenami, stejně jako na platformách Tmall a JD.com. Tyto pluginy obvykle nabízejí také pokročilé funkce, jako je hromadní tisk přepravních dokladů a sledování stavu objednávky, a jsou standardním vybavením profesionálních e-commerce provozovatelů.
Závěr
Konfigurace vlastních pravidel přepravy pro obchod WooCommerce je postupný proces. Nejprve je třeba důkladně prozkoumat a využít vestavěné doručovací oblasti a způsoby doručení, aby byly uspokojeny základní požadavky 80%. Pokud se setkáte s komplexní logikou vyžadující dynamické výpočty (například na základě hmotnosti, objemu nebo kombinace kategorií), můžete přesně a vysoce efektivně implementovat vlastní řešení pomocí pečlivě napsaných kódových fragmentů. Pro podnikové scénáře vyžadující kombinaci více podmínek, vizuální správu nebo hlubokou integraci s externími logistickými systémy je investice do spolehlivého profesionálního pluginu moudrým rozhodnutím pro zajištění hladkého fungování podnikání a budoucí rozšiřitelnosti. Nezapomeňte po každé úpravě provést komplexní testy, včetně procesu placení pro různé regiony, kombinace produktů a uživatelské role, abyste zajistili správné používání pravidel přepravy.
Časté dotazy
Jak nabídnout dopravu zdarma pro VIP zákazníky, aniž by došlo ke snížení poplatků za dopravu pro běžné zákazníky?
To obvykle vyžaduje kombinaci identifikace uživatelské role a podmíněného posouzení. Můžete použít kód, který zkontroluje, zda aktuální uživatel patří do role “VIP” (nebo jiné vlastní role), a pokud ano, provede příslušné akce. woocommerce_package_rates Filtr vynutí nastavení nákladů na způsob dopravy na 0 nebo odebere všechny způsoby platby a ponechá pouze možnost bezplatné dopravy. Nezapomeňte na problémy s cachováním a ujistěte se, že náklady na dopravu budou aktualizovány v reálném čase po přihlášení uživatele.
Po nastavení mnoha komplexních pravidel pro poštovné se načítání stránky s pokladnou zpomalilo. Jak to optimalizovat?
Zhoršení výkonnosti může být způsobeno komplexními výpočty v reálném čase nebo problémy s efektivností pluginů. Kroky k optimalizaci zahrnují: 1) zkontrolovat a optimalizovat logiku kódu, aby se zabránilo opakovaným nebo náročným dotazům na databázi v hooku; 2) zkontrolovat, zda logistické pluginy, které používají rozhraní API v reálném čase, nabízejí možnost “cachování nabídek”, což umožňuje krátké cachování (například po dobu 5 minut) výsledků výpočtu přepravních nákladů pro stejnou adresu; 3) ujistit se, že na vašem serveru je povolen a správně nakonfigurován objektový cache (například Redis); 4) pravidelně kontrolovat záznamy o časových limitech nebo chybách souvisejících s výpočtem přepravních nákladů v sekci “Protokoly” nástroje WooCommerce Status.
Co když se přizpůsobená pravidla poštovného v kódu stávají nefunkčními po aktualizaci WooCommerce nebo motivu?
To je běžné riziko při používání vlastního kódu. Nejlepší postup je: 1) vždy používat podtéma a přidávat kód do podtématu. functions.php 1) Zabraňte tomu, aby byly aktualizace tématu přepsány; 2) Používejte specializované pluginy pro správu “kódových úryvků” k ukládání těchto kódů, které jsou nezávislé na tématu; 3) Přidejte do kódu podrobné komentáře s vysvětlením jeho funkce a závislostí na hooku WooCommerce; 4) Před aktualizací základních pluginů je nutné provést testování v testovacím prostředí a zajistit kompatibilitu.
Je možné nastavit, aby se poplatky za dopravu lišily v závislosti na poštovním směrovacím čísle zadaném zákazníkem?
Ano. Ačkoliv geografické oblasti jádra WooCommerce podporují pouze na úrovni provincií, pomocí kódu je možné je zpřesnit na úroveň poštovních směrovacích čísel. K tomu budete potřebovat poštovní směrovací číslo zadané na stránce pro zadání platebních údajů.$package['destination']['postcode'](V) Na woocommerce_package_rates Hodnocení probíhá ve filtru. Například, pokud poštovní směrovací číslo začíná na “100”, je zařazeno do kategorie “centrum Pekingu” a použije se jedna sada poštovních poplatků; pokud začíná na “101”, použije se jiná sada. Je nutné předem uspořádat mapování mezi poštovními směrovacími čísly a příslušnými pravidly. Pro složitější scénáře s podobnými požadavky se doporučuje použít plugin, který podporuje pravidla pro rozsah poštovních směrovacích čísel.
Jaký je další krok? Co bych měl udělat dál?
Další čtení a praktické znalosti
Následující obsah souvisí s tématem tohoto článku a je vhodný k dalšímu prostudování. Obvykle je lepší začít čtením článku, který je nejblíže vašemu aktuálnímu problému, a poté postupně přecházet k souvisejícím tématům.
- Základy pro začátečníky v vytváření webových stránek pomocí WooCommerce: Jak si od nuly vybudovat vlastní e-shop
- Ultimátní průvodce a praktické tipy pro optimalizaci výkonu obchodu na platformě WooCommerce
- Vývoj e-shopů pomocí WooCommerce: Ultimátní průvodce vytvořením kompletního online obchodu od nuly
- Jak vytvořit výkonný e-shop na WordPressu pomocí WooCommerce
- Podrobný rozbor WooCommerce: Vytvoření výkonného e-shopu na WordPressu od nuly