วิธีซ่อนการแสดงชื่อ Event ใน Timely Calendar จะแสดงชื่อเฉพาะ Admin เท่านั้น ถ้าไม่ใช่ ให้แสดง Booked แทน
การแสดงผลใน Calendar
ให้เข้าไปแก้ไขที่ไฟล์ /wp-content/plugins/all-in-one-event-calendar/app/view/calendar/view/month.php แล้วไปที่บรรทัด 360
foreach ( $days_events[$i] as $evt ){
$event_data = array(
'filtered_title' => $evt->get_runtime( 'filtered_title' ),
'post_excerpt' => $evt->get_runtime( 'post_excerpt' ),
//...
);
}
เพิ่มเติม code การตรวจสอบสิทธิ์เข้าไป
foreach ( $days_events[$i] as $evt ){
$event_data = array(
'filtered_title' => ( current_user_can('manage_options') )? $evt->get_runtime( 'filtered_title' ): 'booked', //ทำการตรวจสอบ สิทธิ์
'post_excerpt' => $evt->get_runtime( 'post_excerpt' ),
//...
);
}

การแสดงผลใน Agenda
ให้เข้าไปแก้ไขที่ไฟล์ /wp-content/plugins/all-in-one-event-calendar/app/view/calendar/view/agenda.php แล้วไปที่บรรทัด 298
//... $event_props['filtered_title'] = $event->get_runtime( 'filtered_title' ); //...
เปลี่ยนเป็น
//...
//$event_props['filtered_title'] = $event->get_runtime( 'filtered_title' );
$event_props['filtered_title'] = ( current_user_can('manage_options') )? $event->get_runtime( 'filtered_title' ): 'booked';
//...

วิธีข้างบนอาจจะผิดหลักหน่อยนะครับ เพราะว่าเราเข้าไปแก้ code ของ plugin โดยตรง ผมเขียนอีกวิธีมาฝากครับ โดยไม่ต้องไปยุ่งกับ plugin
โดยเราจะเขียนอยู่ใน functions.php ใน theme folder ครับ
function check_event_title( $post_title, $post_id ){
$ai1ec_settings = get_option('ai1ec_settings');
$calendar_page_id = $ai1ec_settings['calendar_page_id']['value'];
$current_post_type = get_post_type($post_id);
if( ! is_admin() and $current_post_type == 'ai1ec_event' and ( is_page($calendar_page_id) or is_active_widget( false, false, 'ai1ec_agenda_widget', true ) ) ){
$post_title = ( current_user_can('manage_options') )? $post_title: 'booked';
}
return $post_title;
}
add_filter('the_title', 'check_event_title', 20, 2);

