Zaman sınırlı kampanyalar, e-ticaret sitenizde anlık dönüşüm oranlarını artırmanın en etkili yollarından biridir. Bu yazıda size:
Belirli bir tarih için geçerli olacak 24 saatlik kargo bedava kampanyası kurmayı,
Bu kampanyayı sitenin en üstünde geri sayımlı bir bilgilendirme barı ile duyurmayı,
Kampanya bitince sistemin otomatik olarak 2000 TL üzeri kargo bedava kuralına dönmesini
sıfır eklenti ile sadece birkaç satır kod yazarak nasıl yapabileceğinizi adım adım göstereceğim.
🛠️ Adım 1 – Kampanya Aktiflik Kontrolü Fonksiyonu
// === Kampanya Zaman Aralığı Kontrolü ===
function fks_is_kargo_kampanya_active() {
$start = strtotime('2025-06-30 00:00:00'); // Kampanya başlangıcı
$end = strtotime('2025-06-30 23:59:59'); // Kampanya bitişi
$now = current_time('timestamp');
return ($now >= $start && $now <= $end);
}
🧠 Ne işe yarar?
Bu fonksiyon, kampanyanın şu anda aktif olup olmadığını belirler. Başka fonksiyonların tamamı bu kontrole göre çalışır. Belirttiğiniz tarihler arasında çalışır; örneğin 30 Haziran günü saat 00:00’dan 23:59’a kadar.
🧾 Adım 2 – Kargo Ücreti Kurallarını Dinamik Hale Getirme
// === 1. WooCommerce Kargo Kuralları ===
add_filter('woocommerce_package_rates', 'fks_zamanli_kargo_kampanya', 9999, 2);
function fks_zamanli_kargo_kampanya($rates, $package) {
if (is_admin() && !defined('DOING_AJAX')) return $rates;
$cart = WC()->cart;
if (!$cart) return $rates;
$subtotal = $cart->get_subtotal();
$new_rates = [];
if (fks_is_kargo_kampanya_active()) {
foreach ($rates as $rate_key => $rate) {
$rate->cost = 0;
$rate->label = 'Kargo Bedava';
$new_rates[$rate_key] = $rate;
}
return $new_rates;
}
// Kampanya aktif değilse: 2000 TL üzeri ücretsiz kargo
$free_shipping_limit = 2000;
foreach ($rates as $rate_key => $rate) {
if ($rate->method_id === 'free_shipping') {
$rate->label = 'Kargo Bedava';
}
if ($subtotal >= $free_shipping_limit && $rate->method_id === 'free_shipping') {
$new_rates[$rate_key] = $rate;
}
if ($subtotal < $free_shipping_limit && $rate->method_id === 'flat_rate') {
$new_rates[$rate_key] = $rate;
}
}
return !empty($new_rates) ? $new_rates : $rates;
}
📦 Ne işe yarar?
Bu kısım, ödeme sayfasında ve sepet ekranında kargo ücretini sıfırlamakla sorumlu. Kampanya aktifse tüm kargo metotları ücretsiz olur. Kampanya bittiğinde 2000 TL üzeri siparişlerde kargo yine ücretsiz, altındaysa normal kargo uygulanır.
🛒 Adım 3 – Sepet ve Ödeme Sayfasında Bilgilendirme
// === 2. Sepet / Ödeme Sayfası Bilgilendirmesi ===
add_action('woocommerce_review_order_before_shipping', 'fks_kargo_kampanya_bilgi', 5);
add_action('woocommerce_cart_totals_before_shipping', 'fks_kargo_kampanya_bilgi', 5);
function fks_kargo_kampanya_bilgi() {
$limit = 2000;
$subtotal = WC()->cart ? WC()->cart->get_subtotal() : 0;
if (fks_is_kargo_kampanya_active()) {
?>
🚚 Bugün saat 23:59'a kadar tüm siparişlerde kargo ücretsiz!
📦 Ücretsiz kargo için sadece ' . $remaining . ' daha harcayın!
💡 Kullanıcıyı yönlendir!
Burada kullanıcı kampanya hakkında bilgilendirilir ve kalan süre gerçek zamanlı olarak geri sayım şeklinde görünür. Eğer kampanya yoksa 2000 TL sınırına ne kadar kaldığını öğrenir.
📣 Adım 4 – HEADER Üstü Geri Sayımlı Kampanya Barı
// === 3. HEADER ÜSTÜNE SABİT KAMPANYA BARI ===
add_action('wp_body_open', function() {
if (!fks_is_kargo_kampanya_active()) return;
?>
🚚 Bugün saat 23:59’a kadar Kargo Ücretsiz!
📢 Ziyaretçiyi Etkile!
Sitenin en üstünde sabit kalan bu bar ile kampanyanızı vurgulayın. Kırmızı tonlar dönüşümü artırır, geri sayım ziyaretçiyi satın almaya teşvik eder.
🎯 Sonuç
Bu kodları kullanarak:
WooCommerce sitenize tek gün süren zamanlı kampanya entegre ettiniz,
Geri sayımlı ve dikkat çekici bir kampanya barı eklediniz,
Kampanya sona erdiğinde sistemin eski mantığa (örneğin “2000 TL ve üzeri kargo bedava”) dönmesini sağladınız.
💡 İlgili Yazı:
👉 WooCommerce 2000 TL üzeri kargo bedava etiketi ve mesajı özelleştirme yazısı ile entegre çalışır.
Bu makaleyi beğendiyseniz, lütfen WordPress video eğiticileri için YouTube Kanalımıza abone olun. Bizi Twitter ve Facebook’ta da bulabilirsiniz.