كيفية تحديث سعر المنتج برمجيًا في WooCommerce

نشرت: 2020-10-10

هل تريد معرفة كيفية تحديث سعر المنتج برمجيًا في WooCommerce ؟ في هذا الدليل ، سنوضح لك كيفية تغيير الأسعار في WooCommerce دون استخدام أي مكونات إضافية أو تثبيت أي أداة إضافية.

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

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

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

كيفية تحديث سعر المنتج برمجيًا في WooCommerce

في هذا القسم ، ستتعرف على كيفية تحديث سعر المنتج برمجيًا في WooCommerce . سنلقي نظرة على أمثلة مختلفة لنقدم لك بعض الأفكار حول ما يمكنك القيام به في متجرك.

  1. تحديث سعر المنتج عند تحديد خانة اختيار
    1. أضف حقل إدخال خانة الاختيار إلى صفحة المنتجات
    2. قم بتحديث السعر عندما يضيف المستخدم منتجًا إلى سلة التسوق
    3. أعد حساب السعر الإجمالي للعربة
  2. قم بتحرير سعر المنتج بناءً على أدوار المستخدم
  3. قم بتحديث سعر المنتج بناءً على تصنيف المنتج

ضع في اعتبارك أننا سنستخدم العديد من أدوات WooCommerce ، لذا من الجيد مراجعة هذا الدليل إذا لم تكن على دراية بها.

قبل أن نبدأ ...

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

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

1) قم بتحديث سعر المنتج عند تحديد خانة اختيار

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

1.1 أضف حقل إدخال خانة الاختيار إلى صفحة المنتجات

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

 add_action ('woocommerce_after_add_to_cart_button'، 'add_check_box_to_product_page'، 30) ؛
وظيفة add_check_box_to_product_page () {؟>     
       <div>           
<label for = "extra_pack"> <؟ php _e ('حزمة إضافية'، 'quadlayers')؛ ؟>
<input type = "checkbox" name = "extra_pack" value = "extra_pack"> 
</label>
                    
</div>
     <؟ php
}

يسمح لنا ربط woocommerce_after_add_to_cart_button بطباعة مربع الاختيار مباشرة بعد الزر كما هو موضح في الصورة أعلاه.

1.2 تحديث السعر عندما يضيف المستخدم منتجًا إلى سلة التسوق

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

 add_filter ('woocommerce_add_cart_item_data'، 'add_cart_item_data'، 10، 3) ؛
 
الوظيفة add_cart_item_data ($ cart_item_data ، $ product_id ، $ variation_id) {
     // الحصول على معرف المنتج والسعر
    $ product = wc_get_product ($ product_id) ؛
    السعر بالدولار = المنتج دولار-> get_price () ؛
    // خانة اختيار حزمة إضافية
    إذا (! فارغ ($ _POST ['extra_pack'])) {
       
        cart_item_data بالدولار الأمريكي ['new_price'] = السعر بالدولار + 15 ؛
    }
إرجاع $ cart_item_data ؛
}

woocommerce_add_cart_item_data هو رابط WooCommerce الذي سيسمح لنا بتعديل سعر المنتج الحالي. بالإضافة إلى ذلك ، يتحقق الشرطي if() مما إذا كان قد تم تحديد مربع الاختيار أم لا ، وإذا كان كذلك ، يقوم بتحديث السعر في السطر التالي. الآن ، دعنا نقسم الكود لفهم ما يفعله كل جزء بشكل أفضل.

  • extra_pack هو اسم مربع الاختيار الذي أنشأناه في الخطوة السابقة
  • $price هو سعر المنتج الحالي. يمكننا تعديله كما نريد مع بعض الشروط
  • $cart_item_data['new_price'] = $price + 15; هي كيفية زيادة السعر بمقدار 15 دولارًا عندما يكون شرط if() صحيحًا ، وهذا عندما يحدد المستخدم مربع اختيار التغليف الإضافي. من خلال تعديل الرمز ، يمكنك اختيار زيادة السعر أو خفضه بأي مبلغ تريده.

1.3 إعادة حساب السعر الإجمالي للعربة

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

 add_action ('woocommerce_before_calculate_totals'، 'before_calculate_totals'، 10، 1) ؛
 
الدالة before_calculate_totals ($ cart_obj) {
إذا تم تعريف (is_admin () &&! ('DOING_AJAX')) {
إرجاع؛
}
// التكرار خلال كل عنصر في سلة التسوق
foreach ($ cart_obj-> get_cart () كـ $ key => $ value) {
إذا (isset ($ value ['new_price'])) {
السعر بالدولار = القيمة بالدولار ['new_price'] ؛
القيمة $ ['data'] -> set_price ((السعر بالدولار)) ؛
}
}
}

