ฉันดูไปรอบๆ ที่นี่และจากเครื่องมือค้นหา แต่น่าเสียดายที่ฉันไม่สามารถหาวิธีแก้ปัญหาสำหรับตัวเองได้
ตอนนี้ฉันขอความช่วยเหลือเกี่ยวกับฟังก์ชันที่ฉันต้องปรับแต่งสำหรับปลั๊กอิน WordPress ของ Contact Form 7 ฟังก์ชันนี้มาจากคำถามอื่น
ในเมนูแบบเลื่อนลง (เลือก) ฉันต้องการรายละเอียดสองรายการ (ชื่อเวิร์กช็อปและวันที่) ในฟิลด์ตัวเลือกเดียว รายละเอียดทั้งสองมาจากโพสต์เดียวกันของประเภทโพสต์ที่กำหนดเอง รายละเอียดแรกคือ post_title ส่วนที่สองคือฟิลด์ที่กำหนดเองจากปลั๊กอิน Meta-Box
ฟังก์ชันต่อไปนี้ใช้งานได้ตามหลักการ แต่จะส่งกลับเฉพาะรายละเอียดอย่างใดอย่างหนึ่งเท่านั้น วิธีแก้ปัญหาน่าจะอยู่ในโครงสร้าง foreach แต่ฉันไม่รู้ว่ามันทำงานอย่างไร
ฉันจะขอบคุณมากสำหรับการสนับสนุน!
[อัปเดต 2018-08-12] หลังจากการวิจัยเพิ่มเติม ฉันพบวิธีแก้ปัญหาที่ โพสต์นี้ และเปลี่ยนฟังก์ชันตามนั้น
วิธีแก้ปัญหาควรมีลักษณะดังนี้:
<select>
<option value="workshop name – date">workshop name – date</option>
...
</select>
นี่คือฟังก์ชัน:
add_filter( 'wpcf7_form_tag', 'dynamic_field_choose_workshop', 10, 2);
function dynamic_field_choose_workshop ( $tag, $unused ) {
if ( $tag['name'] != 'workshop' )
return $tag;
$args = array (
'post_type' => 'workshop',
'post_status' => 'publish',
'orderby' => 'name',
'order' => 'ASC',
'numberposts' => - 1,
);
$custom_posts = get_posts($args);
if ( ! $custom_posts )
return $tag;
foreach ( $custom_posts as $custom_post ) {
$ID = $custom_post->ID;
$tag['values'][] = $custom_post->post_title . ' - ' . rwmb_get_value('workshop_meta_boxes_date', '', $ID);
$tag['raw_values'][] = $custom_post->post_title . ' - ' . rwmb_get_value('workshop_meta_boxes_date', '', $ID);
$tag['labels'][] = $custom_post->post_title . ' - ' . rwmb_get_value('workshop_meta_boxes_date', '', $ID);
}
return $tag;
}