Function Reference: geodir_event_save_data
Summary
This function has not been documented yet.
Source File
geodir_event_save_data() is located in geodir_event_manager/gdevents_functions.php [Line: 127]
Source Code
function geodir_event_save_data( $post_id = '', $request_info ) {
global $wpdb, $current_user;
$gd_post_info = array();
$last_post_id = $post_id;
$post_type = get_post_type( $post_id );
if ( $post_type != 'gd_event' ) {
return false;
}
$gd_post_info['event_reg_desc'] = isset( $request_info['event_reg_desc'] ) ? $request_info['event_reg_desc'] : '';
$gd_post_info['event_reg_fees'] = isset( $request_info['event_reg_fees'] ) ? $request_info['event_reg_fees'] : '';
$format = geodir_event_date_format();
$default_start = date_i18n( $format, current_time( 'timestamp' ) );
// Check recurring enabled
$post_info = geodir_get_post_info( $post_id );
$recurring_pkg = geodir_event_recurring_pkg( $post_info );
// recurring event
$is_recurring = isset( $request_info['is_recurring'] ) && empty( $request_info['is_recurring'] ) ? false : true;
$event_date = isset( $request_info['event_date'] ) ? trim( $request_info['event_date'] ) : ( isset( $request_info['event_recurring_dates'] ) ? $request_info['event_recurring_dates'] : '' );
$event_start = isset( $request_info['event_start'] ) ? trim( $request_info['event_start'] ) : $event_date;
$event_end = isset( $request_info['event_end'] ) ? trim( $request_info['event_end'] ) : '';
$all_day = isset( $request_info['all_day'] ) && !empty( $request_info['all_day'] ) ? true : false;
$starttime = isset( $request_info['starttime'] ) && !$all_day ? trim( $request_info['starttime'] ) : '';
$endtime = isset( $request_info['endtime'] ) && !$all_day ? trim( $request_info['endtime'] ) : '';
$repeat_days = array();
$repeat_weeks = array();
// recurring event
if ( $recurring_pkg && $is_recurring ) {
$repeat_type = isset( $request_info['repeat_type'] ) && in_array( $request_info['repeat_type'], array( 'day', 'week', 'month', 'year', 'custom' ) ) ? $request_info['repeat_type'] : 'custom'; // day, week, month, year, custom
$different_times = isset( $request_info['different_times'] ) && !empty( $request_info['different_times'] ) ? true : false;
$starttimes = $different_times && !$all_day && isset( $request_info['starttimes'] ) ? $request_info['starttimes'] : array();
$endtimes = $different_times && !$all_day && isset( $request_info['endtimes'] ) && !empty( $request_info['endtimes'] ) ? $request_info['endtimes'] : array();
// week days
if ( $repeat_type == 'week' || $repeat_type == 'month' ) {
$repeat_days = isset( $request_info['repeat_days'] ) ? $request_info['repeat_days'] : $repeat_days;
}
// by week
if ( $repeat_type == 'month' ) {
$repeat_weeks = isset( $request_info['repeat_weeks'] ) ? $request_info['repeat_weeks'] : $repeat_weeks;
}
if ( $repeat_type == 'custom' ) {
$event_recurring_dates = isset( $request_info['event_recurring_dates'] ) ? trim( $request_info['event_recurring_dates'] ) : '';
$event_recurring_dates = geodir_event_parse_dates( $event_recurring_dates );
if ( $different_times == 1 ) {
$starttime = '';
$endtime = '';
}
$event_start = !empty( $event_recurring_dates[0] ) ? $event_recurring_dates[0] : $default_start;
$event_end = $event_start;
$duration_x = 1;
$repeat_x = 1;
$repeat_end_type = 0;
$max_repeat = 1;
$repeat_end = '';
$event_recurring_dates = !empty( $event_recurring_dates ) ? implode( ',', $event_recurring_dates ) : $event_start;
} else {
$repeat_x = isset( $request_info['repeat_x'] ) ? trim( $request_info['repeat_x'] ) : '';
$duration_x = isset( $request_info['duration_x'] ) ? trim( $request_info['duration_x'] ) : 1;
$repeat_end_type = isset( $request_info['repeat_end_type'] ) ? trim( $request_info['repeat_end_type'] ) : 0;
$event_end = '';
$max_repeat = $repeat_end_type != 1 && isset( $request_info['max_repeat'] ) ? (int)$request_info['max_repeat'] : 1;
$repeat_end = $repeat_end_type == 1 && isset( $request_info['repeat_end'] ) ? $request_info['repeat_end'] : '';
$repeat_x = $repeat_x > 0 ? (int)$repeat_x : 1;
$duration_x = $duration_x > 0 ? (int)$duration_x : 1;
$max_repeat = $max_repeat > 0 ? (int)$max_repeat : 1;
if ( $repeat_end_type == 1 && !geodir_event_is_date( $repeat_end ) ) {
$repeat_end = '';
}
if ( !geodir_event_is_date( $event_start ) ) {
$event_start = $default_start;
}
$event_recurring_dates = geodir_event_date_occurrences( $repeat_type, $event_start, $event_end, $repeat_x, $max_repeat, $repeat_end, $repeat_days, $repeat_weeks );
$event_recurring_dates = !empty( $event_recurring_dates ) ? implode( ",", $event_recurring_dates ) : '';
}
} else {
if ( !geodir_event_is_date( $event_start ) ) {
$event_start = $default_start;
}
if ( strtotime( $event_end ) < strtotime( $event_start ) ) {
$event_end = $event_start;
}
$event_recurring_dates = $event_start;
$starttimes = array();
$endtimes = array();
$repeat_type = '';
$repeat_x = '';
$duration_x = '';
$repeat_end_type = '';
$max_repeat = '';
$repeat_end = '';
$different_times = false;
}
$event_shedule_info = array();
$event_shedule_info['is_recurring'] = $is_recurring;
$event_shedule_info['event_start'] = $event_start;
$event_shedule_info['event_end'] = $event_end;
$event_shedule_info['event_recurring_dates'] = $event_recurring_dates;
$event_shedule_info['all_day'] = $all_day;
$event_shedule_info['starttime'] = $starttime;
$event_shedule_info['endtime'] = $endtime;
$event_shedule_info['different_times'] = $different_times;
$event_shedule_info['starttimes'] = $starttimes;
$event_shedule_info['endtimes'] = $endtimes;
$event_shedule_info['repeat_type'] = $repeat_type;
$event_shedule_info['repeat_x'] = $repeat_x;
$event_shedule_info['duration_x'] = $duration_x;
$event_shedule_info['repeat_end_type'] = $repeat_end_type;
$event_shedule_info['max_repeat'] = $max_repeat;
$event_shedule_info['repeat_end'] = $repeat_end;
$event_shedule_info['repeat_days'] = $repeat_days;
$event_shedule_info['repeat_weeks'] = $repeat_weeks;
// save post info
$gd_post_info['is_recurring'] = $is_recurring;
$gd_post_info['recurring_dates'] = maybe_serialize( $event_shedule_info );
/* --- save businesses --- */
if ( isset( $request_info['geodir_link_business' ]) ) {
$gd_post_info['geodir_link_business'] = $request_info['geodir_link_business'];
}
// save event dates
geodir_save_event_schedule( $event_shedule_info, $last_post_id ); // to create event-schedule dates
// save post info
geodir_save_post_info($last_post_id, $gd_post_info);
return $last_post_id;
}