WooCommerce Özel Şehirler Ekleme ve Bu Şehirlere Minumum Sipariş Tutarı Ayarlama

0

Çok uzun bir başlık olduğunun farkındayım ama konuyu özetlemek gerekise bu yazımda sizlere tam da başlıkta yazıldığı gibi işlemlerin nasıl yapılacağını göstereceğim.İlk olarak özel şehriler tanımlama işlemini yapacağız.Bunu neden yapıyoruz.Woocommerce’de bazı ülkelerin şehirleri yok veya eksik olarak girilmiş.Mesala Kıbrıs için Woocommercede şehirler yok veya Belçika için şehirler yok.Sadece olmadığından dolayı değil şehirler üzerine herhangi bir özelleştirme kullanamak istiyorsanız dahi şehirleri özel olarak eklemenizde fayda var.

Daha önceki yazılarımda sizlere kategorilere özel minumum sipariş tutarı belirtmeyi göstermiştim.İstediğiniz kategoriye özel minumum sipariş tutarı belirleyerek o kategoriden sizin belirlediğiniz tutarın altında ki siparişler hata ile sonuçlanıyordu.Yine buna benzer bir işlem yapacağız ve bu sefer bu minumum sipariş tutarı olayını şehirlere uygulayacağız.

Böyle bir çalışma tabi yine her zaman ki gibi bir müşterim tarafından geldi.Belçika’da pizza ve hamburger satışı yapan müşterim Belçika’da sadece 8 şehire satış yaptığını ve her şehire ayrı bir minumum sipariş tutarı berlitrmek istedi belirlediği minumum sipariş tutarının altındaki siparişler uyarı mesajı göstermek istediğini belirtti.

Hemen çalışmaya başlayalım ve kodlar üzerinde yorumlar ile çalışmamızı yapalım.


/**
* İlk olarak şehirlerimizi ekleyelim.Aşağıda dropdown menü olarak 8 adet şehir eklidir.
*Şehirleri istediğiniz gibi değiştirip yenilerini ekleyebilirsiniz.
*/

function seyda_kingofwp_change_city_to_dropdown( $fields ) {
$city_args = wp_parse_args( array(
'type' => 'select',
'options' => array(
'MELSELE' => 'MELSELE',
'BEVEREN' => 'BEVEREN',
'KALLO' => 'KALLO',
'HAASDONK' => 'HAASDONK',
'VRASENE' => 'VRASENE',
'ZWIJNDRECHT' => 'ZWIJNDRECHT',
'BURCHT' => 'BURCHT',
'HAVEN' => 'HAVEN',

),
'input_class' => array(
'state_select select2-hidden-accessible',
)
), $fields['shipping']['shipping_city'] );
$fields['shipping']['shipping_city'] = $city_args;
$fields['billing']['billing_city'] = $city_args; // Also change for billing field
wc_enqueue_js( "
jQuery( ':input.state_select select2-hidden-accessible' ).filter( ':not(.enhanced)' ).each( function() {
var select2_args = { minimumResultsForSearch: 5 };
jQuery( this ).select2( select2_args ).addClass( 'enhanced' );
});" );
return $fields;
}
add_filter( 'woocommerce_checkout_fields', 'seyda_kingofwp_change_city_to_dropdown' );

// Şehirlere Özel Minumum Sipariş Tutarı

add_action( 'woocommerce_check_cart_items', 'cs_min_num_products' );

// Sepet ve Ödeme Sayfasına Ekle
function cs_min_num_products() {

if( is_cart() || is_checkout() ) {
global $woocommerce;

// Minumum sipariş tutaru

$minimum2 = 18;

$city2 = array('BURCHT','ZWIJNDRECHT');


// Toplam tutar değişimi
$cart_tot_order = WC()->cart->total;

// Kodlar Seyda AŞAN tarafından hazırlanmıştır.


if( $cart_tot_order < $minimum2 && in_array( WC()->customer->get_shipping_city(), $city2 ) ) {
// Hata göster.
wc_add_notice( sprintf( '<strong>BURCHT AND ZWIJNDRECHT state S FOR A MINIMUM ORDER OF $%s IS REQUIRED BEFORE CHECKING OUT.</strong>'
. '<br />Current order: $%s.',
$minimum2,
$cart_tot_order ),
'error' );
}
}
}

// Şehirlere Özel Minumum Sipariş Tutarı

add_action( 'woocommerce_check_cart_items', 'cw_min_num_products' );

// Sepet ve Ödeme Sayfasına Ekle
function cw_min_num_products() {

if( is_cart() || is_checkout() ) {
global $woocommerce;

// Minumum sipariş tutaru
$minimum = 12.50;

$city = array('MELSELE','BEVEREN','KALLO','HAASDONK','VRASENE');



// Toplam tutar değişimi
$cart_tot_order = WC()->cart->total;

// Kodlar Seyda AŞAN tarafından hazırlanmıştır.


if( $cart_tot_order < $minimum && in_array( WC()->customer->get_shipping_city(), $city ) ) {
// Hata göster.
wc_add_notice( sprintf( '<strong>MELSELE,BEVEREN,KALLO,HAASDONK,VRASENEA state S FOR Minimum order of $%s is required before checking out.</strong>'
. '<br />Current order: $%s.',
$minimum,
$cart_tot_order ),
'error' );
}
}
}

// Şehirlere Özel Minumum Sipariş Tutarı

add_action( 'woocommerce_check_cart_items', 'ck_min_num_products' );

// Sepet ve Ödeme Sayfasına Ekle
function ck_min_num_products() {

if( is_cart() || is_checkout() ) {
global $woocommerce;

// Minumum sipariş tutaru

$minimum3 = 25;

$city3 = array('HAVEN');


// Toplam tutar değişimi
$cart_tot_order = WC()->cart->total;

// Kodlar Seyda AŞAN tarafından hazırlanmıştır.


if( $cart_tot_order < $minimum3 && in_array( WC()->customer->get_shipping_city(), $city3 ) ) {
// Hata göster.
wc_add_notice( sprintf( '<strong>HAVEN state FOR A MINIMUM ORDER OF $25 IS REQUIRED BEFORE CHECKING OUT.</strong>'
. '<br />Current order: $%s.',
$minimum3,
$cart_tot_order ),
'error' );
}
}
}

 

Yukarıdaki kodlar da gördüğünüz gibi ilk olarak 8 şehir ekledik.Bu şehirler Belkçika’ya ait şehirledir siz istediğiniz ülkleye göre özel şehir tanımlamaları yapabillirsiniz.Sonra bu şehirleri 3 gruba ayırdım be birine 12,50 birine 18 ve bir tanesine de minumum sipariş tutarı olarak 25 verdim.Ve eğer müşteri şehirini seçtikten sonra minumum sipariş tutarı belirtilen tutarın altında ki gösterilecek olan uyarını mesajını tanımladık.

Kodu temanızın fuctions.php dosyasına ekleyerek kullanabilirsiniz.Eğer bu alanda desteğe ihtiyaçınız var ise veya kodu farklı senaryolar şeklinde değiştirmek isterseniz bana ulaşabilirsiniz.

 

Cevap bırakın

E-posta hesabınız yayımlanmayacak.

İnternet sitemizden en verimli şekilde faydalanabilmeniz ve kullanıcı deneyiminizi geliştirebilmek için Cookie kullanıyoruz. Cookie kullanılmasını tercih etmezseniz tarayıcınızın ayarlarından Cookieleri silebilir ya da engelleyebilirsiniz. Kabul Ediyorum Devamını oku

Gizlilik ve Çerez Politikası