chatgpt



WooCommerce'de bu tür bir teslimat saat sınırlamasını uygulamak için, bir custom function (özel fonksiyon) yazmanız ve bunu temanızın functions.php dosyasına eklemeniz gerekiyor. Bu fonksiyon, sipariş verme zamanına göre teslimat tarihini ve saatini kısıtlayacaktır.
İlgili işlemleri adım adım anlatacağım:
  1. Önce Zamanı Kontrol Etme: Siparişin saat 17:00'den önce mi yoksa sonra mı verildiğini kontrol etmeniz gerekecek. Bunu yaparken yerel saati kullanmak için WordPress'in tarih ve saat fonksiyonlarını kullanabiliriz.
  2. Teslimat Tarih ve Saat Seçimini Kısıtlama: Sipariş saati 17:00'den sonra ise, müşterinin teslimat tarihini seçmesini engelleyebilirsiniz.
Aşağıdaki kod, siparişin verildiği saate göre ertesi gün teslimatın seçilmesine izin vermeyecek şekilde WooCommerce'e entegre edilebilir:

// functions.php dosyasına ekleyin
add_filter('woocommerce_checkout_fields', 'customize_delivery_date_based_on_time');

function customize_delivery_date_based_on_time($fields) {
    // Türkiye saat dilimini ayarlıyoruz
    date_default_timezone_set('Europe/Istanbul');
    
    // Şu anki saat
    $current_hour = date('H');
    $current_day = date('Y-m-d');

    // Eğer saat 17:00'den sonra ise
    if ($current_hour >= 17) {
        // Teslimat tarih alanını bul ve sınırlamalar ekle
        $fields['shipping']['delivery_date']['custom_attributes'] = array(
            'min' => date('Y-m-d', strtotime($current_day . ' + 2 days')) // Teslimat tarihi bugünden +2 gün olmalı
        );
    } else {
        // Saat 17:00'den önce ise, ertesi gün seçilebilsin
        $fields['shipping']['delivery_date']['custom_attributes'] = array(
            'min' => date('Y-m-d', strtotime($current_day . ' + 1 day')) // Ertesi gün seçilebilsin
        );
    }

    return $fields;
}

Açıklama:

  • Bu kod, checkout sırasında sipariş veren müşterinin yerel saatine göre işlemi yapıyor. Eğer sipariş saati 17:00'den sonraysa, minimum teslimat tarihi ertesi gün yerine bir sonraki gün olarak ayarlanıyor.
  • Eğer saat 17:00'den önce ise, müşteri ertesi gün teslimat seçimini yapabilir.

Uygulama:

  1. WordPress yönetim panelinizde Appearance (Görünüm) -> Theme File Editor (Tema Dosya Editörü) kısmına gidin.
  2. Sağ menüden functions.php dosyasını açın.
  3. Yukarıdaki kodu dosyanın sonuna ekleyin ve kaydedin.
Bu kod, siparişin verildiği saat dilimine göre teslimat tarihini otomatik olarak kısıtlayacaktır.