ช่วงนี้ผมทำโปรเจ็คเกี่ยวกับระบบขายของออนไลน์เยอะมากเลยครับ และแน่นอน สาวก WordPress อย่างผม ก็ต้องนำ Woocommerce ปลักอินอภิมหาเทพ มาใช้ในการพัฒนาเว็บอยู่แล้วแหละครับ และในแต่ละครั้งที่ทำงาน มันจะมี Requirement บางอย่างเพิ่มเติมเข้ามา ผมก็จะจดๆ ไว้ว่ามีอะไรบ้างและแก้ไขอย่างไร วันนี้ผมเลยอยากจะมานำเสนอเกี่ยวกับการลบฟิลด์ที่ไม่ต้องการออกจากหน้า Check Out ครับ
Woocommerce นั้น เมื่อเราสั่งซื้อสินค้า และคลิกไปยังหน้าชำระเงิน มันจะมีช่องให้เรากรอกข้อมูลมากมายเลยครับ ซึ่งจริงๆมันก็เป็นสิ่งที่สำคัญในการสั่งซื้อ เช่นสำหรับออกใบเสร็จ อะไรประมาณนั้น แต่ก็ไม่ใช่ว่าทุกเว็บขายของ เราจะอยากให้ลูกค้ากรอกข้อมูลเยอะๆหรอกนะครับ เช่น เว็บบางเว็บ ไม่ได้มีการออกแบบใบเสร็จ อยากให้กรอกแค่ชื่อ อีเมล เบอร์โทร ก็จบ ดังนั้น ประเด็นคือ ทำอย่างไร ถึงจะลบไอ้ช่องต่างๆที่มันมีให้ออกไปหละ?
วิธีการแก้ปัญหานี้ไม่ยากเลยครับ โดยวิธีการลบออก เราเรียกว่าการ unset ครับ
ให้เราเปิดไฟล์ functions.php ในธีมของเราขึ้นมาครับ
https://gist.github.com/jgalea/5884548
แล้วให้เราใส่คำสั่งด้านบนนี้ลงไปครับ อยากจะลบอันไหนก็ unset ออกให้หมด (โค้ดทั้งหมดนี้คือลบทุกฟิลด์ครับ อยากจะเก็บตัวไหนไว้ ก็ลบบรรทัดนั้นออกนะครับ) ยกตัวอย่าง ผมอยากลบ company, address1 ,address 2 ออก ผมก็ใส่เฉพาะโค้ดนี้ครับ
<?php add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' ); function custom_override_checkout_fields( $fields ) { unset($fields['billing']['billing_company']); unset($fields['billing']['billing_address_1']); unset($fields['billing']['billing_address_2']); return $fields; } ?>
นี่แหละครับ วิธีการแก้ไข ง่ายมากๆเลยครับ ยังไงก็ลองนำไปใช้ดูนะครับ