كيفية تقديم خصومات على أساس الكمية في WooCommerce

نشرت: 2020-01-27

بشكل عام ، بصفتك مالك متجر ، قد ترغب أحيانًا في تقديم خصومات إذا اشترى العملاء أكثر من كمية واحدة من منتج معين. قد يكون هذا إما لزيادة المبيعات أو إنهاء المخزونات الزائدة. في هذا المنشور ، ستتعلم كيفية تقديم خصومات بناءً على الكمية في WooCommerce باستخدام مقتطفات التعليمات البرمجية والمكونات الإضافية.

كيفية تقديم خصومات على أساس الكمية في WooCommerce باستخدام Code Snippets

دعنا نستكشف كيفية استخدام مقتطف الشفرة للقيام بذلك. باستخدام مقتطف الشفرة هذا ، نقدم للعملاء خصمًا بنسبة 5٪ إذا قاموا بشراء أكثر من كميتين من نفس المنتج.

للقيام بذلك ، سوف تحتاج إلى إضافة الكود أدناه إلى ملف function.php لموضوع طفلك:

 add_filter ('woocommerce_add_cart_item_data'، 'ts_add_default_price_as_custom'، 20، 3) ؛

function ts_add_default_price_as_custom ($ cart_item_data، $ product_id، $ variation_id) {

    $ product_id = variation_id دولار أمريكي> 0؟ variation_id $: $ product_id؛

    ## ----- اضبط الخصم هنا ----- ##
    نسبة الخصم_دولار أمريكي = 5 ؛ // خصم (5٪)

    // كائن WC_Product
    $ product = wc_get_product ($ product_id) ؛

    السعر بالدولار = (تعويم) $ product-> get_price ()؛

    // تعيين السعر الأساسي الافتراضي للمنتج كبيانات عنصر مخصص لسلة التسوق
    $ cart_item_data ['base_price'] = السعر بالدولار ؛

    // تعيين سعر المنتج المخفض كبيانات عنصر مخصصة لسلة التسوق
    $ cart_item_data ['new_price'] = السعر بالدولار * (100 - $ discount_percentage) / 100 ؛

    // تعيين النسبة المئوية كبيانات عنصر سلة التسوق المخصصة
    cart_item_data $ ['النسبة المئوية'] = $ discount_percentage؛

    إرجاع $ cart_item_data ؛
}

// عرض السعر الأصلي للمنتج
add_filter ('woocommerce_cart_item_price'، 'ts_display_cart_items_default_price'، 20، 3) ؛

function ts_display_cart_items_default_price ($ product_price، $ cart_item، $ cart_item_key) {
    إذا (isset ($ cart_item ['base_price'])) {
        $ product = $ cart_item ['البيانات'] ؛
        $ product_price = wc_price (wc_get_price_to_display ($ product، array ('price' => $ cart_item ['base_price']))) ؛
    }
    إرجاع سعر_المنتج $؛
}

// عرض اسم المنتج مع نسبة الخصم
add_filter ('woocommerce_cart_item_name'، 'ts_add_percentage_to_item_name'، 20، 3) ؛
الوظيفة ts_add_percentage_to_item_name ($ product_name ، $ cart_item ، $ cart_item_key) {
    if (isset ($ cart_item ['percentage']) && isset ($ cart_item ['base_price'])) {
        إذا ($ cart_item ['data'] -> get_price ()! = $ cart_item ['base_price'])
            $ product_name. = '<em> ('. $ cart_item ['النسبة المئوية']. '٪ مخفضة) </ em>'؛
    }
    إرجاع $ product_name؛
}

add_action ('woocommerce_before_calculate_totals'، 'ts_custom_discounted_cart_item_price'، 20، 1) ؛
الوظيفة ts_custom_discounted_cart_item_price (عربة التسوق بالدولار) {
    إذا (is_admin () &&! المعرفة ('DOING_AJAX'))
        إرجاع؛

    إذا (فعل_عمل ('woocommerce_before_calculate_totals')> = 2)
        إرجاع؛

    ## ----- حدد الكمية هنا ----- ##
    $ Target_qty = 2 ؛ // الكمية المستهدفة

    // حلقة خلال عناصر عربة التسوق
    foreach ($ cart-> get_cart () كـ $ cart_item) {

        // لكمية العنصر 2 أو أكثر
        if ($ cart_item ['quantity']> = $ target_qty && isset ($ cart_item ['new_price'])) {

            // تعيين السعر المخفض لعنصر سلة التسوق
            $ cart_item ['data'] -> set_price ($ cart_item ['new_price']) ؛
        }
    }
}

