Merhabalar,

Wordpress kategorisinde sizlere bu tarz birçok bilgilendirme ve işinize yarayacak maddeler paylaşmaya devam edeceğim. Aşağıda belirttiğim kod ile e-ticaret sitenizde ilk alışverişi gerçekleştiren müşterilerinize özel % olarak indirim belirleyebilirsiniz. Aşağıda verdiğim örnekte %10 indirim kullandım.

İndirim oranını değiştirmek için kodda yer alan // Kullanıcının ilk siparişi olup olmadığını kontrol et 'nın altında 0.10 kısımını kendi indirim oranınıza göre güncelleme yapabilirsiniz.

function apply_discount_for_first_purchase( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) ) {
        return;
    }

    $user_id = get_current_user_id();
    
    // Kullanıcının önceden sipariş verip vermediğini kontrol et
    $args = array(
        'customer_id' => $user_id,
        'status' => array( 'wc-completed' ),
    );
    $orders = wc_get_orders( $args );
    
    // Kullanıcının ilk siparişi olup olmadığını kontrol et
    if ( empty( $orders ) ) {
        // %10 indirim uygula
        $discount = $cart->subtotal * 0.10;
        $cart->add_fee( 'İlk Alışveriş İndirimi', -$discount );
    }
}
add_action( 'woocommerce_cart_calculate_fees', 'apply_discount_for_first_purchase' );

function custom_apply_discount_message() {
    $user_id = get_current_user_id();
    
    // Kullanıcının önceden sipariş verip vermediğini kontrol et
    $args = array(
        'customer_id' => $user_id,
        'status' => array( 'wc-completed' ),
    );
    $orders = wc_get_orders( $args );

    // Kullanıcının ilk siparişi olup olmadığını kontrol et
    if ( empty( $orders ) ) {
        wc_print_notice( 'İlk alışverişinize özel %10 indirim uygulandı!', 'success' );
    }
}
add_action( 'woocommerce_before_cart', 'custom_apply_discount_message' );
add_action( 'woocommerce_before_checkout_form', 'custom_apply_discount_message' );
Aşağıdaki kod ise IP adresini sınırlandırarak müşterilerinizin yeni hesap kurup daha fazla indirimden faydalanmalarını engelleyebilirsiniz.

function get_user_ip() {
    if ( ! empty( $_SERVER['HTTP_CLIENT_IP'] ) ) {
        return $_SERVER['HTTP_CLIENT_IP'];
    } elseif ( ! empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
        return $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else {
        return $_SERVER['REMOTE_ADDR'];
    }
}

function apply_discount_for_first_purchase( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) ) {
        return;
    }

    $user_id = get_current_user_id();
    $user_ip = get_user_ip();
    
    // Kullanıcının önceden sipariş verip vermediğini kontrol et
    $args = array(
        'customer_id' => $user_id,
        'status' => array( 'wc-completed' ),
    );
    $orders = wc_get_orders( $args );

    // IP adresinin daha önce indirim alıp almadığını kontrol et
    $discounted_ips = get_option( 'discounted_ips', array() );

    if ( empty( $orders ) && ! in_array( $user_ip, $discounted_ips ) ) {
        // %10 indirim uygula
        $discount = $cart->subtotal * 0.10;
        $cart->add_fee( 'İlk Alışveriş İndirimi', -$discount );

        // IP adresini sakla
        $discounted_ips[] = $user_ip;
        update_option( 'discounted_ips', $discounted_ips );
    }
}
add_action( 'woocommerce_cart_calculate_fees', 'apply_discount_for_first_purchase' );

function custom_apply_discount_message() {
    $user_id = get_current_user_id();
    $user_ip = get_user_ip();
    
    // Kullanıcının önceden sipariş verip vermediğini kontrol et
    $args = array(
        'customer_id' => $user_id,
        'status' => array( 'wc-completed' ),
    );
    $orders = wc_get_orders( $args );

    // IP adresinin daha önce indirim alıp almadığını kontrol et
    $discounted_ips = get_option( 'discounted_ips', array() );

    if ( empty( $orders ) && ! in_array( $user_ip, $discounted_ips ) ) {
        wc_print_notice( 'İlk alışverişinize özel %10 indirim uygulandı!', 'success' );
    }
}
add_action( 'woocommerce_before_cart', 'custom_apply_discount_message' );
add_action( 'woocommerce_before_checkout_form', 'custom_apply_discount_message' );
Bu tarz ve benzeri içerikleri paylaşmaya devam edeceğim.

Wordpress veya Woocommerce ile ilgili işlerinizi ve danışmak istediklerinizi aşağıdaki WhatsApp numarasından ve Telegram hesabımdan ulaşarak destek alabilirsiniz.
Whatsapp: https://wa.me/905318154620
Telegram: https://t.me/btnaslan