WooCommerce Gönderim Ücretsiz Kargo

WordPress kullanıyorsanız ve e-ticaret yapmak istiyorsanız WooCommerce eklentisi nokta atışı denilebilir.

WooCommerce, WordPress ile birlikte bütünlük sağlamış harika bir e-ticaret eklentisi.

WooCommerce’in ayarlarında gönderim seçeneği vardır. Bu seçenek ile ürünlerinizi nereye ve nasıl kargo yapabileceğini ayarlamanız mümkün.

Bu kısımları az çok herkes biliyor. Ancak pek bilinmeyen husus; belli bir tutarı geçen siparişler için ücretsiz kargo tanımlaması yapılmak istendiğinde karşılaşılan durum.

WooCommerce ayarlarında Gönderim sekmesinde Gönderi Bölgeleri bulunur. Buradan farklı bölgeler, kıtalar, şehirler için gönderi yöntemleri belirleyebilirsiniz.

Bir gönderi yöntemi ile bir kargo firması belirlediniz; örneğin X Kargo. Ardından başka bir kargo firması belirlediniz; örneğin Y Kargo. Her iki kargo firması yönteminde de sabit ücret tespit ettiniz. Buraya kadar her şey güzel. Bunların üzerine aynı bölge için ücretsiz kargo yöntemi de belirlediniz ve belli tutarı geçen siparişlere de ücretsiz kargo yapmak istediniz ve yaptınız.

Bütün bunları yaptıktan sonra belirli bir tutarı geçen ve ücretsiz kargo hakkı kazanan siparişinizin sepet kısmında muhtemelen şöyle bir resimle karşılaşacaksınız;

Bizim deneme satın almamızda ücretsiz gönderim kargo için en az sipariş tutarı 450 TL idi. Sipariş tutarı bu kriteri karşılamasına rağmen ve bu mantıkla sadece ücretsiz gönderim seçeneğinin çıkmış olması gerekirken resimde gördüğünüz gibi diğer kargo seçenekleri de çıkıyordu. Herhalde sipariş veren kullanıcıya bu ekranı göstermemiz anlamsız olurdu.

WooCommerce panelinde ayarlar kısmında bu duruma çözüm bulacak bir seçenek maalesef yok. Ancak, sağolsun WooCommerce bunun için bize basit bir yol göstermiş.

Aşağıdaki kodu kopyalayıp wordpress temanızın functions.php dosyasına yapıştırıyorsunuz. Hepsi bu kadar!

Umarız işinize yarar..


/**
* Hide shipping rates when free shipping is available.
* Updated to support WooCommerce 2.6 Shipping Zones.
*
* @param array $rates Array of rates found for the package.
* @return array
*/
function my_hide_shipping_when_free_is_available( $rates ) {
$free = array();
foreach ( $rates as $rate_id => $rate ) {
if ( ‘free_shipping’ === $rate->method_id ) {
$free[ $rate_id ] = $rate;
break;
}
}
return ! empty( $free ) ? $free : $rates;
}
add_filter( ‘woocommerce_package_rates’, ‘my_hide_shipping_when_free_is_available’, 100 );