วิธีปิดการใช้งานวิธีการชำระเงินสำหรับหมวดหมู่เฉพาะ

เผยแพร่แล้ว: 2020-09-01

WooCommerce ปิดใช้งานวิธีการชำระเงินสำหรับหมวดหมู่เฉพาะ คุณกำลังเปิดร้านค้า WooCommerce และต้องการทราบว่าคุณสามารถปิดใช้งานวิธีการชำระเงินสำหรับหมวดหมู่เฉพาะหรือวิธีการชำระเงินหลายวิธีตามหมวดหมู่ผลิตภัณฑ์ที่มีอยู่ในรถเข็นได้อย่างไร หากคุณกำลังมองหาโซลูชันที่เน้นที่หมวดหมู่ผลิตภัณฑ์ แต่อาจมีการเปลี่ยนแปลงเล็กน้อยสำหรับคลาสการจัดส่ง เช่น ตัวผลิตภัณฑ์เอง บทความนี้จะแนะนำคุณเกี่ยวกับวิธีการบรรลุเป้าหมายนั้น

ปิดใช้งานวิธีการชำระเงินสำหรับหมวดหมู่เฉพาะ

ตัวอย่างที่ดีที่แนวทางนี้มีประโยชน์คือเมื่อเจ้าของร้านค้า WooCommerce มีหมวดหมู่ที่มีเฉพาะผลิตภัณฑ์ที่มีราคาสูงและต้องการให้ลูกค้าชำระเงินด้วยการโอนเงินผ่านธนาคารแทนการใช้บัตรเครดิต นี่เป็นเพียงตัวอย่างสถานการณ์ต่างๆ ที่คุณอาจต้องปิดใช้งานวิธีการชำระเงินสำหรับหมวดหมู่หนึ่งๆ

หากคุณไม่เชี่ยวชาญด้านเทคโนโลยี คุณอาจเลือกใช้ปลั๊กอินระดับพรีเมียมเพื่อทำงานแทนคุณ ตัวอย่างคือปลั๊กอินการชำระเงินแบบมีเงื่อนไขของ WooCommerce ซึ่งช่วยให้คุณสร้างเงื่อนไขที่จะเปิดใช้งานหรือปิดใช้งานวิธีการชำระเงินของคุณ หากคุณใช้โค้ดไม่เก่งนัก นี่จะเป็นโซลูชันพรีเมียมที่ดีที่สุดที่คุณควรพิจารณา

นอกจากนี้ ปลั๊กอินนี้ยังช่วยให้คุณสร้างเงื่อนไขและการใช้งานได้ไม่จำกัด เช่น ยอดรวมของรถเข็น ประเทศที่เรียกเก็บเงิน บทบาทของผู้ใช้ และอื่นๆ อีกมากมายเพื่อกำหนดว่าเกตเวย์การชำระเงินใดแสดงและไม่แสดง

ปลั๊กอินการชำระเงินตามเงื่อนไขของ WooCommerce

อย่างไรก็ตาม สำหรับบทช่วยสอนสั้นๆ นี้ ฉันจะแสดงวิธีปิดใช้งานวิธีการชำระเงินสำหรับหมวดหมู่เฉพาะโดยใช้ข้อมูลโค้ด PHP

ขั้นตอนในการปิดใช้งานวิธีการชำระเงินสำหรับหมวดหมู่เฉพาะโดยใช้ข้อมูลโค้ด PHP

นี่คือขั้นตอนง่าย ๆ ที่คุณต้องปฏิบัติตาม:

  1. ลงชื่อเข้าใช้ไซต์ WordPress และเข้าถึง แดชบอร์ด ในฐานะผู้ดูแลระบบ
  2. จากเมนูแดชบอร์ด ให้คลิกที่ เมนูลักษณะที่ปรากฏ > เมนูตัวแก้ไขธีม เมื่อหน้า ตัวแก้ไขธีม เปิดขึ้น ให้มองหาไฟล์ฟังก์ชันของธีมที่เราจะเพิ่มฟังก์ชันที่จะปิดใช้งานวิธีการชำระเงินสำหรับหมวดหมู่เฉพาะ
  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;

    if ( ! is_checkout() ) คืนค่า $available_gateways;

    $unset = เท็จ;

    $category_ids = อาร์เรย์ ( 8, 37 );

    foreach ( WC()->cart->get_cart_contents() เป็น $key => $values ​​) {

        $terms = get_the_terms( $values['product_id'], 'product_cat' );   

        foreach ( $terms เป็น $term ) {       

            if ( in_array( $term->term_id, $category_ids ) ) {

                $unset = จริง;

                หยุดพัก;

            }

        }

    }

    ถ้า ( $unset == true ) unset( $available_gateways['cheque'] );

    ส่งคืน $available_gateways;

}
  1. นี่จะเป็นผลลัพธ์ ปิดการใช้งานวิธีการชำระเงินสำหรับหมวดหมู่เฉพาะ

