كيفية تعطيل طريقة الدفع لفئة معينة

نشرت: 2020-09-01

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

تعطيل طريقة الدفع لفئة معينة

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

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

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

البرنامج المساعد للدفع المشروط WooCommerce

ومع ذلك ، في هذا البرنامج التعليمي الموجز ، سأوضح لك كيفية تعطيل طريقة دفع لفئة معينة باستخدام مقتطفات أكواد PHP.

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

فيما يلي الخطوات البسيطة التي يجب عليك اتباعها:

  1. قم بتسجيل الدخول إلى موقع WordPress الخاص بك والوصول إلى لوحة التحكم بصفتك المستخدم المسؤول.
  2. من قائمة لوحة التحكم ، انقر فوق قائمة المظهر> قائمة محرر السمات . عند فتح صفحة Theme Editor ، ابحث عن ملف وظائف السمة حيث سنضيف الوظيفة التي ستعمل على تعطيل طريقة الدفع لفئة معينة.
  3. أضف الكود التالي إلى ملف php :
 / **
 *snippet تعطيل طريقة الدفع لفئة معينة
* /


add_filter ('woocommerce_available_payment_gateways'، 'njengah_unset_gateway_by_category') ؛


الوظيفة njengah_unset_gateway_by_category ($ available_gateways) {

    إذا (is_admin ()) أعاد $ available_gateways؛

    إذا (! is_checkout ()) بإرجاع $ available_gateways؛

    $ unset = خطأ ؛

    $ category_ids = مجموعة (8، 37)؛

    foreach (WC () -> cart-> get_cart_contents () كـ $ key => قيم $) {

        المصطلحات $ = get_the_terms (قيم $ ['product_id'] ، 'product_cat') ؛   

        foreach (مصطلحات $ مثل $ term) {       

            إذا (in_array ($ term-> term_id، $ category_ids)) {

                $ unset = صحيح ؛

                فترة راحة؛

            }

        }

    }

    if ($ unset == true) unset ($ available_gateways ['check']) ؛

    إرجاع $ available_gateways؛

}
  1. ستكون هذه النتائج تعطيل طريقة دفع لفئة معينة

تذكر إضافة معرف الفئة الصحيح الموجود في متجر WooCommerce الخاص بك حتى يعمل هذا الرمز.

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

خطوات تعطيل طريقة الدفع لفئة معينة باستخدام الرقائق الفاصلة للفئة

  1. قم بتسجيل الدخول إلى موقع WordPress الخاص بك والوصول إلى لوحة التحكم بصفتك المستخدم المسؤول.
  2. من قائمة لوحة التحكم ، انقر فوق قائمة المظهر> قائمة محرر السمات . عند فتح صفحة Theme Editor ، ابحث عن ملف وظائف السمة حيث سنضيف الوظيفة التي ستعمل على تعطيل طريقة الدفع لفئة معينة.
  3. أضف الكود التالي إلى ملف php :
 / **

 *snippet قم بتعطيل بوابة الدفع حسب الفئة.

* /

function njengah_disable_payment_gateway_category ($ gateways) {

// الفئات التي ستؤدي إلى تعطيل بوابة الدفع

$ category_slugs = مجموعة ('ملحقات'، 'other-category')؛

$ category_ids = get_terms (المصفوفة ('التصنيف' => 'product_cat'، 'slug' => $ category_slugs، 'الحقول' => 'ids')) ؛


// تحقق من كل عنصر في سلة التسوق لفئة معينة

foreach (WC () -> cart-> get_cart () كـ $ item) {

$ product = $ item ['data']؛

if ($ product && array_intersect ($ category_ids، $ product-> get_category_ids ())) {

unset (بوابات $ ['cod']) ؛ // تعطيل بوابة الدفع "cod" عندما يكون للمنتج إحدى الفئات

فترة راحة؛

}

}

إرجاع بوابات $؛

}

add_filter ('woocommerce_available_payment_gateways'، 'njengah_disable_payment_gateway_category') ؛
  1. ستكون هذه النتيجة تعطيل طريقة الدفع لفئة معينة

تذكر إضافة الفئة الصحيحة slug وتحتاج إلى تحديد بوابة الدفع التي تريد تعطيلها. على سبيل المثال ، لقد استخدمت كلمة "cod" لتمثيل الدفع عند الاستلام.

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

  • التحويل المصرفي (البكالوريا)
  • تحقق (تحقق)
  • الدفع عند الاستلام (COD)
  • باي بال (باي بال)

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

على سبيل المثال بالنسبة لخيار الدفع عند الاستلام في صفحة الإعدادات ، سيكون هذا هو عنوان URL: wp-admin / admin.php؟ page = wc-settings & tab = checkout & section = cod

استنتاج

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

مقالات مماثلة