To follow-up on the comment made by @mmm, you’ve got a number of statements like:
if ( ! isset ($_POST['drw_event_date_field'] ) ) {
return ;
update_post_meta ($post_id, '_event_date_valkey', $event_date) ;
}
Notice that you are wrapping your calls to update_post_meta()
inside the !isset()
conditionals.
What you want is:
if ( ! isset ($_POST['drw_event_date_field'] ) ) {
return ;
}
update_post_meta ($post_id, '_event_date_valkey', $event_date) ;
Also, even when you correct the logic as above, you might still fail to save some values, e.g., if “drw_event_date_field” is not set you will not save any values, even those that are set…which is probably not what you want.
You’d probably be better off with logic such as:
$fields = array (
'_event_time_valkey' => 'drw_event_date_field',
'_event_endtime_valkey' => 'drw_event_time_field',
'_event_endtime_valkey' => 'drw_event_endtime_field',
'_event_free_valkey' => 'drw_event_free_field',
'_event_cover_valkey' => 'drw_event_cover_field',
'_event_stdticket_valkey' => 'drw_stdtktlink_field',
'_event_customTicketLink_valkey' => 'drw_customTicketLink_field',
'_event_cancel_valkey' => 'drw_event_cancelled_field',
) ;
foreach ($fields as $meta_key => $field) {
if (!isset ($_POST[$field])) {
if ($field == 'drw_event_cancelled_field') {
update_post_meta ($post_id, $meta_key, false) ;
}
continue ;
}
$meta_val = sanitize_text_field ($_POST[$field]) ;
update_post_meta ($post_id, $meta_key, $meta_val) ;
}