Timely Calendar แก้การแสดง Title

วิธีซ่อนการแสดงชื่อ 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' ),
  //...
  );
}
รูปการแสดงผลในส่วนของ Calendar

การแสดงผลใน 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';
//...
รูปการแสดงผลในส่วนของ Agenda

วิธีข้างบนอาจจะผิดหลักหน่อยนะครับ เพราะว่าเราเข้าไปแก้ 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);

One thought on “Timely Calendar แก้การแสดง Title

Leave a Reply

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