كيفية إضافة رسوم أو خصومات لطرق الدفع المختلفة في WooCommerce
نشرت: 2019-03-26نرى على مواقع التجارة الإلكترونية أنه مع كل طريقة دفع تختارها أثناء تسجيل المغادرة ، غالبًا ما تكون هناك رسوم خدمة أو حتى خصم مرتبط. وتجدر الإشارة أيضًا إلى أن رسوم الخدمة الخاصة بالدفع عند الاستلام أعلى من رسوم طرق الدفع البديلة. هذا لزيادة فرص الدفع المسبق. تساعد المدفوعات المسبقة ليس فقط في تقليل مخاطر عدم الحصول على أموال من قبل العميل ، ولكن أيضًا لضمان التدفق النقدي في العمل. في حالة عدم وجود رسوم خدمة مرتبطة بطرق الدفع ، فقد يتم تقديم خصومات عندما تختار الدفع بطرق أخرى غير الدفع عند الاستلام.
قد ترغب أيضًا في إضافة خصومات مقابل طرق دفع معينة اعتمادًا على المخططات أو العروض الترويجية التي قد ترغب في تشغيلها. الخصومات جذابة بشكل عام للعملاء وتساعد في زيادة المبيعات. في هذا المنشور ، سنوضح لك الطرق المختلفة التي يمكنك من خلالها إضافة رسوم أو خصومات لطرق الدفع المختلفة في WooCommerce وبالتالي جني فوائد من ذلك.
إضافة خصومات بالنسبة المئوية لطرق الدفع المختلفة عبر مقتطفات الرمز
يمكنك تحقيق ذلك عن طريق إضافة مقتطفات التعليمات البرمجية في ملف function.php لموضوع الطفل الخاص بك.
يضيف الكود أدناه خصمًا إلى المبلغ الإجمالي عند اختيار PayPal كطريقة دفع على صفحة الخروج من WooCommerce. من خلال تعيين قيمة إلى نسبة دولار أمريكي ، يمكنك تحديد النسبة المئوية للخصم الذي ترغب في تطبيقه على طريقة الدفع المطلوبة. طرق الدفع الافتراضية في WooCommerce هي التحويل المصرفي المباشر (bacs) ، والشيكات (الشيكات) ، والدفع نقدًا عند التسليم (cod) و PayPal (paypal) ، مع ذكر معرفاتهم في الأقواس.
add_action ('woocommerce_cart_calculate_fees'، 'ts_add_discount'، 20، 1) ؛ الدالة ts_add_discount ($ cart_object) { إذا (is_admin () &&! المعرفة ('DOING_AJAX')) يعود ؛ // اذكر طريقة الدفع ، مثل cod أو bacs أو check أو paypal طريقة_الدفع $ = "paypal" ؛ // النسبة المراد تطبيقها دولار في المئة = 2 ؛ // 2٪ cart_total = $ cart_object-> subtotal_ex_tax ؛ $ selected_payment_method = WC () -> session-> get ('selected_payment_method') ؛ // احصل على طريقة الدفع المحددة إذا ($ payment_method == $ selected_payment_method) { $ label_text = __ ("خصم PayPal") ؛ // حساب النسبة المئوية الخصم بالدولار = number_format (($ cart_total / 100) * $ بالمائة ، 2) ؛ // إضافة الخصم cart_object $-> add_fee ($ label_text، - $ discount، false)؛ } } add_action ('woocommerce_review_order_before_payment'، 'ts_refresh_payment_method') ؛ دالة ts_refresh_payment_method () { // مسج ؟> <script type = "text / javascript"> (وظيفة ($) { $ ('form.checkout') .on ('change'، 'input [name ^ = "payment_method"]' ، الوظيفة () { $ ('body'). trigger ('update_checkout')؛ }) ؛ }) (jQuery) ؛ </script> <؟ php }
ستحتاج إلى وظيفتين هنا - إحداهما للقيام بمهمة إضافة الخصومات أو الرسوم المناسبة ، والأخرى للاحتفاظ بعلامة تبويب حول التغييرات في اختيار طريقة الدفع من قبل المستخدم ، والتي نستخدم فيها جافا سكريبت. يتم استخدام خطاف woocommerce_cart_calculate_fees و woocommerce_review_order_before_payment لإضافة هاتين الوظيفتين على التوالي.
القيم التي تمتلكها طرق الدفع للتحويل المصرفي المباشر والشيكات والدفع النقدي عند التسليم و PayPal هي bacs والشيكات و cod و paypal على التوالي. الوظيفة add_fee () هي طريقة مضمنة لفئة WC_Cart في WooCommerce.
سينتج عن ذلك خصم مبلغ الخصم من الإجمالي الفرعي ، وبالتالي سيتم عرض الإجمالي:
مع القليل من التعديل ، يمكنك ذكر الخصومات لطرق دفع متعددة في مقتطف الشفرة نفسه:
add_action ('woocommerce_cart_calculate_fees'، 'ts_add_discount'، 20، 1) ؛ الدالة ts_add_discount ($ cart_object) { إذا (is_admin () &&! المعرفة ('DOING_AJAX')) يعود ؛ $ label_text = __ ("") ؛ دولار في المئة = 0 ؛ // اذكر طريقة الدفع ، مثل cod أو bacs أو check أو paypal cart_total = $ cart_object-> subtotal_ex_tax ؛ $ selected_payment_method = WC () -> session-> get ('selected_payment_method') ؛ // احصل على طريقة الدفع المحددة إذا ($ selected_payment_method == "paypal") { $ label_text = __ ("خصم PayPal") ؛ // النسبة المراد تطبيقها دولار في المئة = 2 ؛ // 2٪ } وإلا إذا ($ selected_payment_method == "bacs") { $ label_text = __ ("خصم التحويل المصرفي المباشر")؛ // النسبة المراد تطبيقها دولار في المئة = 3 ؛ // 3٪ } وإلا إذا ($ selected_payment_method == "check") { $ label_text = __ ("شيك خصم الدفع")؛ // النسبة المراد تطبيقها دولار في المئة = 2 ؛ // 2٪ } آخر { $ label_text = __ ("خصم الدفع عند الاستلام") ؛ // النسبة المراد تطبيقها دولار في المئة = 0 ؛ // 0٪ } // حساب النسبة المئوية الخصم بالدولار = number_format (($ cart_total / 100) * $ بالمائة ، 2) ؛ // إضافة الخصم cart_object $-> add_fee ($ label_text، - $ discount، false)؛ } add_action ('woocommerce_review_order_before_payment'، 'ts_refresh_payment_method') ؛ دالة ts_refresh_payment_method () { // مسج ؟> <script type = "text / javascript"> (وظيفة ($) { $ ('form.checkout') .on ('change'، 'input [name ^ = "payment_method"]' ، الوظيفة () { $ ('body'). trigger ('update_checkout')؛ }) ؛ }) (jQuery) ؛ </script> <؟ php }
إضافة مبالغ خصم ثابتة لطرق الدفع المختلفة عبر مقتطفات الرمز
لنفترض أنك ترغب في ذكر مبلغ بدلاً من نسبة مئوية. يمكنك القيام بذلك باستخدام نفس المقتطف مرة أخرى ، عن طريق حذف الخطوة التي تقوم فيها بحساب النسبة المئوية وقبول مبلغ الخصم كمدخل بناءً على كل طريقة دفع:
add_action ('woocommerce_cart_calculate_fees'، 'ts_add_discount'، 20، 1) ؛ الدالة ts_add_discount ($ cart_object) { إذا (is_admin () &&! المعرفة ('DOING_AJAX')) يعود ؛ $ label_text = __ ("") ؛ $ discount_amount = 0 ؛ // اذكر طريقة الدفع ، مثل cod أو bacs أو check أو paypal cart_total = $ cart_object-> subtotal_ex_tax ؛ $ selected_payment_method = WC () -> session-> get ('selected_payment_method') ؛ // احصل على طريقة الدفع المحددة إذا ($ selected_payment_method == "paypal") { $ label_text = __ ("خصم PayPal") ؛ // مبلغ الخصم المطلوب تطبيقه discount_amount دولار = 200 ؛ } وإلا إذا ($ selected_payment_method == "bacs") { $ label_text = __ ("خصم التحويل المصرفي المباشر")؛ // مبلغ الخصم المطلوب تطبيقه discount_amount دولار = 150 ؛ } وإلا إذا ($ selected_payment_method == "check") { $ label_text = __ ("شيك خصم الدفع")؛ // مبلغ الخصم المطلوب تطبيقه discount_amount دولار = 100 ؛ } آخر { $ label_text = __ ("خصم الدفع عند الاستلام") ؛ // مبلغ الخصم المطلوب تطبيقه $ discount_amount = 0 ؛ } // إضافة الخصم cart_object $-> add_fee ($ label_text، - $ discount_amount، false)؛ } add_action ('woocommerce_review_order_before_payment'، 'ts_refresh_payment_method') ؛ دالة ts_refresh_payment_method () { // مسج ؟> <script type = "text / javascript"> (وظيفة ($) { $ ('form.checkout') .on ('change'، 'input [name ^ = "payment_method"]' ، الوظيفة () { $ ('body'). trigger ('update_checkout')؛ }) ؛ }) (jQuery) ؛ </script> <؟ php }

لإضافة رسوم خدمة ، عليك ببساطة تغيير علامة إحدى الوسيطات في وظيفة add_fee من "-" إلى "+" أو عدم وجود علامة على الإطلاق مما يدل على إيجابية.
add_action ('woocommerce_cart_calculate_fees'، 'ts_add_discount'، 20، 1) ؛ الدالة ts_add_discount ($ cart_object) { إذا (is_admin () &&! المعرفة ('DOING_AJAX')) يعود ؛ $ label_text = __ ("") ؛ service_charge دولار = 0 ؛ // اذكر طريقة الدفع ، مثل cod أو bacs أو check أو paypal cart_total = $ cart_object-> subtotal_ex_tax ؛ $ selected_payment_method = WC () -> session-> get ('selected_payment_method') ؛ // احصل على طريقة الدفع المحددة إذا ($ selected_payment_method == "paypal") { $ label_text = __ ("رسوم خدمة PayPal") ؛ // رسوم الخدمة المراد تطبيقها service_charge دولار = 200 ؛ } وإلا إذا ($ selected_payment_method == "bacs") { $ label_text = __ ("رسوم خدمة التحويل المصرفي المباشر") ؛ // رسوم الخدمة المراد تطبيقها service_charge دولار = 100 ؛ } وإلا إذا ($ selected_payment_method == "check") { $ label_text = __ ("رسوم خدمة الدفع بالشيكات")؛ // رسوم الخدمة المراد تطبيقها service_charge دولار = 150 ؛ } آخر { $ label_text = __ ("رسوم خدمة الدفع عند الاستلام") ؛ // رسوم الخدمة المراد تطبيقها service_charge دولار = 250 ؛ } // إضافة رسوم الخدمة cart_object $-> add_fee ($ label_text، $ service_charge، false)؛ } add_action ('woocommerce_review_order_before_payment'، 'ts_refresh_payment_method') ؛ دالة ts_refresh_payment_method () { // مسج ؟> <script type = "text / javascript"> (وظيفة ($) { $ ('form.checkout') .on ('change'، 'input [name ^ = "payment_method"]' ، الوظيفة () { $ ('body'). trigger ('update_checkout')؛ }) ؛ }) (jQuery) ؛ </script> <؟ php }
بهذه الطريقة ، سيتم تطبيق رسوم الخدمة وفقًا لطريقة الدفع المحددة:
إضافة خصومات لطرق الدفع المختلفة للمستخدمين الذين قاموا بتسجيل الدخول فقط (عبر مقتطفات الرمز)
إذا كنت ترغب في تقديم هذه الخصومات فقط للمستخدمين الذين قاموا بتسجيل الدخول (كما هو مطلوب من خلال تعليق على هذا المنشور) ، فأنت بحاجة ببساطة إلى إضافة شرط يتحقق مما إذا كان المستخدم قد قام بتسجيل الدخول أم لا. يمكن القيام بذلك عن طريق الوظيفة is_user_logged_in () . يوضح مقتطف الشفرة أدناه كيف يمكنك إضافة خصومات بنسبة مئوية لطريقة دفع معينة للمستخدمين الذين قاموا بتسجيل الدخول فقط.
add_action ('woocommerce_cart_calculate_fees'، 'ts_add_discount'، 20، 1) ؛ الدالة ts_add_discount ($ cart_object) { إذا (is_admin () &&! المعرفة ('DOING_AJAX')) يعود ؛ إذا (is_user_logged_in ()) { // اذكر طريقة الدفع ، مثل cod أو bacs أو check أو paypal طريقة_الدفع $ = "paypal" ؛ // النسبة المراد تطبيقها دولار في المئة = 2 ؛ // 2٪ cart_total = $ cart_object-> subtotal_ex_tax ؛ $ selected_payment_method = WC () -> session-> get ('selected_payment_method') ؛ // احصل على طريقة الدفع المحددة إذا ($ payment_method == $ selected_payment_method) { $ label_text = __ ("خصم PayPal") ؛ // حساب النسبة المئوية الخصم بالدولار = number_format (($ cart_total / 100) * $ بالمائة ، 2) ؛ // إضافة الخصم cart_object $-> add_fee ($ label_text، - $ discount، false)؛ } } } add_action ('woocommerce_review_order_before_payment'، 'ts_refresh_payment_method') ؛ دالة ts_refresh_payment_method () { // مسج ؟> <script type = "text / javascript"> (وظيفة ($) { $ ('form.checkout') .on ('change'، 'input [name ^ = "payment_method"]' ، الوظيفة () { $ ('body'). trigger ('update_checkout')؛ }) ؛ }) (jQuery) ؛ </script> <؟ php }
يمكنك استخدام أي من مقتطفات التعليمات البرمجية في هذا المنشور بناءً على متطلباتك. تحتاج ببساطة إلى إضافة شرط - إذا (is_user_logged_in ()) داخل مقتطف الشفرة هذا إذا كنت تريد تقييد هذا على المستخدمين الذين قاموا بتسجيل الدخول بمفردهم.
إضافة رسوم أو خصومات لطرق الدفع المختلفة عبر المكونات الإضافية
إذا كنت لا ترغب في إضافة مقتطفات التعليمات البرمجية ، فهناك طريقة سهلة لتحقيق نفس الشيء - المكونات الإضافية! هناك مكونات إضافية مجانية ومدفوعة تقدم ميزات مختلفة.
الرسوم المستندة إلى بوابة الدفع والخصومات لـ WooCommerce
هذا مكون إضافي مجاني من جانبنا يتيح لك إضافة رسوم وخصومات وضرائب وما إلى ذلك وحتى تعيين الحد الأدنى والحد الأقصى لمبالغ سلة التسوق كمعايير لذلك. يمكنك حتى تقريب الرسوم بعد تطبيق الخصم. ويمكنك القيام بكل هذا بواجهة سهلة الاستخدام يمكن الوصول إليها عبر لوحة القيادة:- الخصومات لكل طريقة دفع لـ WooCommerce (مجانًا)
هذا مكون إضافي مجاني من WPCodelibrary يوفر واجهة بسيطة داخل لوحة معلومات WordPress الخاصة بك لتعيين خصومات لطرق الدفع الافتراضية التي توفرها WooCommerce. ومع ذلك ، فإنه لا يحتوي على ميزة لإضافة رسوم الخدمة أو الرسوم.
- الرسوم المستندة إلى بوابة الدفع والخصومات لـ WooCommerce (39 دولارًا)
يأتي هذا المكون الإضافي المتميز من جانبنا مع مجموعة كاملة من الميزات حيث يمكنك إضافة رسوم بالإضافة إلى الخصومات لطرق الدفع المختلفة بناءً على الدولة والولاية وفئة المنتج وما إلى ذلك ، بالإضافة إلى ذلك ، يمكنك أيضًا تطبيق الضرائب على الرسوم (باستثناء رسوم الشحن ) باستخدام البرنامج المساعد. الواجهة بسيطة وسهلة الاستخدام ، ويمكنك أيضًا تطبيق خصومات ورسوم مختلفة على المنتجات الفردية.