سيضيف الرمز أعلاه خصمًا بنسبة 5٪ إذا كانت كمية المنتج أعلى من 2. يمكنك تغيير هذا ليناسب متطلباتك عن طريق تغيير متغير $ discount_percentage لتعيين الخصم المطلوب ، و $ target_qty لتعيين الكمية التي فوقها كنت ترغب في تطبيق الخصم.

offer discounts based on quantity in WooCommerce - Updated Cart contents

ستتمكن الآن من رؤية سعر مخفض إذا أضفت كميتين أو أكثر من نفس المنتج في سلة التسوق الخاصة بك.

لقد استخدمنا أربعة خطافات رئيسية في الكود أعلاه:

woocommerce_add_cart_item_data: يتم استخدام خطاف المرشح هذا لتغيير المحتويات / البيانات الوصفية لسلة التسوق.
woocommerce_cart_item_price: يتم استخدام خطاف المرشح هذا لتغيير طريقة عرض الأسعار في سلة التسوق.
woocommerce_cart_item_name: يمكن استخدام خطاف المرشح هذا لتغيير اسم المنتج في سلة التسوق. في مثالنا ، نستخدمه لإلحاق نسبة الخصم باسم المنتج.
woocommerce_before_calculate_totals: يتم استخدام خطاف الإجراء هذا لتجاوز سعر المنتج في سلة التسوق.

كيفية تقديم خصومات على أساس الكمية فقط للأصناف غير المعروضة للبيع:

إذا كنت تريد قصر هذا على المنتجات غير المعروضة للبيع فقط ، فعليك ببساطة تحرير مقتطف الشفرة أعلاه لإضافة شرط داخل الوظيفة التي تمت إضافتها إلى الخطاف woocommerce_add_cart_item_data:

 add_filter ('woocommerce_add_cart_item_data'، 'ts_add_default_price_as_custom'، 20، 3) ؛
function ts_add_default_price_as_custom ($ cart_item_data، $ product_id، $ variation_id) {
    $ product_id = variation_id دولار أمريكي> 0؟ variation_id $: $ product_id؛

    ## ----- اضبط الخصم هنا ----- ##
    نسبة الخصم_دولار أمريكي = 5 ؛ // خصم (5٪)

    // كائن WC_Product
    $ product = wc_get_product ($ product_id) ؛

    // أضف شرطًا هنا لتقديم خصم فقط للمنتجات غير المعروضة للبيع
    إذا (! $ product-> is_on_sale ()) {
        السعر بالدولار = (تعويم) $ product-> get_price ()؛

        // تعيين السعر الأساسي الافتراضي للمنتج كبيانات عنصر مخصص لسلة التسوق
        $ cart_item_data ['base_price'] = السعر بالدولار ؛

        // تعيين سعر المنتج المخفض كبيانات عنصر مخصصة لسلة التسوق
        $ cart_item_data ['new_price'] = السعر بالدولار * (100 - $ discount_percentage) / 100 ؛

        // تعيين النسبة المئوية كبيانات عنصر سلة التسوق المخصصة
        cart_item_data $ ['النسبة المئوية'] = $ discount_percentage؛
    }

    إرجاع $ cart_item_data ؛
}

// عرض السعر الأصلي للمنتج
add_filter ('woocommerce_cart_item_price'، 'ts_display_cart_items_default_price'، 20، 3) ؛
function ts_display_cart_items_default_price ($ product_price، $ cart_item، $ cart_item_key) {
    إذا (isset ($ cart_item ['base_price'])) {
        $ product = $ cart_item ['البيانات'] ؛
        $ product_price = wc_price (wc_get_price_to_display ($ product، array ('price' => $ cart_item ['base_price']))) ؛
    }
    إرجاع سعر_المنتج $؛
}

