วิธีซ่อนวิธีการจัดส่งของ WooCommerce สำหรับเงื่อนไขบางประการ

เผยแพร่แล้ว: 2020-06-15

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

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

Default Shipping Methods
วิธีการจัดส่งเริ่มต้น

ตัวเลือกการจัดส่งตามสถานที่สามารถทำได้โดยง่ายโดยปลั๊กอิน แต่สำหรับเงื่อนไขบางอย่างที่ตำแหน่งไม่มีบทบาทสำคัญ มันกลายเป็นเรื่องยากมากสำหรับเจ้าของร้านค้าที่จะบรรลุเป้าหมายนั้น เงื่อนไขอาจเป็น:

  1. ไม่ควรใช้วิธีจัดส่งบางอย่าง เช่น จัดส่งฟรี หากน้ำหนักในคำสั่งซื้อมากกว่าจำนวนปอนด์หรือกิโลกรัมที่กำหนด
  2. ความพร้อมใช้งานของวิธีการจัดส่งบางอย่างจะขึ้นอยู่กับจำนวนปริมาณหรือราคาของคำสั่งซื้อทั้งหมด ตัวอย่างเช่น หากยอดสั่งซื้อทั้งหมดมากกว่า 250 ดอลลาร์ ควรใช้วิธีการจัดส่งฟรีเท่านั้นและไม่ควรใช้วิธีจัดส่งแบบชำระเงิน

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

การใช้ข้อมูลโค้ด

มาดูตัวอย่างเงื่อนไข 1 ที่กล่าวไว้ข้างต้นว่าไม่ควรให้การจัดส่งฟรีหากน้ำหนักการสั่งซื้อมากกว่า 5 กก. คุณสามารถทำได้โดยการเพิ่ม โค้ดด้านล่างในไฟล์ functions.php ของธีมที่ใช้งานอยู่ในปัจจุบัน

หมายเหตุ: การเปลี่ยนแปลงเหล่านี้สามารถเขียนทับได้ด้วยการอัพเดตธีมปัจจุบัน ดังนั้นจึงแนะนำให้สร้างธีมย่อยและเพิ่มข้อมูลโค้ดที่จำเป็นในไฟล์ functions.php ของธีมย่อย หรือคุณสามารถใช้ปลั๊กอิน Code Snippets เพื่อเพิ่มข้อมูลโค้ดที่กำหนดเองได้

 /** 
 * ซ่อนค่าจัดส่งฟรีเมื่อสั่งน้ำหนักเกิน 10 กก. 
 * 
 * @param array $rates อาร์เรย์ของอัตราที่พบในแพ็คเกจ 
 * @return อาร์เรย์ 
 */ 
ฟังก์ชั่น ts_hide_free_shipping_for_order_weight ($ อัตรา, $ แพ็คเกจ) { 
    $order_weight = WC()->cart->get_cart_contents_weight(); 
 
    ถ้า ( $order_weight > 5 ) { 
        foreach ( อัตรา $ เป็น $rate_id => $rate_val ) { 
            ถ้า ( 'free_shipping' === $rate_val->get_method_id() ) { 
                unset( อัตรา $[ $rate_id ] );
            } 
        } 
    } 
    ส่งคืนอัตรา $; 
} 

add_filter( 'woocommerce_package_rates', 'ts_hide_free_shipping_for_order_weight', 100, 2 );

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

หน้าสินค้า:

Product with 6kg weight
สินค้าน้ำหนัก 6กก.

หน้ารถเข็นพร้อมวิธีการจัดส่ง:

Free shipping is not available for the product with weight more than 5kg
ไม่มีบริการจัดส่งฟรีสำหรับผลิตภัณฑ์ที่มีน้ำหนักเกิน 5 กก.

อีกตัวอย่างหนึ่งของการซ่อนวิธีการจัดส่งบน WooCommerce Cart จะอนุญาตเฉพาะการจัดส่งฟรีระหว่างการชำระเงินเมื่อยอดสั่งซื้อทั้งหมดมากกว่า $250 สามารถทำได้โดยการเพิ่มโค้ดด้านล่างลงในไฟล์ functions.php

 /**
 * ซ่อนอัตราค่าจัดส่งเมื่อยอดสั่งซื้อทั้งหมดมากกว่า $250
 *
 * @param array $rates อาร์เรย์ของอัตราที่พบในแพ็คเกจ
 * @return อาร์เรย์
 */
ฟังก์ชัน ts_hide_shipping_for_order_total( $rates ) {
  $free = อาร์เรย์ ();

  $order_total = WC()->cart->get_subtotal();
  
  ถ้า( $order_total > 250 ) {
    foreach ( อัตรา $ เป็น $rate_id => $ อัตรา ) {
      ถ้า ( 'free_shipping' === $rate->get_method_id() ) {
        ฟรี $[ $rate_id ] = อัตรา $;
      }
    }
  }
  กลับ ! ว่างเปล่า ( $ ฟรี ) ? ฟรี $ : $ อัตรา;
}
add_filter( 'woocommerce_package_rates', 'ts_hide_shipping_for_order_total', 100 );

