ForumSever WordPress
Pages: 1
Woocommerce İkinci Ürüne Yüzde 40 İndirim By: Kerem Date: 22 Ekim 2024, 19:09:53
Aşağıda vereceğim kod, sepete eklenen ürünlerden en düşük olanına %40 indirim uygulayacaktır.

add_action( 'woocommerce_cart_calculate_fees', 'en_dusuk_fiyatli_urun_indirimi', 10, 1 );
function en_dusuk_fiyatli_urun_indirimi( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;
    if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
        return;

    // Sepetteki toplam ürün sayısını kontrol et
    if ( $cart->get_cart_contents_count() < 2 )
        return; // Eğer 2 veya daha fazla ürün yoksa, indirimi uygulama

    $yuzde = 40; // İndirim yüzdesi (%40)
    $indirim = 0; // Toplam indirim
    $dusuk_fiyatli_urun = null; // En düşük fiyatlı ürünü tutacak değişken
    $dusuk_fiyat = PHP_INT_MAX; // Başlangıçta çok yüksek bir fiyat değeri

    // Sepet öğelerini döngüye alarak en düşük fiyatlı ürünü bul
    foreach ( $cart->get_cart() as $cart_item ) {
        $urun_fiyati = wc_get_price_excluding_tax( $cart_item['data'] ); // Vergi hariç ürün fiyatı
        if ( $urun_fiyati < $dusuk_fiyat ) {
            $dusuk_fiyat = $urun_fiyati;
            $dusuk_fiyatli_urun = $cart_item;
        }
    }

    // En düşük fiyatlı ürüne %40 indirim uygula
    if ( $dusuk_fiyatli_urun ) {
        $indirim = $dusuk_fiyat * $yuzde / 100;
        $cart->add_fee( __( 'En düşük fiyatlı ürün indirimi', 'woocommerce' ), -$indirim );
    }
}