تضمن هذه الوظيفة أننا نقوم بتحديث السعر فقط عندما يتطابق المنتج مع منطقنا الشرطي (أن يحدد المستخدم مربع اختيار التغليف الإضافي). بهذه الطريقة ، نمنع جميع الأخطاء المحتملة عند حساب السعر الإجمالي لسلة التسوق. تحديث سعر المنتج برمجيًا في WooCommerce - رسوم إضافية

يرتفع سعر المنتج بمقدار 15 دولارًا

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

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

2. قم بتحرير سعر المنتج بناءً على أدوار المستخدم

وبالمثل ، يمكننا تحديث سعر منتج WooCommerce برمجيًا بناءً على أدوار المستخدم . على سبيل المثال ، يمكنك منح المستخدمين المشتركين أو المسجلين خصمًا حصريًا. للقيام بذلك ، انسخ والصق البرنامج النصي التالي:

 الوظيفة add_cart_item_data ($ cart_item_data ، $ product_id ، $ variation_id) {
    // الحصول على معرف المنتج والسعر
   $ product = wc_get_product ($ product_id) ؛
   السعر بالدولار = المنتج دولار-> get_price () ؛
   إذا كان (// تم تسجيل الدخول && هو دور العميل
       is_user_logged_in () == true && wc_current_user_has_role ('customer')) {
       
        cart_item_data $ ['new_price'] = السعر بالدولار * 0.8 ؛
   }
إرجاع $ cart_item_data ؛
}
add_filter ('woocommerce_add_cart_item_data'، 'add_cart_item_data'، 10، 3) ؛

كما ترى ، فإن الاختلاف الوحيد بين هذا البرنامج النصي والسابق في النقطة 1.2 هو عامل التشغيل المنطقي if() . هنا ، نتحقق مما إذا كان المستخدم قد قام بتسجيل الدخول أم لا وما إذا كان لديه دور عميل ، والذي نقوم بتعيينه للمستخدمين المسجلين الذين قاموا بالشراء من متجرنا من قبل.

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

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

3. قم بتحديث سعر المنتج بناءً على تصنيف المنتج

أخيرًا ، في WooCommerce ، يمكننا أيضًا تحديث سعر المنتج بشكل ديناميكي بناءً على تصنيفات المنتج . للقيام بذلك ، دعنا نلقي نظرة على النص التالي.

 add_filter ('woocommerce_add_cart_item_data'، 'add_cart_item_data'، 10، 3) ؛
 
الوظيفة add_cart_item_data ($ cart_item_data ، $ product_id ، $ variation_id) {
     // الحصول على معرف المنتج والسعر
    $ product = wc_get_product ($ product_id) ؛
    السعر بالدولار = المنتج دولار-> get_price () ؛
    شروط $ = get_the_terms ($ product_id، 'product_cat') ؛
    // تطابق الفئة! تطبيق الخصم
    إذا (المصطلحات $ [0] -> name == "الملصقات") {                    
        cart_item_data بالدولار الأمريكي ['new_price'] = السعر بالدولار الأمريكي + 20 ؛
     }   
إرجاع $ cart_item_data ؛
 
}

في هذا المثال ، نحصل على فئة المنتج الذي تمت إضافته إلى سلة التسوق باستخدام get_the_terms() WordPress المضمنة. في السطر التالي ، نطبق الشرط الخاص بنا لاسترداد فئة المنتج باستخدام $terms[0]->name . بهذه الطريقة ، إذا كان المنتج ينتمي إلى فئة الملصقات ، فإننا نزيد السعر بمقدار 20 دولارًا.

هذا نموذج نصي يمكنك استخدامه كأساس وتعديله لتغيير كل من التصنيف والمبلغ الذي تريد إضافته أو خصمه من السعر.

أخيرًا ، تذكر أنك بحاجة إلى استخدام وظيفة 'before_calculate_totals' والخطاف المقابل لها كما فعلنا في الخطوة 1.3.


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

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

ملاحظات ختامية

  • لن تعمل نماذج البرامج النصية هذه في النقاط 1 و 2 و 3 معًا. ستحتاج إلى تحسين منطقك في منطق واحد إذا كنت تريد تطبيق وظائف متعددة في نفس الوقت
  • قد تحتاج إلى تضمين وظائف تحقق إضافية لمنطق شرطي أكثر تعقيدًا
  • قم دائمًا بتطبيق وظيفة إعادة الحساب - كما هو موضح في النقطة 1.3 - عند العمل مع كائن عربة WooCommerce
  • هذه نماذج من النصوص وهي مخصصة للأغراض التعليمية فقط. يرجى تعديلها قبل نقلها إلى الإنتاج

استنتاج

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

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

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

أخيرًا ، إذا كنت ترغب في تحسين عملية السداد الخاصة بك ، فقم بإلقاء نظرة على دليلنا لتحسين عملية الدفع.