อย่าลืมเพิ่มรหัสหมวดหมู่ที่ถูกต้องซึ่งอยู่ในร้านค้า WooCommerce ของคุณเพื่อให้รหัสนี้ใช้งานได้

หากคุณไม่ชอบใช้ Category ID คุณสามารถใช้ประเภทกระสุนในร้านค้า WooCommerce ของคุณได้ คุณอาจเลือกใช้สิ่งเหล่านี้ เนื่องจากจะเข้าใจง่ายขึ้นเพื่อใช้อ้างอิงในอนาคต

ขั้นตอนในการปิดใช้งานวิธีการชำระเงินสำหรับหมวดหมู่เฉพาะโดยใช้ตัวระบุหมวดหมู่

  1. ลงชื่อเข้าใช้ไซต์ WordPress และเข้าถึง แดชบอร์ด ในฐานะผู้ดูแลระบบ
  2. จากเมนูแดชบอร์ด ให้คลิกที่ เมนูลักษณะที่ปรากฏ > เมนูตัวแก้ไขธีม เมื่อหน้า ตัวแก้ไขธีม เปิดขึ้น ให้มองหาไฟล์ฟังก์ชันของธีมที่เราจะเพิ่มฟังก์ชันที่จะปิดใช้งานวิธีการชำระเงินสำหรับหมวดหมู่เฉพาะ
  3. เพิ่มรหัสต่อไปนี้ ในไฟล์ php :
 /**

 * @snippet ปิดการใช้งานเกตเวย์การชำระเงินตามหมวดหมู่

*/

ฟังก์ชั่น njengah_disable_payment_gateway_category ($ เกตเวย์) {

// หมวดหมู่ที่จะปิดการใช้งานเกตเวย์การชำระเงิน

$category_slugs = array( 'อุปกรณ์เสริม', 'หมวดหมู่อื่น' );

$category_ids = get_terms( array( 'taxonomy' => 'product_cat', 'slug' => $category_slugs, 'fields' => 'ids' ) );


// ตรวจสอบรายการรถเข็นสำหรับหมวดหมู่ที่กำหนด

foreach ( WC()->cart->get_cart() เป็น $item ) {

$product = $item['data'];

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

unset( $เกตเวย์['cod'] ); // ปิดการใช้งานเกตเวย์การชำระเงิน 'cod' เมื่อผลิตภัณฑ์มีหนึ่งในหมวดหมู่

หยุดพัก;

}

}

ส่งคืน $gateways;

}

add_filter( 'woocommerce_available_payment_gateways', 'njengah_disable_payment_gateway_category' );
  1. นี่จะเป็นผลลัพธ์ ปิดการใช้งานวิธีการชำระเงินสำหรับหมวดหมู่เฉพาะ

อย่าลืมเพิ่มประเภททากที่ถูกต้อง และคุณต้องกำหนดเกตเวย์การชำระเงินที่คุณต้องการปิดใช้งาน ตัวอย่างเช่น ฉันใช้ 'cod' เพื่อแทนเงินสดในการจัดส่ง

สิ่งสำคัญคือต้องทราบว่าตัวระบุเกตเวย์การชำระเงินจะต้องเปลี่ยนเป็นสิ่งที่คุณต้องการปิดใช้งานเมื่อมีหมวดหมู่ที่ระบุอยู่ในรถเข็น

  • โอนเงินผ่านธนาคาร (บัค)
  • เช็ค (เช็ค)
  • เก็บเงินปลายทาง (cod)
  • เพย์พาล (PayPal)

อย่างไรก็ตาม หากคุณไม่ได้ใช้หนึ่งในเกตเวย์การชำระเงินเริ่มต้น ไม่ต้องกังวล เนื่องจากยังมีวิธีง่ายๆ ในการค้นหา ID เกตเวย์การชำระเงิน คุณสามารถทำได้โดยไปที่หน้าการตั้งค่าเกตเวย์การชำระเงิน และคุณจะพบ ID อยู่ในนั้น

ตัวอย่างเช่น สำหรับตัวเลือกการเก็บเงินปลายทางในหน้าการตั้งค่า จะเป็น URL: wp-admin/admin.php?page=wc-settings&tab=checkout&section=cod

บทสรุป

ในโพสต์นี้ คุณได้เรียนรู้วิธีปิดใช้งานวิธีการชำระเงินสำหรับหมวดหมู่เฉพาะโดยใช้สองวิธี คุณสามารถกำหนดได้โดยใช้รหัสหมวดหมู่ผลิตภัณฑ์หรือทากหมวดหมู่เพื่อให้ง่ายต่อการอ้างอิงในอนาคต อย่าลืมใช้หมวดหมู่ ID หรือกระสุนที่อยู่ในร้านค้า WooCommerce ของคุณเพื่อเพิ่มฟังก์ชันนี้

บทความที่คล้ายกัน