Wordpress

Woocommerce Üniversite Öğrencilerine İndirim Kampanyası (Eklenti Olmadan)

Woocommerce Üniversite Öğrencilerine İndirim Kampanyası (Eklenti Olmadan)

Merhaba değerli arkadaşlar, günümüzde e-ticaret dünyası hızla evriliyor ve işletmeler, müşteri sadakatini artırmak ve satışlarını yükseltmek adına sürekli olarak yeni ve yenilikçi yöntemler arayışı içerisindeler. İşte tam bu noktada, WooCommerce Üniversite E-postası ile Üye Olanlara Özel İndirim kampanyası devreye giriyor ve işletmelere büyük bir çözüm sunuyor.

Bu özel kampanya, işletmelerin müşteri tabanını genişlemesine yardımcı olurken, öğrencilere özel indirimlerle müşteri deneyimini daha tatmin edici hale getiriyor. Eğitim alanındaki genç nesil için cazip olan bu fırsatlar, hem öğrencileri memnun ediyor hem de işletmelere yeni müşteriler kazandırma potansiyeli taşıyor.

WooCommerce Üniversite Öğrencilerine İndirim Kampanyası sitenize eklemek için aşağıdaki adımları izleyebilirsiniz:
1. Görünüm > Tema Düzenleyici bölümüne gidin.
2. functions.php dosyasını seçin.
3. Dosyanın en altına aşağıdaki kodları sırasıyla ekleyin.
veya alt tema oluşturarak tema güncellemelerinde kodlarınızı kaybolmadan saklayabilirsiniz. Alt tema oluşturmak için buraya tıklayabilirsiniz.

Wordpress function.php

Adım 1: Üniversite e-posta doğrulama fonksiyonu

Bu kod parçası, öğrencilerin e-posta adreslerini doğrulamak için kullanılır. Kısacası, e-posta adresi, belirli bir üniversite alan adıyla sonlanıp sonlanmıyor diye kontrol eder. Örneğin, “ogrenci@universite.edu.tr” gibi bir e-posta adresi, “edu.tr” alan adı ile sonlanıyorsa, bu kişiyi öğrenci olarak tanımlar.

/**
 * isUniversityEmail Fonksiyonu
 *
 * Bu işlev, bir kullanıcının e-posta adresini alır ve bu e-posta adresinin belirli bir üniversite alan adı ile
 * sonlanıp sonlanmadığını kontrol eder. Bu, kullanıcıların sadece belirli bir üniversiteye ait e-posta adreslerini
 * kullanmalarını sağlamak için kullanılabilir.
 *
 * @param string $email Kullanıcının e-posta adresi.
 * @param string $universityDomain Kontrol edilmek istenen üniversite alan adı.
 * @return bool Eğer e-posta belirtilen üniversite alan adı ile sonlanıyorsa true, aksi takdirde false döner.
 */
function isUniversityEmail($email, $universityDomain)
{
    // E-posta adresini küçük harfe dönüştürürüz, böylece büyük/küçük harf karışıklığına karşı korunuruz.
    $email = strtolower($email);

    // E-posta adresini "@" karakterine göre böleriz ve kullanıcı adı ile etki alanını (domain) alırız.
    list($user, $domain) = explode('@', $email);

    // Üniversite alan adını da küçük harfe dönüştürürüz, çünkü DNS büyük/küçük harf duyarlı değildir.
    $universityDomain = strtolower($universityDomain);

    // E-posta alan adı, belirtilen üniversite alan adıyla sonlanıyorsa, işlev true döndürür.
    return (substr($domain, -strlen($universityDomain)) === $universityDomain);
}

Adım 2: E-posta adresi geçerliliğini kontrol

Bu kod parçası, kullanıcının e-posta adresini doğrulamak için Hunter.io API’sini kullanır. Eğer e-posta adresi geçerli ise (yani, doğrulama sonucu “valid” ise), kullanıcıya “vono_education_verified_2023” adlı özel bir meta verisi ekler. Bu meta verisi, kullanıcının öğrenci olduğunu ve indirim uygulanmadığını belirtir.

