Şartlı sepet indirimi lütfen acil
4
●110
- 02-01-2024, 22:10:35Merhabalar değerli arkadaşlar, benim acil çözmem gereken bir sorunum var , sitemde , yatak kategorisi hariç diğer kategorilerde ki ürünlerin toplamı 4000 TL yi geçerse, yatklarda yüzde 5 indirim sağlamam gerekiyor , eklentiler denedim ama yapamadım bu konuda yardımcı olabilir misiniz acaba
- 02-01-2024, 22:19:54Selamlar, Yazılım uzmanı değilim lakin chatgpt ile şöyle bir kod yazdırdım function.php en alta ekleyip deneyebilrimisin ?
X yazan yere ilgili kategorinin İD'sini yazıcaksın bunu kategoriler kısmına girdikten sonra fareyi ilgili kategorinin üstüne getir url görünür orda İD sini bulabilirsin.
function indirim_kontrolu() { // x kategorisinin ID'sini al $x_kategorisi_id = get_term_by('slug', 'x', 'product_cat')->term_id; // Tüm ürünleri getir $tum_urunler = wc_get_products(); // Toplam fiyatı saklamak için bir değişken tanımla $toplam_fiyat = 0; // Ürünleri kontrol et foreach ($tum_urunler as $urun) { // Ürünün kategorilerini al $kategoriler = $urun->get_category_ids(); // Eğer ürün x kategorisine ait değilse if (!in_array($x_kategorisi_id, $kategoriler)) { // Ürünün fiyatını toplam fiyata ekle $toplam_fiyat += $urun->get_price(); } } // Toplam fiyat 4000 TL'yi geçerse if ($toplam_fiyat > 4000) { // Tüm sepet ürünlerine %5 indirim uygula WC()->cart->apply_coupon('indirimkodu'); // 'indirimkodu' yerine kullanmak istediğiniz bir kupon kodu belirleyebilirsiniz. } } // Sepet güncellendiğinde fonksiyonu çağır add_action('woocommerce_cart_updated', 'indirim_kontrolu');Başka bir function bunuda deneyebilirsin bu daha doğru olabilir.
function otomatik_indirim_uygula() { // İndirim uygulanacak kategorinin ID'sini belirle $hedef_kategori_id = 10; // Bu kısmı kendi kategorinizin ID'siyle değiştirin // Tüm sepet ürünlerini al $tum_urunler_sepet = WC()->cart->get_cart(); // Toplam fiyatı saklamak için bir değişken tanımla $toplam_fiyat = 0; // Sepetteki ürünleri kontrol et foreach ($tum_urunler_sepet as $sepet_urun) { // Ürün ID'sini al $urun_id = $sepet_urun['product_id']; // Ürünün kategorilerini al $kategoriler = get_the_terms($urun_id, 'product_cat'); // Eğer ürün hedef kategoriye ait değilse if ($kategoriler && !in_array($hedef_kategori_id, wp_list_pluck($kategoriler, 'term_id'))) { // Ürünün toplam fiyatını toplam fiyata ekle $toplam_fiyat += $sepet_urun['line_total']; } } // Toplam fiyat 4000 TL'yi geçerse if ($toplam_fiyat > 4000) { // Tüm sepet ürünlerine %5 indirim uygula $indirim_orani = 0.05; foreach ($tum_urunler_sepet as $key => $sepet_urun) { $yeni_fiyat = $sepet_urun['line_total'] * (1 - $indirim_orani); WC()->cart->cart_contents[$key]['line_total'] = $yeni_fiyat; WC()->cart->cart_contents[$key]['data']->set_price($yeni_fiyat / $sepet_urun['quantity']); } } } // Sepet güncellendiğinde fonksiyonu çağır add_action('woocommerce_cart_calculate_fees', 'otomatik_indirim_uygula'); - 02-01-2024, 22:49:10codars adlı üyeden alıntı: mesajı görüntüle
Hocam şimdi kodları kendi demo sitemde denedim bende çalışıyor kontrol edebilirmisiniz ?
2 Farklı indirim olayı var.
1 - Bu kod ile sepete eklenen ürünler üzerinden ürün fiyatlarına %5 üzerinden indirim yapıyor.
Kod 'u burada;

2 Yöntem - Bu ise Sepete eklenen ürünlerin toplamı 4000TL geçer ise %5 indirim uyguluyor isteğinize en yakın bu sanırım.
Kod burada


