Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
spawns
/
wp-content
/
plugins
/
eventer
/
admin
:
admin_functions.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php defined('ABSPATH') or die('No script kiddies please!'); include('bookings-details.php'); if (!function_exists('load_custom_wp_admin_scripts')) { /* * load_custom_wp_admin_scripts function * Enqueue the style and js for back end * Variables of strings are used to send them in js file using wp_localize_script function, so that they can be fully translatable */ function load_custom_wp_admin_scripts($hook) { $screen = get_current_screen(); if ('edit.php' != $hook && $screen->post_type != 'eventer' && $hook != 'admin_page_eventer-booking-info') { //return; } $woocommerce_ticketing = eventer_get_settings('eventer_enable_woocommerce_ticketing'); $category_eventer = ''; $google_map_api = eventer_get_settings('google_apikey'); $multiple_days_message = esc_html__('Recurring options will not work if you select event of more than one day/24 hours.', 'eventer'); $primary_button = esc_html__('Primary', 'eventer'); $saving_btn = esc_html__('Saving', 'eventer'); $save_btn = esc_html__('Save', 'eventer'); $remove_btn = esc_html__('Remove', 'eventer'); $time_format = eventer_get_settings('eventer_datepicker_format'); $eventer_id = (isset($_REQUEST['post'])) ? get_post_meta($_REQUEST['post'], 'eventer_primary_term', true) : ''; $plugin_data = get_plugin_data(__FILE__); $plugin_version = $plugin_data['Version']; $shortcode_copy = esc_html__('shortcode copied to clipboard', 'eventer'); wp_enqueue_script('jquery-ui-datepicker'); if (isset($_REQUEST['taxonomy']) == 'eventer-venue') { wp_enqueue_media(); } $coupons_load = ''; if (isset($_REQUEST['taxonomy']) == 'eventer-category' || isset($_REQUEST['page']) == 'eventer_settings_options') { wp_enqueue_script('wp-color-picker'); wp_enqueue_style('wp-color-picker'); $category_eventer = 1; $coupons_load = '1'; } $screen = get_current_screen(); $screen_taxonomy = (property_exists($screen, 'taxonomy')) ? $screen->taxonomy : ''; wp_enqueue_style('eventer_ui_css', '//ajax.googleapis.com/ajax/libs/jqueryui/1.9.0/themes/base/jquery-ui.css', false, "1.9.0", false); wp_enqueue_style('eventer_datetimepicker', EVENTER__PLUGIN_URL . 'css/jquery.simple-dtpicker.css', array(), $plugin_version, 'all'); wp_enqueue_script('eventer_datetimepicker', EVENTER__PLUGIN_URL . 'js/jquery.simple-dtpicker.js', array('jquery-ui-core'), $plugin_version, true); wp_enqueue_script('eventer_ui_plugins', EVENTER__PLUGIN_URL . 'js/jquery-ui.multidatespicker.js', array('jquery-ui-core'), $plugin_version, true); wp_enqueue_script('eventer_admin_gmap_autocomplete', '//maps.googleapis.com/maps/api/js?libraries=places&key=' . $google_map_api); wp_enqueue_script('eventer_admin_scripts', EVENTER__PLUGIN_URL . 'js/admin_scripts.js', array('jquery'), $plugin_version, true); wp_enqueue_script('eventer_admin_checkin', EVENTER__PLUGIN_URL . 'js/admin_checkin.js', array('jquery'), $plugin_version, true); wp_localize_script('eventer_admin_checkin', 'checkin', array('ajax_url' => admin_url('admin-ajax.php'))); wp_localize_script('eventer_admin_scripts', 'dynamicval', array('multiplemsg' => $multiple_days_message, 'ajax_url' => admin_url('admin-ajax.php'), 'venue_nonce' => wp_create_nonce("eventer_make_event_primary_venue_nonce"), 'eventer' => $eventer_id, 'event_cat' => $category_eventer, 'woocommerce_payment' => $woocommerce_ticketing, 'registrant_remove_nonce' => wp_create_nonce("eventer_remove_registrant_nonce"), 'shortcode_copied' => $shortcode_copy, 'primary_btn' => $primary_button, 'gmap_api' => $google_map_api, 'screen_tax' => $screen_taxonomy, 'saving_btn' => $saving_btn, 'save_btn' => $save_btn, 'remove_btn' => $remove_btn, 'time_format' => $time_format, 'load_coupons' => $coupons_load, 'week_start' => get_option('start_of_week'))); wp_enqueue_style('eventer_admin_style', EVENTER__PLUGIN_URL . 'css/admin_style.css', array(), $plugin_version, 'all'); } add_action('admin_enqueue_scripts', 'load_custom_wp_admin_scripts'); } function eventer_store_default_form_settings() { $existing_form_settings = get_option('eventer_forms_data'); if (empty($existing_form_settings)) { $form_settings_val = unserialize('a:1:{s:29:"eventer-default-form-settings";a:5:{s:7:"dynamic";a:5:{s:8:"section5";a:3:{s:4:"type";s:0:"";s:3:"btn";s:7:"enabled";s:6:"fields";a:4:{i:0;a:2:{s:6:"status";s:6:"enable";s:6:"shorts";a:3:{i:0;a:3:{s:6:"column";s:4:"1by3";s:2:"id";s:27:"eventer-0.33826693254757756";s:9:"shortcode";s:171:"[eventer_fields type="text" required="yes" featured_type="" text_row="4" textarea_type="" class="" id="" name="Event title" label="Event title" meta_key="title" param="|"]";}i:1;a:3:{s:6:"column";s:4:"1by3";s:2:"id";s:25:"eventer-0.640654605593687";s:9:"shortcode";s:198:"[eventer_fields type="date" required="yes" featured_type="" text_row="4" textarea_type="" class="" id="" name="Event start date" label="Event start date" meta_key="eventer_event_start_dt" param="|"]";}i:2;a:3:{s:6:"column";s:4:"1by3";s:2:"id";s:26:"eventer-0.4938553863997305";s:9:"shortcode";s:192:"[eventer_fields type="date" required="yes" featured_type="" text_row="4" textarea_type="" class="" id="" name="Event end date" label="Event end date" meta_key="eventer_event_end_dt" param="|"]";}}}i:1;a:2:{s:6:"status";s:6:"enable";s:6:"shorts";a:1:{i:0;a:3:{s:6:"column";s:2:"10";s:2:"id";s:25:"eventer-0.505141878395051";s:9:"shortcode";s:208:"[eventer_fields type="textarea" required="yes" featured_type="" text_row="5" textarea_type="wp" class="" id="eventer-wp-editor" name="Event description" label="Event description" meta_key="content" param="|"]";}}}i:2;a:2:{s:6:"status";s:7:"disable";s:6:"shorts";a:1:{i:0;a:3:{s:6:"column";s:2:"10";s:2:"id";s:25:"eventer-0.761745691922583";s:9:"shortcode";s:171:"[eventer_fields type="featured" required="no" featured_type="wp" text_row="4" textarea_type="" class="" id="" name="Event image" label="Event image" meta_key="" param="|"]";}}}i:3;a:2:{s:6:"status";s:6:"enable";s:6:"shorts";a:1:{i:0;a:3:{s:6:"column";s:2:"10";s:2:"id";s:27:"eventer-0.44703476545334286";s:9:"shortcode";s:169:"[eventer_fields type="featured" required="no" featured_type="" text_row="4" textarea_type="" class="" id="" name="Event image" label="Event image" meta_key="" param="|"]";}}}}}s:8:"section2";a:3:{s:4:"type";s:0:"";s:3:"btn";s:7:"enabled";s:6:"fields";a:1:{i:0;a:2:{s:6:"status";s:6:"enable";s:6:"shorts";a:3:{i:0;a:3:{s:6:"column";s:4:"1by3";s:2:"id";s:26:"eventer-0.5236805438494746";s:9:"shortcode";s:213:"[eventer_fields type="select" required="no" featured_type="" text_row="4" textarea_type="" class="" id="" name="Recurring event" label="Recurring event" meta_key="eventer_event_frequency_type" param="no|No,1|Yes"]";}i:1;a:3:{s:6:"column";s:4:"1by3";s:2:"id";s:26:"eventer-0.7611748863799075";s:9:"shortcode";s:328:"[eventer_fields type="select" required="no" featured_type="" text_row="4" textarea_type="" class="" id="" name="Event recurring" label="Event recurring" meta_key="eventer_event_frequency" param="1|Every day,2|Every second day,3|Every third day,4|Every fourth day,5|Every fifth day,6|Every sixth day,7|Every week,30|Every month"]";}i:2;a:3:{s:6:"column";s:4:"1by3";s:2:"id";s:27:"eventer-0.03241813253593584";s:9:"shortcode";s:212:"[eventer_fields type="number" required="no" featured_type="" text_row="4" textarea_type="" class="" id="" name="Recurring frequency" label="Recurring frequency" meta_key="eventer_event_frequency_count" param="|"]";}}}}}s:8:"section1";a:3:{s:4:"type";s:17:"eventer-organizer";s:3:"btn";s:7:"enabled";s:6:"fields";a:2:{i:0;a:2:{s:6:"status";s:6:"enable";s:6:"shorts";a:2:{i:0;a:3:{s:6:"column";s:1:"5";s:2:"id";s:26:"eventer-0.5579738415141968";s:9:"shortcode";s:210:"[eventer_fields type="text" required="no" featured_type="" text_row="4" textarea_type="" class="eventer_get_saved_data" id="" name="Organizer name" label="Organizer name" meta_key="eventer-organizer" param="|"]";}i:1;a:3:{s:6:"column";s:1:"5";s:2:"id";s:26:"eventer-0.1088470188812577";s:9:"shortcode";s:188:"[eventer_fields type="text" required="no" featured_type="" text_row="4" textarea_type="" class="" id="" name="Organizer email" label="Organizer email" meta_key="organizer_email" param="|"]";}}}i:1;a:2:{s:6:"status";s:6:"enable";s:6:"shorts";a:2:{i:0;a:3:{s:6:"column";s:1:"5";s:2:"id";s:27:"eventer-0.49224397744948345";s:9:"shortcode";s:192:"[eventer_fields type="text" required="no" featured_type="" text_row="4" textarea_type="" class="" id="" name="Oganizer website" label="Oganizer website" meta_key="organizer_website" param="|"]";}i:1;a:3:{s:6:"column";s:1:"5";s:2:"id";s:27:"eventer-0.41708263450628547";s:9:"shortcode";s:217:"[eventer_fields type="number" required="no" featured_type="" text_row="4" textarea_type="" class="" id="" name="Organizer phone" label="Organizer phone" meta_key="organizer_phone" meta_key="organizer_phone" param="|"]";}}}}}s:8:"section4";a:3:{s:4:"type";s:13:"eventer-venue";s:3:"btn";s:7:"enabled";s:6:"fields";a:1:{i:0;a:2:{s:6:"status";s:6:"enable";s:6:"shorts";a:2:{i:0;a:3:{s:6:"column";s:1:"5";s:2:"id";s:26:"eventer-0.6507914953184427";s:9:"shortcode";s:176:"[eventer_fields type="text" required="no" featured_type="" text_row="4" textarea_type="" class="" id="" name="Venue name" label="Venue name" meta_key="eventer-venue" param="|"]";}i:1;a:3:{s:6:"column";s:1:"5";s:2:"id";s:26:"eventer-0.3573525663784346";s:9:"shortcode";s:182:"[eventer_fields type="text" required="no" featured_type="" text_row="4" textarea_type="" class="" id="" name="Venue address" label="Venue address" meta_key="venue_address" param="|"]";}}}}}s:8:"section3";a:3:{s:4:"type";s:7:"tickets";s:3:"btn";s:7:"enabled";s:6:"fields";a:4:{i:0;a:2:{s:6:"status";s:6:"enable";s:6:"shorts";a:3:{i:0;a:3:{s:6:"column";s:4:"1by3";s:2:"id";s:28:"eventer-0.024479173211175653";s:9:"shortcode";s:257:"[eventer_fields type="select" required="no" featured_type="" text_row="4" textarea_type="" class="" id="" name="Registration" label="Registration" meta_key="eventer_event_registration_swtich" meta_key="eventer_event_registration_swtich" param="no|No,1|Yes"]";}i:1;a:3:{s:6:"column";s:4:"1by3";s:2:"id";s:26:"eventer-0.6542816918697981";s:9:"shortcode";s:200:"[eventer_fields type="text" required="no" featured_type="" text_row="4" textarea_type="" class="" id="" name="Custom URL" label="Custom URL" meta_key="eventer_event_custom_registration_url" param="|"]";}i:2;a:3:{s:6:"column";s:4:"1by3";s:2:"id";s:26:"eventer-0.6991851641940596";s:9:"shortcode";s:234:"[eventer_fields type="select" required="no" featured_type="" text_row="4" textarea_type="" class="" id="" name="Custom URL Target" label="Custom URL Target" meta_key="eventer_event_registration_target" param="_self|Self,_blank|Blank"]";}}}i:1;a:2:{s:6:"status";s:6:"enable";s:6:"shorts";a:3:{i:0;a:3:{s:6:"column";s:4:"1by3";s:2:"id";s:26:"eventer-0.4266792564731865";s:9:"shortcode";s:207:"[eventer_fields type="text" required="no" featured_type="" text_row="4" textarea_type="" class="eventer_get_saved_data" id="" name="Ticket name" label="Ticket name" meta_key="eventer_ticket_name0" param="|"]";}i:1;a:3:{s:6:"column";s:4:"1by3";s:2:"id";s:26:"eventer-0.4884638474764328";s:9:"shortcode";s:197:"[eventer_fields type="text" required="no" featured_type="" text_row="4" textarea_type="" class="" id="" name="Ticket Quantity" label="Ticket Quantity" meta_key="eventer_ticket_quantity0" param="|"]";}i:2;a:3:{s:6:"column";s:4:"1by3";s:2:"id";s:27:"eventer-0.08380307243794716";s:9:"shortcode";s:198:"[eventer_fields type="text" required="no" featured_type="" text_row="4" textarea_type="" class="" id="" name="Ticket price in $" label="Ticket price in $" meta_key="eventer_ticket_price0" param="|"]";}}}i:2;a:2:{s:6:"status";s:6:"enable";s:6:"shorts";a:3:{i:0;a:3:{s:6:"column";s:4:"1by3";s:2:"id";s:26:"eventer-0.7664874155298499";s:9:"shortcode";s:185:"[eventer_fields type="text" required="no" featured_type="" text_row="4" textarea_type="" class="" id="" name="Ticket name" label="Ticket name" meta_key="eventer_ticket_name1" param="|"]";}i:1;a:3:{s:6:"column";s:4:"1by3";s:2:"id";s:27:"eventer-0.05912964997083725";s:9:"shortcode";s:197:"[eventer_fields type="text" required="no" featured_type="" text_row="4" textarea_type="" class="" id="" name="Ticket Quantity" label="Ticket Quantity" meta_key="eventer_ticket_quantity1" param="|"]";}i:2;a:3:{s:6:"column";s:4:"1by3";s:2:"id";s:26:"eventer-0.8276879316332272";s:9:"shortcode";s:198:"[eventer_fields type="text" required="no" featured_type="" text_row="4" textarea_type="" class="" id="" name="Ticket price in $" label="Ticket price in $" meta_key="eventer_ticket_price1" param="|"]";}}}i:3;a:2:{s:6:"status";s:6:"enable";s:6:"shorts";a:3:{i:0;a:3:{s:6:"column";s:4:"1by3";s:2:"id";s:26:"eventer-0.2155069921141367";s:9:"shortcode";s:185:"[eventer_fields type="text" required="no" featured_type="" text_row="4" textarea_type="" class="" id="" name="Ticket name" label="Ticket name" meta_key="eventer_ticket_name2" param="|"]";}i:1;a:3:{s:6:"column";s:4:"1by3";s:2:"id";s:27:"eventer-0.20954417053933816";s:9:"shortcode";s:197:"[eventer_fields type="text" required="no" featured_type="" text_row="4" textarea_type="" class="" id="" name="Ticket Quantity" label="Ticket Quantity" meta_key="eventer_ticket_quantity2" param="|"]";}i:2;a:3:{s:6:"column";s:4:"1by3";s:2:"id";s:26:"eventer-0.6886590932765758";s:9:"shortcode";s:198:"[eventer_fields type="text" required="no" featured_type="" text_row="4" textarea_type="" class="" id="" name="Ticket price in $" label="Ticket price in $" meta_key="eventer_ticket_price2" param="|"]";}}}}}}s:8:"sections";a:6:{i:0;s:15:"section-message";i:1;s:8:"section5";i:2;s:8:"section2";i:3;s:8:"section1";i:4;s:8:"section4";i:5;s:8:"section3";}s:6:"number";s:1:"5";s:6:"status";s:5:"draft";s:4:"name";s:0:"";}}'); update_option('eventer_forms_data', $form_settings_val); } } add_action('plugins_loaded', 'eventer_store_default_form_settings'); if (!function_exists('eventer_get_post_language')) { /* * eventer_get_post_language function * Get language of post while using WPML plugin */ function eventer_get_post_language($post_id) { if (class_exists('SitePress')) { global $wpdb; $query = $wpdb->prepare('SELECT language_code FROM ' . $wpdb->prefix . 'icl_translations WHERE element_id="%d"', $post_id); $query_exec = $wpdb->get_row($query); if (!empty($query_exec)) { return $query_exec->language_code; } } } //add_action('init', 'eventer_get_post_language'); } if (!function_exists('eventer_add_form_fields_venue')) { /* * eventer_add_form_fields_venue function * Make term description field to WYSIWYG, if yoast seo plugin activated then this function will not work */ function eventer_add_form_fields_venue($term, $taxonomy) { ?> <table class="form-table"> <tbody> <tr valign="top" class="form-field"> <th scope="row"> <label><?php esc_html_e('Description', 'eventer'); ?></label> </th> <td> <?php wp_editor(html_entity_decode($term->description), 'description', array('media_buttons' => true)); ?> <script> jQuery(window).ready(function() { jQuery('label[for=description]').parent().parent().remove(); }); </script> </td> </tr> </tbody> </table> <?php } if (is_admin() && function_exists('is_plugin_active') && !is_plugin_active('wordpress-seo/wp-seo.php')) { $taxonomies = array('eventer-venue', 'eventer-category', 'eventer-organizer', 'eventer-tag'); foreach ($taxonomies as $taxonomy) { add_action("{$taxonomy}_edit_form_fields", 'eventer_add_form_fields_venue', 10, 2); } remove_filter('pre_term_description', 'wp_filter_kses'); remove_filter('term_description', 'wp_kses_data'); } } function eventer_date_sort($a, $b) { return strtotime($a) - strtotime($b); } if (!function_exists('eventer_find_non_recurring_events')) { /* * eventer_find_non_recurring_events function * This function create array of all dates of recurring events and save them in database, so that we can easily get the all date of event by ID only. * This is the case if user do not select any recurring option for event */ function eventer_find_non_recurring_events($ID) { $ID = eventer_wpml_original_post_id($ID); $update_date = array(); $show_event_until = eventer_get_settings('countdown_timer'); $eventer_start_dt = get_post_meta($ID, 'eventer_event_start_dt', true); $eventer_end_dt = get_post_meta($ID, 'eventer_event_end_dt', true); $eventer_start_dt_str = strtotime($eventer_start_dt); $eventer_end_dt_str = strtotime($eventer_end_dt); $hour_diff = (intval($eventer_end_dt_str) - intval($eventer_end_dt_str)); $eventer_dynamic_include = get_post_meta($ID, 'eventer_event_multiple_dt_inc', true); $eventer_dynamic_include_get = array_map('trim', explode(',', $eventer_dynamic_include)); $eventer_dynamic_include_get = array_filter($eventer_dynamic_include_get); $count_date_diff = eventer_dateDiff(date('Y-m-d', $eventer_start_dt_str), date('Y-m-d', $eventer_end_dt_str)); $eventer_multi_date = (!empty(get_option('eventer_multi_day_event'))) ? get_option('eventer_multi_day_event') : array(); if (date_i18n('Y-m-d', $eventer_start_dt_str) == date_i18n('Y-m-d', $eventer_end_dt_str)) { $actual_date = date_i18n('Y-m-d', $eventer_start_dt_str); $update_date = (!empty($eventer_dynamic_include_get)) ? array_merge($eventer_dynamic_include_get, array($actual_date)) : array($actual_date); if (in_array($ID, $eventer_multi_date)) { $updated_multi = array_diff($eventer_multi_date, array($ID)); update_option('eventer_multi_day_event', $updated_multi); } } else { $update_date[] = date_i18n('Y-m-d', $eventer_start_dt_str); if (!empty($eventer_dynamic_include_get)) { $update_date = array_merge($update_date, $eventer_dynamic_include_get); } $updating_multi_ids = array_merge($eventer_multi_date, array($ID)); $updating_multi_ids = array_unique($updating_multi_ids); update_option('eventer_multi_day_event', $updating_multi_ids); } return $update_date; } } if (!function_exists('eventer_find_first_recurring_events')) { /* * eventer_find_first_recurring_events function * This function create array of all dates of recurring events and save them in database, so that we can easily get the all date of event by ID only. * This is the case if user select fixed date option for event frequency */ function eventer_find_first_recurring_events($ID) { $ID = eventer_wpml_original_post_id($ID); $show_event_until = eventer_get_settings('countdown_timer'); $eventer_start_dt = get_post_meta($ID, 'eventer_event_start_dt', true); $eventer_end_dt = get_post_meta($ID, 'eventer_event_end_dt', true); $eventer_start_dt_str = strtotime($eventer_start_dt); $eventer_end_dt_str = strtotime($eventer_end_dt); $eventer_start_time = date('G:i', $eventer_start_dt_str); $eventer_end_time = date('G:i', $eventer_end_dt_str); $eventer_time_set = ($show_event_until == 1) ? $eventer_start_time : $eventer_end_time; $eventer_default_set = ($show_event_until == 1) ? $eventer_start_dt_str : $eventer_end_dt_str; //First Selection Fixed Date EveryDay, EveryWeek, EveryMonth $eventer_frequency = get_post_meta($ID, 'eventer_event_frequency', true); $eventer_dynamic_include = get_post_meta($ID, 'eventer_event_multiple_dt_inc', true) . ','; $eventer_dynamic_include_get = array_map('trim', explode(',', $eventer_dynamic_include)); $eventer_dynamic_include_get = array_filter($eventer_dynamic_include_get); $eventer_frequency_count = get_post_meta($ID, 'eventer_event_frequency_count', true); $eventer_dynamic_exclude = get_post_meta($ID, 'eventer_event_multiple_dt_exc', true) . ','; $eventer_dynamic_exclude_get = array_map('trim', explode(',', $eventer_dynamic_exclude)); $eventer_dynamic_exclude_get = array_filter($eventer_dynamic_exclude_get); $count_date_diff = eventer_dateDiff(date('Y-m-d', $eventer_start_dt_str), date('Y-m-d', $eventer_end_dt_str)); $update_date = array(); $update_date[] = date('Y-m-d', $eventer_start_dt_str); //if($count_date_diff<=0) //{ if ($eventer_frequency_count > 0) { $eventer_frequency_val = ($eventer_frequency == 365) ? 'year' : (($eventer_frequency == 30) ? 'month' : 'days'); $eventer_frequency = ($eventer_frequency == 365) ? 1 : (($eventer_frequency == 30) ? 1 : $eventer_frequency); for ($i = 0; $i < $eventer_frequency_count; $i++) { $event_new_date = strtotime("+" . $eventer_frequency . " " . $eventer_frequency_val, $eventer_start_dt_str); $event_new_date = date('Y-m-d', $event_new_date); $update_date[] = $event_new_date; $eventer_start_dt_str = strtotime($event_new_date); } } //} $update_date_new = array_merge($update_date, $eventer_dynamic_include_get); $update_date_unique = array_unique($update_date_new); $updated_date_get = array_diff($update_date_unique, $eventer_dynamic_exclude_get); usort($updated_date_get, "eventer_date_sort"); $eventer_multi_date = (!empty(get_option('eventer_multi_day_event'))) ? get_option('eventer_multi_day_event') : array(); if (in_array($ID, $eventer_multi_date)) { $updated_multi = array_diff($eventer_multi_date, array($ID)); update_option('eventer_multi_day_event', $updated_multi); } return $updated_date_get; } } if (!function_exists('eventer_find_second_recurring_events')) { /* * eventer_find_second_recurring_events function * This function create array of all dates of recurring events and save them in database, so that we can easily get the all date of event by ID only. * This is the case if user select week day option for event frequency */ function eventer_find_second_recurring_events($ID) { $ID = eventer_wpml_original_post_id($ID); $all_events = array(); $show_event_until = eventer_get_settings('countdown_timer'); $eventer_start_dt = get_post_meta($ID, 'eventer_event_start_dt', true); $eventer_end_dt = get_post_meta($ID, 'eventer_event_end_dt', true); $eventer_start_dt_str = strtotime($eventer_start_dt); $eventer_end_dt_str = strtotime($eventer_end_dt); $eventer_start_time = date_i18n('G:i', $eventer_start_dt_str); $eventer_end_time = date_i18n('G:i', $eventer_end_dt_str); $eventer_time_set = ($show_event_until == 1) ? $eventer_start_time : $eventer_end_time; $eventer_default_set = ($show_event_until == 1) ? $eventer_start_dt_str : $eventer_end_dt_str; $event_weekly = get_post_meta($ID, 'eventer_event_weekly_repeat', true); //Second Selection Week Day First Sunday of First Week ETC $eventer_week_number = get_post_meta($ID, 'eventer_event_day_month', true); $eventer_week_day = get_post_meta($ID, 'eventer_event_week_day', true); $eventer_dynamic_include = get_post_meta($ID, 'eventer_event_multiple_dt_inc', true) . ','; $eventer_dynamic_include_get = array_map('trim', explode(',', $eventer_dynamic_include)); $eventer_dynamic_include_get = array_filter($eventer_dynamic_include_get); $eventer_frequency_count = get_post_meta($ID, 'eventer_event_frequency_count', true); $eventer_dynamic_exclude = get_post_meta($ID, 'eventer_event_multiple_dt_exc', true) . ','; $eventer_dynamic_exclude_get = array_map('trim', explode(',', $eventer_dynamic_exclude)); $eventer_dynamic_exclude_get = array_filter($eventer_dynamic_exclude_get); $count_date_diff = eventer_dateDiff(date('Y-m-d', $eventer_start_dt_str), date('Y-m-d', $eventer_end_dt_str)); $get_updated_date = $eventer_start_dt_str; if ($event_weekly === 'on') { foreach ($eventer_week_number as $week_number) { switch ($week_number) { case 'first': $daysbyweek = 7; break; case 'second': $daysbyweek = 14; break; case 'third': $daysbyweek = 21; break; case 'fourth': $daysbyweek = 28; break; default: $daysbyweek = 35; break; } $eventer_frequency_val = 'days'; $event_new_date_original = date_i18n('Y-m-d', $eventer_start_dt_str); for ($i = 1; $i <= $eventer_frequency_count; $i++) { $extent_for = $daysbyweek * $i; $event_new_date_get = date_i18n('Y-m-d', strtotime($event_new_date_original . ' + ' . $extent_for . ' ' . $eventer_frequency_val)); foreach ($eventer_week_day as $week_day) { $day_num = date('N', strtotime($week_day)); $dayofweek = date('w', strtotime($event_new_date_get)); $event_new_date = date('Y-m-d', strtotime(($day_num - $dayofweek) . ' day', strtotime($event_new_date_get))); $all_events[] = $event_new_date; } } } } else { //$all_events[] = date_i18n('Y-m-d', $eventer_start_dt_str); for ($i = 0; $i < $eventer_frequency_count; $i++) { $eventDate = strtotime(date_i18n('Y-m-01', $get_updated_date)); $event_start_date_next = strtotime("+" . $i . " month", $eventDate); $next_month = date('F', $event_start_date_next); $next_event_year = date_i18n('Y', $event_start_date_next); $start_date_time = date_i18n('G:i', $get_updated_date); foreach ($eventer_week_number as $week_number) { foreach ($eventer_week_day as $week_day) { $all_events_add = date('Y-m-d', strtotime($week_number . ' ' . $week_day . ' of ' . $next_month . ' ' . $next_event_year)); $all_events[] = $all_events_add; } } } } $update_date_new = array_merge($all_events, $eventer_dynamic_include_get); $update_date_unique = array_unique($update_date_new); $updated_date_get = array_diff($update_date_unique, $eventer_dynamic_exclude_get); usort($updated_date_get, "eventer_date_sort"); $eventer_multi_date = (!empty(get_option('eventer_multi_day_event'))) ? get_option('eventer_multi_day_event') : array(); if (in_array($ID, $eventer_multi_date)) { $updated_multi = array_diff($eventer_multi_date, array($ID)); update_option('eventer_multi_day_event', $updated_multi); } return $updated_date_get; } } if (!function_exists('eventer_date_updated')) { /* * eventer_find_second_recurring_events function * This function create array of all dates of recurring events and save them in database, so that we can easily get the all date of event by ID only. * This is the case if user select week day option for event frequency */ function eventer_date_updated($post_id) { if (get_post_type($post_id) != 'eventer') return; $eventer_frequency_type = get_post_meta($post_id, 'eventer_event_frequency_type', true); $all_day = get_post_meta($post_id, 'eventer_event_all_day', true); $st_date = get_post_meta($post_id, 'eventer_event_start_dt', true); $en_date = get_post_meta($post_id, 'eventer_event_end_dt', true); if ($all_day && $en_date < $st_date) { update_post_meta($post_id, 'eventer_event_end_dt', $st_date); } update_option('eventer_saved_show_until', ''); $update_all_date = ''; $site_lang = EVENTER__LANGUAGE_CODE; $polylang_lang = (function_exists('pll_get_post_language')) ? pll_get_post_language($post_id) : ''; $site_lang = ($polylang_lang) ? $polylang_lang : $site_lang; update_option($site_lang . '_eventer_future_data_wp', array()); update_option($site_lang . '_eventer_future_data_formatted_wp', array()); $eventer_stored = get_option($site_lang . '_eventer_stored'); $new_eventer_save[$post_id] = get_the_title($post_id); $merge_eventer_stored = array_merge($eventer_stored, $new_eventer_save); update_option($site_lang . '_eventer_stored', $merge_eventer_stored); switch ($eventer_frequency_type) { case 'no': $update_all_date = eventer_find_non_recurring_events($post_id); update_post_meta($post_id, 'eventer_all_dates', $update_all_date); break; case '1': $update_all_date = eventer_find_first_recurring_events($post_id); update_post_meta($post_id, 'eventer_all_dates', $update_all_date); break; case '2': $update_all_date = eventer_find_second_recurring_events($post_id); update_post_meta($post_id, 'eventer_all_dates', $update_all_date); break; default: $update_all_date = eventer_find_non_recurring_events($post_id); update_post_meta($post_id, 'eventer_all_dates', $update_all_date); } } } if (!function_exists('eventer_actioned_post')) { /* * eventer_actioned_post function * This function remove all recurring date from database if trash action trigerred */ function eventer_actioned_post($post_id) { if (get_post_type($post_id) != 'eventer') return; update_post_meta($post_id, 'eventer_all_dates', ''); $eventer_multi_date = (!empty(get_option('eventer_multi_day_event'))) ? get_option('eventer_multi_day_event') : array(); if (in_array($post_id, $eventer_multi_date)) { $eventer_multi_date = array_diff($eventer_multi_date, array($post_id)); $updating_multi_ids = array_unique($eventer_multi_date); update_option('eventer_multi_day_event', $updating_multi_ids); } } add_action('save_post', 'eventer_date_updated', 99, 2); add_action('edit_post', 'eventer_date_updated', 99, 2); add_action('publish_eventer', 'eventer_date_updated', 999, 2); add_action('trashed_post', 'eventer_actioned_post', 10, 2); add_action('untrash_post', 'eventer_date_updated', 10, 2); add_action('eventer_create_action_rest_api', 'eventer_date_updated', 10, 1); } function eventer_get_eventer_list() { $event_list = array('' => esc_html__('Next Future Event', 'eventer')); $args = array('post_type' => 'eventer', 'posts_per_page' => -1); $eventer_list = new WP_Query($args); if ($eventer_list->have_posts()) : while ($eventer_list->have_posts()) : $eventer_list->the_post(); $event_list[get_the_ID()] = get_the_title(); endwhile; endif; wp_reset_postdata(); return $event_list; } if (!function_exists('eventer_get_terms')) { /* * eventer_get_terms function * This function returns all terms of given taxonomy */ function eventer_get_terms($taxonomy = '') { if ($taxonomy == '') return; $event_terms = array('' => esc_html__('All', 'eventer')); $term_args = get_terms($taxonomy); if (!is_wp_error($term_args) && !empty($term_args)) { foreach ($term_args as $term) { $event_terms[$term->term_id] = $term->name; } } return $event_terms; } } if (!function_exists('eventer_make_event_primary_venue')) { /* * eventer_make_event_primary_venue function * This function make venue primary if selected multiple for event */ function eventer_make_event_primary_venue() { $status = ''; if (!wp_verify_nonce($_REQUEST['nonce'], "eventer_make_event_primary_venue_nonce")) { exit(); } $eventer_id = $_REQUEST['post_id']; $term_id = $_REQUEST['term']; $uncheck = $_REQUEST['uncheck']; $terms = explode("-", $term_id); if (defined('DOING_AJAX') && DOING_AJAX) { $old_status = get_post_meta($eventer_id, 'eventer_primary_term', true); if ($old_status == $terms[2] && $uncheck == '1') { $status = update_post_meta($eventer_id, 'eventer_primary_term', ''); echo 0; } elseif ($uncheck != '1') { $status = update_post_meta($eventer_id, 'eventer_primary_term', $terms[2]); echo 1; } echo 'eventer-venue-' . get_post_meta($eventer_id, 'eventer_primary_term', true); die(); } else { exit(); } } add_action('wp_ajax_eventer_make_event_primary_venue', 'eventer_make_event_primary_venue'); } if (!function_exists('eventer_update_registrant_status')) { /* * eventer_update_registrant_status function * This function update the status of registrant payment */ function eventer_update_registrant_status() { $nonce = (isset($_REQUEST['nonce'])) ? $_REQUEST['nonce'] : ''; if (!wp_verify_nonce($nonce, 'eventer_update_registrant_status')) { wp_die(); } $registrant_id = (isset($_REQUEST['id'])) ? $_REQUEST['id'] : ''; $registrants = eventer_get_registrant_details('id', $registrant_id); $status = (isset($_REQUEST['status'])) ? $_REQUEST['status'] : 'woo'; if ($status == "woo") { echo apply_filters('eventer_status_changed_completed', $registrants, 'admin'); wp_die(); } $user_system = unserialize($registrants->user_system); $user_system['email_post'] = "1"; eventer_update_registrant_details(array('status' => $status), $registrant_id, array("%s", "%s")); if ($status == "completed") { $new_user_system_restore = (isset($user_system['restore'])) ? $user_system['restore'] : ''; //if ($new_user_system_restore == 1) { $tickets = $registrants->tickets; $tickets = unserialize($tickets); $time_slot = (isset($user_system['time_slot']) && $user_system['time_slot'] != '') ? $user_system['time_slot'] : '00:00:00'; $ticket_date = $registrants->eventer_date . ' ' . $time_slot; if (!empty($tickets)) { $new_tickets = []; foreach ($tickets as $ticket_set) { $this_ticket = $ticket_set; $this_ticket['restored'] = '0'; $new_tickets[] = $this_ticket; $tickets_id = $ticket_set['id']; $total_tickets = $ticket_set['number']; if (isset($ticket_set['restored']) && $ticket_set['restored'] == '1') { eventer_update_date_wise_bookings_table($registrants->eventer, $ticket_date, array(array('id' => $tickets_id, 'number' => $total_tickets)), 3, 1); } } global $wpdb; $registration_table = $wpdb->prefix . "eventer_registrant"; $wpdb->update($registration_table, array('tickets' => serialize($new_tickets)), ['id' => $registrant_id], array('%s'), array('%d')); } //} $user_system['restore'] = 0; //$new_user_system = serialize($user_system); eventer_pass_email_registration($registrant_id, 4); //eventer_update_registrant_details(array('user_system' => $new_user_system), $registrant_id, array("%s", "%s")); echo apply_filters('eventer_status_changed_completed', $registrants, 'admin'); } else { $tickets = $registrants->tickets; $tickets = unserialize($tickets); $restore_status = (isset($user_system['restore'])) ? $user_system['restore'] : ''; $time_slot = (isset($user_system['time_slot']) && $user_system['time_slot'] != '') ? $user_system['time_slot'] : '00:00:00'; $ticket_date = $registrants->eventer_date . ' ' . $time_slot; if (!empty($tickets)) { $new_tickets = []; foreach ($tickets as $ticket_set) { $this_ticket = $ticket_set; $this_ticket['restored'] = '1'; $new_tickets[] = $this_ticket; $tickets_id = $ticket_set['id']; $user_system['restore'] = 1; if (isset($ticket_set['restored']) && $ticket_set['restored'] == '1') continue; //$restore_tickets = serialize($user_system); //eventer_update_registrant_details(array('user_system' => $restore_tickets), $registrant_id, array("%s", "%s")); $total_tickets = $ticket_set['number']; if ($total_tickets <= 0 || $restore_status == 1) continue; eventer_update_date_wise_bookings_table($registrants->eventer, $ticket_date, array(array('id' => $tickets_id, 'number' => $total_tickets)), 3, 2); } global $wpdb; $registration_table = $wpdb->prefix . "eventer_registrant"; $wpdb->update($registration_table, array('tickets' => serialize($new_tickets)), ['id' => $registrant_id], array('%s'), array('%d')); } } echo 'completed'; wp_die(); } add_action('wp_ajax_eventer_update_registrant_status', 'eventer_update_registrant_status'); } if (!function_exists('eventer_send_tickets_again')) { /* * eventer_update_registrant_status function * This function update the status of registrant payment */ function eventer_send_tickets_again() { $nonce = (isset($_REQUEST['nonce'])) ? $_REQUEST['nonce'] : ''; if (!wp_verify_nonce($nonce, 'eventer_send_tickets_again')) { wp_die(); } $registrant_id = (isset($_REQUEST['id'])) ? $_REQUEST['id'] : ''; $registrants = eventer_get_registrant_details('id', $registrant_id); echo apply_filters('eventer_status_changed_completed', $registrants, 'admin'); wp_die(); } add_action('wp_ajax_eventer_send_tickets_again', 'eventer_send_tickets_again'); } if (!function_exists('eventer_remove_registrant')) { /* * eventer_remove_registrant function * This function removes entry of registrant from database, whenever user click remove button from dashboard bookings section */ function eventer_remove_registrant() { if (!wp_verify_nonce($_REQUEST['nonce'], "eventer_remove_registrant_nonce")) { exit(); } $reg_id = $_REQUEST['reg_id']; $reg_email = $_REQUEST['reg_email']; $new_already_booked = array(); if ($reg_id != '' && $reg_email != '') { global $wpdb; $table_name = $wpdb->prefix . "eventer_registrant"; $reg_details = $wpdb->get_row("SELECT * FROM $table_name WHERE id = $reg_id"); if ($reg_details) { $user_system = unserialize($reg_details->user_system); $tickets = $reg_details->tickets; $tickets = unserialize($tickets); $restore_status = (isset($user_system['restore'])) ? $user_system['restore'] : ''; $time_slot = (isset($user_system['time_slot']) && $user_system['time_slot'] != '') ? $user_system['time_slot'] : '00:00:00'; $ticket_date = $reg_details->eventer_date . ' ' . $time_slot; if (!empty($tickets)) { foreach ($tickets as $ticket_set) { $tickets_id = $ticket_set['id']; $total_tickets = $ticket_set['number']; if (($total_tickets > 0 && isset($ticket_set['restored']) && $ticket_set['restored'] == '0') || ($total_tickets > 0 && !isset($ticket_set['restored']))) { eventer_update_date_wise_bookings_table($reg_details->eventer, $ticket_date, array(array('id' => $tickets_id, 'number' => $total_tickets)), 3, 2); } } } } $wpdb->delete($table_name, array('id' => $reg_id, 'email' => $reg_email), array('%d', '%s')); echo "deleted"; } die(); } add_action('wp_ajax_eventer_remove_registrant', 'eventer_remove_registrant'); } //add_action('init', 'newPrimary'); function newPrimary() { global $wpdb; $table_name = $wpdb->prefix . "eventer_registrant"; $wpdb->query("ALTER TABLE {$table_name} AUTO_INCREMENT = 20000;"); } if (!function_exists('eventer_export_bookings_csv')) { /* * eventer_export_bookings_csv function * This function export registrant details to csv file */ add_action('wp_ajax_eventer_export_bookings_csv', 'eventer_export_bookings_csv'); function eventer_export_bookings_csv() { global $wpdb; $booking_status = (isset($_REQUEST['status'])) ? $_REQUEST['status'] : ''; $specific_event = (isset($_REQUEST['eventer'])) ? $_REQUEST['eventer'] : ''; $where = ""; if ($booking_status != '' && $specific_event != '') { $where = "WHERE status = '$booking_status' AND eventer = $specific_event"; } elseif ($booking_status != '' && $specific_event == '') { $where = "WHERE status = '$booking_status'"; } elseif ($booking_status == '' && $specific_event != '') { $where = "WHERE eventer = '$specific_event'"; } $wpdb->show_errors(); $table_name = $wpdb->prefix . "eventer_registrant"; $file = 'eventer_booking_csv'; $export_query = $wpdb->get_results("SELECT * FROM $table_name $where", ARRAY_A); if (!$export_query) { $Error = $wpdb->print_error(); die("The following error was found: $Error"); } else { $csv_fields = array(); $csv_fields[] = 'Registrant ID'; $csv_fields[] = 'Eventer ID'; $csv_fields[] = 'Registration Time'; $csv_fields[] = 'Eventer Date'; $csv_fields[] = 'Transaction ID'; $csv_fields[] = 'Registrant User Name'; $csv_fields[] = 'Registrant Email'; $csv_fields[] = 'Payment Mode'; $csv_fields[] = 'Payment Status'; $csv_fields[] = 'Amount'; $csv_fields[] = 'User Details'; $csv_fields[] = 'Tickets'; $csv_fields[] = 'User ID'; $csv_fields[] = 'Payment Details'; $csv_fields[] = 'User Details'; $output_filename = $file . "_" . date_i18n("Y-m-d_H-i-s") . ".csv"; $output_handle = @fopen('php://output', 'w'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Content-Description: File Transfer'); header('Content-type: text/csv'); header('Content-Disposition: attachment; filename=' . $output_filename); header('Expires: 0'); header('Pragma: public'); fputcsv($output_handle, $csv_fields); foreach ($export_query as $Result) { $sb = array(); foreach ($Result as $key => $value) { $new_data = @unserialize($value); $show_data = ($new_data !== false) ? unserialize($value) : $value; if (is_array($show_data) && $key == 'user_details') { $user_details = ''; foreach ($show_data as $data) { $field_val = (isset($data['value'])) ? $data['value'] : ''; $field_name = (isset($data['name'])) ? $data['name'] : ''; $user_details .= ($field_val != '') ? '{' . $field_name . ': ' . $field_val . '}' : ''; } $show_data = $user_details; } elseif (is_array($show_data) && $key == 'user_system') { $user_tickets = ''; foreach ($show_data as $key => $value) { if ($key == 'tickets') { foreach ($value as $nvalue) { foreach ($nvalue as $new_key => $new_val) { $new_val = ($new_key == 'date') ? date_i18n('Y-m-d', $new_val) : $new_val; $new_val = ($new_key == 'event') ? get_the_title($new_val) : $new_val; $user_tickets .= '{' . $new_key . ': ' . $new_val . '}'; } } } if ($key == 'services') { foreach ($value as $nvalue) { $user_tickets .= '{' . $nvalue['name'] . '=>' . $nvalue['value'] . '}'; } } } $show_data = $user_tickets; } elseif (is_array($show_data) && $key == 'tickets') { $user_tickets = ''; foreach ($show_data as $data) { $tickets_count = (isset($data['number']) && $data['number'] != '') ? $data['number'] : 0; $tickets_name = (isset($data['name']) && $data['name'] != '') ? $data['name'] : 0; $user_tickets .= ($tickets_count != 0) ? '{' . $tickets_name . ': ' . $tickets_count . '}' : ''; } $show_data = $user_tickets; } elseif (is_array($show_data) && $key == 'paypal_details') { $payment_details = ''; foreach ($show_data as $key => $value) { $payment_details .= '{' . $key . ': ' . $value . '}'; } $show_data = $payment_details; } $sb[$key] = $show_data; } $leadArray = $sb; fputcsv($output_handle, $leadArray); } fclose($output_handle); } die(); } } if (!function_exists('manage_eventer_posts_columns')) { /* * manage_eventer_posts_columns function * Create column in eventer post type for event start and end date */ add_filter('manage_edit-eventer_sortable_columns', 'eventer_set_eventer_column_label'); add_filter('manage_eventer_posts_columns', 'eventer_set_eventer_column_label'); function eventer_set_eventer_column_label($columns) { $columns['edate'] = __('EDate', 'eventer'); return $columns; } } if (!function_exists('eventer_show_eventer_column_data')) { /* * eventer_show_eventer_column_data function * Update values in event date admin column */ // Add the data to the custom columns for the eventer post type: add_action('manage_eventer_posts_custom_column', 'eventer_show_eventer_column_data', 10, 2); function eventer_show_eventer_column_data($column, $post_id) { switch ($column) { case 'edate': $event_start_date = get_post_meta($post_id, 'eventer_event_start_dt', true); $event_end_date = get_post_meta($post_id, 'eventer_event_end_dt', true); $event_end_date = ($event_end_date != '') ? $event_end_date : $event_start_date; $event_start_dt_str = strtotime($event_start_date); $event_end_dt_str = strtotime($event_end_date); echo date_i18n('Y-m-d H:i', $event_start_dt_str) . '<br><abbr title="">' . date_i18n('Y-m-d H:i', $event_end_dt_str) . '</abbr>'; break; } } } if (!function_exists('eventer_get_booked_tickets')) { /* * eventer_get_booked_tickets function * Show status of event tickets booked status */ function eventer_get_booked_tickets() { $eventer_id = ($_REQUEST['eventer_id']) ? $_REQUEST['eventer_id'] : ''; $booked_date = ($_REQUEST['booked_date']) ? $_REQUEST['booked_date'] : ''; $booked_time = (isset($_REQUEST['booked_time']) && $_REQUEST['booked_time']) ? $_REQUEST['booked_time'] : ''; $original_event = eventer_wpml_original_post_id($eventer_id); $default_featured = get_post_meta($original_event, 'eventer_event_featured', true); $tickets = get_post_meta($original_event, 'eventer_tickets', true); $updated_tickets_new = eventer_update_date_wise_bookings_table($eventer_id, $booked_date . ' ' . $booked_time, array()); $updated_tickets_new = eventer_update_date_wise_bookings_table($eventer_id, $booked_date . ' ' . $booked_time, array(), 2); $featured_events = get_option('eventer_all_featured_events'); $featured_events = (!empty($featured_events)) ? $featured_events : array(); $saved_data = (isset($featured_events[$booked_date])) ? $featured_events[$booked_date] : array(); $saved_data = array_unique($saved_data); if ($updated_tickets_new[0]['featured'] == 1) { $saved_data[] = $eventer_id; } else { $saved_data = array_diff($saved_data, (is_array($eventer_id) ? $eventer_id : array($eventer_id))); } $featured_events[$booked_date] = $saved_data; $title = []; update_option('eventer_all_featured_events', $featured_events); if ($updated_tickets_new) { foreach ($updated_tickets_new as $new) { $locale_title = isset($new['cust_val1']) ? $new['cust_val1'] : []; $locale_title = json_decode($locale_title, true); $title[$new['ticket_id']] = $locale_title[EVENTER__LANGUAGE_CODE]; } } echo json_encode(array('tickets' => $updated_tickets_new, 'title' => $title, 'featured' => $default_featured)); die(); } add_action('wp_ajax_eventer_get_booked_tickets', 'eventer_get_booked_tickets'); } function eventer_update_date_wise_bookings_table($event, $date, $tickets = array(), $insert = 1, $update = 1, $front = false) { if (is_array($event) || !is_numeric($event) || $date == '') return; $original_event = eventer_wpml_original_post_id($event); $booked_eventer_tickets = (!empty(get_post_meta($original_event, 'specific_eventer_tickets', true))) ? get_post_meta($original_event, 'specific_eventer_tickets', true) : get_post_meta($original_event, 'eventer_tickets', true); $only_date = date_i18n('Y-m-d', strtotime($date)); if (!empty($tickets) && $insert == 2) { $tickets_created = $tickets; } elseif (is_array($booked_eventer_tickets) && array_key_exists($only_date, $booked_eventer_tickets)) { $tickets_created = $booked_eventer_tickets[$only_date]; } else { $tickets_created = get_post_meta($original_event, 'eventer_tickets', true); } $booked_date = $date; $locale = EVENTER__LANGUAGE_CODE; $woo_payment = eventer_get_settings('eventer_enable_woocommerce_ticketing'); $ticket_type = ($woo_payment == 'on') ? 'woo-ticket' : 'ticket'; global $wpdb; $table_name_tickets = $wpdb->prefix . "eventer_tickets"; $saved_ticket = $wpdb->get_results("SELECT * FROM $table_name_tickets WHERE event = $original_event AND date = '$booked_date' AND type = '$ticket_type'", ARRAY_A); $saved_ticket = (!empty($tickets) && $insert == 2) ? array() : $saved_ticket; if (empty($saved_ticket) && $insert <= 2 && $tickets_created) { foreach ($tickets_created as $ticket_new) { $ticket_pid = (isset($ticket_new['pid'])) ? $ticket_new['pid'] : wp_rand(100, 999999999999); $woo_payment = eventer_get_settings('eventer_enable_woocommerce_ticketing'); if ($woo_payment == 'on') { $dynamic_ids = intval($ticket_pid) + intval($original_event); } else { $dynamic_ids = (isset($ticket_new['id']) && $ticket_new['id'] != '') ? $ticket_new['id'] : intval($ticket_pid) + intval($original_event); } $ticket_name = (isset($ticket_new['name'])) ? $ticket_new['name'] : ''; if ($ticket_name == '') continue; $ticket_number = (isset($ticket_new['number'])) ? $ticket_new['number'] : ''; $ticket_price = (isset($ticket_new['price'])) ? $ticket_new['price'] : 0; $ticket_restrict = (isset($ticket_new['restrict'])) ? $ticket_new['restrict'] : ''; $ticket_featured = (isset($ticket_new['featured'])) ? $ticket_new['featured'] : ''; $ticket_badge = (isset($ticket_new['badge'])) ? $ticket_new['badge'] : ''; $ticket_enabled = (isset($ticket_new['enabled'])) ? $ticket_new['enabled'] : ''; $escaped_title = esc_sql($ticket_name); $saved_ticket_verify = $wpdb->get_results("SELECT * FROM $table_name_tickets WHERE event = $original_event AND date = '$booked_date' AND type = '$ticket_type' AND dynamic = '$dynamic_ids' AND name = '$escaped_title'", ARRAY_A); if (empty($saved_ticket_verify)) { $wpdb->query($wpdb->prepare("INSERT INTO $table_name_tickets ( dynamic, pid, event, name, date, type, tickets, price, restricts, featured, label, enabled, `cust_val1` ) VALUES ( %d, %d, %d, %s, %s, %s, %s, %f, %s, %s, %s, %s, %s ) ", $dynamic_ids, $ticket_pid, $original_event, stripslashes($ticket_name), $booked_date, $ticket_type, $ticket_number, $ticket_price, $ticket_restrict, $ticket_featured, $ticket_badge, $ticket_enabled, json_encode([$locale => stripslashes($ticket_name)]))); } } } else if ($insert == 2) { $saved_ticket = $wpdb->get_results("SELECT * FROM $table_name_tickets WHERE event = $original_event AND date = '$booked_date' AND type = '$ticket_type' ORDER BY ticket_id ASC", ARRAY_A); return $saved_ticket; } else if (!empty($tickets)) { foreach ($tickets as $save_ticket) { $dynamic_ids = (isset($save_ticket['id']) && $save_ticket['id'] != '') ? $save_ticket['id'] : ''; $validate_ticket_name = (isset($save_ticket['name'])) ? $save_ticket['name'] : ''; if ($dynamic_ids != '') { $saved_ticket = $wpdb->get_row("SELECT * FROM $table_name_tickets WHERE event = $original_event AND date = '$booked_date' AND dynamic = $dynamic_ids AND type = '$ticket_type'"); } else { $saved_ticket = $wpdb->get_row("SELECT * FROM $table_name_tickets WHERE event = $original_event AND date = '$booked_date' AND type = '$ticket_type'"); } if ($saved_ticket) { $ticket_name = (isset($save_ticket['name'])) ? $save_ticket['name'] : $saved_ticket->name; //if($ticket_name=='') continue; $check_unique_ids[] = $dynamic_ids; $remaining_tickets = $saved_ticket->tickets; if ($update == 1) { $ticket_number = (isset($save_ticket['number']) && $remaining_tickets >= $save_ticket['number']) ? intval($remaining_tickets) - intval($save_ticket['number']) : $saved_ticket->tickets; } elseif ($update == 3) { $ticket_number = (isset($save_ticket['number'])) ? $save_ticket['number'] : $saved_ticket->tickets; } else { $ticket_number = (isset($save_ticket['number'])) ? intval($remaining_tickets) + intval($save_ticket['number']) : $saved_ticket->tickets; } $ticket_pid = (isset($save_ticket['pid'])) ? $save_ticket['pid'] : $saved_ticket->pid; $ticket_price = (isset($save_ticket['price'])) ? $save_ticket['price'] : $saved_ticket->price; $ticket_restrict = (isset($save_ticket['restrict'])) ? $save_ticket['restrict'] : $saved_ticket->restricts; $ticket_restrict = (empty($ticket_restrict)) ? 0 : $ticket_restrict; $ticket_featured = (isset($save_ticket['featured'])) ? $save_ticket['featured'] : $saved_ticket->featured; $ticket_featured = (empty($ticket_featured)) ? 0 : $ticket_featured; $ticket_badge = (isset($save_ticket['badge'])) ? $save_ticket['badge'] : $saved_ticket->label; $ticket_enabled = (isset($save_ticket['enabled'])) ? $save_ticket['enabled'] : $saved_ticket->enabled; $locale_title = $saved_ticket->cust_val1 ? json_decode($saved_ticket->cust_val1, true) : []; $locale_title[$locale] = stripslashes($ticket_name); $locale_title = json_encode($locale_title); if ($front) { $wpdb->update($table_name_tickets, array('tickets' => $ticket_number), array('event' => $original_event, 'date' => $booked_date, 'dynamic' => $dynamic_ids, 'type' => $ticket_type), array('%s'), array('%d', '%s', '%d', '%s')); } else { $wpdb->update($table_name_tickets, array('type' => $ticket_type, 'tickets' => $ticket_number, 'price' => $ticket_price, 'restricts' => $ticket_restrict, 'featured' => $ticket_featured, 'label' => $ticket_badge, 'enabled' => $ticket_enabled, 'cust_val1' => $locale_title), array('event' => $original_event, 'date' => $booked_date, 'dynamic' => $dynamic_ids, 'type' => $ticket_type), array('%s', '%s', '%s', '%f', '%s', '%s', '%s', '%s', '%s'), array('%d', '%s', '%d', '%s')); } } } } } if (!function_exists('eventer_update_booked_tickets')) { /* * eventer_update_booked_tickets function * Show booked ticket information in event post type section while editing any event */ function eventer_update_booked_tickets() { $eventer_id = (isset($_REQUEST['eventer_id'])) ? $_REQUEST['eventer_id'] : ''; $booked_date = (isset($_REQUEST['booked_date'])) ? $_REQUEST['booked_date'] : ''; $eventer_position = (isset($_REQUEST['position'])) ? $_REQUEST['position'] : ''; if ($eventer_position == 'reset') { global $wpdb; $table_name_tickets = $wpdb->prefix . "eventer_tickets"; $wpdb->delete($table_name_tickets, array('event' => $eventer_id)); wp_die(); } $time_slot = (isset($_REQUEST['time']) && $_REQUEST['time'] != 'undefined' && $_REQUEST['time'] != '') ? $_REQUEST['time'] : '00:00:00'; $booked_date = $booked_date . ' ' . $time_slot; $original_event = eventer_wpml_original_post_id($eventer_id); $tickets_new = (isset($_REQUEST['updated_detail'])) ? $_REQUEST['updated_detail'] : ''; $woo_payment = eventer_get_settings('eventer_enable_woocommerce_ticketing'); $setup_tickets_new = ($woo_payment == 'on') ? array() : $tickets_new; if (!empty($tickets_new) && empty($setup_tickets_new)) { foreach ($tickets_new as $ticket_get) { if (isset($ticket_get['pid']) && $ticket_get['pid'] == '' && isset($ticket_get['name']) && $ticket_get['name'] != '') { $product_arg = array('post_type' => 'product', 'post_title' => $ticket_get['name'], 'post_status' => 'publish'); $product_id = wp_insert_post($product_arg); if (function_exists('icl_object_id') && class_exists('SitePress') && function_exists('wpml_add_translatable_content')) { wpml_add_translatable_content('post_product', $product_id, EVENTER__LANGUAGE_CODE); } $ticket_backend_generate = intval($product_id) + intval($eventer_id); wp_set_object_terms($product_id, 'eventer', 'product_cat'); update_post_meta($product_id, '_regular_price', (float) $ticket_get['price']); update_post_meta($product_id, '_price', (float) $ticket_get['price']); update_post_meta($product_id, '_virtual', 'yes'); $ticket_get['id'] = $ticket_backend_generate; $ticket_get['pid'] = $product_id; eventer_update_date_wise_bookings_table($eventer_id, $booked_date . ' ' . $time_slot, array($ticket_get), 2); } $setup_tickets_new[] = $ticket_get; } } eventer_update_date_wise_bookings_table($eventer_id, $booked_date, $setup_tickets_new, 1, 3); wp_die(); } add_action('wp_ajax_eventer_update_booked_tickets', 'eventer_update_booked_tickets'); } function eventer_get_term_details() { $term_id = (isset($_REQUEST['term_id'])) ? $_REQUEST['term_id'] : ''; $taxonomy = (isset($_REQUEST['taxonomy'])) ? $_REQUEST['taxonomy'] : ''; if ($taxonomy == 'list:eventer-venue') { $location = get_term_meta($term_id, 'venue_address', true); echo '<div id="misc-publishing-actions" class="eventer-admin-term-metas-show"><div class="">' . esc_html__('Location', 'eventer') . ': <span id="post-status-display">' . esc_attr($location) . '</span></div>'; } else { $organizer_email = get_term_meta($term_id, 'organizer_email', true); $organizer_phone = get_term_meta($term_id, 'organizer_phone', true); $organizer_website = get_term_meta($term_id, 'organizer_website', true); echo '<div id="misc-publishing-actions" class="eventer-admin-term-metas-show"><div class="">' . esc_html__('Email', 'eventer') . ': <span id="post-status-display">' . esc_attr($organizer_email) . '</span></div><div class="">' . esc_html__('Phone', 'eventer') . ': <span id="post-status-display">' . esc_attr($organizer_phone) . '</span></div><div class="">' . esc_html__('Website', 'eventer') . ': <span id="post-status-display">' . esc_url($organizer_website) . '</span></div></div>'; } wp_die(); } add_action('wp_ajax_eventer_get_term_details', 'eventer_get_term_details'); function eventer_woo_get_return_url($order = null) { if ($order) { $return_url = $order->get_checkout_order_received_url(); } else { $return_url = wc_get_endpoint_url('order-received', '', wc_get_page_permalink('checkout')); } if (is_ssl() || get_option('woocommerce_force_ssl_checkout') == 'yes') { $return_url = str_replace('http:', 'https:', $return_url); } return apply_filters('woocommerce_get_return_url', $return_url); } function eventer_status_transitions($ID, $post) { $mail_status = get_post_meta($ID, 'eventer_rest_email_status', true); if ($mail_status == '' || $mail_status == 'publish') return; wp_set_current_user(1); $request = new WP_REST_Request('POST', '/imithemes/email'); $request->set_param('event', $ID); $response = rest_do_request($request); } add_action('publish_eventer', 'eventer_status_transitions', 999, 2); add_action('wp_ajax_nopriv_eventer_dynamic_ticket_area', 'eventer_dynamic_ticket_area'); add_action('wp_ajax_eventer_export_registrants', 'eventer_export_registrants'); function eventer_export_registrants() { global $wpdb; $booking_date = (isset($_REQUEST['date'])) ? $_REQUEST['date'] : ''; $booking_status = (isset($_REQUEST['status'])) ? $_REQUEST['status'] : ''; $specific_event = (isset($_REQUEST['eventer'])) ? $_REQUEST['eventer'] : ''; $event_all = (isset($_REQUEST['eventer_all'])) ? $_REQUEST['eventer_all'] : ''; $woocommerce_events = eventer_get_settings('eventer_enable_woocommerce_ticketing'); $where = ''; if ($woocommerce_events != 'on' && $event_all == '' && $specific_event != '') { $where = "WHERE eventer = '$specific_event' AND eventer_date = '$booking_date'"; } $wpdb->show_errors(); $table_name = $wpdb->prefix . "eventer_registrant"; $file = 'eventer-registrant-csv'; $export_query = $wpdb->get_results("SELECT * FROM $table_name $where", ARRAY_A); if (!$export_query) { $Error = $wpdb->print_error(); die("The following error was found: $Error"); } else { $csv_fields = array(); $csv_fields[] = 'Status'; $output_filename = $file . "_" . date_i18n("Y-m-d_H-i-s") . ".csv"; $output_handle = @fopen('php://output', 'w'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Content-Description: File Transfer'); header('Content-type: text/csv'); header('Content-Disposition: attachment; filename=' . $output_filename); header('Expires: 0'); header('Pragma: public'); $leadArray = $new_rows = $user_data_set = array(); $counter = 1; if ($woocommerce_events != 'on') { $csv_fields[] = 'Event Title'; foreach ($export_query as $Result) { if ($booking_status != '') { if ($booking_status != $Result['status']) continue; } if ($specific_event != '') { if ($specific_event != $Result['eventer']) continue; } $user_info = $Result['user_details']; $user_data = unserialize($user_info); $user_system = $Result['user_system']; $user_system = unserialize($user_system); $registrants = (isset($user_system['registrants'])) ? $user_system['registrants'] : array(); $time_slot = (isset($user_system['slot_title'])) ? $user_system['slot_title'] : ''; $services = isset($user_system['services']) && $user_system['services'] ? $user_system['services'] : []; $checkin_info = (isset($user_system['checkin'])) ? $user_system['checkin'] : ''; $checkin_info = ($checkin_info == '1') ? 'Yes-' . $user_system['checkin_date'] : $checkin_info; $service = ''; if ($services) { foreach ($services as $serve) { $service .= '{' . $serve['name'] . ' ' . $serve['value'] . ' - ' . $serve['cost'] . '} '; } } $tickets_booked = $Result['tickets']; $tickets_booked = unserialize($tickets_booked); $new_booked = []; if ($tickets_booked) { foreach ($tickets_booked as $tbook) { if (isset($tbook['number']) && $tbook['number'] > 0) { $new_booked[$tbook['name']] = $tbook['number']; } } } $tickets_booked = $new_booked; $data_set = array(); $ticket_showing = ''; if (!empty($registrants)) { foreach ($registrants as $key => $value) { if (!array_key_exists($key, $tickets_booked)) { continue; } if (!empty($value)) { $ticket_setting = ''; $ticket_setting = $key . '('; foreach ($value as $regs) { $name = $regs['name']; $email = $regs['email']; $qr_code = $Result['id']; $set_arr = array('status' => $Result['status'], 'title' => get_the_title($Result['eventer']), 'id' => $Result['id'], 'event_date' => $Result['eventer_date'], 'event_slot' => $time_slot, 'registration_date' => $Result['ctime'], 'username' => $Result['username'], 'email' => $Result['email'], 'amount' => $Result['amount'], 'count' => $tickets_booked[$key], 'QR_ID' => $qr_code, 'check_in' => $checkin_info, 'services' => $service, 'registrant_name' => $name, 'registrant_email' => $email, 'registrant_ticket' => $key); if (!empty($user_data)) { foreach ($user_data as $data) { if (strpos('quantity_tkt', $data['name']) !== false) continue; $set_arr[$data['name']] = $data['value']; } } foreach ($regs as $field_key => $value ) { if( $field_key == 'name' || $field_key == 'email' || $field_key == 'QR_ID' ) continue; $set_arr[$field_key] = $value; } $leadArray[] = $set_arr; } } } } else { $set_arr = array('status' => $Result['status'], 'title' => get_the_title($Result['eventer']), 'id' => $Result['id'], 'event_date' => $Result['eventer_date'], 'event_slot' => $time_slot, 'registration_date' => $Result['ctime'], 'username' => $Result['username'], 'email' => $Result['email'], 'amount' => $Result['amount'], 'registrant_ticket' => $key, 'registrant_name' => $name, 'registrant_email' => $email); $leadArray[] = $set_arr; } } foreach ($leadArray as $rows) { $new_rows[] = $rows; } $set = 0; foreach ($new_rows as $row_set) { if ($set == 0 && $counter == 1) { $counter++; $label = []; foreach ($row_set as $key => $value) { $label[] = $key; } fputcsv($output_handle, $label); } fputcsv($output_handle, $row_set); $set++; } } else { $csv_fields[] = 'order id'; $csv_fields[] = 'Event name'; $csv_fields[] = 'Event Date'; $csv_fields[] = 'Booking Date'; $csv_fields[] = 'Mode'; $csv_fields[] = 'Name'; $csv_fields[] = 'Email'; $csv_fields[] = 'Phone'; $csv_fields[] = 'Product type'; $csv_fields[] = 'Ticket name'; $csv_fields[] = 'Ticket Quantity'; $csv_fields[] = 'Registrants'; fputcsv($output_handle, $csv_fields); foreach ($export_query as $Result) { if ($booking_status != '') { if ($booking_status != $Result['status']) continue; } //if(get_post_type($Result['eventer'])=='eventer') continue; $woo_order = $Result['eventer']; $order = wc_get_order($woo_order); if (!$order) continue; $user_system = $Result['user_system']; $user_system = unserialize($user_system); $registrants = (isset($user_system['tickets'])) ? $user_system['tickets'] : array(); foreach ($order->get_items() as $item_key => $item_values) : $data_set = array(); $item_data = $item_values->get_data(); $item_id = $item_values->get_id(); $product_name = $item_data['name']; $product_id = $item_data['product_id']; $quantity = $item_data['quantity']; $order_event_url = wc_get_order_item_meta($item_id, 'Event URL', true); $eventer_id = wc_get_order_item_meta($item_id, '_wceventer_id', true); $eventer_date = wc_get_order_item_meta($item_id, '_wceventer_date', true); if ($specific_event != '' && $eventer_id != $specific_event) continue; $ticket_showing = ''; if ($registrants) { foreach ($registrants as $regs) { if ($regs['ticket'] != $product_name) continue; $get_registrant = (isset($regs['registrants'])) ? $regs['registrants'] : array(); $event_id = $regs['event']; $get_event_title = get_the_title($event_id) . '-' . $regs['ticket']; if ($get_registrant) { $ticket_setting = ''; $ticket_setting .= $get_event_title . '('; foreach ($get_registrant as $set_registrant) { $reg_name = $set_registrant['name']; $reg_email = $set_registrant['email']; $ticket_setting .= '[' . $reg_name . '=>' . $reg_email . ']'; } $ticket_setting .= ')'; } $ticket_showing .= $ticket_setting; } } $data_set['status'] = $order->get_status(); $data_set['order id'] = $woo_order; $data_set['Event name'] = get_the_title($eventer_id); $data_set['Event Date'] = date_i18n(get_option('date_format'), strtotime($eventer_date)); $data_set['Booking Date'] = date_i18n(get_option('date_format') . ' ' . get_option('time_format'), strtotime($Result['ctime'])); $data_set['Mode'] = $order->get_payment_method_title(); $data_set['Name'] = $order->get_billing_first_name() . ' ' . $order->get_billing_last_name(); $data_set['Email'] = $order->get_billing_email(); $data_set['Phone'] = $order->get_billing_phone(); $data_set['Product Type'] = wc_get_order_item_meta($item_id, '_eventer_product', true); $data_set['Ticket name'] = $product_name; $data_set['Ticket Quantity'] = $quantity; $data_set[] = $ticket_showing; fputcsv($output_handle, $data_set); endforeach; } } fclose($output_handle); } die(); } function eventer_checkin_process_ticket() { $event_id = (isset($_REQUEST['event'])) ? $_REQUEST['event'] : ''; $msg = $name = $email = $ticket_info = ''; $event_date = (isset($_REQUEST['date'])) ? $_REQUEST['date'] : ''; $ticket_id = (isset($_REQUEST['ticket'])) ? $_REQUEST['ticket'] : ''; $woocommerce_events = eventer_get_settings('eventer_enable_woocommerce_ticketing'); $registrants = eventer_get_registrant_details('id', $ticket_id); $name = $registrants->username; $email = $registrants->email; if ($woocommerce_events == 'on') { $tickets = getTicket($ticket_id); if (!empty($tickets)) { if ($tickets->ticket_status != 10) { updateTicket($ticket_id, ['ticket_status' => 10], ['%d']); $msg = "Successfully checked-in"; } elseif ($tickets->ticket_status == 10) { $msg = esc_html__('This ticket was already checked-in','eventer'); } $ticket_info = '<div class="form-style-2"> <div class="form-style-2-heading">'.esc_html__('Ticket Information','eventer').'</div> <label><span>Name </span>' . $tickets->user_name . '</label> </div>'; } else { $msg = esc_html__('It seems like the ticket is not matching with the selected event details.','eventer'); } } else { if ($event_id == $registrants->eventer && $event_date == $registrants->eventer_date) { $user_system = unserialize($registrants->user_system); if (isset($user_system['checkin']) && $user_system['checkin'] == '1') { $msg = esc_html__('This ticket was already checked-in','eventer'); } else { $user_system['checkin'] = "1"; $user_system['checkin_date'] = date_i18n('Y-m-d H:i:s'); eventer_update_registrant_details(array('user_system' => serialize($user_system)), $ticket_id, array("%s", "%s")); $msg = esc_html__('Successfully checked-in','eventer'); } $ticket_info = '<div class="form-style-2"> <div class="form-style-2-heading">'.esc_html__('Ticket Information','eventer').'</div> <label><span>Name </span>' . $name . '</label> <label><span>Email </span>' . $email . '</label> </div>'; } else { $msg = esc_html__('It seems like the ticket is not matching with the selected event details.','eventer'); } } wp_send_json(array('msg' => $msg, 'ticket' => $ticket_info)); wp_die(); } add_action('wp_ajax_eventer_checkin_process_ticket', 'eventer_checkin_process_ticket'); function eventer_create_page_for_shortcode_preview() { $preview_id = get_option("eventer_shortcode_preview"); $preview_page_switch = eventer_get_settings('eventer_shortcode_preview_page'); if (get_post_type($preview_id) == 'page' && get_post_status($preview_id) == 'publish') return; $shortcode_preview = array( 'post_title' => wp_strip_all_tags('Eventer Shortcode Preview Page'), 'post_content' => esc_html__('This page show preview of shortcode that you have generated from the settings page.', 'eventer'), 'post_status' => 'publish', 'post_author' => 1, 'post_type' => 'page' ); if ($preview_page_switch != 'on') { // Insert the post into the database $preview_id = wp_insert_post($shortcode_preview); update_option("eventer_shortcode_preview", $preview_id); } } add_action('admin_init', 'eventer_create_page_for_shortcode_preview'); function eventer_coupon_refresh() { $coupons = (isset($_REQUEST['coupons'])) ? $_REQUEST['coupons'] : array(); if ($coupons) { global $wpdb; $eventer_coupon_table = $wpdb->prefix . "eventer_coupons"; foreach ($coupons as $coupon) { $coupon_id = (isset($coupon['id'])) ? $coupon['id'] : ''; $coupon_title = (isset($coupon['title'])) ? $coupon['title'] : ''; $coupon_code = (isset($coupon['code'])) ? $coupon['code'] : ''; $coupon_amount = (isset($coupon['amount'])) ? $coupon['amount'] : ''; $coupon_validity = (isset($coupon['validity'])) ? $coupon['validity'] : ''; $coupon_status = (isset($coupon['status'])) ? $coupon['status'] : ''; $coupon_remove = (isset($coupon['remove'])) ? $coupon['remove'] : ''; if ($coupon_id == '' && $coupon_title != '' && $coupon_amount != '') { $wpdb->query($wpdb->prepare("INSERT INTO $eventer_coupon_table ( coupon_name, coupon_code, discounted, valid_till, coupon_status) VALUES ( %s, %s, %s, %s, %d) ", $coupon_title, $coupon_code, $coupon_amount, $coupon_validity, $coupon_status)); } elseif ($coupon_remove == 1 && $coupon_id != '') { $wpdb->delete($eventer_coupon_table, array('id' => $coupon_id)); } elseif ($coupon_id != '' && $coupon_title != '' && $coupon_amount != '') { $wpdb->update($eventer_coupon_table, array('coupon_name' => $coupon_title, 'coupon_code' => $coupon_code, 'discounted' => $coupon_amount, 'valid_till' => $coupon_validity, 'coupon_status' => $coupon_status), array('id' => $coupon_id), array('%s', '%s', '%s', '%s', '%d'), array('%d')); } } } echo json_encode($wpdb->get_results("SELECT * FROM $eventer_coupon_table")); wp_die(); } add_action('wp_ajax_eventer_coupon_refresh', 'eventer_coupon_refresh'); function eventer_set_android_app_key() { $get_key = get_option('eventer-android-app-api-key'); if ($get_key == '') { $dyn_val = wp_rand(100, 1000000); $divis = $dyn_val * 2648; update_option('eventer-android-app-api-key', $divis); } } add_action('admin_init', 'eventer_set_android_app_key'); function eventer_delete_bookings() { $bookings = $_REQUEST['bookings']; global $wpdb; $table_name = $wpdb->prefix . "eventer_registrant"; if ($bookings) { foreach ($bookings as $id) { $wpdb->delete($table_name, array('id' => $id), array('%d')); } } echo "success"; wp_die(); } add_action('wp_ajax_eventer_delete_bookings', 'eventer_delete_bookings'); function eventer_restore_unsuccessful_tickets() { global $wpdb; $prev_date = date_i18n('Y-m-d H:i:s', strtotime('-1 hour', strtotime(date_i18n('Y-m-d H:i:s')))); $next_date = date_i18n('Y-m-d H:i:s', strtotime('-1 day', strtotime(date_i18n('Y-m-d H:i:s')))); $registration_table = $wpdb->prefix . "eventer_registrant"; $saved_ticket = $wpdb->get_results("SELECT * FROM $registration_table WHERE `status` = 'Pending' AND `ctime` <= '$prev_date' AND `ctime` >= '$next_date'", ARRAY_A); if ($saved_ticket) { foreach ($saved_ticket as $reg) { $event = $reg['eventer']; $tickets = unserialize($reg['tickets']); if ($tickets) { $new_tickets = []; $user_details = unserialize($reg['user_details']); $time_slot = (isset($user_details['time_slot'])) ? $user_details['time_slot'] : '00:00:00'; $event_date_booked = $reg['eventer_date']; foreach ($tickets as $ticket) { $set_ticket = $ticket; $set_ticket['restored'] = '1'; $new_tickets[] = $set_ticket; if ($ticket['number'] <= 0 || isset($ticket['restored'])) continue; $name = $ticket['name']; $dynamic = $ticket['id']; $table_name_tickets = $wpdb->prefix . "eventer_tickets"; $get_tickets = $wpdb->get_row("SELECT `tickets` from $table_name_tickets WHERE `name` = '$name' AND `dynamic` = $dynamic"); $total_tickets = $get_tickets->tickets + $ticket['number']; $wpdb->update($table_name_tickets, array('tickets' => $total_tickets), ['date' => $event_date_booked . ' ' . $time_slot, 'dynamic' => $dynamic], array('%s'), array('%s', '%d')); } $wpdb->update($registration_table, array('tickets' => serialize($new_tickets)), ['id' => $reg['id']], array('%s'), array('%d')); } } } } eventer_restore_unsuccessful_tickets(); function eventerGetFirstKey(array $array) { foreach ($array as $key => $value) { return $key; } } // Ticket Meta insertion into DB function addDefaultMeta($data) { global $wpdb; $table_name = $wpdb->prefix . "eventer_default_ticket_meta"; $wpdb->query( $wpdb->prepare( "INSERT INTO $table_name ( reg_id, meta, slot, value) VALUES ( %d, %s, %s, %s )", array($data['reg_id'], $data['meta'], $data['slot'], $data['value']) ) ); return $wpdb->insert_id; } function getDefaultMeta($regId, $metaKey) { global $wpdb; $tableName = $wpdb->prefix . "eventer_default_ticket_meta"; if (!empty($regId)) { $meta = $wpdb->get_row("SELECT * FROM $tableName WHERE reg_id = $regId AND meta = '$metaKey'"); if (!empty($meta)) { return $meta->value; } } return false; } function updateDefaultMeta($regId, $metaKey, $metaValue) { global $wpdb; $tableName = $wpdb->prefix . "eventer_default_ticket_meta"; if (!empty(getTicketMeta($regId, $metaKey))) { $wpdb->update($tableName, ['value' => $metaValue], array('reg_id' => $regId, 'meta' => $metaKey), array('%s'), array('%d', '%s')); } else { addTicketMeta(['reg_id' => $regId, 'meta' => $metaKey, 'value' => $metaValue]); } }