/*
 * Bu kod parçası, WooCommerce'da yeni bir müşteri oluşturulduğunda tetiklenen eylemi işler.
 * Bu eylem, kullanıcının kayıt olmasını takip eder ve özel bir e-posta doğrulama sürecini başlatır.
 *
 * Parametreler:
 * $customer_id: Yeni müşterinin kullanıcı kimliği.
 * $new_customer_data: Yeni müşterinin verilerini içeren bir dizi.
 */
add_action('woocommerce_created_customer', 'vono_action_woocommerce_created_customer', 10, 3);
function vono_action_woocommerce_created_customer($customer_id, $new_customer_data)
{
    $email = $new_customer_data['user_email'];
    // Yeni müşterinin e-posta adresini alır ve $email değişkenine atar.

    if (isUniversityEmail($email, 'edu.tr')) {
        // Eğer e-posta, 'edu.tr' ile biten bir üniversite e-posta adresi ise, işlem yapılır.

        // Initialize cURL.
        $apiKey = 'YOUR_API_KEY'; // Hunter.io API anahtarını buraya eklemelisiniz.
        // API anahtarınızı buraya ekleyin.

        $ch = curl_init(); // cURL örneği oluşturulur.

        curl_setopt($ch, CURLOPT_URL, 'https://api.hunter.io/v2/email-verifier?email=' . $email . '&api_key=' . $apiKey);
        // cURL ile Hunter.io API'sine e-posta adresini doğrulamak için istek yapılır.

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // İstek sonucunun döndürülmesini sağlar.
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // Yönlendirmeleri takip eder.

        $data = curl_exec($ch); // cURL ile isteği gerçekleştirir ve yanıtı alır.
        curl_close($ch); // cURL örneği kapatılır.

        $manage = json_decode($data, true, JSON_UNESCAPED_UNICODE);
        // Yanıtı JSON formatından bir diziye çözümleme işlemi yapılır.

        $emailStatus = $manage['data']['status'];
        // JSON yanıtından e-posta adresinin durumunu alır.

        $metaData = array('status' => ($emailStatus === "valid" ? 'valid' : 'invalid'), 'discount_applied' => "no");
        // E-posta adresinin durumunu ve indirim uygulama durumunu içeren bir dizi oluşturulur.

        add_user_meta($customer_id, 'vono_education_verified_2023', $metaData);
        // Kullanıcının meta verilerine, e-posta doğrulama sonuçları ve indirim uygulama durumu eklenir.
    }
}

Adım 3: Kullanıcıyı bilgilendirme

Bu kod parçası, öğrenci e-posta doğrulama işlemini gerçekleştirir ve bu doğrulamanın sonucuna göre kullanıcıya özel mesajlar görüntüler. Eğer kullanıcı öğrenci ise ve henüz indirim uygulanmamışsa, sepetine otomatik olarak bir indirim eklenmesi gerektiğini belirtir. Ayrıca, eğer e-posta doğrulama işlemi başarısız olursa, kullanıcıya bu konuda bilgi verir.

add_action('woocommerce_account_dashboard', 'vono_academic_email_verified');
function vono_academic_email_verified()
{
    // Kullanıcının kimliğini al
    $userID = get_current_user_id();

    // Kullanıcının e-posta doğrulama bilgisini al
    $emailCheck = get_user_meta($userID, 'vono_education_verified_2034', true);

    // Eğer e-posta doğrulama mevcutsa ve "status" (durum) değeri "valid" (geçerli) ise:
    if ($emailCheck && $emailCheck['status'] === "valid") {

        // Eğer daha önce indirim uygulanmamışsa:
        if ($emailCheck['discount_applied'] == "no") {
            echo __('<p>Öğrencilere özel olarak sepette otomatik olarak uygulanan 10 TL indirim fırsatını kaçırmayın.</p>');
        }
    } else {
        // Eğer e-posta doğrulama mevcut değilse veya "status" değeri "valid" değilse:
        echo __('<p>Öğrenci e-posta giriminiz hatalıdır. Lütfen tekrar deneyiniz</p>');
    }
}
woocommerce my account alert message

