เพิ่ม hidden field ใน contact form 7 โดยใช้การ hook

ลูกค้า : โอ เวลามีลูกค้ากรอกข้อมูลใน Inquire Form แล้วมันส่งเมลกลับมาให้พี่ แต่พี่ไม่รู้ว่าเค้ามาจากเว็บไหน มีวิธีไหม
โอ : ขอดูเมลที่ส่งกลับมาให้หน่อยครับพี่

หลังจากตรวจดูเมลนั้นแล้ว พบว่าส่งมาจาก plugin ชื่อ Contact Form 7 เอาละครับ เรามาดูกันว่าจะมีวิธีแก้ปัญหาอย่างไร

– สิ่งแรกที่ผมทำคือการหา Hook ของ Contact Form 7 ก่อนเลย ก็ไปเจอกับ wpcf7_form_hidden_fields เกี่ยวกับ hidden field

function filter_wpcf7_form_hidden_fields( $array ) { 
  return $array; 
}; 
add_filter( 'wpcf7_form_hidden_fields', 'filter_wpcf7_form_hidden_fields', 10, 1 );

จากนั้นก็เอาชื่อ wpcf7_form_hidden_fields ไปหาใน Contact Form 7 เพื่อดูว่า code ทำงานอย่างไร ซึ่งการทำงานของมันคืน เราส่งค่า name กับ value ไปแล้วมันก็จะสร้าง hidden field ใน Form ให้เรา

<input type="hidden" name="?" value="?">

สิ่งที่ผมต้องการคือ การส่ง url ไปในอีเมล

function filter_wpcf7_form_hidden_fields( $array ) { 
  $id     = get_the_ID();
  $link   = get_permalink($id);
  return array(
    'property_id'       => $id,
    'property_link'     => $link
  );
  return $array; 
}; 
add_filter( 'wpcf7_form_hidden_fields', 'filter_wpcf7_form_hidden_fields', 10, 1 );
<input type="hidden" name="property_id" value="?">
<input type="hidden" name="property_link" value="?">

เนื่องจาก Inquire Form อยู่เฉพาะหน้า Property ซึ่งเป็น Custom PostTyp เราก็เพิ่มเงื่อนไขไปอีกนี้ ให้แสดงเฉพาะที่หน้านั้น

function filter_wpcf7_form_hidden_fields( $array ) { 
  if( is_single() and is_singular('property') ){
    $id     = get_the_ID();
    $link   = get_permalink($id);
    return array(
      'property_id'       => $id,
      'property_link'     => $link
    );
    return $array; 
  }
}; 
add_filter( 'wpcf7_form_hidden_fields', 'filter_wpcf7_form_hidden_fields', 10, 1 );

เท่านี้ก็เรียบร้อย เพื่อ hidden field ใน Contact Form 7 ได้แระ สุดท้าย เราก็เอา field name ไปใส่ใน Setting ของ Form

วิธีใช้ก็แค่ใส่ [property_link] ก็เรียบร้อย

Leave a Reply

Your email address will not be published. Required fields are marked *

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

Privacy Preferences

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

Allow All
Manage Consent Preferences
  • คุกกี้ที่จำเป็น
    Always Active

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

  • Google Analytic

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

Save