Belirli Koşullar İçin WooCommerce Nakliye Yöntemleri Nasıl Gizlenir
Yayınlanan: 2020-06-15Gönderim yöntemi , müşterinin herhangi bir ürünü satın alırken ödeme sayfasında gördüğü bir hizmet ve ücrettir. Sorunsuz bir teslimat deneyimi için bir e-ticaret mağazası için önemli bir seçenek olacaktır.
WooCommerce, bir e-Ticaret çözümü olarak, konumlara göre çeşitli nakliye bölgeleri için ayarlanabilen Ücretsiz nakliye , Sabit ücret ve Yerel Teslim Alma gibi nakliye yöntemleri de sağlar. Örneğin, Ücretsiz kargo seçeneği yalnızca mağaza konumuna yakın olan belirli bir posta kodu aralığı için kullanılabilir ve Sabit Fiyat seçeneği, teslimat bölgelerinin diğer kısmı için kullanılabilir.

Lokasyon bazlı nakliye seçenekleri eklenti tarafından kolayca elde edilebilir, ancak lokasyonun hayati bir rol oynamadığı belirli koşullar için mağaza sahiplerinin bunu başarması çok zor hale gelir. Koşullar şunlar olabilir:
- Sipariş ağırlığı belirli bir lbs veya kg'dan fazlaysa, Ücretsiz Gönderim gibi belirli Gönderim yöntemleri mevcut olmamalıdır.
- Bazı nakliye yöntemlerinin mevcudiyeti, miktar sayısına veya tüm siparişin fiyatına da bağlıdır. Örneğin, sipariş toplamı 250 ABD Dolarından fazlaysa, yalnızca Ücretsiz Gönderim yöntemi kullanılabilir olmalı ve ücretli gönderim yöntemleri bulunmamalıdır.
Ödeme sırasında gönderim yöntemlerinin gösterilmesi veya gizlenmesi gereken daha başka koşullar olabilir, ancak bu gönderide yukarıdakileri açıklayacağız 2. WooCommerce mağazanız için bunu başarmak için bir kod parçacığı ekleyebilir veya herhangi bir gönderim ücretini kullanabilirsiniz. eklentiler mevcuttur.
Bir kod parçacığını kullanma
Yukarıda bahsedilen, sipariş ağırlığı 5 kg'dan fazla ise Ücretsiz Kargo'nun mevcut olmaması gereken durum 1'e bir örnek verelim. Bunu, şu anda aktif olan temanın function.php dosyasına aşağıdaki kodu ekleyerek başarabilirsiniz.
Not: Mevcut temanın bir güncellemesiyle bu değişikliklerin üzerine yazılabilir, bu nedenle bir alt tema oluşturmanız ve gerekli kod parçacıklarını alt temanın function.php dosyasına eklemeniz önerilir. Veya özel parçacıklar eklemek için Kod Parçacıkları eklentisini kullanabilirsiniz.
/** * Sipariş ağırlığı 10kg'dan fazla olduğunda ücretsiz gönderimi gizleyin. * * @param dizisi $rates Paket için bulunan oranlar dizisi. * @dönüş dizisi */ function ts_hide_free_shipping_for_order_weight( $oranlar, $paket ) { $order_weight = WC()->cart->get_cart_contents_weight(); if ( $order_weight > 5 ) { foreach( $rates as $rate_id => $rate_val ) { if ( 'free_shipping' === $rate_val->get_method_id() ) { unset( $rates[ $rate_id ]); } } } dönüş $ oranları; } add_filter( 'woocommerce_package_rates', 'ts_hide_free_shipping_for_order_weight', 100, 2 );
Burada, sepette hesaplanan oranları değiştirmek için woocommerce_package_rates filtresi kullanılıyor. Ürün sepete eklendiğinde geçerli olacak tüm nakliye ücretlerini içerir. Bu nedenle, sipariş ağırlığı 5kgs'den fazla ise bu filtreden döndürülen diziden bizim durumumuzda Ücretsiz gönderim olacak olan gerekli gönderim yöntemini kaldırmamız gerekiyor.
Ürün Sayfası:

Kargo Yöntemleri ile Sepet Sayfası:

WooCommerce Cart'ta gönderim yöntemlerini gizlemenin başka bir örneği, sipariş toplamı 250 dolardan fazla olduğunda ödeme sırasında yalnızca Ücretsiz Gönderime izin vermek olacaktır. Bu, function.php dosyasına aşağıdaki kodu ekleyerek başarılabilir.

