ข่าวประชาสัมพันธ์

มาร่วมเป็นกำลังใจให้เว็บด้วยการสมัครสมาชิกวีไอพี ~~ เลือกปีที่ท่านต้องการได้โดยไม่ต้องเรียงปี ~~ ปีละ 350 บาท สมัคร 2 ปีลดเหลือ 600 บาท ~~ มีไลน์กลุ่ม VIP จำนวนหลายร้อยท่าน เอาไว้ปรึกษางานซ่อม ~~ เข้าถึงข้อมูลด้านเทคนิค ข้อมูลเชิงลึกมากมาย.....

ปีที่ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

ผู้เขียน หัวข้อ: การลบฟิลด์บางฟิลด์ออกจากหน้า Check Out  (อ่าน 49 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ Prog Man

  • Administrator
  • วิศวกรรมเครื่องกล
  • *****
  • เจ้าของกระทู้
  • Joined: ก.พ. 2567
  • กระทู้: 572
  • สมาชิกลำดับที่ : 25791
    • อีเมล์
การลบฟิลด์บางฟิลด์ออกจากหน้า Check Out

วิธีการแก้ปัญหานี้ไม่ยากเลยครับ โดยวิธีการลบออก เราเรียกว่าการ 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;
}
?>

นี่แหละครับ วิธีการแก้ไข ง่ายมากๆเลยครับ ยังไงก็ลองนำไปใช้ดูนะครับ
   -ขอบคุณเจ้าของกระทู้ ข้อมูลมาจากล่างนี้ครับ
https://buksohn.com/remove-fields-from-check-out-page-of-woocommerce.html

ออฟไลน์ Prog Man

  • Administrator
  • วิศวกรรมเครื่องกล
  • *****
  • เจ้าของกระทู้
  • Joined: ก.พ. 2567
  • กระทู้: 572
  • สมาชิกลำดับที่ : 25791
    • อีเมล์
การลบฟิลด์บางฟิลด์ออกจากหน้า Check Out
« ตอบกลับ #1 เมื่อ: 07 ตุลาคม 2569, 15:38:07 »
  • ขึ้นบน
  • ลงล่าง
  •      ลงนำโค๊ดได้บนไปใช้แล้ว ไม่ได้ผล

        เลยถาม AI ต่อว่าเป็นเพราะอะไร แจ้งมาแบบนี้

    ตรงนี้มีภาพ! แต่ท่านจะมองไม่เห็น , ท่านต้อง  สมัครสมาชิก หรือ ลงชื่อเข้าระบบ


         โค๊ดเวอร์ชั่นใหม่ จะเป็นแบบนี้
    โค๊ด: [Select]
    // ซ่อนและยกเลิกการบังคับกรอกที่อยู่สำหรับระบบ Checkout Block (ทำงานเมื่อสินค้าในตะกร้าเป็นสินค้าดิจิทัล)
    add_filter( 'woocommerce_get_country_locale', 'custom_remove_checkout_blocks_fields', 9999 );
    function custom_remove_checkout_blocks_fields( $locale ) {
        // ตรวจสอบว่าในตะกร้าเป็นสินค้า Virtual/Downloadable ทั้งหมด (ไม่ต้องจัดส่ง)
        if ( WC()->cart && ! WC()->cart->needs_shipping() ) {
            foreach ( $locale as $country => $fields ) {
                // สั่งให้ฟิลด์เหล่านี้ไม่ต้องกรอก (required = false) และซ่อนออกไป (hidden = true)
                $fields_to_hide = array('address_1', 'address_2', 'city', 'state', 'postcode');
                foreach ( $fields_to_hide as $field ) {
                    if ( isset( $locale[$country][$field] ) ) {
                        $locale[$country][$field]['required'] = false;
                        $locale[$country][$field]['hidden'] = true;
                    }
                }
            }
        }
        return $locale;
    }

    ออฟไลน์ Auto Man

    • Administrator
    • หัวหน้าศูนย์ซ่อมสร้าง
    • *****
    • Joined: ก.ย. 2558
    • กระทู้: 46517
    • สมาชิกลำดับที่ : 1
    • เพศ: ชาย
    • มือผู้ให้ย่อมสูงกว่ามือผู้รับ
      • เว็บชุมชนคนรักช่างยนต์
      • อีเมล์
    สวัสดีคุณ...ผู้เยี่ยมชม  กด ❤ ถูกใจโพสท์นี้ หรือยัง...
    ต้องการสมัครสมาชิก VIP สมัครได้ที่นี่...   หรือทาง Line ID: k.sonchai

    การลบฟิลด์บางฟิลด์ออกจากหน้า Check Out
    « ตอบกลับ #2 เมื่อ: 07 ตุลาคม 2569, 18:15:02 »