__('Name', 'eventqora'),
'email' => __('Email', 'eventqora'),
'ticket' => __('Ticket', 'eventqora'),
'quantity' => __('Quantity', 'eventqora'),
'event_id' => __('Event', 'eventqora'),
'created_at' => __('Booking Time', 'eventqora'),
];
echo '
';
}
/**
* Save meta when booking is updated.
*/
public function save_booking_meta($post_id) {
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
if (wp_is_post_revision($post_id)) return;
if (!current_user_can('edit_post', $post_id)) return;
$nonce = isset($_POST['evqra_booking_meta_nonce'])
? sanitize_text_field(wp_unslash($_POST['evqra_booking_meta_nonce']))
: '';
if (!$nonce || !wp_verify_nonce($nonce, 'evqra_booking_meta')) return;
$fields = ['name', 'email', 'ticket', 'quantity', 'event_id', 'created_at'];
foreach ($fields as $field) {
$key = '_evqra_booking_' . $field;
if (isset($_POST[$key])) {
update_post_meta($post_id, $key, sanitize_text_field(wp_unslash($_POST[$key])));
}
}
}
/**
* Add custom columns in Booking list.
*/
public function custom_booking_columns($columns) {
$new = [];
$new['cb'] = $columns['cb'];
$new['title'] = __('Booking Name', 'eventqora');
$new['email'] = __('Email', 'eventqora');
$new['ticket'] = __('Ticket', 'eventqora');
$new['event'] = __('Event', 'eventqora');
$new['date'] = $columns['date'];
return $new;
}
/**
* Render custom column values.
*/
public function render_booking_columns($column, $post_id) {
switch ($column) {
case 'email':
echo esc_html(get_post_meta($post_id, '_evqra_booking_email', true));
break;
case 'ticket':
echo esc_html(get_post_meta($post_id, '_evqra_booking_ticket', true));
break;
case 'event':
$event_id = get_post_meta($post_id, '_evqra_booking_event_id', true);
if ($event_id) {
echo '' . esc_html(get_the_title($event_id)) . '';
}
break;
}
}
}
new EVQRA_Booking_Admin();