• 28-11-2024, 17:55:31
    #1
    Herkese merhaba. Elimde ürünlerin yer aldığı Excel dosyası mevcut. Sütunlar arasında minimum sipariş adet kısmı söz konusu. Her ürünün 40 adet varyasyonu mevcut. Her varyasyonun da kendine özel minimum adeti mevcut. Bu veriyi WP All Import ile içe aktarırken belirtmek istiyorum ki minimum sipariş adet sayısından aşağı sipariş verilemesin. Bunun için fonksiyon dosyasına bazı kodlar yazıp ekledim fakat tam aktif çalışmadı. Name oluşturup custom field olarak ekliyorum ve karşılığı olan değeri yine ekliyorum. İçe aktarmada sorun yok fakat ya kodda hata var ana ürünlere yansımıyor emin olamadım. Bu konuyu nasıl çözümleyebilirim? Fikir verebilirseniz çok sevinirim. Bir çok hazırda eklenti var fakat WP All Import ile uyumlu çalışmıyor.

    Mevcut Fonksiyon dosyasında bulunan kod;
    Alıntı
    // Minimum sipariş miktarını zorunlu kıl
    add_action('woocommerce_before_add_to_cart_quantity', 'set_minimum_order_quantity_field');
    function set_minimum_order_quantity_field() {
        global $product;
    
        // Ürünün minimum sipariş miktarını al
        $min_qty = get_post_meta($product->get_id(), '_min_order_quantity', true);
    
        // Minimum sipariş miktarı varsa, JavaScript'e aktar
        if (!empty($min_qty)) {
            echo "<script>
                jQuery(document).ready(function($) {
                    let qtyInput = $('input.qty');
                    if (qtyInput.length) {
                        qtyInput.attr('min', $min_qty);
                        if (qtyInput.val() < $min_qty) {
                            qtyInput.val($min_qty);
                        }
                    }
                });
            </script>";
        }
    }
    
    // Minimum sipariş miktarına uymayan değerlerin eklenmesini engelle
    add_filter('woocommerce_add_to_cart_validation', 'validate_minimum_order_quantity', 10, 2);
    function validate_minimum_order_quantity($passed, $product_id) {
        $min_qty = get_post_meta($product_id, '_min_order_quantity', true);
    
        if (!empty($min_qty) && isset($_REQUEST['quantity']) && $_REQUEST['quantity'] < $min_qty) {
            wc_add_notice(sprintf(__('Bu ürün için minimum sipariş miktarı %s adettir.', 'woocommerce'), $min_qty), 'error');
            return false;
        }
    
        return $passed;
    }
    
    // Sepette minimum miktarı zorunlu kıl
    add_filter('woocommerce_update_cart_validation', 'validate_cart_minimum_order_quantity', 10, 4);
    function validate_cart_minimum_order_quantity($passed, $cart_item_key, $values, $quantity) {
        $min_qty = get_post_meta($values['product_id'], '_min_order_quantity', true);
    
        if (!empty($min_qty) && $quantity < $min_qty) {
            wc_add_notice(sprintf(__('Bu ürün için minimum sipariş miktarı %s adettir.', 'woocommerce'), $min_qty), 'error');
            return false;
        }
    
        return $passed;
    }
  • 28-11-2024, 18:45:39
    #2
    Bunun için ayrı bir eklenti geliştirebiliriz mevcutta bildiğim kadarı ile yok
  • 28-11-2024, 20:30:14
    #3
    Post meta değeri nasıl kayıt oluyor integer olarak kayıt olmuyor sanırım önce bir tanesini dump edip kontrol edin
  • 28-11-2024, 20:41:52
    #4
    dnaz adlı üyeden alıntı: mesajı görüntüle
    Post meta değeri nasıl kayıt oluyor integer olarak kayıt olmuyor sanırım önce bir tanesini dump edip kontrol edin
    Fikir için teşekkür ederim. Fonksiyon dosyasından ziyade eklenti olarak oluşturdum o şekilde daha stabil çalışmaya başladı şimdi.