Adım 4: İndirimi uygula

Bu kod, kullanıcının daha önce indirim uygulanıp uygulanmadığını kontrol eder. Eğer kullanıcı öğrenci ise ve henüz indirim uygulanmamışsa, alışveriş sepetine otomatik olarak bir indirim ekler.

add_action('woocommerce_cart_calculate_fees', 'vono_apply_discount_oncee');
function vono_apply_discount_oncee($cart)
{
    if (is_admin() && !defined('DOING_AJAX')) return;

    $userID = get_current_user_id();
    // kullanıcı metasını çek
    $already_discounted = get_user_meta($userID, 'vono_education_verified_2023', true);

    // Eğer kullanıcı daha önce bir indirim almışsa:
    if ($already_discounted) {
        // Eğer daha önce bir indirim uygulanmamışsa ve kullanıcının durumu geçerli (valid) ise:
        if ($already_discounted['discount_applied'] == "no" && $already_discounted['status'] == "valid") {
           // Alışveriş sepetine "Öğrenci İndirimi" adında bir indirim sağlar.
            $cart->add_fee('Öğrenci İndirimi', -10); // Örnek olarak -10 TL indirim
        } else {
            return;
        }
    }
}

Adım 5: İndirim tekrarlamayı kapatma

Bu kod, siparişin durumunu kontrol eder ve bir sipariş işlendikten veya bekletme durumuna alındığında indirim durumunu sıfırlar.

add_action('woocommerce_order_status_pending', 'vono_reset_discount_statuse'); // Sipariş ilk oluşturulduğunda ve ödeme bekliyorsa tetiklenir.
add_action('woocommerce_order_status_processing', 'vono_reset_discount_statuse'); //Sipariş ödeme alındığında ve işleme aşamasındaysa tetiklenir.
add_action('woocommerce_order_status_on-hold', 'vono_reset_discount_statuse'); //Sipariş bekletme durumuna alındığında tetiklenir.
function vono_reset_discount_statuse($order_id)
{
    $order = wc_get_order($order_id);
    $userID = $order->get_user_id();
    $getcheckMeta = get_user_meta($userID, 'vono_education_verified_2023', true);
    
    // Eğer kullanıcı kimliği mevcutsa
    if ($userID) {
        // Kullanıcının meta verisindeki 'discount_applied' alanını 'yes' olarak ayarla (indirim uygulandı olarak işaretle)
        $getcheckMeta['discount_applied'] = 'yes';
        // Kullanıcının meta verisini güncelle
        update_user_meta($userID, 'vono_education_verified_2023', $getcheckMeta);
    }
}

Adım 6: Sonuç

Bu şekilde, üniversite e-posta doğrulama sistemi ve özel indirimler oluşturarak WooCommerce mağazanızı öğrencilere yönelik daha cazip hale getirebilirsiniz. Öğrenciler, doğrulama işleminden geçtikten sonra sepette otomatik olarak uygulanan özel indirimlerden faydalanabilirler.
Projenin kodlarını indirmek isteyenler için kolayca erişilebilir bir şekilde, buraya tıklayarak indirebilirsiniz.

woocommerce student discount

Sevgili Okuyucularımız, Sizlere bilgi, eğlence ve ilham dolu içerikler sunabildiysek ne mutlu bize. Eğer yazımızda herhangi bir düzeltme veya öneri sunmak isterseniz, lütfen yorum yapmaktan çekinmeyin. Sizden gelen geri bildirimler, içeriklerimizi daha da geliştirmemiz için bize büyük bir yardımcı olacaktır. Teşekkür ederiz!
Unutmayın! Paylaşmak; kazanmanın en hızlı ve kolay yoludur. Bir sonraki makalede görüşmek dileğiyle esen kalın.

İçeriğimi beğendin mi? Bana destek olup bir kahve ısmarlayabilirsiniz. Çok teşekkür ederim!

Bu makale yardımcı oldu mu?
EvetHayır

Paylaş

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir