REDROOM
PHP 8.2.31
Path:
Logout
Edit File
Size: 8.29 KB
Close
/home/nshryvcy/blissfulnepal.com/wp-content/plugins/tourmaster/room/include/ical-settings.php
Text
Base64
<?php add_action('init', 'tourmaster_generate_ical_content'); if( !function_exists('tourmaster_generate_ical_content') ){ function tourmaster_generate_ical_content(){ if( isset($_GET['tourmaster_room_ical']) && !empty($_GET['room_id']) && is_numeric($_GET['room_id']) ){ global $wpdb; $content = "BEGIN:VCALENDAR\n"; $content .= "VERSION:2.0\n"; $ical_start_time = tourmaster_get_option('room_general', 'ical-start-time', 2); $ical_start_time = date('Y-m-d 00:00:00', strtotime("-{$ical_start_time} month")); $sql = "SELECT * FROM {$wpdb->prefix}tourmaster_room_booking "; $sql .= $wpdb->prepare('WHERE room_id = %d ', $_GET['room_id']); $sql .= $wpdb->prepare('AND start_date > %s', $ical_start_time); $results = $wpdb->get_results($sql); if( !empty($results) ){ foreach( $results as $result ){ $start_time = str_replace('-', '', $result->start_date); $start_time = str_replace(' 00:00:00', '', $start_time); $end_time = str_replace('-', '', $result->end_date); $end_time = str_replace(' 00:00:00', '', $end_time); $content .= "BEGIN:VEVENT\n"; $content .= "UID:" . trim($_GET['room_id']) . $start_time . "\n"; $content .= "DTSTAMP:" . $start_time . "T000000Z\n"; $content .= "DTSTART;VALUE=DATE:" . $start_time . "\n"; $content .= "DTEND;VALUE=DATE:" . $end_time . "\n"; $content .= "SUMMARY:" . get_the_title($_GET['room_id']) . "\n"; $content .= "END:VEVENT\n"; } } $content .= "END:VCALENDAR"; header("Content-type:text/calendar"); header('Content-Disposition: attachment; filename="tourmaster_ical.ics"'); header('Content-Length: '.strlen($content)); header('Connection: close'); echo $content; exit(); } } } if( !class_exists('tourmaster_room_ics') ){ class tourmaster_room_ics{ /* Function is to get all the contents from ics and explode all the datas according to the events and its sections */ function getIcsEventsAsArray($file) { $icsDates = array(); $retDates = array(); $icalString = tourmaster_get_async_icals($file); if( !empty($icalString) ){ $icsData = explode("BEGIN:", $icalString); } /* Iterating the icsData value to make all the start end dates as sub array */ if( !empty($icsData) ){ foreach( $icsData as $key => $value){ $icsDatesMeta[$key] = explode ( "\n", $value ); } } /* Itearting the Ics Meta Value */ if( !empty($icsDatesMeta) ){ foreach( $icsDatesMeta as $key => $value ) { foreach ( $value as $subKey => $subValue ){ $icsDates = $this->getICSDates($key, $subKey, $subValue, $icsDates); } if( !empty($icsDates[$key]['DTSTART']) && !empty($icsDates[$key]['DTEND']) ){ $retDates[] = array( 'check-in' => $icsDates[$key]['DTSTART'], 'check-out' => $icsDates[$key]['DTEND'] ); } } } return $retDates; } /* funcion is to avaid the elements wich is not having the proper start, end and summary informations */ function getICSDates($key, $subKey, $subValue, $icsDates) { if( $key != 0 && $subKey == 0 ){ $icsDates[$key]["BEGIN"] = $subValue; }else{ $subValueArr = explode(":", $subValue, 2); if( isset($subValueArr[1]) ){ if( strpos($subValueArr[0], 'DTSTART') !== false ){ $subValueArr[0] = 'DTSTART'; }else if( strpos($subValueArr[0], 'DTEND') !== false ){ $subValueArr[0] = 'DTEND'; } if( $subValueArr[0] == 'DTSTART' || $subValueArr[0] == 'DTEND' ){ $subValueArr[1] = date('Y-m-d', strtotime($subValueArr[1])); } $icsDates[$key][$subValueArr[0]] = $subValueArr[1]; } } return $icsDates; } } } if( !function_exists('tourmaster_get_async_icals') ){ function tourmaster_get_async_icals($file){ global $tourmaster_room_async_icals; if( !empty($tourmaster_room_async_icals[$file]) ){ return $tourmaster_room_async_icals[$file]; } return array(); } } if( !function_exists('tourmaster_set_async_icals') ){ function tourmaster_set_async_icals($files){ global $tourmaster_room_async_icals; $tourmaster_room_async_icals = array(); $data = array(); foreach( $files as $file ){ $data[] = array( 'url' => $file, 'type' => 'GET' ); } try{ $responses = Requests::request_multiple($data); }catch(Exception $e){ } if( !empty($responses) ){ foreach( $responses as $response ){ if( !empty($response->url) && !empty($response->body) ){ if( !empty($response->history[0]->url) ){ $tourmaster_room_async_icals[$response->history[0]->url] = $response->body; }else{ $tourmaster_room_async_icals[$response->url] = $response->body; } } } } } } if( !function_exists('tourmaster_set_ical') ){ function tourmaster_set_ical( $post_id, $file_url ){ $ical_data = array(); $old_data = get_post_meta($post_id, 'tourmaster_ical_sync_data', true); $ics = new tourmaster_room_ics(); // check if there're multiple files if( strpos($file_url, "\r\n") !== false ){ $files = explode("\r\n", $file_url); }else{ $files = explode("\n", $file_url); } foreach( $files as $file ){ if( !empty($file) ){ $ical_data = array_merge($ical_data, $ics->getIcsEventsAsArray($file)); } } // if the data is new, save it if( !empty($ical_data) && $old_data != $ical_data ){ update_post_meta($post_id, 'tourmaster_ical_sync_data', $ical_data); // list date $ical_date_list = array(); foreach( $ical_data as $ical_date ){ $ical_date_list = array_merge($ical_date_list, tourmaster_split_date($ical_date['check-in'], $ical_date['check-out'])); } $ical_date_list = array_unique($ical_date_list); update_post_meta($post_id, 'tourmaster_ical_sync_date_list', implode(',', $ical_date_list)); tourmaster_room_calculate_date_display($result->post_id, array( 'date-ical' => $ical_date_list )); return true; } return false; } } add_action('init', 'tourmaster_ical_routine'); if( !function_exists('tourmaster_ical_routine') ){ function tourmaster_ical_routine(){ global $wpdb; $current_time = strtotime('now'); $timestamp = get_option('tourmaster_ical_sync_timestamp', 0); $cache_time = intval(tourmaster_get_option('room_general', 'ical-cache-time', 5)) * 60; if( empty($timestamp) || $timestamp + $cache_time < $current_time ){ $sql = "SELECT post_id, meta_value FROM {$wpdb->postmeta} "; $sql .= "WHERE meta_key = 'tourmaster_ical_sync_url' AND "; $sql .= "meta_value IS NOT NULL AND meta_value <> '' "; $results = $wpdb->get_results($sql); if( !empty($results) ){ $files = array(); foreach( $results as $result ){ if( strpos($result->meta_value, "\r\n") !== false ){ $files = array_merge($files, explode("\r\n", trim($result->meta_value))); }else{ $files = array_merge($files, explode("\n", trim($result->meta_value))); } } tourmaster_set_async_icals($files); foreach( $results as $result ){ tourmaster_set_ical($result->post_id, $result->meta_value); } } update_option('tourmaster_ical_sync_timestamp', $current_time); } } // gdlr_hotel_ical_routine }
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 1 × Files: 17
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
pb
DIR
-
drwxr-xr-x
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
authorize.php
11.11 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
booking-bar.php
39.80 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
enquiry-form.php
8.47 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ical-settings.php
8.29 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
mail-util.php
30.10 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
order-util.php
32.42 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
order.php
37.13 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
payment-element.php
81.15 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
paypal.php
9.06 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
review-util.php
15.52 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
room-coupon.php
5.11 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
room-filter.php
2.01 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
room-option.php
47.81 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
room-service.php
4.84 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
room-settings.php
86.03 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
stripe.php
19.74 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
user-page.php
18.43 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).