🗓️

date_time_format( $date_infos ); $this->date_content( $date_infos ); ?>

🗓️

date_content( $date_infos ); ?>
';print_r($date_rule_array);echo ''; ?>
operation_time_slot( $date_infos ); $this->buffer_time( $date_infos ); $this->date_type( $date_infos ); $this->advance_day( $date_infos ); $this->specific_date_settings( $date_infos ); $this->operation_date( $date_infos ); $this->periodic_after( $date_infos ); ?>
special_on_off_dates( $date_infos ); } //=============================// public function date_time_format( $date_infos = [] ): void { $format_array = ABPRF_Layout::array_date_format(); $date_format = $date_infos['date_format'] ?? 'D d M , yy'; $time_format = $date_infos['time_format'] ?? ABPRF_Time_Format; ?>
*
$rule ) { ?>
weekend( $date_infos ); $this->off_dates( $date_infos ); $this->off_date_range( $date_infos ); $this->special_on( $date_infos ); $this->day_wise_time( $date_infos ); ?>
$day ) { ?>
date_item( 'specific_off_dates[]', $specific_date ); } } } ?>
date_item( 'specific_off_dates[]' ); ?>
0 && $specific_date['from'] && $specific_date['to'] ) { $this->off_day_range( $specific_date['from'], $specific_date['to'] ); } } } ?>
off_day_range(); ?>
';print_r($special_dates);echo ''; ?>
special_on_date_item( $specific_date ); } } } ?>
special_on_date_item(); ?>
$day ) { $times = $operation_times[ $key ] ?? []; $start = $times['start'] ?? ''; $end = $times['end'] ?? ''; ?>
specific_date_item( $specific_date ); } } } ?>
specific_date_item(); ?>
isset( $_POST[ $key ] ) ? sanitize_text_field( wp_unslash( $_POST[ $key ] ) ) : $default; $post_array = fn( $key ) => ( isset( $_POST[ $key ] ) && is_array( $_POST[ $key ] ) ) ? array_map( 'sanitize_text_field', wp_unslash( $_POST[ $key ] ) ) : []; $format_date = fn( $date ) => $date ? gmdate( 'Y-m-d', strtotime( $date ) ) : ''; $date_infos['date_type'] = $post_val( 'date_type', 'periodic_date' ); $date_infos['operation_time_start'] = $post_val( 'operation_time_start' ); $date_infos['operation_time_end'] = $post_val( 'operation_time_end' ); $date_infos['time_slot_length'] = $post_val( 'time_slot_length', '60' ); $date_infos['advance_date_number'] = $post_val( 'advance_date_number', '28' ); $date_infos['sale_close_before'] = $post_val( 'sale_close_before' ); $date_infos['sale_close_after'] = $post_val( 'sale_close_after' ); $date_infos['periodic_start_date'] = $format_date( $post_val( 'periodic_start_date' ) ); $date_infos['periodic_end_date'] = $format_date( $post_val( 'periodic_end_date' ) ); $date_infos['periodic_after'] = $post_val( 'periodic_after', '1' ); $date_rule = $post_val( 'date_rule' ); $date_infos['date_rule'] = $post_val( 'date_rule' ); $date_rule_array = $date_rule ? explode( ',', $date_rule ) : []; if ( in_array( 'weekend', $date_rule_array ) ) { $date_infos['weekend'] = $post_val( 'weekend' ); } if ( in_array( 'specific_off_dates', $date_rule_array ) ) { $specific_off_dates = array_filter( $post_array( 'specific_off_dates' ) ); $date_infos['specific_off_dates'] = array_unique( array_map( fn( $d ) => gmdate( 'Y-m-d', strtotime( $d ) ), $specific_off_dates ) ); } if ( in_array( 'off_date_range', $date_rule_array ) ) { $off_schedules = []; $from_dates = $post_array( 'abprf_off_from' ); $to_dates = $post_array( 'abprf_off_to' ); foreach ( $from_dates as $key => $from_date ) { if ( $from_date && ! empty( $to_dates[ $key ] ) ) { $off_schedules[] = [ 'from' => $from_date, 'to' => $to_dates[ $key ] ]; } } $date_infos['off_date_range'] = $off_schedules; } if ( in_array( 'special_on_dates', $date_rule_array ) ) { $special_on_dates = $post_array( 'special_on_dates' ); $on_start = $post_array( 'special_on_time_start' ); $on_end = $post_array( 'special_on_time_end' ); $specific_on = []; foreach ( $special_on_dates as $key => $date ) { if ( $date ) { $specific_on[ $key ] = [ 'date' => $format_date( $date ), 'start' => $on_start[ $key ] ?? '', 'end' => $on_end[ $key ] ?? '' ]; } } $date_infos['special_on_dates'] = $specific_on; } if ( in_array( 'day_wise_time', $date_rule_array ) ) { $time_info = []; foreach ( ABPRF_Layout::week_day() as $key => $day ) { $start = $post_val( $key . '_time_start' ); $end = $post_val( $key . '_time_end' ); if ( $start && $end ) { $time_info[ $key ] = [ 'start' => $start, 'end' => $end ]; } } $date_infos['day_wise_time'] = $time_info; } $specific_dates = $post_array( 'specific_dates' ); $spec_start = $post_array( 'specific_time_start' ); $spec_end = $post_array( 'specific_time_end' ); $specific = []; foreach ( $specific_dates as $key => $date ) { if ( $date ) { $specific[ $key ] = [ 'date' => $format_date( $date ), 'start' => $spec_start[ $key ] ?? '', 'end' => $spec_end[ $key ] ?? '' ]; } } $date_infos['specific_dates'] = $specific; } return $date_infos; } public function save_global_date(): void { if ( ! check_ajax_referer( 'abprf_admin_ajax_nonce', 'nonce', false ) ) { wp_send_json_error( [ 'msg' => __( 'Invalid security token.', 'abp-rentalforge' ) ], 403 ); } if ( ! current_user_can( 'manage_options' ) ) { wp_send_json_error( [ 'msg' => __( 'Insufficient permissions.', 'abp-rentalforge' ) ], 403 ); } $post_val = fn( $key, $default = '' ) => isset( $_POST[ $key ] ) ? sanitize_text_field( wp_unslash( $_POST[ $key ] ) ) : $default; $date_infos = $this->get_date_array(); $date_infos['date_format'] = $post_val( 'date_format' ); $date_infos['time_format'] = $post_val( 'time_format' ); update_option( 'abprf_dates', $date_infos ); ABPRF_Function::update_dates( 'global' ); ABPRF_Function::update_time_slot(); wp_send_json_success( [ 'msg' => __( 'Date Configuration Saved Successfully ! ! ', 'abp-rentalforge' ) ] ); } } new ABPRF_Dates(); }