วิธีซ่อนค่าจัดส่งอื่นๆ ในกรณีที่ส่งฟรี สำหรับ Woocommerce

ช่วงนี้มีโปรเจ็คเกี่ยวกับ Ecommerce อยู่หลายตัวครับ ซึ่งแน่นอนครับว่าเว็บทุกตัวที่ผมทำก็พัฒนาจาก WordPress ทั้งนั้น และตัวระบบขายของผมก็ใช้ Woocommerce มาเป็นตัวหลักในการใช้งาน เพราะมันใช้งานง่าย ตอบโจทย์ดีครับ ทีนี้ในแต่ละโปรเจ็คมันก็จะมีโน่นมีนี่มาให้เราได้ปรับแต่งต่างกันไป ซึ่งผมก็รวบรวมข้อมูลต่างๆลงในบันทึกส่วนตัว และจะนำมาทยอยเขียนลงในบทความครับ ว่าแต่ละเคสทำอย่างไร แก้ปัญหาแบบไหน

สำหรับบทความนี้ สืบเนื่องมาจากลูกค้าบอกว่า เว็บของลูกค้านั้น มีการกำหนดค่าจัดส่งไว้ครับว่า ค่าส่งปกติคิดที่ 100 บาท แต่ถ้าเมื่อไหร่ก็ตามที่ยอดสั่งซื้อเกิน 350 บาท จะจัดส่งให้ฟรี  ซึ่งในตัว Woocommerce มันจะโชว์อยู่ทั้งสอง options ให้ลูกค้าเลือกครับ ทั้งๆที่ในความเป็นจริงถ้ามันเข้าเงื่อนไขส่งฟรีมันก็ควรจะเลือกตัวฟรีให้อัตโนมัติ ถ้าไม่ถึงก็เลือกตัวส่งแบบ Flat Rate (ค่าส่งปกติ) ให้ทันที

วิธีการแก้ไขนั้น สามารถแก้ไขได้ด้วยวิธีการเขียนโค้ดด้านลางนี้ลงไปในไฟล์ functions.php ที่อยู่ในโฟลเดอร์ธีมของเราครับ (อัพเดทโค้ดล่าสุดสำหรับรองรับเวอร์ชั่น 2.6 ครับ)


/**
 * Hide shipping rates when free shipping is available.
 * Updated to support WooCommerce 2.6 Shipping Zones.
 *
 * @param array $rates Array of rates found for the package.
 * @return array
 */
function my_hide_shipping_when_free_is_available( $rates ) {
 $free = array();
 foreach ( $rates as $rate_id => $rate ) {
 if ( 'free_shipping' === $rate->method_id ) {
 $free[ $rate_id ] = $rate;
 break;
 }
 }
 return ! empty( $free ) ? $free : $rates;
}
add_filter( 'woocommerce_package_rates', 'my_hide_shipping_when_free_is_available', 100 );

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

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

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
Manage Consent Preferences
  • คุกกี้ที่จำเป็น
    Always Active

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

  • คุกกี้เพื่อการวิเคราะห์

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

  • คุกกี้เพื่อปรับเนื้อหาให้เข้ากับกลุ่มเป้าหมาย

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

บันทึก