// عرض اسم المنتج مع نسبة الخصم
add_filter ('woocommerce_cart_item_name'، 'ts_add_percentage_to_item_name'، 20، 3) ؛
الوظيفة ts_add_percentage_to_item_name ($ product_name ، $ cart_item ، $ cart_item_key) {
    if (isset ($ cart_item ['percentage']) && isset ($ cart_item ['base_price'])) {
        إذا ($ cart_item ['data'] -> get_price ()! = $ cart_item ['base_price'])
            $ product_name. = '<em> ('. $ cart_item ['النسبة المئوية']. '٪ مخفضة) </ em>'؛
    }
    إرجاع $ product_name؛
}

add_action ('woocommerce_before_calculate_totals'، 'ts_custom_discounted_cart_item_price'، 20، 1) ؛
الوظيفة ts_custom_discounted_cart_item_price (عربة التسوق بالدولار) {
    إذا (is_admin () &&! المعرفة ('DOING_AJAX'))
        إرجاع؛

    إذا (فعل_عمل ('woocommerce_before_calculate_totals')> = 2)
        إرجاع؛

    ## ----- حدد الكمية هنا ----- ##
    $ Target_qty = 2 ؛ // الكمية المستهدفة

    // حلقة خلال عناصر عربة التسوق
    foreach ($ cart-> get_cart () كـ $ cart_item) {

        // لكمية العنصر 2 أو أكثر
        if ($ cart_item ['quantity']> = $ target_qty && isset ($ cart_item ['new_price'])) {

            // تعيين السعر المخفض لعنصر سلة التسوق
            $ cart_item ['data'] -> set_price ($ cart_item ['new_price']) ؛
        }
    }
} 

بهذه الطريقة ، يمكنك تقديم خصومات على أساس الكمية باستخدام مقتطفات التعليمات البرمجية لغير البيع أو البيع أو جميع المنتجات ، أي على مستوى المتجر من خلال تحديد الحالة المناسبة داخل الوظيفة التي تمت إضافتها إلى خطاف المرشح woocommerce_add_cart_item_data .

كيفية تقديم خصومات على أساس الكمية في WooCommerce باستخدام الإضافات

إذا لم تكن مرتاحًا لإضافة مقتطف رمز إلى ملفات موقع الويب الخاص بك ، فيمكنك استخدام المكونات الإضافية للقيام بذلك أيضًا:

  1. قواعد الخصم لـ WooCommerce : هذا مكون إضافي مجاني يتيح لك إضافة خصومات بنسبة مئوية ليس فقط بناءً على كميات المنتجات ، ولكن أيضًا إذا تجاوز عملاؤك حدًا معينًا للسعر. يمكنك أيضًا إضافة خصومات بنسبة مئوية على عدد معين من العناصر (ليس بالضرورة من نفس المنتج). يسمح لك إصدار PRO من هذا المكون الإضافي بإضافة خصومات على مستوى الفئة ، وصفقات BOGO (اشترِ واحدة واحصل على الأخرى مجانًا) ، وخصم بسعر ثابت بدلاً من خصم بنسبة مئوية ، والمزيد.
  2. الخصومات المشروطة لـ WooCommerce: هذا مكون إضافي آخر يقدم جميع الميزات المهمة تقريبًا في نسخته المجانية - يمكنك إضافة خصومات بناءً على الكمية وعدد عناصر سلة التسوق لفئات معينة وعلى منتجات محددة وعلى ميزات متغيرة (قميص أزرق ، مقاس متوسط إلخ) ، لأدوار معينة في المتجر أو حتى لعملاء محددين. يحتوي إصدار PRO الخاص به على بعض الميزات الإضافية ، من بينها إضافة منتج مجاني إلى عربة التسوق عند شراء منتج معين.
  3. القسائم الذكية: بصرف النظر عن بطاقات الهدايا وأرصدة المتجر وكوبونات URL والقيود المتقدمة ، يمكنك أيضًا تقييد القسيمة بناءً على عدد المنتجات المحددة في سلة التسوق (مثال - 10 قمصان) وكذلك إجمالي كمية المنتج للعديد من المنتجات في عربة (مثال - 5 قمصان + 2 بنطلون + 3 أحزمة).

بهذه الطريقة ، يمكنك استخدام مقتطفات التعليمات البرمجية أو المكونات الإضافية لتقديم خصومات لعملائك بناءً على كميات المنتجات.