/** * Sipariş toplamı 250 dolardan fazla olduğunda nakliye ücretlerini gizleyin. * * @param dizisi $rates Paket için bulunan oranlar dizisi. * @dönüş dizisi */ function ts_hide_shipping_for_order_total($oranlar) { $ücretsiz = dizi(); $order_total = WC()->cart->get_subtotal(); if( $sipariş_toplam > 250 ) { foreach ( $rate_id => $rate ) { if ( 'free_shipping' === $rate->get_method_id() ) { $ücretsiz[ $rate_id ] = $oran; } } } dönüş ! boş ($ücretsiz)? $ücretsiz : $fiyatlar; } add_filter('woocommerce_package_rates', 'ts_hide_shipping_for_order_total', 100 );
Burada, sipariş toplamı 250 $ 'dan fazla olduğunda, filtreden yalnızca ücretsiz gönderim yöntemlerine sahip bir dizi döndürülür, aksi takdirde tüm nakliye ücretleri iade edilir.

Yukarıdaki örneklerde Ücretsiz Gönderim yöntemi referansını aldık, bu nedenle kullanılan yöntem kimliği free_shipping. Diğer gönderim yöntemlerini değiştirmek için yöntem kimlikleri şunlardır:
Yerel Alım: local_pickup
Sabit Oran: flat_rate
get_method_id() işlevi, tek bir nakliye bölgesinin tek bir yöntemi için değil, tüm nakliye bölgeleri için yalnızca 3 yöntem için yöntem kimliğini getirir; bu nedenle, ödeme sırasında kullanılabilen tüm sabit fiyatları, yerel teslim alma veya ücretsiz gönderim yöntemlerini gizleyecektir. Ancak belirli bir gönderim yöntemini gizlemek istiyorsanız, gönderim yöntemi kimliği ve örnek kimliği kombinasyonunun kullanılması gerekir.
Örneğin, 'flat_rate:3' burada 3, veritabanındaki bir bölge için her gönderim yöntemi için depolanan benzersiz örnek kimliğidir. Gönderim yönteminin örnek kimliğini, gönderim yöntemine sağ tıklayarak bulabilir ve öğeyi tarayıcınızdaki geliştirici aracında inceleyebilirsiniz.
Gönderim yöntemleri için farklı WooCommerce Uzantıları kullanma
Farklı koşullar için gönderim yöntemlerini ayarlamak için birden fazla ücretli veya ücretsiz uzantı vardır. En çok kullanılan eklentilerden bazıları şunlardır:
Ücretli Eklentiler:
- WooCommerce tarafından Tablo Ücreti Gönderimi : Bu eklenti, WooCommerce'in varsayılan gönderim seçeneklerini genişleterek size son derece özelleştirilebilir gönderim seçenekleri sunar.
- WooCommerce için Gelişmiş Sabit Ücretli Nakliye Eklentisi : Bu eklenti, mağazanızdaki nakliye ücretlerini gelişmiş nakliye kurallarına göre yapılandırmanıza yardımcı olacaktır.
- Jeroen sormani tarafından WooCommerce Advance Shipping eklentisi : Bu eklenti, belirlenmiş kurallara göre ödeme sırasında Gönderi yöntemlerini etkinleştirmenizi sağlar. Farklı sepet detayları, ürün detayları veya farklı kullanıcı detayları için kurallar belirlenebilir .
- WP Desk tarafından WooCommerce için Esnek Nakliye Pro : Bu eklenti , belirli bir öğeye, alışveriş sepeti satır öğesine, fiyata veya ağırlık kurallarına göre gönderim yöntemini etkinleştirmenize olanak tanır.
Ücretsiz Eklentiler:
Yukarıdaki eklentilerden bazıları, sınırlı özelliklere sahip ücretsiz bir sürüme de sahiptir. Bunlar:
- Jeroen Sormani'den WooCommerce Gelişmiş Ücretsiz Gönderim: Bu, WooCommerce Gelişmiş Gönderim eklentisinin ücretsiz bir sürümüdür. Her iki eklentinin de tek farkı, bu eklentinin yalnızca belirlenmiş kurallar için ücretsiz gönderim yöntemine izin vermesi ve ücretli eklentinin tüm gönderim yöntemlerine izin vermesidir.
- WP Desk tarafından WooCommerce için Esnek Gönderim : Bu, WooCommerce eklentisi için Esnek Gönderim Pro'nun ücretsiz bir sürümüdür . Yalnızca fiyat ve ağırlık için nakliye yöntemlerinin ayarlanmasına izin verir.
Yukarıda belirtilen eklentilerin ayrıntılı açıklaması için bu gönderiyi kontrol edebilirsiniz.
Çözüm
Bu gönderide gördüğümüz gibi, önceden gönderim seçenekleri, web sitenize bir kod parçacığı ekleyerek veya mevcut çeşitli eklentileri kullanarak elde edilebilir. Böylece verilen kod parçacığını deneyebilir veya eklentilerden herhangi birini deneyebilir ve bunun WooCommerce Mağazanız için faydalı olup olmadığını bize bildirebilirsiniz.