ที่นี่ เมื่อยอดสั่งซื้อทั้งหมดมากกว่า 250 ดอลลาร์ อาร์เรย์ที่มีวิธีการจัดส่งฟรีเท่านั้นจะถูกส่งคืนจากตัวกรอง มิฉะนั้น อัตราค่าจัดส่งทั้งหมดจะถูกส่งคืน

Hide Shipping Rate when Order total is more than $250
ซ่อนอัตราค่าจัดส่งเมื่อยอดสั่งซื้อทั้งหมดมากกว่า $250

ในตัวอย่างข้างต้น เราได้อ้างอิงวิธีการจัดส่งฟรี ดังนั้นรหัสวิธีที่ใช้คือ free_shipping สำหรับการแก้ไขวิธีการจัดส่งอื่นๆ รหัสวิธีคือ:

การรับสินค้า ในพื้นที่: local_pickup
อัตราคงที่: flat_rate

ฟังก์ชัน get_method_id() จะดึงรหัสวิธีเฉพาะสำหรับ 3 วิธีสำหรับโซนการจัดส่งทั้งหมด ไม่ใช่สำหรับวิธีการเฉพาะของโซนการจัดส่งเดียว ดังนั้นฟังก์ชันนี้จะซ่อนอัตราคงที่ทั้งหมด การรับสินค้าในพื้นที่ หรือวิธีการจัดส่งฟรีที่มีให้ในระหว่างการชำระเงิน แต่ถ้าคุณต้องการซ่อนวิธีการจัดส่งเฉพาะ คุณจะต้องใช้รหัสวิธีการจัดส่งและรหัสอินสแตนซ์ร่วมกัน

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

Instance ID

การใช้ส่วนขยาย WooCommerce ที่แตกต่างกันสำหรับวิธีการจัดส่ง

มีส่วนขยายที่ต้องชำระเงินหรือฟรีหลายรายการเพื่อตั้งค่าวิธีการจัดส่งสำหรับเงื่อนไขต่างๆ ปลั๊กอินบางตัวที่ใช้มากที่สุดคือ:

ปลั๊กอินที่ต้องชำระเงิน:

  1. อัตราค่าจัดส่งตามตารางโดย WooCommerce : ปลั๊กอินนี้ขยายตัวเลือกการจัดส่งเริ่มต้นของ WooCommerce ให้คุณมีตัวเลือกการจัดส่งที่ปรับแต่งได้สูง
  2. ปลั๊กอินการจัดส่งแบบ Flat Rate ขั้นสูงสำหรับ WooCommerce : ปลั๊กอินนี้จะช่วยคุณกำหนดค่าอัตราค่าจัดส่งในร้านค้าของคุณตามกฎการจัดส่งขั้นสูง
  3. ปลั๊กอิน WooCommerce Advance Shipping โดย Jeroen sormani : ปลั๊กอินนี้ช่วยให้คุณสามารถเปิดใช้งานวิธีการจัดส่งระหว่างการชำระเงินตามกฎที่ตั้งไว้ สามารถกำหนดกฎ สำหรับ รายละเอียดรถเข็น รายละเอียดผลิตภัณฑ์ หรือรายละเอียดผู้ใช้ที่แตกต่างกัน ได้
  4. Flexible Shipping Pro สำหรับ WooCommerce โดย WP Desk : ปลั๊กอินนี้ช่วยให้คุณสามารถเปิดใช้งานวิธีการจัดส่ง ตามรายการเฉพาะ รายการสินค้าในรถเข็น กฎราคาหรือน้ำหนัก

ปลั๊กอินฟรี:

ปลั๊กอินบางตัวข้างต้นยังมีเวอร์ชันฟรีสำหรับปลั๊กอินเหล่านี้ด้วยคุณสมบัติที่จำกัด พวกเขาคือ:

  1. WooCommerce Advanced จัดส่งฟรีโดย Jeroen Sormani: นี่เป็นเวอร์ชันฟรีของปลั๊กอิน WooCommerce Advanced Shipping ข้อแตกต่างเพียงอย่างเดียวของปลั๊กอินทั้งสองก็คือ ปลั๊กอินนี้อนุญาตเฉพาะวิธีการจัดส่งฟรีสำหรับกฎที่ตั้งไว้ และปลั๊กอินแบบชำระเงินอนุญาตให้ใช้วิธีการจัดส่งทั้งหมด
  2. การจัดส่งแบบยืดหยุ่นสำหรับ WooCommerce โดย WP Desk : นี่เป็น เวอร์ชันฟรี ของปลั๊กอิน Flexible Shipping Pro สำหรับ WooCommerce อนุญาตให้กำหนดวิธีการจัดส่งเฉพาะราคาและน้ำหนักเท่านั้น

สำหรับคำอธิบายโดยละเอียดของปลั๊กอินที่กล่าวถึงข้างต้น คุณสามารถตรวจสอบโพสต์นี้

บทสรุป

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