• 30-05-2024, 22:24:05
    #10
    fcsosyal adlı üyeden alıntı: mesajı görüntüle
    konu biraz eski ama denk gelenler olur, function.php dosyasına eklediğiniz kod ile ücretsiz ve eklentisiz bir şekilde yapabilirsiniz

    ben o şekilde yaptım.

    kaynakhttps://www.efyuar.com/woocommerce-i...irim-uygulama/
    bu tum kategorilere uygular seklinde ekleme yapalim. ayni kategoriden 2 urune istiyorsaniz urunlerin ayni kategoriden oldugunu check etmeniz gerekecektir.

    bunu yapmak icin de yukaridaki kodlara ek olarak once kategorileri tanimlamaniz:

    $categories = array('kat1', 'kat2');

    sonra da urunun o kategorilerde olup olmagini asagidaki sekilde kontrol etmeniz gerekli:


    if( $cart_item['quantity'] > 1 && has_term( $categories, 'product_cat', $cart_item['product_id'] ) )
  • 08-12-2024, 13:26:34
    #11
    fcsosyal adlı üyeden alıntı: mesajı görüntüle
    konu biraz eski ama denk gelenler olur, function.php dosyasına eklediğiniz kod ile ücretsiz ve eklentisiz bir şekilde yapabilirsiniz

    ben o şekilde yaptım.

    kaynakhttps://www.efyuar.com/woocommerce-i...irim-uygulama/

    Bahsettiğinz gibi kodu function.php dosyasına ekledim çalıştı fakat aynı üründen ikincisinde çalışmadı bunu nasıl yapabilir acaba.
  • 15-12-2024, 10:44:24
    #12
    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 );
        }
    }
    Ben bu şekilde kullanıyorum ama aynı üründen 2 defa alındığında buda indirim uygulamıyor.