diff --git a/css/filter_pagination.css b/css/filter_pagination.css new file mode 100644 index 0000000..463b1cb --- /dev/null +++ b/css/filter_pagination.css @@ -0,0 +1,182 @@ +div.list_with_filter_section {margin: 0 0 20px 0;} +div.list_with_filter_section div.all_filter_item{display: none;} +div.item_bg_image { + background-size: cover; + background-position: center center; + height: 100%; + -webkit-transition: all 0.5s ease-in-out; + transition: all 0.5s ease-in-out; +} +div.item_bg_image:hover { + transform: scale(1.1); + -webkit-transition: all 0.5s ease-in-out; + transition: all 0.5s ease-in-out; +} + + +/****************************************/ +div.search_result_empty { + display: none;font-weight: 500; + font-size: 22px; + color: #6B003E; +} + +div.search_sort_code {position: relative; width: 100%;} +div.search_sort_code .filter_input_area .formControl {border: none;border-radius: 0;height: 100%;} +div.search_sort_code span.fa {margin: 0 7px 0 0;font-size: 12px;} + +div.filter_input_area {position: relative;width: 100%;height: 50%;margin: 0 auto;border: 4px solid #DDD;} +div.filter_input_area:first-child {border-bottom-width: 2px;} +div.filter_input_area:last-child {border-top-width: 2px;} +div.filter_input_area > * {border-right: 4px solid #DDD;} +div.filter_input_area > *:last-child {border-right: none;} +/****************************************/ +div.spinner_loading {position: absolute;z-index: 1111;left: 0;right: 0;top: 0;bottom: 0;background-color: #FFFD;} +div.spinner_loading > div {height: 100%;} +div.icon_loader { + display: flex !important; + -webkit-align-items: center; + align-items: center; + -webkit-justify-content: center; + justify-content: center; + font-size: 40px; + z-index: 11111; + position: relative; +} +div.icon_loader_xs { + display: flex !important; + -webkit-align-items: center; + align-items: center; + -webkit-justify-content: center; + justify-content: center; + font-size: 20px; + z-index: 11111; + position: relative +} + +.pagination_area .ellipse_left, +.pagination_area .ellipse_right { + min-width: 50px;background-color: #FFF; +} +.pagination_area .ellipse_left > div, +.pagination_area .ellipse_right > div { + width: 100%;height: 100%; + display: -webkit-flex;display: flex; + -webkit-justify-content: center;justify-content: center; + -webkit-align-items: center;align-items: center; +} +.pagination_area [class*="Button"] { + padding: 0 15px; + font-size: 18px; + cursor: pointer; + min-width: 150px; + height: auto; + min-height: 40px; + -webkit-appearance: button; + overflow: visible; + display: -webkit-flex;display: flex; + -webkit-justify-content: center;justify-content: center; + -webkit-align-items: center;align-items: center; + border-radius: 5px; + font-weight: 500; +} +.pagination_area [class*="Button"]:hover{opacity: 0.8;} +.pagination_area button.pagination_load_more {border:none;} +.pagination_area button[class*="defaultButton_xs"] { + min-width: 50px; + padding: 0; +} +.pagination_area button[class*="defaultButton_xs"]:first-child {border: none;} +.pagination_area button[class*="defaultButton_xs"]:last-child {border-radius: 0 5px 5px 0;} +.pagination_area button[class*="defaultButton_xs"].active_pagination { + color: #000; + background-color: #DDD; +} + +.pagination_area .ellipse_left {display: none;} +.pagination_area button[disabled] {cursor: not-allowed;opacity: 0.8;background-color: #DDD;} +/****************************************/ +.list_with_filter_section div.buttonGroup [class*="Button"] { + border: none; + border-left: 2px solid #DDD; + border-radius: 0; +} +.list_with_filter_section div.buttonGroup { + position: relative; + border: 0; + border-radius: 5px; +} +div.buttonGroup [class*="Button"]:first-child { + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; + border-left: none; +} +.list_with_filter_section .flexEqual {display: -webkit-flex;display: flex;} +div.buttonGroup > *, +.list_with_filter_section .flexEqual > * { + -webkit-flex: 1;-ms-flex: 1;flex: 1; +} +.list_with_filter_section .circleIcon_xs { + width: 25px;height: 25px;min-width: 25px; + background-color: #FF5959; + color: #FFF; + display: -webkit-flex;display: flex; + -webkit-justify-content: center;justify-content: center; + -webkit-align-items: center;align-items: center; +} +.list_with_filter_section .sort_code_search_box { + display: -webkit-flex; + display: flex; + border: 1px solid #DDD; + -webkit-flex-direction: column; + flex-direction: column; + padding: 5px; +} +.list_with_filter_section .sort_code_search_box label {display: block; margin: 0;} +.list_with_filter_section [class*="defaultButton"] { color: #FFF;} +.list_with_filter_section [class*="defaultButton_xs"] {min-width: auto;padding: 7px;font-size: 16px;} +.list_with_filter_section .search_sort_code_area {margin: 15px 0;} +.list_with_filter_section .formControl { + display: -webkit-flex;display: flex; + -webkit-align-items: center;align-items: center; + -webkit-flex-wrap: nowrap;flex-wrap: nowrap; + width: 100%; + font-size: 14px; + min-width: auto;max-width: inherit; + padding: 7px; + margin: 0; + color: #555; + line-height: 1.25; + background: rgba(255, 255, 255, .99); + border-radius: 2px; + box-shadow: 0 4px 8px rgba(0, 0, 0, .1) inset; + border: 1px solid #CCC !important; + height: 40px !important; +} +.list_with_filter_section .formControl:-webkit-autofill, +.list_with_filter_section .formControl:-webkit-autofill:hover, +.list_with_filter_section .formControl:-webkit-autofill:focus, +.list_with_filter_section .formControl:-webkit-autofill:active { + -webkit-transition: color 9999s ease-out, background-color 9999s ease-out; + transition: color 9999s ease-out, background-color 9999s ease-out; + -webkit-transition-delay: 9999s; + transition-delay: 9999s; +} +.list_with_filter_section .alignCenter { + display: -webkit-flex;display: flex; + -webkit-align-items: center;align-items: center; + -webkit-flex-wrap: nowrap;flex-wrap: nowrap; +} +.list_with_filter_section .allCenter { + display: -webkit-flex !important; + display: flex !important; + -webkit-justify-content: flex-start; + justify-content: flex-start; + -webkit-align-items: center; + align-items: center; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; +} +.list_with_filter_section label{position: relative;} +.list_with_filter_section span.filter_date_icon{position: absolute;top: 0;right: 0; padding: 7px 5px; bottom: 0; margin: 5px; color: #ddd;cursor:pointer;} \ No newline at end of file diff --git a/css/style.css b/css/style.css index 79b4edb..96ad9b1 100644 --- a/css/style.css +++ b/css/style.css @@ -171,6 +171,28 @@ span.mep_warning { .mep_google_map { height: 300px; } +.button.button-default.woocommerce.button.alt.button.alt.btn-mep-event-cart { + background: #ff5959; + border: 1px solid #ff5959; + line-height: 0; + font-weight: 500; + height: auto; + min-width: auto; + outline: 0; + padding: 20px 30px; + color: #fff6f6; + margin: 10px auto; + display: block; + text-align: center; + font-size: 16px; + cursor: pointer; +} +ul#mep_event_date_sch li span { + display: inline; + font-size: 13px; +} + +span.mep-more-date i {margin: 0;} /******table*******/ .mep-events-wrapper table {width: 100%;table-layout: fixed;margin: 0 0 15px 0;} .mep-events-wrapper table td {text-align:left;border-bottom: 1px dotted #f0f0f0;padding: 10px;vertical-align: middle;font-size: 16px;font-weight: 500;} @@ -479,8 +501,10 @@ div.mep_event_native_list { .mep_event_native_list .mep_list_thumb { width: 90px; } - - +.mep_event_native_list .mep_list_thumb .mep_bg_thumb{height: 45px;} +.mep_list_thumb a{ + height: 100%; +} .mep_event_native_list .mep-list-header::before { border-left: 2px solid; } @@ -835,8 +859,6 @@ div.column_style{ } div.column_style .mep_list_thumb img{height:160px;} -ul.mp_event_more_date_list, -.mp_event_hide_event_time{display:none;} ul.mp_event_more_date_list{ position: absolute; @@ -856,19 +878,12 @@ ul.mp_event_more_date_list li{ display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-align-items: flex-start;align-items: flex-start; border-bottom:1px solid #0009; } -ul.mp_event_more_date_list li span{ +ul.mp_event_more_date_list li span, +span.mep-more-date, +span.mep-more-time{ display:-webkit-flex;display:flex;-webkit-align-items: center;align-items: center; margin:5px 0;padding:0; } -span.mep_date_scdl_start_datetime, span.mep_date_scdl_end_datetime { - font-weight: normal; - font-size: 13px; -} - -span.mep_date_scdl_separator { - font-weight: bold; - font-size: 16px; -} ul.mp_event_more_date_list li span i, span.mep-more-date i, span.mep-more-time i{margin:0 7px 0 0;padding:0;} @@ -1071,7 +1086,7 @@ CSS by Ariful padding-top: 10px; padding-bottom: 10px; font-weight: 600; - display: grid; + display: grid !important; } .mep-multidate-ribbon span{ width: 90px; @@ -1140,6 +1155,7 @@ h3.mep_list_date{ transition-property: color; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; + min-width: 150px; } .mep_more_date_btn:before { content: ""; @@ -1173,6 +1189,8 @@ h3.mep_list_date{ .mep_list_thumb{ overflow: hidden; } + + .mep_bg_thumb{ background-size: cover; background-position: center center; @@ -1942,11 +1960,11 @@ Vanilla theme css by ariful width:100% } .vanilla_theme .mep-default-feature-content{ - margin-top: 20px; - margin-bottom: 20px; + margin-top: 20px; + margin-bottom: 20px; } .vanilla_theme .mep-default-sidrbar-map h3, .vanilla_theme .mep-default-sidrbar-events-schedule h3,.vanilla_theme h4.mep-cart-table-title { - margin: 00px 0 20px 0; +margin: 00px 0 20px 0; font-size: 14px; font-weight: 500; text-transform: uppercase; @@ -1966,15 +1984,12 @@ font-size: 14px; padding: 5px; } .vanilla_theme h3.ex-sec-title{ - font-size: 14px; +font-size: 14px; background: #fbd03b; color: #17113A; font-weight:500; text-transform: uppercase; } -ul#mep_event_date_sch li span { - display: inline-block; -} .vanilla_theme table td, .vanilla_theme table td.total-col{ font-size: 14px; @@ -2020,7 +2035,7 @@ background-color: #fbfbfb; font-weight: 500; color: #000000; text-transform: uppercase; - font-size: 14px; + font-size: 14px; } .vanilla_theme .mep-default-sidrbar-meta .fa-list-alt{ font-size:14px; @@ -2041,7 +2056,7 @@ background-color: #fbfbfb; .vanilla_theme .mep-share-btn-title{ display: inline-block; margin-right: 15px; - font-weight: 500; + font-weight: 500; } .vanilla_theme .mep-default-sidrbar-social .mep-event-meta { text-align: left; @@ -2057,7 +2072,7 @@ background-color: #fbfbfb; border-bottom: 1px solid #f5f5f5; } .vanilla_theme ul.mep-social-share a{ - font-size: 14px; +font-size: 14px; width: 30px; height: 30px; border-radius: 0; diff --git a/inc/mep_enque.php b/inc/mep_enque.php index 1d548ff..f3048df 100644 --- a/inc/mep_enque.php +++ b/inc/mep_enque.php @@ -73,6 +73,7 @@ function mep_event_enqueue_scripts() wp_enqueue_script('jquery-ui-accordion'); wp_enqueue_style('mep-jquery-ui-style', plugin_dir_url(__DIR__) . 'css/jquery-ui.css', array()); wp_enqueue_style('mep-event-style', plugin_dir_url(__DIR__) . 'css/style.css', array()); + wp_enqueue_style('filter_pagination', plugin_dir_url(__DIR__) . 'css/filter_pagination.css', array()); wp_enqueue_style('mep-event-timeline-min-style', plugin_dir_url(__DIR__) . 'css/timeline.min.css', array('mep-event-style')); wp_enqueue_style('font-awesome-css-cdn', "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.4.0/css/font-awesome.min.css", null, 1); wp_enqueue_style('font-awesome-css-cdn-5.2.0', "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.2.0/css/all.min.css", null, 1); @@ -81,7 +82,9 @@ function mep_event_enqueue_scripts() wp_enqueue_script('mep-calendar-scripts', plugin_dir_url(__DIR__) . 'js/calendar.min.js', array('jquery', 'mep-moment-js'), 1, false); wp_enqueue_script('mep-mixitup-min-js', plugin_dir_url(__DIR__) . 'js/mixitup.min.js', array(), 1, true); wp_enqueue_script('mep-countdown-js', plugin_dir_url(__DIR__) . 'js/countdown.jquery.min.js', array(), 1, true); + //wp_enqueue_script('mep-lazysizes', plugin_dir_url(__DIR__) . 'js/lazysizes.min.js', array(), 1, true); + wp_enqueue_script('filter_pagination', plugin_dir_url(__DIR__) . 'js/filter_pagination.js', array(), time(), true); wp_enqueue_script('mp_event_custom_script', plugin_dir_url(__DIR__) . 'js/mp_event_custom_script.js', array(), 1.1, true); diff --git a/inc/mep_extra_price.php b/inc/mep_extra_price.php index 7d8b9fe..e31b634 100644 --- a/inc/mep_extra_price.php +++ b/inc/mep_extra_price.php @@ -316,7 +316,7 @@ function mep_add_custom_fields_text_to_order_items($item, $cart_item_key, $value if($recurring == 'everyday' && $time_status == 'no'){ if (is_array($ticket_type_arr) && sizeof($ticket_type_arr) > 0) { foreach ($ticket_type_arr as $_event_recurring_date) { - $item->add_meta_data($date_text, get_mep_datetime($_event_recurring_date['event_date'], 'date-time-text')); + $item->add_meta_data($date_text, get_mep_datetime($_event_recurring_date['event_date'].' '.$start_time, 'date-time-text')); } } }elseif ($recurring == 'yes') { @@ -354,6 +354,10 @@ function mep_add_custom_fields_text_to_order_items($item, $cart_item_key, $value } } + + + + if (is_array($event_extra_service) && sizeof($event_extra_service) > 0) { foreach ($event_extra_service as $extra_service) { $service_type_name = $extra_service['service_name'] . " - " . wc_price(mep_get_price_including_tax($eid,$extra_service['service_price'])) . ' x ' . $extra_service['service_qty'] . ' = '; diff --git a/inc/mep_functions.php b/inc/mep_functions.php index b506baf..9c2397a 100755 --- a/inc/mep_functions.php +++ b/inc/mep_functions.php @@ -1,1618 +1,1612 @@ = $version ) { - return true; - }elseif ( is_plugin_active( 'woocommerce-event-manager-addon-form-builder/addon-builder.php' ) && $data['Version'] < $version ) { - return false; - }else{ - return true; + function mep_check_builder_status() { + $version = '3.2'; + if (is_plugin_active('woocommerce-event-manager-addon-form-builder/addon-builder.php')) { + $data = get_plugin_data(ABSPATH . "wp-content/plugins/woocommerce-event-manager-addon-form-builder/addon-builder.php", false, false); + if (is_plugin_active('woocommerce-event-manager-addon-form-builder/addon-builder.php') && $data['Version'] >= $version) { + return true; + } elseif (is_plugin_active('woocommerce-event-manager-addon-form-builder/addon-builder.php') && $data['Version'] < $version) { + return false; + } else { + return true; + } + } else { + return true; + } } - }else{ - return true; - } - } } if (!function_exists('mep_get_all_tax_list')) { -function mep_get_all_tax_list($current_tax=null){ - global $wpdb; - $table_name = $wpdb->prefix . 'wc_tax_rate_classes'; - $result = $wpdb->get_results( "SELECT * FROM $table_name" ); - - foreach ( $result as $tax ){ - ?> - - prefix . 'wc_tax_rate_classes'; + $result = $wpdb->get_results("SELECT * FROM $table_name"); + + foreach ($result as $tax) { + ?> + + set_defaults(); - if ( ! $product->get_id() || ! ( $post_object = get_post( $product->get_id() ) ) || ! in_array( $post_object->post_type, array( 'mep_events', 'product' ) ) ) { // change birds with your post type - throw new Exception( __( 'Invalid product.', 'woocommerce' ) ); - } - - $id = $product->get_id(); - - $product->set_props( array( - 'name' => $post_object->post_title, - 'slug' => $post_object->post_name, - 'date_created' => 0 < $post_object->post_date_gmt ? wc_string_to_timestamp( $post_object->post_date_gmt ) : null, - 'date_modified' => 0 < $post_object->post_modified_gmt ? wc_string_to_timestamp( $post_object->post_modified_gmt ) : null, - 'product_id' => $post_object->ID, - 'sku' => $post_object->ID, - 'status' => $post_object->post_status, - 'description' => $post_object->post_content, - 'short_description' => $post_object->post_excerpt, - 'parent_id' => $post_object->post_parent, - 'menu_order' => $post_object->menu_order, - 'reviews_allowed' => 'open' === $post_object->comment_status, - ) ); - - $this->read_attributes( $product ); - $this->read_downloads( $product ); - $this->read_visibility( $product ); - $this->read_product_data( $product ); - $this->read_extra_data( $product ); - $product->set_object_read( true ); - } - - /** - * Get the product type based on product ID. - * - * @param int $product_id - * - * @return bool|string - *@since 3.0.0 - */ - public function get_product_type( $product_id ) { - $post_type = get_post_type( $product_id ); - if ( 'product_variation' === $post_type ) { - return 'variation'; - } elseif ( in_array( $post_type, array( 'mep_events', 'product' ) ) ) { // change birds with your post type - $terms = get_the_terms( $product_id, 'product_type' ); - return ! empty( $terms ) ? sanitize_title( current( $terms )->name ) : 'simple'; - } else { - return false; - } - } - } + + +// Class for Linking with Woocommerce with Event Pricing +add_action('plugins_loaded', 'mep_load_wc_class'); +if (!function_exists('mep_load_wc_class')) { + function mep_load_wc_class() { + + if (class_exists('WC_Product_Data_Store_CPT')) { + + class MEP_Product_Data_Store_CPT extends WC_Product_Data_Store_CPT { + + public function read(&$product) { + $product->set_defaults(); + if (!$product->get_id() || !($post_object = get_post($product->get_id())) || !in_array($post_object->post_type, array('mep_events', 'product'))) { // change birds with your post type + throw new Exception(__('Invalid product.', 'woocommerce')); + } + + $id = $product->get_id(); + + $product->set_props(array( + 'name' => $post_object->post_title, + 'slug' => $post_object->post_name, + 'date_created' => 0 < $post_object->post_date_gmt ? wc_string_to_timestamp($post_object->post_date_gmt) : null, + 'date_modified' => 0 < $post_object->post_modified_gmt ? wc_string_to_timestamp($post_object->post_modified_gmt) : null, + 'product_id' => $post_object->ID, + 'sku' => $post_object->ID, + 'status' => $post_object->post_status, + 'description' => $post_object->post_content, + 'short_description' => $post_object->post_excerpt, + 'parent_id' => $post_object->post_parent, + 'menu_order' => $post_object->menu_order, + 'reviews_allowed' => 'open' === $post_object->comment_status, + )); + + $this->read_attributes($product); + $this->read_downloads($product); + $this->read_visibility($product); + $this->read_product_data($product); + $this->read_extra_data($product); + $product->set_object_read(true); + } + + /** + * Get the product type based on product ID. + * + * @param int $product_id + * + * @return bool|string + * @since 3.0.0 + */ + public function get_product_type($product_id) { + $post_type = get_post_type($product_id); + if ('product_variation' === $post_type) { + return 'variation'; + } elseif (in_array($post_type, array('mep_events', 'product'))) { // change birds with your post type + $terms = get_the_terms($product_id, 'product_type'); + return !empty($terms) ? sanitize_title(current($terms)->name) : 'simple'; + } else { + return false; + } + } + } + } + } } - } -} - add_action('woocommerce_before_checkout_form', 'mep_displays_cart_products_feature_image'); - if (!function_exists('mep_displays_cart_products_feature_image')) { - function mep_displays_cart_products_feature_image() { - foreach ( WC()->cart->get_cart() as $cart_item ) { - $item = $cart_item['data']; - } - } - } +add_action('woocommerce_before_checkout_form', 'mep_displays_cart_products_feature_image'); +if (!function_exists('mep_displays_cart_products_feature_image')) { + function mep_displays_cart_products_feature_image() { + foreach (WC()->cart->get_cart() as $cart_item) { + $item = $cart_item['data']; + } + } +} -function mep_get_attendee_info_query($event_id,$order_id){ - - $pending_status_filter = array( - 'key' => 'ea_order_status', - 'value' => 'pending', - 'compare' => '=' - ); +function mep_get_attendee_info_query($event_id, $order_id) { - $hold_status_filter = array( - 'key' => 'ea_order_status', - 'value' => 'on-hold', - 'compare' => '=' - ); + $pending_status_filter = array( + 'key' => 'ea_order_status', + 'value' => 'pending', + 'compare' => '=' + ); - $processing_status_filter = array( - 'key' => 'ea_order_status', - 'value' => 'processing', - 'compare' => '=' - ); - $completed_status_filter = array( - 'key' => 'ea_order_status', - 'value' => 'completed', - 'compare' => '=' - ); - - $args = array( - 'post_type' => 'mep_events_attendees', - 'posts_per_page' => -1, - 'meta_query' => array( - 'relation' => 'AND', - array( - 'relation' => 'AND', - array( - 'key' => 'ea_event_id', - 'value' => $event_id, - 'compare' => '=' - ), - array( - 'key' => 'ea_order_id', - 'value' => $order_id, - 'compare' => '=' - ) - ), - array( - 'relation' => 'OR', + $hold_status_filter = array( + 'key' => 'ea_order_status', + 'value' => 'on-hold', + 'compare' => '=' + ); + + $processing_status_filter = array( + 'key' => 'ea_order_status', + 'value' => 'processing', + 'compare' => '=' + ); + $completed_status_filter = array( + 'key' => 'ea_order_status', + 'value' => 'completed', + 'compare' => '=' + ); + + $args = array( + 'post_type' => 'mep_events_attendees', + 'posts_per_page' => -1, + 'meta_query' => array( + 'relation' => 'AND', + array( + 'relation' => 'AND', + array( + 'key' => 'ea_event_id', + 'value' => $event_id, + 'compare' => '=' + ), + array( + 'key' => 'ea_order_id', + 'value' => $order_id, + 'compare' => '=' + ) + ), + array( + 'relation' => 'OR', // $pending_status_filter, // $hold_status_filter, $processing_status_filter, $completed_status_filter - ) - ) - ); - $loop = new WP_Query($args); - return $loop; + ) + ) + ); + $loop = new WP_Query($args); + return $loop; } - -function mep_email_dynamic_content($email_body, $event_id,$order_id){ +function mep_email_dynamic_content($email_body, $event_id, $order_id) { $event_name = get_the_title($event_id); - - $attendee_q = mep_get_attendee_info_query($event_id,$order_id); - foreach($attendee_q->posts as $_attendee_q){ + + $attendee_q = mep_get_attendee_info_query($event_id, $order_id); + foreach ($attendee_q->posts as $_attendee_q) { $attendee_id = $_attendee_q->ID; } - $attendee_name = get_post_meta($attendee_id,'ea_name',true) ? get_post_meta($attendee_id,'ea_name',true) : ''; - $email = get_post_meta($attendee_id,'ea_email',true) ? get_post_meta($attendee_id,'ea_email',true) : ''; - $date_time = get_post_meta($attendee_id,'ea_event_date',true) ? get_mep_datetime(get_post_meta($attendee_id,'ea_event_date',true),'date-time-text') : ''; - $date = get_post_meta($attendee_id,'ea_event_date',true) ? get_mep_datetime(get_post_meta($attendee_id,'ea_event_date',true),'date-text') : ''; - $time = get_post_meta($attendee_id,'ea_event_date',true) ? get_mep_datetime(get_post_meta($attendee_id,'ea_event_date',true),'time') : ''; - $ticket_type = get_post_meta($attendee_id,'ea_ticket_type',true) ? get_post_meta($attendee_id,'ea_ticket_type',true) : ''; - - $email_body = str_replace("{name}", $attendee_name, $email_body); - $email_body = str_replace("{email}", $email, $email_body); - $email_body = str_replace("{event}", $event_name, $email_body); - $email_body = str_replace("{event_date}", $date, $email_body); - $email_body = str_replace("{event_time}", $time, $email_body); - $email_body = str_replace("{event_datetime}", $date_time, $email_body); - $email_body = str_replace("{ticket_type}", $ticket_type, $email_body); - return $email_body; + $attendee_name = get_post_meta($attendee_id, 'ea_name', true) ? get_post_meta($attendee_id, 'ea_name', true) : ''; + $email = get_post_meta($attendee_id, 'ea_email', true) ? get_post_meta($attendee_id, 'ea_email', true) : ''; + $date_time = get_post_meta($attendee_id, 'ea_event_date', true) ? get_mep_datetime(get_post_meta($attendee_id, 'ea_event_date', true), 'date-time-text') : ''; + $date = get_post_meta($attendee_id, 'ea_event_date', true) ? get_mep_datetime(get_post_meta($attendee_id, 'ea_event_date', true), 'date-text') : ''; + $time = get_post_meta($attendee_id, 'ea_event_date', true) ? get_mep_datetime(get_post_meta($attendee_id, 'ea_event_date', true), 'time') : ''; + $ticket_type = get_post_meta($attendee_id, 'ea_ticket_type', true) ? get_post_meta($attendee_id, 'ea_ticket_type', true) : ''; + + $email_body = str_replace("{name}", $attendee_name, $email_body); + $email_body = str_replace("{email}", $email, $email_body); + $email_body = str_replace("{event}", $event_name, $email_body); + $email_body = str_replace("{event_date}", $date, $email_body); + $email_body = str_replace("{event_time}", $time, $email_body); + $email_body = str_replace("{event_datetime}", $date_time, $email_body); + $email_body = str_replace("{ticket_type}", $ticket_type, $email_body); + return $email_body; + } +// Send Confirmation email to customer +if (!function_exists('mep_event_confirmation_email_sent')) { + function mep_event_confirmation_email_sent($event_id, $sent_email, $order_id) { + $values = get_post_custom($event_id); + + $global_email_text = mep_get_option('mep_confirmation_email_text', 'email_setting_sec', ''); + $global_email_form_email = mep_get_option('mep_email_form_email', 'email_setting_sec', ''); + $global_email_form = mep_get_option('mep_email_form_name', 'email_setting_sec', ''); + $global_email_sub = mep_get_option('mep_email_subject', 'email_setting_sec', ''); + $event_email_text = $values['mep_event_cc_email_text'][0]; + $admin_email = get_option('admin_email'); + $site_name = get_option('blogname'); - // Send Confirmation email to customer - if (!function_exists('mep_event_confirmation_email_sent')) { - function mep_event_confirmation_email_sent($event_id,$sent_email,$order_id){ - $values = get_post_custom($event_id); - - $global_email_text = mep_get_option( 'mep_confirmation_email_text', 'email_setting_sec', ''); - $global_email_form_email = mep_get_option( 'mep_email_form_email', 'email_setting_sec', ''); - $global_email_form = mep_get_option( 'mep_email_form_name', 'email_setting_sec', ''); - $global_email_sub = mep_get_option( 'mep_email_subject', 'email_setting_sec', ''); - $event_email_text = $values['mep_event_cc_email_text'][0]; - $admin_email = get_option( 'admin_email' ); - $site_name = get_option( 'blogname' ); - - - if($global_email_sub){ - $email_sub = $global_email_sub; - }else{ - $email_sub = 'Confirmation Email'; - } - - if($global_email_form){ - $form_name = $global_email_form; - }else{ - $form_name = $site_name; - } - - if($global_email_form_email){ - $form_email = $global_email_form_email; - }else{ - $form_email = $admin_email; - } - - if($event_email_text){ - $email_body = $event_email_text; - }else{ - $email_body = $global_email_text; - } - - $headers[] = "From: $form_name <$form_email>"; - - if($email_body){ - $email_body = mep_email_dynamic_content($email_body, $event_id,$order_id); - $confirmation_email_text = apply_filters('mep_event_confirmation_text',$email_body,$event_id,$order_id); - wp_mail( $sent_email, $email_sub, nl2br($confirmation_email_text), $headers ); - } + if ($global_email_sub) { + $email_sub = $global_email_sub; + } else { + $email_sub = 'Confirmation Email'; + } + + if ($global_email_form) { + $form_name = $global_email_form; + } else { + $form_name = $site_name; + } + + if ($global_email_form_email) { + $form_email = $global_email_form_email; + } else { + $form_email = $admin_email; + } + + if ($event_email_text) { + $email_body = $event_email_text; + } else { + $email_body = $global_email_text; + } + + $headers[] = "From: $form_name <$form_email>"; + + if ($email_body) { + $email_body = mep_email_dynamic_content($email_body, $event_id, $order_id); + $confirmation_email_text = apply_filters('mep_event_confirmation_text', $email_body, $event_id, $order_id); + wp_mail($sent_email, $email_sub, nl2br($confirmation_email_text), $headers); + } } - } - - - if (!function_exists('mep_event_get_order_meta')) { - function mep_event_get_order_meta($item_id,$key){ - global $wpdb; - $table_name = $wpdb->prefix."woocommerce_order_itemmeta"; - $results = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $table_name WHERE order_item_id = %d AND meta_key = %s", $item_id, $key) ); - - - foreach( $results as $result ) { - $value = $result->meta_value; - } - $val = isset($value) ? $value : ''; - return $val; - } } - -if (!function_exists('mep_event_get_event_city_list')) { - function mep_event_get_event_city_list(){ - global $wpdb; - $table_name = $wpdb->prefix."postmeta"; - $sql = "SELECT meta_value FROM $table_name WHERE meta_key ='mep_city' GROUP BY meta_value"; - $results = $wpdb->get_results($sql); //or die(mysql_error()); - ob_start(); - ?> -
- -
- post_name) {return $page;}}} - return false; -} + function mep_get_page_by_slug($slug) { + if ($pages = get_pages()) { + foreach ($pages as $page) { + if ($slug === $page->post_name) { + return $page; + } + } + } + return false; + } } //add_action('admin_init','mep_page_create'); // Cretae pages on plugin activation if (!function_exists('mep_page_create')) { -function mep_page_create() { + function mep_page_create() { - if (! mep_get_page_by_slug('event-by-city-name')) { + if (!mep_get_page_by_slug('event-by-city-name')) { $mep_search_page = array( - 'post_type' => 'page', - 'post_name' => 'event-by-city-name', - 'post_title' => 'Event By City', - 'post_content' => '', - 'post_status' => 'publish', + 'post_type' => 'page', + 'post_name' => 'event-by-city-name', + 'post_title' => 'Event By City', + 'post_content' => '', + 'post_status' => 'publish', ); wp_insert_post($mep_search_page); } - } -} - + + } +} + if (!function_exists('mep_city_filter_rewrite_rule')) { -function mep_city_filter_rewrite_rule() { - add_rewrite_rule( - '^event-by-city-name/(.+)/?$', - 'index.php?cityname=$matches[1]&pagename=event-by-city-name', - 'top' - ); + function mep_city_filter_rewrite_rule() { + add_rewrite_rule( + '^event-by-city-name/(.+)/?$', + 'index.php?cityname=$matches[1]&pagename=event-by-city-name', + 'top' + ); + } } -} -add_action( 'init', 'mep_city_filter_rewrite_rule' ); +add_action('init', 'mep_city_filter_rewrite_rule'); if (!function_exists('mep_city_filter_query_var')) { -function mep_city_filter_query_var( $vars ) { - $vars[] = 'cityname'; - return $vars; + function mep_city_filter_query_var($vars) { + $vars[] = 'cityname'; + return $vars; + } } -} -add_filter( 'query_vars', 'mep_city_filter_query_var' ); - +add_filter('query_vars', 'mep_city_filter_query_var'); -if (!function_exists('mep_city_template_chooser')) { -function mep_city_template_chooser($template){ - if ( get_query_var( 'cityname' ) ) { - $template = mep_template_file_path('page-city-filter.php'); - } - return $template; -} + +if (!function_exists('mep_city_template_chooser')) { + function mep_city_template_chooser($template) { + if (get_query_var('cityname')) { + $template = mep_template_file_path('page-city-filter.php'); + } + return $template; + } } add_filter('template_include', 'mep_city_template_chooser'); - -function mep_get_event_ticket_price_by_name($event,$type) { - $ticket_type = get_post_meta($event,'mep_event_ticket_type',true); - if(sizeof($ticket_type) > 0){ - foreach ($ticket_type as $key => $val) { - if ($val['option_name_t'] === $type) { - return $val['option_price_t']; - } - } - return 0; - } - } +function mep_get_event_ticket_price_by_name($event, $type) { + $ticket_type = get_post_meta($event, 'mep_event_ticket_type', true); + if (sizeof($ticket_type) > 0) { + foreach ($ticket_type as $key => $val) { + if ($val['option_name_t'] === $type) { + return $val['option_price_t']; + } + } + return 0; + } +} - function mep_get_ticket_price_by_event($event,$type,$default_price=0) { - $ticket_type = get_post_meta($event,'mep_event_ticket_type',true); - if($ticket_type){ - $all_ticket_tyle = get_post_meta($event,'mep_event_ticket_type',true); - foreach ($all_ticket_tyle as $key => $val) { - if ($val['option_name_t'] === $type) { - return (int) $val['option_price_t']; - } - } - }else{ - return $default_price; - } - } +function mep_get_ticket_price_by_event($event, $type, $default_price = 0) { + $ticket_type = get_post_meta($event, 'mep_event_ticket_type', true); + if ($ticket_type) { + $all_ticket_tyle = get_post_meta($event, 'mep_event_ticket_type', true); + foreach ($all_ticket_tyle as $key => $val) { + if ($val['option_name_t'] === $type) { + return (int)$val['option_price_t']; + } + } + } else { + return $default_price; + } +} -if (!function_exists('mep_attendee_create')) { -function mep_attendee_create($type,$order_id,$event_id,$_user_info = array()){ +if (!function_exists('mep_attendee_create')) { + function mep_attendee_create($type, $order_id, $event_id, $_user_info = array()) { + + // Getting an instance of the order object + $order = wc_get_order($order_id); + $order_meta = get_post_meta($order_id); + $order_status = $order->get_status(); + + + $billing_intotal = isset($order_meta['_billing_address_index'][0]) ? $order_meta['_billing_address_index'][0] : ''; + $payment_method = isset($order_meta['_payment_method_title'][0]) ? $order_meta['_payment_method_title'][0] : ''; + $user_id = isset($order_meta['_customer_user'][0]) ? $order_meta['_customer_user'][0] : ''; + + if ($type == 'billing') { + // Billing Information + $first_name = isset($order_meta['_billing_first_name'][0]) ? $order_meta['_billing_first_name'][0] : ''; + $last_name = isset($order_meta['_billing_last_name'][0]) ? $order_meta['_billing_last_name'][0] : ''; + $uname = $first_name . ' ' . $last_name; + $company = isset($order_meta['_billing_company'][0]) ? $order_meta['_billing_company'][0] : ''; + $address_1 = isset($order_meta['_billing_address_1'][0]) ? $order_meta['_billing_address_1'][0] : ''; + $address_2 = isset($order_meta['_billing_address_2'][0]) ? $order_meta['_billing_address_2'][0] : ''; + $address = $address_1 . ' ' . $address_2; + $gender = ''; + $designation = ''; + $website = ''; + $vegetarian = ''; + $tshirtsize = ''; + $city = isset($order_meta['_billing_city'][0]) ? $order_meta['_billing_city'][0] : ''; + $state = isset($order_meta['_billing_state'][0]) ? $order_meta['_billing_state'][0] : ''; + $postcode = isset($order_meta['_billing_postcode'][0]) ? $order_meta['_billing_postcode'][0] : ''; + $country = isset($order_meta['_billing_country'][0]) ? $order_meta['_billing_country'][0] : ''; + $email = isset($order_meta['_billing_email'][0]) ? $order_meta['_billing_email'][0] : ''; + $phone = isset($order_meta['_billing_phone'][0]) ? $order_meta['_billing_phone'][0] : ''; + $ticket_type = stripslashes($_user_info['ticket_name']); + $event_date = $_user_info['event_date']; + $ticket_qty = $_user_info['ticket_qty']; + + } elseif ($type == 'user_form') { + + $uname = $_user_info['user_name']; + $email = $_user_info['user_email']; + $phone = $_user_info['user_phone']; + $address = $_user_info['user_address']; + $gender = $_user_info['user_gender']; + $company = $_user_info['user_company']; + $designation = $_user_info['user_designation']; + $website = $_user_info['user_website']; + $vegetarian = $_user_info['user_vegetarian']; + $tshirtsize = $_user_info['user_tshirtsize']; + $ticket_type = stripslashes($_user_info['user_ticket_type']); + $ticket_qty = $_user_info['user_ticket_qty']; + $event_date = $_user_info['user_event_date']; + $event_id = $_user_info['user_event_id'] ? $_user_info['user_event_id'] : $event_id; + $mep_ucf = isset($_user_info['mep_ucf']) ? $_user_info['mep_ucf'] : ""; + + } + + +// $ticket_single_price = mep_get_event_ticket_price_by_name($event_id,$ticket_type); + $ticket_total_price = (mep_get_event_ticket_price_by_name($event_id, $ticket_type) * $ticket_qty); + + $new_post = array( + 'post_title' => $uname, + 'post_content' => '', + 'post_category' => array(), // Usable for custom taxonomies too + 'tags_input' => array(), + 'post_status' => 'publish', // Choose: publish, preview, future, draft, etc. + 'post_type' => 'mep_events_attendees' //'post',page' or use a custom post type if you want to + ); + + //SAVE THE POST + $pid = wp_insert_post($new_post); + $pin = $user_id . $order_id . $event_id . $pid; + update_post_meta($pid, 'ea_name', $uname); + update_post_meta($pid, 'ea_address_1', $address); + update_post_meta($pid, 'ea_email', $email); + update_post_meta($pid, 'ea_phone', $phone); + update_post_meta($pid, 'ea_gender', $gender); + update_post_meta($pid, 'ea_company', $company); + update_post_meta($pid, 'ea_desg', $designation); + update_post_meta($pid, 'ea_website', $website); + update_post_meta($pid, 'ea_vegetarian', $vegetarian); + update_post_meta($pid, 'ea_tshirtsize', $tshirtsize); + update_post_meta($pid, 'ea_ticket_type', $ticket_type); + update_post_meta($pid, 'ea_ticket_qty', $ticket_qty); + update_post_meta($pid, 'ea_ticket_price', mep_get_ticket_price_by_event($event_id, $ticket_type, 0)); + update_post_meta($pid, 'ea_ticket_order_amount', $ticket_total_price); + update_post_meta($order_id, 'ea_ticket_qty', $ticket_qty); + update_post_meta($order_id, 'ea_ticket_type', $ticket_type); + update_post_meta($order_id, 'ea_event_id', $event_id); + update_post_meta($pid, 'ea_payment_method', $payment_method); + update_post_meta($pid, 'ea_event_name', get_the_title($event_id)); + update_post_meta($pid, 'ea_event_id', $event_id); + update_post_meta($pid, 'ea_order_id', $order_id); + update_post_meta($pid, 'ea_user_id', $user_id); + update_post_meta($pid, 'mep_checkin', 'No'); + update_post_meta($order_id, 'ea_user_id', $user_id); + update_post_meta($order_id, 'order_type_name', 'mep_events'); + update_post_meta($pid, 'ea_ticket_no', $pin); + update_post_meta($pid, 'ea_event_date', $event_date); + update_post_meta($pid, 'ea_order_status', $order_status); + update_post_meta($order_id, 'ea_order_status', $order_status); + + $hooking_data = apply_filters('mep_event_attendee_dynamic_data', array(), $pid, $type, $order_id, $event_id, $_user_info); + + if (is_array($hooking_data) && sizeof($hooking_data) > 0) { + foreach ($hooking_data as $_data) { + update_post_meta($pid, $_data['name'], $_data['value']); + } + } + + // Checking if the form builder addon is active and have any custom fields + $reg_form_id = mep_fb_get_reg_form_id($event_id); + $mep_form_builder_data = get_post_meta($reg_form_id, 'mep_form_builder_data', true) ? get_post_meta($reg_form_id, 'mep_form_builder_data', true) : []; + if (sizeof($mep_form_builder_data) > 0) { + foreach ($mep_form_builder_data as $_field) { + update_post_meta($pid, "ea_" . $_field['mep_fbc_id'], $_user_info[$_field['mep_fbc_id']]); + } + } // End User Form builder data update loop + + } +} + + +if (!function_exists('mep_attendee_extra_service_create')) { + function mep_attendee_extra_service_create($order_id, $event_id, $_event_extra_service) { + + $order = wc_get_order($order_id); + $order_meta = get_post_meta($order_id); + $order_status = $order->get_status(); + if (is_array($_event_extra_service) && sizeof($_event_extra_service) > 0) { + + foreach ($_event_extra_service as $extra_serive) { + if ($extra_serive['service_name']) { + $uname = 'Extra Service for ' . get_the_title($event_id) . ' Order #' . $order_id; + $new_post = array( + 'post_title' => $uname, + 'post_content' => '', + 'post_category' => array(), + 'tags_input' => array(), + 'post_status' => 'publish', + 'post_type' => 'mep_extra_service' + ); + + $pid = wp_insert_post($new_post); + + update_post_meta($pid, 'ea_extra_service_name', $extra_serive['service_name']); + update_post_meta($pid, 'ea_extra_service_qty', $extra_serive['service_qty']); + update_post_meta($pid, 'ea_extra_service_unit_price', $extra_serive['service_price']); + update_post_meta($pid, 'ea_extra_service_total_price', $extra_serive['service_qty'] * $extra_serive['service_price']); + update_post_meta($pid, 'ea_extra_service_event', $event_id); + update_post_meta($pid, 'ea_extra_service_order', $order_id); + update_post_meta($pid, 'ea_extra_service_order_status', $order_status); + update_post_meta($pid, 'ea_extra_service_event_date', $extra_serive['event_date']); + } + } + } + } +} + + +function mep_check_attendee_exist_before_create($order_id, $event_id) { + + $pending_status_filter = array( + 'key' => 'ea_order_status', + 'value' => 'pending', + 'compare' => '=' + ); + + $hold_status_filter = array( + 'key' => 'ea_order_status', + 'value' => 'on-hold', + 'compare' => '=' + ); + + $processing_status_filter = array( + 'key' => 'ea_order_status', + 'value' => 'processing', + 'compare' => '=' + ); + $completed_status_filter = array( + 'key' => 'ea_order_status', + 'value' => 'completed', + 'compare' => '=' + ); + + $args = array( + 'post_type' => 'mep_events_attendees', + 'posts_per_page' => -1, + 'meta_query' => array( + 'relation' => 'AND', + array( + 'relation' => 'AND', + array( + 'key' => 'ea_event_id', + 'value' => $event_id, + 'compare' => '=' + ), + array( + 'key' => 'ea_order_id', + 'value' => $order_id, + 'compare' => '=' + ) + ), + array( + 'relation' => 'OR', + $pending_status_filter, + $hold_status_filter, + $processing_status_filter, + $completed_status_filter + ) + ) + ); + $loop = new WP_Query($args); + return $loop->post_count; +} + + add_action('woocommerce_checkout_order_processed', 'mep_event_booking_management', 90); + add_action('__experimental_woocommerce_blocks_checkout_order_processed', 'mep_event_booking_management', 90); + // add_action('woocommerce_blocks_checkout_order_processed', 'mep_event_booking_management', 90); + if (!function_exists('mep_event_booking_management')) { + function mep_event_booking_management( $order_id) { + + $result = !is_numeric($order_id) ? json_decode($order_id) : [0]; + $order_id = !is_numeric($order_id) ? $result->id : $order_id; + + if ( ! $order_id ) + {return;} // Getting an instance of the order object $order = wc_get_order( $order_id ); $order_meta = get_post_meta($order_id); $order_status = $order->get_status(); + + if($order_status != 'failed'){ + + $form_position = mep_get_option( 'mep_user_form_position', 'general_attendee_sec', 'details_page' ); + if($form_position=='checkout_page'){ - $billing_intotal = isset($order_meta['_billing_address_index'][0]) ? $order_meta['_billing_address_index'][0] : ''; - $payment_method = isset($order_meta['_payment_method_title'][0]) ? $order_meta['_payment_method_title'][0] : ''; - $user_id = isset($order_meta['_customer_user'][0]) ? $order_meta['_customer_user'][0] : ''; + foreach ( $order->get_items() as $item_id => $item_values ) { + $item_id = $item_id; + } + $event_id = wc_get_order_item_meta($item_id,'event_id',true); + if (get_post_type($event_id) == 'mep_events') { + + $event_name = get_the_title($event_id); + $user_info_arr = wc_get_order_item_meta($item_id,'_event_user_info',true); + $service_info_arr = wc_get_order_item_meta($item_id,'_event_service_info',true); + $event_ticket_info_arr = wc_get_order_item_meta($item_id,'_event_ticket_info',true); + $item_quantity = 0; + $check_before_create = mep_check_attendee_exist_before_create($order_id,$event_id); - if($type == 'billing'){ - // Billing Information - $first_name = isset($order_meta['_billing_first_name'][0]) ? $order_meta['_billing_first_name'][0] : ''; - $last_name = isset($order_meta['_billing_last_name'][0]) ? $order_meta['_billing_last_name'][0] : ''; - $uname = $first_name.' '.$last_name; - $company = isset($order_meta['_billing_company'][0]) ? $order_meta['_billing_company'][0] : ''; - $address_1 = isset($order_meta['_billing_address_1'][0]) ? $order_meta['_billing_address_1'][0] : ''; - $address_2 = isset($order_meta['_billing_address_2'][0]) ? $order_meta['_billing_address_2'][0] : ''; - $address = $address_1.' '.$address_2; - $gender = ''; - $designation = ''; - $website = ''; - $vegetarian = ''; - $tshirtsize = ''; - $city = isset($order_meta['_billing_city'][0]) ? $order_meta['_billing_city'][0] : ''; - $state = isset($order_meta['_billing_state'][0]) ? $order_meta['_billing_state'][0] : ''; - $postcode = isset($order_meta['_billing_postcode'][0]) ? $order_meta['_billing_postcode'][0] : ''; - $country = isset($order_meta['_billing_country'][0]) ? $order_meta['_billing_country'][0] : ''; - $email = isset($order_meta['_billing_email'][0]) ? $order_meta['_billing_email'][0] : ''; - $phone = isset($order_meta['_billing_phone'][0]) ? $order_meta['_billing_phone'][0] : ''; - $ticket_type = stripslashes($_user_info['ticket_name']); - $event_date = $_user_info['event_date']; - $ticket_qty = $_user_info['ticket_qty']; - - }elseif($type == 'user_form'){ - - $uname = $_user_info['user_name']; - $email = $_user_info['user_email']; - $phone = $_user_info['user_phone']; - $address = $_user_info['user_address']; - $gender = $_user_info['user_gender']; - $company = $_user_info['user_company']; - $designation = $_user_info['user_designation']; - $website = $_user_info['user_website']; - $vegetarian = $_user_info['user_vegetarian']; - $tshirtsize = $_user_info['user_tshirtsize']; - $ticket_type = stripslashes($_user_info['user_ticket_type']); - $ticket_qty = $_user_info['user_ticket_qty']; - $event_date = $_user_info['user_event_date']; - $event_id = $_user_info['user_event_id'] ? $_user_info['user_event_id'] : $event_id; - $mep_ucf = isset($_user_info['mep_ucf']) ? $_user_info['mep_ucf'] : ""; - - } - - -// $ticket_single_price = mep_get_event_ticket_price_by_name($event_id,$ticket_type); -$ticket_total_price = (mep_get_event_ticket_price_by_name($event_id,$ticket_type) * $ticket_qty); - - $new_post = array( - 'post_title' => $uname, - 'post_content' => '', - 'post_category' => array(), // Usable for custom taxonomies too - 'tags_input' => array(), - 'post_status' => 'publish', // Choose: publish, preview, future, draft, etc. - 'post_type' => 'mep_events_attendees' //'post',page' or use a custom post type if you want to - ); - - //SAVE THE POST - $pid = wp_insert_post($new_post); - $pin = $user_id.$order_id.$event_id.$pid; - update_post_meta( $pid, 'ea_name', $uname ); - update_post_meta( $pid, 'ea_address_1', $address ); - update_post_meta( $pid, 'ea_email', $email ); - update_post_meta( $pid, 'ea_phone', $phone ); - update_post_meta( $pid, 'ea_gender', $gender ); - update_post_meta( $pid, 'ea_company', $company ); - update_post_meta( $pid, 'ea_desg', $designation ); - update_post_meta( $pid, 'ea_website', $website ); - update_post_meta( $pid, 'ea_vegetarian', $vegetarian ); - update_post_meta( $pid, 'ea_tshirtsize', $tshirtsize ); - update_post_meta( $pid, 'ea_ticket_type', $ticket_type ); - update_post_meta( $pid, 'ea_ticket_qty', $ticket_qty); - update_post_meta( $pid, 'ea_ticket_price', mep_get_ticket_price_by_event($event_id,$ticket_type,0)); - update_post_meta( $pid, 'ea_ticket_order_amount', $ticket_total_price); - update_post_meta( $order_id, 'ea_ticket_qty', $ticket_qty); - update_post_meta( $order_id, 'ea_ticket_type', $ticket_type ); - update_post_meta( $order_id, 'ea_event_id', $event_id ); - update_post_meta( $pid, 'ea_payment_method', $payment_method ); - update_post_meta( $pid, 'ea_event_name', get_the_title( $event_id ) ); - update_post_meta( $pid, 'ea_event_id', $event_id ); - update_post_meta( $pid, 'ea_order_id', $order_id ); - update_post_meta( $pid, 'ea_user_id', $user_id ); - update_post_meta( $pid, 'mep_checkin', 'No' ); - update_post_meta( $order_id, 'ea_user_id', $user_id ); - update_post_meta( $order_id, 'order_type_name', 'mep_events' ); - update_post_meta( $pid, 'ea_ticket_no', $pin ); - update_post_meta( $pid, 'ea_event_date', $event_date ); - update_post_meta( $pid, 'ea_order_status', $order_status ); - update_post_meta( $order_id, 'ea_order_status', $order_status ); - - $hooking_data = apply_filters('mep_event_attendee_dynamic_data',array(),$pid,$type,$order_id,$event_id,$_user_info); - - if(is_array($hooking_data) && sizeof($hooking_data) > 0){ - foreach ($hooking_data as $_data) { - update_post_meta( $pid, $_data['name'], $_data['value'] ); + foreach ( $event_ticket_info_arr as $field ) { + if($field['ticket_qty']>0){ + $item_quantity = $item_quantity + $field['ticket_qty']; } - } - - // Checking if the form builder addon is active and have any custom fields - $reg_form_id = mep_fb_get_reg_form_id($event_id); - $mep_form_builder_data = get_post_meta($reg_form_id, 'mep_form_builder_data', true) ? get_post_meta($reg_form_id, 'mep_form_builder_data', true) : []; - if ( sizeof($mep_form_builder_data) > 0 ) { - foreach ( $mep_form_builder_data as $_field ) { - update_post_meta( $pid, "ea_".$_field['mep_fbc_id'], $_user_info[$_field['mep_fbc_id']]); - } - } // End User Form builder data update loop - - } -} - - -if (!function_exists('mep_attendee_extra_service_create')) { - function mep_attendee_extra_service_create($order_id,$event_id, $_event_extra_service){ - - $order = wc_get_order( $order_id ); - $order_meta = get_post_meta($order_id); - $order_status = $order->get_status(); - if(is_array($_event_extra_service) && sizeof($_event_extra_service) > 0){ - - foreach($_event_extra_service as $extra_serive){ - if($extra_serive['service_name']){ - $uname = 'Extra Service for '.get_the_title($event_id).' Order #'.$order_id; - $new_post = array( - 'post_title' => $uname, - 'post_content' => '', - 'post_category' => array(), - 'tags_input' => array(), - 'post_status' => 'publish', - 'post_type' => 'mep_extra_service' - ); - - $pid = wp_insert_post($new_post); - - update_post_meta( $pid, 'ea_extra_service_name', $extra_serive['service_name'] ); - update_post_meta( $pid, 'ea_extra_service_qty', $extra_serive['service_qty'] ); - update_post_meta( $pid, 'ea_extra_service_unit_price', $extra_serive['service_price'] ); - update_post_meta( $pid, 'ea_extra_service_total_price', $extra_serive['service_qty'] * $extra_serive['service_price'] ); - update_post_meta( $pid, 'ea_extra_service_event', $event_id ); - update_post_meta( $pid, 'ea_extra_service_order', $order_id ); - update_post_meta( $pid, 'ea_extra_service_order_status', $order_status ); - update_post_meta( $pid, 'ea_extra_service_event_date', $extra_serive['event_date'] ); - } - } - } - } -} - - - - - - -function mep_check_attendee_exist_before_create($order_id,$event_id){ - - $pending_status_filter = array( - 'key' => 'ea_order_status', - 'value' => 'pending', - 'compare' => '=' - ); - - $hold_status_filter = array( - 'key' => 'ea_order_status', - 'value' => 'on-hold', - 'compare' => '=' - ); - - $processing_status_filter = array( - 'key' => 'ea_order_status', - 'value' => 'processing', - 'compare' => '=' - ); - $completed_status_filter = array( - 'key' => 'ea_order_status', - 'value' => 'completed', - 'compare' => '=' - ); - - $args = array( - 'post_type' => 'mep_events_attendees', - 'posts_per_page' => -1, - 'meta_query' => array( - 'relation' => 'AND', - array( - 'relation' => 'AND', - array( - 'key' => 'ea_event_id', - 'value' => $event_id, - 'compare' => '=' - ), - array( - 'key' => 'ea_order_id', - 'value' => $order_id, - 'compare' => '=' - ) - ), - array( - 'relation' => 'OR', - $pending_status_filter, - $hold_status_filter, - $processing_status_filter, - $completed_status_filter - ) - ) - ); - $loop = new WP_Query($args); - return $loop->post_count; -} - - -add_action('woocommerce_checkout_order_processed', 'mep_event_booking_management', 90); -add_action('__experimental_woocommerce_blocks_checkout_order_processed', 'mep_event_booking_management', 90); -// add_action('woocommerce_blocks_checkout_order_processed', 'mep_event_booking_management', 90); -if (!function_exists('mep_event_booking_management')) { -function mep_event_booking_management( $order_id) { - - $result = !is_numeric($order_id) ? json_decode($order_id) : [0]; - // $order_id = json_last_error() === JSON_ERROR_NONE ? $result->id : $order_id; - $order_id = !is_numeric($order_id) ? $result->id : $order_id; - -if ( ! $order_id ) - {return;} - -// Getting an instance of the order object -$order = wc_get_order( $order_id ); -$order_meta = get_post_meta($order_id); -$order_status = $order->get_status(); - -if($order_status != 'failed'){ - -$form_position = mep_get_option( 'mep_user_form_position', 'general_attendee_sec', 'details_page' ); - -if($form_position=='checkout_page'){ - - foreach ( $order->get_items() as $item_id => $item_values ) { - $item_id = $item_id; - } - $event_id = wc_get_order_item_meta($item_id,'event_id',true); - if (get_post_type($event_id) == 'mep_events') { - - $event_name = get_the_title($event_id); - $user_info_arr = wc_get_order_item_meta($item_id,'_event_user_info',true); - $service_info_arr = wc_get_order_item_meta($item_id,'_event_service_info',true); - $event_ticket_info_arr = wc_get_order_item_meta($item_id,'_event_ticket_info',true); - $item_quantity = 0; - $check_before_create = mep_check_attendee_exist_before_create($order_id,$event_id); - - foreach ( $event_ticket_info_arr as $field ) { - if($field['ticket_qty']>0){ - $item_quantity = $item_quantity + $field['ticket_qty']; - } - } - if(is_array($user_info_arr) & sizeof($user_info_arr) > 0){ - foreach ($user_info_arr as $_user_info) { - if($check_before_create < count($user_info_arr)){ - mep_attendee_create('user_form',$order_id,$event_id,$_user_info); - } } - }else{ - foreach($event_ticket_info_arr as $tinfo){ - for ($x = 1; $x <= $tinfo['ticket_qty']; $x++) { - - if($check_before_create < count($event_ticket_info_arr)){ - mep_attendee_create('billing',$order_id,$event_id,$tinfo); - } - + if(is_array($user_info_arr) & sizeof($user_info_arr) > 0){ + foreach ($user_info_arr as $_user_info) { + if($check_before_create < count($user_info_arr)){ + mep_attendee_create('user_form',$order_id,$event_id,$_user_info); } - } - } - } - -}else{ - - foreach ( $order->get_items() as $item_id => $item_values ) { - $item_id = $item_id; - $event_id = wc_get_order_item_meta($item_id,'event_id',true); - if (get_post_type($event_id) == 'mep_events') { - $event_name = get_the_title($event_id); - $user_info_arr = wc_get_order_item_meta($item_id,'_event_user_info',true); - $service_info_arr = wc_get_order_item_meta($item_id,'_event_service_info',true); - $event_ticket_info_arr = wc_get_order_item_meta($item_id,'_event_ticket_info',true); - $_event_extra_service = wc_get_order_item_meta($item_id,'_event_extra_service',true); - $item_quantity = 0; - $check_before_create = mep_check_attendee_exist_before_create($order_id,$event_id); - mep_attendee_extra_service_create($order_id,$event_id,$_event_extra_service); - foreach ( $event_ticket_info_arr as $field ) { - if($field['ticket_qty']>0){ - $item_quantity = $item_quantity + $field['ticket_qty']; - } } - if(is_array($user_info_arr) & sizeof($user_info_arr) > 0){ - foreach ($user_info_arr as $_user_info) { + }else{ + foreach($event_ticket_info_arr as $tinfo){ + for ($x = 1; $x <= $tinfo['ticket_qty']; $x++) { - if($check_before_create < count($user_info_arr)){ - mep_attendee_create('user_form',$order_id,$event_id,$_user_info); - } - - } - }else{ - foreach($event_ticket_info_arr as $tinfo){ - for ($x = 1; $x <= $tinfo['ticket_qty']; $x++) { - if($check_before_create < count($event_ticket_info_arr)){ - mep_attendee_create('billing',$order_id,$event_id,$tinfo); - } - - } - } - } - } // end of check post type - } -} -do_action('mep_after_event_booking',$order_id,$order->get_status()); - } -} -} - -function mep_delete_attandee_of_an_order($order_id,$event_id){ - - $args = array ( - 'post_type' => array( 'mep_events_attendees' ), - 'posts_per_page' => -1, - 'meta_query' => array( - array( - 'key' => 'ea_order_id', - 'value' => $order_id, - 'compare' => '=' - ), - array( - 'key' => 'ea_event_id', - 'value' => $event_id, - 'compare' => '=' - ), - array( - 'key' => 'ea_order_status', - 'value' => 'pending', - 'compare' => '=' - ) - ) - ); - $loop = new WP_Query($args); - foreach ($loop->posts as $ticket) { - $post_id = $ticket->ID; - wp_delete_post($post_id, true); - } -} - - -if (!function_exists('change_attandee_order_status')) { - function change_attandee_order_status($order_id,$set_status,$post_status,$qr_status=null){ - add_filter( 'wpseo_public_post_statuses', 'mepfix_sitemap_exclude_post_type', 5 ); - - $args = array ( - 'post_type' => array( 'mep_events_attendees' ), - 'posts_per_page' => -1, - 'post_status' => $post_status, - 'meta_query' => array( - array( - 'key' => 'ea_order_id', - 'value' => $order_id, - 'compare' => '=' - ) - ) - ); - $loop = new WP_Query($args); - $tid = array(); - foreach ($loop->posts as $ticket) { - $post_id = $ticket->ID; - update_post_meta($post_id, 'ea_order_status', $qr_status); - $current_post = get_post( $post_id, 'ARRAY_A' ); - $current_post['post_status'] = $set_status; - wp_update_post($current_post); - } - } -} - - -if (!function_exists('change_extra_service_status')) { - function change_extra_service_status($order_id,$set_status,$post_status,$qr_status=null){ - add_filter( 'wpseo_public_post_statuses', 'mepfix_sitemap_exclude_post_type', 5 ); - $args = array ( - 'post_type' => array( 'mep_extra_service' ), - 'posts_per_page' => -1, - 'post_status' => $post_status, - 'meta_query' => array( - array( - 'key' => 'ea_extra_service_order', - 'value' => $order_id, - 'compare' => '=' - ) - ) - ); - $loop = new WP_Query($args); - $tid = array(); - foreach ($loop->posts as $ticket) { - $post_id = $ticket->ID; - - update_post_meta($post_id, 'ea_extra_service_order_status', $qr_status); - - $current_post = get_post( $post_id, 'ARRAY_A' ); - $current_post['post_status'] = $set_status; - wp_update_post($current_post); - } - } -} - - -if (!function_exists('change_wc_event_product_status')) { - function change_wc_event_product_status($order_id,$set_status,$post_status,$qr_status=null){ - add_filter( 'wpseo_public_post_statuses', 'mepfix_sitemap_exclude_post_type', 5 ); - $args = array ( - 'post_type' => array( 'product' ), - 'posts_per_page' => -1, - 'post_status' => $post_status, - 'meta_query' => array( - array( - 'key' => 'link_mep_event', - 'value' => $order_id, - 'compare' => '=' - ) - ) - ); - $loop = new WP_Query($args); - $tid = array(); - foreach ($loop->posts as $ticket) { - $post_id = $ticket->ID; - if(!empty($qr_status)){ - //update_post_meta($post_id, 'ea_order_status', $qr_status); + if($check_before_create < count($event_ticket_info_arr)){ + mep_attendee_create('billing',$order_id,$event_id,$tinfo); } - $current_post = get_post( $post_id, 'ARRAY_A' ); - $current_post['post_status'] = $set_status; - wp_update_post($current_post); + + } } - } -} - - - - - add_action('wp_trash_post','mep_addendee_trash',90); - if (!function_exists('mep_addendee_trash')) { - function mep_addendee_trash( $post_id ) { - $post_type = get_post_type( $post_id ); - $post_status = get_post_status( $post_id ); - - if ( $post_type == 'shop_order' ) { - change_attandee_order_status( $post_id, 'trash', 'publish', '' ); - change_extra_service_status( $post_id, 'trash', 'publish', '' ); + } } - - - if ( $post_type == 'mep_events' ) { - change_wc_event_product_status( $post_id, 'trash', 'publish', '' ); + + }else{ + + foreach ( $order->get_items() as $item_id => $item_values ) { + $item_id = $item_id; + $event_id = wc_get_order_item_meta($item_id,'event_id',true); + if (get_post_type($event_id) == 'mep_events') { + $event_name = get_the_title($event_id); + $user_info_arr = wc_get_order_item_meta($item_id,'_event_user_info',true); + $service_info_arr = wc_get_order_item_meta($item_id,'_event_service_info',true); + $event_ticket_info_arr = wc_get_order_item_meta($item_id,'_event_ticket_info',true); + $_event_extra_service = wc_get_order_item_meta($item_id,'_event_extra_service',true); + $item_quantity = 0; + $check_before_create = mep_check_attendee_exist_before_create($order_id,$event_id); + mep_attendee_extra_service_create($order_id,$event_id,$_event_extra_service); + foreach ( $event_ticket_info_arr as $field ) { + if($field['ticket_qty']>0){ + $item_quantity = $item_quantity + $field['ticket_qty']; + } + } + if(is_array($user_info_arr) & sizeof($user_info_arr) > 0){ + foreach ($user_info_arr as $_user_info) { + + if($check_before_create < count($user_info_arr)){ + mep_attendee_create('user_form',$order_id,$event_id,$_user_info); + } + + } + }else{ + foreach($event_ticket_info_arr as $tinfo){ + for ($x = 1; $x <= $tinfo['ticket_qty']; $x++) { + if($check_before_create < count($event_ticket_info_arr)){ + mep_attendee_create('billing',$order_id,$event_id,$tinfo); + } + + } + } + } + } // end of check post type + } + } + do_action('mep_after_event_booking',$order_id,$order->get_status()); } } } - - add_action('untrash_post','mep_addendee_untrash',90); - if (!function_exists('mep_addendee_untrash')) { - function mep_addendee_untrash( $post_id ) { - $post_type = get_post_type( $post_id ); - $post_status = get_post_status( $post_id ); - if ( $post_type == 'shop_order' ) { - $order = wc_get_order( $post_id ); - $order_status = $order->get_status(); - change_attandee_order_status( $post_id, 'publish', 'trash', '' ); - change_extra_service_status( $post_id, 'publish', 'trash', '' ); + +function mep_delete_attandee_of_an_order($order_id, $event_id) { + + $args = array( + 'post_type' => array('mep_events_attendees'), + 'posts_per_page' => -1, + 'meta_query' => array( + array( + 'key' => 'ea_order_id', + 'value' => $order_id, + 'compare' => '=' + ), + array( + 'key' => 'ea_event_id', + 'value' => $event_id, + 'compare' => '=' + ), + array( + 'key' => 'ea_order_status', + 'value' => 'pending', + 'compare' => '=' + ) + ) + ); + $loop = new WP_Query($args); + foreach ($loop->posts as $ticket) { + $post_id = $ticket->ID; + wp_delete_post($post_id, true); } - - if ( $post_type == 'mep_events' ) { - change_wc_event_product_status( $post_id, 'publish', 'trash', '' ); - } - - } } - - - add_action('woocommerce_order_status_changed', 'mep_attendee_status_update', 10, 4); - if (!function_exists('mep_attendee_status_update')) { - function mep_attendee_status_update($order_id, $from_status, $to_status, $order ){ - - global $wpdb,$wotm; - // Getting an instance of the order object - $order = wc_get_order( $order_id ); - $order_meta = get_post_meta($order_id); - $email = isset($order_meta['_billing_email'][0]) ? $order_meta['_billing_email'][0] : array(); - $email_send_status = mep_get_option('mep_email_sending_order_status','email_setting_sec',array('completed' => 'completed')); - // mep_email_sending_order_status - $order_status = $order->get_status(); - - - foreach ( $order->get_items() as $item_id => $item_values ) { - $item_id = $item_id; - $event_id = mep_event_get_order_meta($item_id,'event_id'); - - if (get_post_type($event_id) == 'mep_events') { - - - if($order->has_status( 'processing' ) ) { - change_attandee_order_status($order_id,'publish','trash','processing'); - change_attandee_order_status($order_id,'publish','publish','processing'); - change_extra_service_status($order_id,'publish','trash','processing'); - change_extra_service_status($order_id,'publish','publish','processing'); - do_action('mep_wc_order_status_change',$order_status,$event_id,$order_id); - if(in_array('processing',$email_send_status)){ - mep_event_confirmation_email_sent($event_id,$email,$order_id); - } +if (!function_exists('change_attandee_order_status')) { + function change_attandee_order_status($order_id, $set_status, $post_status, $qr_status = null) { + add_filter('wpseo_public_post_statuses', 'mepfix_sitemap_exclude_post_type', 5); + + $args = array( + 'post_type' => array('mep_events_attendees'), + 'posts_per_page' => -1, + 'post_status' => $post_status, + 'meta_query' => array( + array( + 'key' => 'ea_order_id', + 'value' => $order_id, + 'compare' => '=' + ) + ) + ); + $loop = new WP_Query($args); + $tid = array(); + foreach ($loop->posts as $ticket) { + $post_id = $ticket->ID; + update_post_meta($post_id, 'ea_order_status', $qr_status); + $current_post = get_post($post_id, 'ARRAY_A'); + $current_post['post_status'] = $set_status; + wp_update_post($current_post); + } + } +} + + +if (!function_exists('change_extra_service_status')) { + function change_extra_service_status($order_id, $set_status, $post_status, $qr_status = null) { + add_filter('wpseo_public_post_statuses', 'mepfix_sitemap_exclude_post_type', 5); + $args = array( + 'post_type' => array('mep_extra_service'), + 'posts_per_page' => -1, + 'post_status' => $post_status, + 'meta_query' => array( + array( + 'key' => 'ea_extra_service_order', + 'value' => $order_id, + 'compare' => '=' + ) + ) + ); + $loop = new WP_Query($args); + $tid = array(); + foreach ($loop->posts as $ticket) { + $post_id = $ticket->ID; + + update_post_meta($post_id, 'ea_extra_service_order_status', $qr_status); + + $current_post = get_post($post_id, 'ARRAY_A'); + $current_post['post_status'] = $set_status; + wp_update_post($current_post); + } + } +} + + +if (!function_exists('change_wc_event_product_status')) { + function change_wc_event_product_status($order_id, $set_status, $post_status, $qr_status = null) { + add_filter('wpseo_public_post_statuses', 'mepfix_sitemap_exclude_post_type', 5); + $args = array( + 'post_type' => array('product'), + 'posts_per_page' => -1, + 'post_status' => $post_status, + 'meta_query' => array( + array( + 'key' => 'link_mep_event', + 'value' => $order_id, + 'compare' => '=' + ) + ) + ); + $loop = new WP_Query($args); + $tid = array(); + foreach ($loop->posts as $ticket) { + $post_id = $ticket->ID; + if (!empty($qr_status)) { + //update_post_meta($post_id, 'ea_order_status', $qr_status); + } + $current_post = get_post($post_id, 'ARRAY_A'); + $current_post['post_status'] = $set_status; + wp_update_post($current_post); + } + } +} + + +add_action('wp_trash_post', 'mep_addendee_trash', 90); +if (!function_exists('mep_addendee_trash')) { + function mep_addendee_trash($post_id) { + $post_type = get_post_type($post_id); + $post_status = get_post_status($post_id); + + if ($post_type == 'shop_order') { + change_attandee_order_status($post_id, 'trash', 'publish', ''); + change_extra_service_status($post_id, 'trash', 'publish', ''); + } + + + if ($post_type == 'mep_events') { + change_wc_event_product_status($post_id, 'trash', 'publish', ''); + } + } +} + +add_action('untrash_post', 'mep_addendee_untrash', 90); +if (!function_exists('mep_addendee_untrash')) { + function mep_addendee_untrash($post_id) { + $post_type = get_post_type($post_id); + $post_status = get_post_status($post_id); + if ($post_type == 'shop_order') { + $order = wc_get_order($post_id); + $order_status = $order->get_status(); + change_attandee_order_status($post_id, 'publish', 'trash', ''); + change_extra_service_status($post_id, 'publish', 'trash', ''); + } + + if ($post_type == 'mep_events') { + change_wc_event_product_status($post_id, 'publish', 'trash', ''); + } + + } +} + + +add_action('woocommerce_order_status_changed', 'mep_attendee_status_update', 10, 4); +if (!function_exists('mep_attendee_status_update')) { + function mep_attendee_status_update($order_id, $from_status, $to_status, $order) { + + global $wpdb, $wotm; + // Getting an instance of the order object + $order = wc_get_order($order_id); + $order_meta = get_post_meta($order_id); + $email = isset($order_meta['_billing_email'][0]) ? $order_meta['_billing_email'][0] : array(); + $email_send_status = mep_get_option('mep_email_sending_order_status', 'email_setting_sec', array('completed' => 'completed')); + // mep_email_sending_order_status + $order_status = $order->get_status(); + + + foreach ($order->get_items() as $item_id => $item_values) { + $item_id = $item_id; + $event_id = mep_event_get_order_meta($item_id, 'event_id'); + + if (get_post_type($event_id) == 'mep_events') { + + + if ($order->has_status('processing')) { + + + change_attandee_order_status($order_id, 'publish', 'trash', 'processing'); + change_attandee_order_status($order_id, 'publish', 'publish', 'processing'); + change_extra_service_status($order_id, 'publish', 'trash', 'processing'); + change_extra_service_status($order_id, 'publish', 'publish', 'processing'); + do_action('mep_wc_order_status_change', $order_status, $event_id, $order_id); + if (in_array('processing', $email_send_status)) { + mep_event_confirmation_email_sent($event_id, $email, $order_id); + } + + } + if ($order->has_status('pending')) { + change_attandee_order_status($order_id, 'publish', 'trash', 'pending'); + change_attandee_order_status($order_id, 'publish', 'publish', 'pending'); + change_extra_service_status($order_id, 'publish', 'trash', 'pending'); + change_extra_service_status($order_id, 'publish', 'publish', 'pending'); + do_action('mep_wc_order_status_change', $order_status, $event_id, $order_id); + } + if ($order->has_status('on-hold')) { + change_attandee_order_status($order_id, 'publish', 'trash', 'on-hold'); + change_attandee_order_status($order_id, 'publish', 'publish', 'on-hold'); + do_action('mep_wc_order_status_change', $order_status, $event_id, $order_id); + } + if ($order->has_status('completed')) { + + + change_attandee_order_status($order_id, 'publish', 'trash', 'completed'); + change_attandee_order_status($order_id, 'publish', 'publish', 'completed'); + change_extra_service_status($order_id, 'publish', 'trash', 'completed'); + change_extra_service_status($order_id, 'publish', 'publish', 'completed'); + do_action('mep_wc_order_status_change', $order_status, $event_id, $order_id); + if (in_array('completed', $email_send_status)) { + mep_event_confirmation_email_sent($event_id, $email, $order_id); + } + } + if ($order->has_status('cancelled')) { + change_attandee_order_status($order_id, 'trash', 'publish', 'cancelled'); + change_extra_service_status($order_id, 'trash', 'publish', 'cancelled'); + do_action('mep_wc_order_status_change', $order_status, $event_id, $order_id); + } + if ($order->has_status('refunded')) { + change_attandee_order_status($order_id, 'trash', 'publish', 'refunded'); + change_extra_service_status($order_id, 'trash', 'publish', 'refunded'); + do_action('mep_wc_order_status_change', $order_status, $event_id, $order_id); + } + if ($order->has_status('failed')) { + change_attandee_order_status($order_id, 'trash', 'publish', 'failed'); + change_extra_service_status($order_id, 'trash', 'publish', 'failed'); + do_action('mep_wc_order_status_change', $order_status, $event_id, $order_id); + } + } // End of Post Type Check + } // End order item foreach + } // End Function +} + + +add_action('restrict_manage_posts', 'mep_filter_post_type_by_taxonomy'); +if (!function_exists('mep_filter_post_type_by_taxonomy')) { + function mep_filter_post_type_by_taxonomy() { + global $typenow; + $post_type = 'mep_events'; // change to your post type + $taxonomy = 'mep_cat'; // change to your taxonomy + if ($typenow == $post_type) { + $selected = isset($_GET[$taxonomy]) ? $_GET[$taxonomy] : ''; + $info_taxonomy = get_taxonomy($taxonomy); + wp_dropdown_categories(array( + 'show_option_all' => __("Show All {$info_taxonomy->label}"), + 'taxonomy' => $taxonomy, + 'name' => $taxonomy, + 'orderby' => 'name', + 'selected' => $selected, + 'show_count' => true, + 'hide_empty' => true, + )); + }; + } +} + + +add_filter('parse_query', 'mep_convert_id_to_term_in_query'); +if (!function_exists('mep_convert_id_to_term_in_query')) { + function mep_convert_id_to_term_in_query($query) { + global $pagenow; + $post_type = 'mep_events'; // change to your post type + $taxonomy = 'mep_cat'; // change to your taxonomy + $q_vars = &$query->query_vars; + + if ($pagenow == 'edit.php' && isset($q_vars['post_type']) && $q_vars['post_type'] == $post_type && isset($q_vars[$taxonomy]) && is_numeric($q_vars[$taxonomy]) && $q_vars[$taxonomy] != 0) { + $term = get_term_by('id', $q_vars[$taxonomy], $taxonomy); + $q_vars[$taxonomy] = $term->slug; + } + + } +} + + +add_filter('parse_query', 'mep_attendee_filter_query'); +if (!function_exists('mep_attendee_filter_query')) { + function mep_attendee_filter_query($query) { + global $pagenow; + $post_type = 'mep_events_attendees'; + $q_vars = &$query->query_vars; + + if ($pagenow == 'edit.php' && isset($_GET['post_type']) && $_GET['post_type'] == $post_type && isset($_GET['meta_value']) && $_GET['meta_value'] != 0) { + + $q_vars['meta_key'] = 'ea_event_id'; + $q_vars['meta_value'] = $_GET['meta_value']; + + } elseif ($pagenow == 'edit.php' && isset($_GET['post_type']) && $_GET['post_type'] == $post_type && isset($_GET['event_id']) && $_GET['event_id'] != 0 && !isset($_GET['action'])) { + + $event_date = date('Y-m-d', strtotime($_GET['ea_event_date'])); + $meta_query = array([ + 'key' => 'ea_event_id', + 'value' => $_GET['event_id'], + 'compare' => '=' + ], [ + 'key' => 'ea_event_date', + 'value' => $event_date, + 'compare' => 'LIKE' + ], [ + 'key' => 'ea_order_status', + 'value' => 'completed', + 'compare' => '=' + ]); + + $query->set('meta_query', $meta_query); } - if($order->has_status( 'pending' )) { - change_attandee_order_status($order_id,'publish','trash','pending'); - change_attandee_order_status($order_id,'publish','publish','pending'); - change_extra_service_status($order_id,'publish','trash','pending'); - change_extra_service_status($order_id,'publish','publish','pending'); - do_action('mep_wc_order_status_change',$order_status,$event_id,$order_id); - } - if($order->has_status( 'on-hold' )) { - change_attandee_order_status($order_id,'publish','trash','on-hold'); - change_attandee_order_status($order_id,'publish','publish','on-hold'); - do_action('mep_wc_order_status_change',$order_status,$event_id,$order_id); - } - if($order->has_status( 'completed' ) ) { - - - change_attandee_order_status($order_id,'publish','trash','completed'); - change_attandee_order_status($order_id,'publish','publish','completed'); - change_extra_service_status($order_id,'publish','trash','completed'); - change_extra_service_status($order_id,'publish','publish','completed'); - do_action('mep_wc_order_status_change',$order_status,$event_id,$order_id); - if(in_array('completed',$email_send_status)){ - mep_event_confirmation_email_sent($event_id,$email,$order_id); - } - } - if($order->has_status( 'cancelled' ) ) { - change_attandee_order_status($order_id,'trash','publish','cancelled'); - change_extra_service_status($order_id,'trash','publish','cancelled'); - do_action('mep_wc_order_status_change',$order_status,$event_id,$order_id); - } - if($order->has_status( 'refunded' ) ) { - change_attandee_order_status($order_id,'trash','publish','refunded'); - change_extra_service_status($order_id,'trash','publish','refunded'); - do_action('mep_wc_order_status_change',$order_status,$event_id,$order_id); - } - if($order->has_status( 'failed' ) ) { - change_attandee_order_status($order_id,'trash','publish','failed'); - change_extra_service_status($order_id,'trash','publish','failed'); - do_action('mep_wc_order_status_change',$order_status,$event_id,$order_id); - } - } // End of Post Type Check - } // End order item foreach - } // End Function -} - - - - - - - add_action('restrict_manage_posts', 'mep_filter_post_type_by_taxonomy'); - if (!function_exists('mep_filter_post_type_by_taxonomy')) { - function mep_filter_post_type_by_taxonomy() { - global $typenow; - $post_type = 'mep_events'; // change to your post type - $taxonomy = 'mep_cat'; // change to your taxonomy - if ($typenow == $post_type) { - $selected = isset($_GET[$taxonomy]) ? $_GET[$taxonomy] : ''; - $info_taxonomy = get_taxonomy($taxonomy); - wp_dropdown_categories(array( - 'show_option_all' => __("Show All {$info_taxonomy->label}"), - 'taxonomy' => $taxonomy, - 'name' => $taxonomy, - 'orderby' => 'name', - 'selected' => $selected, - 'show_count' => true, - 'hide_empty' => true, - )); - }; - } -} - - - - add_filter('parse_query', 'mep_convert_id_to_term_in_query'); - if (!function_exists('mep_convert_id_to_term_in_query')) { - function mep_convert_id_to_term_in_query($query) { - global $pagenow; - $post_type = 'mep_events'; // change to your post type - $taxonomy = 'mep_cat'; // change to your taxonomy - $q_vars = &$query->query_vars; - - if ( $pagenow == 'edit.php' && isset($q_vars['post_type']) && $q_vars['post_type'] == $post_type && isset($q_vars[$taxonomy]) && is_numeric($q_vars[$taxonomy]) && $q_vars[$taxonomy] != 0 ) { - $term = get_term_by('id', $q_vars[$taxonomy], $taxonomy); - $q_vars[$taxonomy] = $term->slug; } - - } } - - - add_filter('parse_query', 'mep_attendee_filter_query'); - if (!function_exists('mep_attendee_filter_query')) { - function mep_attendee_filter_query($query) { - global $pagenow; - $post_type = 'mep_events_attendees'; - $q_vars = &$query->query_vars; - - if ( $pagenow == 'edit.php' && isset($_GET['post_type']) && $_GET['post_type'] == $post_type && isset($_GET['meta_value']) && $_GET['meta_value'] != 0) { - - $q_vars['meta_key'] = 'ea_event_id'; - $q_vars['meta_value'] = $_GET['meta_value']; - - }elseif ( $pagenow == 'edit.php' && isset($_GET['post_type']) && $_GET['post_type'] == $post_type && isset($_GET['event_id']) && $_GET['event_id'] != 0 && !isset($_GET['action']) ) { - - $event_date = date('Y-m-d',strtotime($_GET['ea_event_date'])); - $meta_query = array([ - 'key' => 'ea_event_id', - 'value' => $_GET['event_id'], - 'compare' => '=' - ],[ - 'key' => 'ea_event_date', - 'value' => $event_date, - 'compare' => 'LIKE' - ],[ - 'key' => 'ea_order_status', - 'value' => 'completed', - 'compare' => '=' - ]); - - $query->set( 'meta_query', $meta_query ); - + + +// Add the data to the custom columns for the book post type: +add_action('manage_mep_events_posts_custom_column', 'mep_custom_event_column', 10, 2); +if (!function_exists('mep_custom_event_column')) { + function mep_custom_event_column($column, $post_id) { + $post_id = mep_get_default_lang_event_id($post_id); + switch ($column) { + case 'mep_status' : + $values = get_post_custom($post_id); + $recurring = get_post_meta($post_id, 'mep_enable_recurring', true) ? get_post_meta($post_id, 'mep_enable_recurring', true) : 'no'; + if ($recurring == 'yes') { + $event_more_dates = get_post_meta($post_id, 'mep_event_more_date', true); + $seat_left = 10; + $md = end($event_more_dates); + $more_date = $md['event_more_start_date'] . ' ' . $md['event_more_start_time']; + $event_date = date('Y-m-d H:i:s', strtotime($more_date)); + } else { + $event_expire_on_old = mep_get_option('mep_event_expire_on_datetimes', 'general_setting_sec', 'event_start_datetime'); + $event_expire_on = $event_expire_on_old == 'event_end_datetime' ? 'event_expire_datetime' : $event_expire_on_old; + $event_date = $values[$event_expire_on][0]; + } + echo mep_get_event_status($event_date); + break; + + + case 'mep_event_date' : + mep_update_event_upcoming_date($post_id); + echo "" . get_mep_datetime(get_post_meta($post_id, 'event_upcoming_datetime', true), 'date-time-text') . ""; + break; + } } - } } - - - - - - - // Add the data to the custom columns for the book post type: - add_action( 'manage_mep_events_posts_custom_column' , 'mep_custom_event_column', 10, 2 ); - if (!function_exists('mep_custom_event_column')) { - function mep_custom_event_column( $column, $post_id ) { - $post_id = mep_get_default_lang_event_id($post_id); - switch ( $column ) { - case 'mep_status' : - $values = get_post_custom( $post_id ); - $recurring = get_post_meta($post_id, 'mep_enable_recurring', true) ? get_post_meta($post_id, 'mep_enable_recurring', true) : 'no'; - if($recurring == 'yes'){ - $event_more_dates = get_post_meta($post_id,'mep_event_more_date',true); - $seat_left = 10; - $md = end($event_more_dates); - $more_date = $md['event_more_start_date'].' '.$md['event_more_start_time']; - $event_date = date('Y-m-d H:i:s',strtotime($more_date)); - }else{ - $event_expire_on_old = mep_get_option( 'mep_event_expire_on_datetimes', 'general_setting_sec', 'event_start_datetime'); - $event_expire_on = $event_expire_on_old == 'event_end_datetime' ? 'event_expire_datetime' : $event_expire_on_old; - $event_date = $values[$event_expire_on][0]; - } - echo mep_get_event_status($event_date); - break; - - case 'mep_event_date' : - mep_update_event_upcoming_date($post_id); - echo "" . get_mep_datetime(get_post_meta($post_id,'event_upcoming_datetime',true),'date-time-text').""; - break; - } - } -} - - // Getting event exprie date & time - if (!function_exists('mep_get_event_status')) { - function mep_get_event_status($startdatetime){ - - $current = current_time('Y-m-d H:i:s'); - $newformat = date('Y-m-d H:i:s',strtotime($startdatetime)); - - $datetime1 = new DateTime($newformat); - $datetime2 = new DateTime($current); - - $interval = date_diff($datetime2, $datetime1); - - if(current_time('Y-m-d H:i:s') > $newformat){ - return "Expired"; +// Getting event exprie date & time +if (!function_exists('mep_get_event_status')) { + function mep_get_event_status($startdatetime) { + + $current = current_time('Y-m-d H:i:s'); + $newformat = date('Y-m-d H:i:s', strtotime($startdatetime)); + + $datetime1 = new DateTime($newformat); + $datetime2 = new DateTime($current); + + $interval = date_diff($datetime2, $datetime1); + + if (current_time('Y-m-d H:i:s') > $newformat) { + return "Expired"; + } else { + $days = $interval->days; + $hours = $interval->h; + $minutes = $interval->i; + if ($days > 0) { + $dd = $days . " days "; + } else { + $dd = ""; + } + if ($hours > 0) { + $hh = $hours . " hours "; + } else { + $hh = ""; + } + if ($minutes > 0) { + $mm = $minutes . " minutes "; + } else { + $mm = ""; + } + return "$dd $hh $mm"; + } } - else{ - $days = $interval->days; - $hours = $interval->h; - $minutes = $interval->i; - if($days>0){ $dd = $days." days "; }else{ $dd=""; } - if($hours>0){ $hh = $hours." hours "; }else{ $hh=""; } - if($minutes>0){ $mm = $minutes." minutes "; }else{ $mm=""; } - return "$dd $hh $mm"; +} + +if (!function_exists('mep_merge_saved_array')) { + function mep_merge_saved_array($arr1, $arr2) { + $output = []; + for ($i = 0; $i < count($arr1); $i++) { + $output[$i] = array_merge($arr1[$i], $arr2[$i]); + } + return $output; } - } } - -if (!function_exists('mep_merge_saved_array')) { -function mep_merge_saved_array($arr1,$arr2){ - $output = []; - for ($i=0; $ipost_type == "mep_events"){ - $template = mep_template_part_file_path('single-events.php'); - return $template; - } - - if ($post->post_type == "mep_event_speaker"){ - $template = mep_template_file_path('single-speaker.php'); - return $template; - } - - if ($post->post_type == "mep_events_attendees"){ - $template = mep_template_part_file_path('single-mep_events_attendees.php'); - return $template; +add_action('init', 'mep_include_template_parts'); +if (!function_exists('mep_include_template_parts')) { + function mep_include_template_parts() { + require_once(dirname(__DIR__) . "/inc/template-prts/templating.php"); + } +} + + +if (!function_exists('mep_template_file_path')) { + function mep_template_file_path($file_name) { + $template_path = get_stylesheet_directory() . '/mage-events/'; + $default_path = plugin_dir_path(__DIR__) . 'templates/'; + $thedir = is_dir($template_path) ? $template_path : $default_path; + $themedir = $thedir . $file_name; + $the_file_path = locate_template(array('mage-events/' . $file_name)) ? $themedir : $default_path . $file_name; + return $the_file_path; + } +} + +if (!function_exists('mep_template_part_file_path')) { + function mep_template_part_file_path($file_name) { + $the_file_path = plugin_dir_path(__DIR__) . 'inc/template-prts/' . $file_name; + return $the_file_path; + } +} + +if (!function_exists('mep_load_events_templates')) { + function mep_load_events_templates($template) { + global $post; + + if ($post->post_type == "mep_events") { + $template = mep_template_part_file_path('single-events.php'); + return $template; + } + + if ($post->post_type == "mep_event_speaker") { + $template = mep_template_file_path('single-speaker.php'); + return $template; + } + + if ($post->post_type == "mep_events_attendees") { + $template = mep_template_part_file_path('single-mep_events_attendees.php'); + return $template; + } + + return $template; } - - return $template; - } } add_filter('single_template', 'mep_load_events_templates'); - - - + + add_filter('template_include', 'mep_organizer_set_template'); -if (!function_exists('mep_organizer_set_template')) { - function mep_organizer_set_template( $template ){ - if( is_tax('mep_org')){ - $template = mep_template_file_path('taxonomy-organozer.php'); - } - if( is_tax('mep_cat')){ - $template = mep_template_file_path('taxonomy-category.php'); - } - return $template; - } -} - -if (!function_exists('mep_social_share')) { - function mep_social_share(){ - ?> - - + + - - + - prefix . 'woocommerce_order_itemmeta'; - $result = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $table_name WHERE order_item_id = %d", $id) ); - foreach ( $result as $page ) - { - if (strpos($page->meta_key, '_') !== 0) { - echo mep_get_string_part($page->meta_key,$part).'
'; - } - } - } + +if (!function_exists('mep_get_item_name')) { + function mep_get_item_name($name) { + $explode_name = explode('_', $name, 2); + $the_item_name = str_replace('-', ' ', $explode_name[0]); + return $the_item_name; + } } - - add_action('woocommerce_account_dashboard','mep_ticket_lits_users'); - if (!function_exists('mep_ticket_lits_users')) { - function mep_ticket_lits_users(){ - ob_start(); - ?> - -
- - - - - - - - array( 'mep_events_attendees' ), - 'posts_per_page' => -1, - 'author__in'=> array(get_current_user_id()), - 'meta_query' => array( - array( - 'key' => 'ea_order_status', - 'value' => array('completed', 'processing'), - 'compare' => 'IN' - ) - ) - ); - $loop = new WP_Query( $args_search_qqq ); - while ($loop->have_posts()) { - $loop->the_post(); - $event_id = get_post_meta( get_the_id(), 'ea_event_id', true ); - $virtual_info = get_post_meta($event_id,'mp_event_virtual_type_des',true) ? get_post_meta($event_id,'mp_event_virtual_type_des',true) : ''; - $event_meta = get_post_custom($event_id); - $time = get_post_meta($event_id,'event_expire_datetime',true) ? strtotime(get_post_meta($event_id,'event_expire_datetime',true)) : strtotime(get_post_meta($event_id,'event_start_datetime',true)); - $newformat = date('Y-m-d H:i:s',$time); - if ( strtotime(current_time('Y-m-d H:i:s')) < strtotime( $newformat ) ) { - ?> - - - - - - - - - - - prefix . 'woocommerce_order_itemmeta'; + $result = $wpdb->get_results($wpdb->prepare("SELECT * FROM $table_name WHERE order_item_id = %d", $id)); + foreach ($result as $page) { + if (strpos($page->meta_key, '_') !== 0) { + echo mep_get_string_part($page->meta_key, $part) . '
'; } } - } - ?> -
- - -
-
- ","",strip_tags(file_get_contents($filename, false, null, 24, 14))); - } - $theme[$file] = $naame; - } - return $theme; - } -} - - -if (!function_exists('event_single_template_list')) { - function event_single_template_list($current_theme){ - $themes = mep_event_template_name(); - $buffer = ''; - echo $buffer; - } -} - - -if (!function_exists('mep_title_cutoff_words')) { - function mep_title_cutoff_words($text, $length){ - if(strlen($text) > $length) { - $text = substr($text, 0, strpos($text, ' ', $length)); - } - - return $text; - } -} - - -if (!function_exists('mep_get_tshirts_sizes')) { - function mep_get_tshirts_sizes($event_id){ - $event_meta = get_post_custom($event_id); - $tee_sizes = $event_meta['mep_reg_tshirtsize_list'][0]; - $tszrray = explode(',', $tee_sizes); - $ts = ""; - foreach ($tszrray as $value) { - $ts .= ""; } - return $ts; - } -} - +} - - - - -if (!function_exists('mep_event_list_price')) { - function mep_event_list_price($pid){ - global $post; - $cur = get_woocommerce_currency_symbol(); - $mep_event_ticket_type = get_post_meta($pid, 'mep_event_ticket_type', true); - $mep_events_extra_prices = get_post_meta($pid, 'mep_events_extra_prices', true); - $n_price = get_post_meta($pid, '_price', true); - - if($n_price==0){ - $gn_price = "Free"; - }else{ - $gn_price = wc_price($n_price); +add_action('woocommerce_account_dashboard', 'mep_ticket_lits_users'); +if (!function_exists('mep_ticket_lits_users')) { + function mep_ticket_lits_users() { + ob_start(); + ?> + +
+ + + + + + + + array('mep_events_attendees'), + 'posts_per_page' => -1, + 'author__in' => array(get_current_user_id()), + 'meta_query' => array( + array( + 'key' => 'ea_order_status', + 'value' => array('completed', 'processing'), + 'compare' => 'IN' + ) + ) + ); + $loop = new WP_Query($args_search_qqq); + while ($loop->have_posts()) { + $loop->the_post(); + $event_id = get_post_meta(get_the_id(), 'ea_event_id', true); + $virtual_info = get_post_meta($event_id, 'mp_event_virtual_type_des', true) ? get_post_meta($event_id, 'mp_event_virtual_type_des', true) : ''; + $event_meta = get_post_custom($event_id); + $time = get_post_meta($event_id, 'event_expire_datetime', true) ? strtotime(get_post_meta($event_id, 'event_expire_datetime', true)) : strtotime(get_post_meta($event_id, 'event_start_datetime', true)); + $newformat = date('Y-m-d H:i:s', $time); + if (strtotime(current_time('Y-m-d H:i:s')) < strtotime($newformat)) { + ?> + + + + + + + + + + + +
+ + + +
+
+ ", "", sanitize_text_field(file_get_contents($filename, false, null, 24, 14))); + } + $theme[$file] = $naame; + } + return $theme; } - - return $gn_price; - } } -if (!function_exists('mep_get_label')) { - function mep_get_label($pid,$label_id,$default_text){ - return mep_get_option( $label_id, 'label_setting_sec', $default_text); - } -} - - - - - -add_filter( 'manage_edit-mep_events_sortable_columns', 'mep_set_column_soartable' ); -if (!function_exists('mep_set_column_soartable')) { -function mep_set_column_soartable( $columns ) { - $columns['mep_event_date'] = 'event_start_datetime'; - - //To make a column 'un-sortable' remove it from the array - //unset($columns['mep_event_date']); - - return $columns; -} +if (!function_exists('event_single_template_list')) { + function event_single_template_list($current_theme) { + $themes = mep_event_template_name(); + $buffer = ''; + echo $buffer; + } } +if (!function_exists('mep_title_cutoff_words')) { + function mep_title_cutoff_words($text, $length) { + if (strlen($text) > $length) { + $text = substr($text, 0, strpos($text, ' ', $length)); + } - function mep_remove_date_filter_dropdown( $months ) { + return $text; + } +} + + +if (!function_exists('mep_get_tshirts_sizes')) { + function mep_get_tshirts_sizes($event_id) { + $event_meta = get_post_custom($event_id); + $tee_sizes = $event_meta['mep_reg_tshirtsize_list'][0]; + $tszrray = explode(',', $tee_sizes); + $ts = ""; + foreach ($tszrray as $value) { + $ts .= ""; + } + return $ts; + } +} + + +if (!function_exists('mep_event_list_price')) { + function mep_event_list_price($pid) { + global $post; + $cur = get_woocommerce_currency_symbol(); + $mep_event_ticket_type = get_post_meta($pid, 'mep_event_ticket_type', true); + $mep_events_extra_prices = get_post_meta($pid, 'mep_events_extra_prices', true); + $n_price = get_post_meta($pid, '_price', true); + + if ($n_price == 0) { + $gn_price = "Free"; + } else { + $gn_price = wc_price($n_price); + } + + + if ($mep_event_ticket_type) { + $gn_price = wc_price($mep_event_ticket_type[0]['option_price_t']); + } + + return $gn_price; + } +} + + +if (!function_exists('mep_get_label')) { + function mep_get_label($pid, $label_id, $default_text) { + return mep_get_option($label_id, 'label_setting_sec', $default_text); + } +} + + +add_filter('manage_edit-mep_events_sortable_columns', 'mep_set_column_soartable'); +if (!function_exists('mep_set_column_soartable')) { + function mep_set_column_soartable($columns) { + $columns['mep_event_date'] = 'event_start_datetime'; + + //To make a column 'un-sortable' remove it from the array + //unset($columns['mep_event_date']); + + return $columns; + } +} + + +function mep_remove_date_filter_dropdown($months) { global $typenow; // use this to restrict it to a particular post type - if ( $typenow == 'mep_events' ) { + if ($typenow == 'mep_events') { return array(); // return an empty array } return $months; // otherwise return the original for other post types - } - add_filter('months_dropdown_results', 'mep_remove_date_filter_dropdown'); - - - - - add_action( 'pre_get_posts', 'mep_filter_event_list_by_date' ); - function mep_filter_event_list_by_date( $query ) { - if( ! is_admin() ) - {return;} - $orderby = $query->get( 'orderby'); - if( 'event_start_datetime' == $orderby ) { - $query->set('meta_key','event_start_datetime'); - $query->set('orderby','meta_value'); - } - } - - // Add the custom columns to the book post type: - add_filter( 'manage_mep_events_posts_columns', 'mep_set_custom_edit_event_columns' ); - // add_filter( 'manage_mep_events_sortable_column', 'mep_set_custom_edit_event_columns' ); - if (!function_exists('mep_set_custom_edit_event_columns')) { - function mep_set_custom_edit_event_columns($columns) { - unset( $columns['date'] ); - $columns['mep_status'] = __( 'Status', 'mage-eventpress' ); - $columns['mep_event_date'] = __( 'Event Start Date', 'mage-eventpress' ); - return $columns; - } - } - - if (!function_exists('mep_get_full_time_and_date')) { - function mep_get_full_time_and_date($datetime){ - $date_format = get_option( 'date_format' ); - $time_format = get_option( 'time_format' ); - $wpdatesettings = $date_format.' '.$time_format; - $user_set_format = mep_get_option( 'mep_event_time_format','general_setting_sec','wtss'); - - if($user_set_format==12){ - echo wp_date('D, d M Y h:i A', strtotime($datetime)); - } - if($user_set_format==24){ - echo wp_date('D, d M Y H:i', strtotime($datetime)); - } - if($user_set_format=='wtss'){ - echo wp_date($wpdatesettings, strtotime($datetime)); - } - } } - -if (!function_exists('mep_get_only_time')) { - function mep_get_only_time($datetime){ - $user_set_format = mep_get_option( 'mep_event_time_format','general_setting_sec','wtss'); - $time_format = get_option( 'time_format' ); - if($user_set_format==12){ - echo date('h:i A', strtotime($datetime)); - } - if($user_set_format==24){ - echo date('H:i', strtotime($datetime)); - } - if($user_set_format=='wtss'){ - echo date($time_format, strtotime($datetime)); - } - } -} - -if (!function_exists('mep_get_event_city')) { - function mep_get_event_city($event_id){ + +add_filter('months_dropdown_results', 'mep_remove_date_filter_dropdown'); + + +add_action('pre_get_posts', 'mep_filter_event_list_by_date'); +function mep_filter_event_list_by_date($query) { + if (!is_admin()) { + return; + } + $orderby = $query->get('orderby'); + if ('event_start_datetime' == $orderby) { + $query->set('meta_key', 'event_start_datetime'); + $query->set('orderby', 'meta_value'); + } +} + +// Add the custom columns to the book post type: +add_filter('manage_mep_events_posts_columns', 'mep_set_custom_edit_event_columns'); +// add_filter( 'manage_mep_events_sortable_column', 'mep_set_custom_edit_event_columns' ); +if (!function_exists('mep_set_custom_edit_event_columns')) { + function mep_set_custom_edit_event_columns($columns) { + unset($columns['date']); + $columns['mep_status'] = __('Status', 'mage-eventpress'); + $columns['mep_event_date'] = __('Event Start Date', 'mage-eventpress'); + return $columns; + } +} + +if (!function_exists('mep_get_full_time_and_date')) { + function mep_get_full_time_and_date($datetime) { + $date_format = get_option('date_format'); + $time_format = get_option('time_format'); + $wpdatesettings = $date_format . ' ' . $time_format; + $user_set_format = mep_get_option('mep_event_time_format', 'general_setting_sec', 'wtss'); + + if ($user_set_format == 12) { + echo wp_date('D, d M Y h:i A', strtotime($datetime)); + } + if ($user_set_format == 24) { + echo wp_date('D, d M Y H:i', strtotime($datetime)); + } + if ($user_set_format == 'wtss') { + echo wp_date($wpdatesettings, strtotime($datetime)); + } + } +} + +if (!function_exists('mep_get_only_time')) { + function mep_get_only_time($datetime) { + $user_set_format = mep_get_option('mep_event_time_format', 'general_setting_sec', 'wtss'); + $time_format = get_option('time_format'); + if ($user_set_format == 12) { + echo date('h:i A', strtotime($datetime)); + } + if ($user_set_format == 24) { + echo date('H:i', strtotime($datetime)); + } + if ($user_set_format == 'wtss') { + echo date($time_format, strtotime($datetime)); + } + } +} + + +if (!function_exists('mep_get_event_city')) { + function mep_get_event_city($event_id) { + $location_sts = get_post_meta($event_id, 'mep_org_address', true) ? get_post_meta($event_id, 'mep_org_address', true) : ''; // ob_start(); if ($location_sts) { @@ -1643,1341 +1637,1269 @@ if (!function_exists('mep_get_event_city')) { 'city' => $city, 'country' => $country ); - echo apply_filters('mage_event_location_in_list_view', $content, $event_id, $address_arr); - } -} - -if (!function_exists('mep_get_total_available_seat')) { - function mep_get_total_available_seat($event_id, $event_meta){ - $total_seat = mep_event_total_seat($event_id,'total'); - $total_resv = mep_event_total_seat($event_id,'resv'); - $total_sold = mep_ticket_sold($event_id); - $total_left = $total_seat - ($total_sold + $total_resv); - return $total_left; - } -} - - - -if (!function_exists('mep_get_event_total_available_seat')) { - function mep_get_event_total_available_seat($event_id, $date){ - // echo $date; - $total_seat = mep_event_total_seat($event_id,'total'); - $total_resv = mep_event_total_seat($event_id,'resv'); - $total_sold = mep_ticket_type_sold($event_id,'',$date); - $total_left = $total_seat - ($total_sold + $total_resv); - return $total_left; - } -} - - -if (!function_exists('mep_event_location_item')) { - function mep_event_location_item($event_id,$item_name){ - return get_post_meta($event_id,$item_name,true); - } + echo apply_filters('mage_event_location_in_list_view', $content, $event_id, $address_arr); + } } -if (!function_exists('mep_event_org_location_item')) { - function mep_event_org_location_item($event_id,$item_name){ - $location_sts = get_post_meta($event_id,'mep_org_address',true); - - $org_arr = get_the_terms( $event_id, 'mep_org' ); - if($org_arr){ - $org_id = $org_arr[0]->term_id; - return get_term_meta( $org_id, $item_name, true ); - } - } +if (!function_exists('mep_get_total_available_seat')) { + function mep_get_total_available_seat($event_id, $event_meta) { + $total_seat = mep_event_total_seat($event_id, 'total'); + $total_resv = mep_event_total_seat($event_id, 'resv'); + $total_sold = mep_ticket_sold($event_id); + $total_left = $total_seat - ($total_sold + $total_resv); + return $total_left; + } } - -if (!function_exists('mep_get_all_date_time')) { - function mep_get_all_date_time( $start_datetime, $more_datetime, $end_datetime ) { - ob_start(); - - $date_format = get_option( 'date_format' ); - $time_format = get_option( 'time_format' ); - $wpdatesettings = $date_format.$time_format; - $user_set_format = mep_get_option( 'mep_event_time_format','general_setting_sec','wtss'); - ?> + + +if (!function_exists('mep_get_event_total_available_seat')) { + function mep_get_event_total_available_seat($event_id, $date) { + // echo $date; + $total_seat = mep_event_total_seat($event_id, 'total'); + $total_resv = mep_event_total_seat($event_id, 'resv'); + $total_sold = mep_ticket_type_sold($event_id, '', $date); + $total_left = $total_seat - ($total_sold + $total_resv); + return $total_left; + } +} + + +if (!function_exists('mep_event_location_item')) { + function mep_event_location_item($event_id, $item_name) { + return get_post_meta($event_id, $item_name, true); + } +} + +if (!function_exists('mep_event_org_location_item')) { + function mep_event_org_location_item($event_id, $item_name) { + $location_sts = get_post_meta($event_id, 'mep_org_address', true); + + $org_arr = get_the_terms($event_id, 'mep_org'); + if ($org_arr) { + $org_id = $org_arr[0]->term_id; + return get_term_meta($org_id, $item_name, true); + } + } +} + +if (!function_exists('mep_get_all_date_time')) { + function mep_get_all_date_time($start_datetime, $more_datetime, $end_datetime) { + ob_start(); + + $date_format = get_option('date_format'); + $time_format = get_option('time_format'); + $wpdatesettings = $date_format . $time_format; + $user_set_format = mep_get_option('mep_event_time_format', 'general_setting_sec', 'wtss'); + ?> - 0 ){ - $org_id = $org_arr[0]->term_id; - return get_term_meta( $org_id, 'org_location', true ); - } - }else{ - return get_post_meta($event_id,'mep_location_venue',true); - } - return null; - } - - if($item_name=='mep_location_venue'){ - if($location_sts){ - $org_arr = get_the_terms( $event_id, 'mep_org' ); - if(is_array($org_arr) && sizeof($org_arr)>0 ){ - $org_id = $org_arr[0]->term_id; - return get_term_meta( $org_id, 'org_location', true ); - } - - }else{ - return get_post_meta($event_id,'mep_location_venue',true); - } - } - - - if($item_name=='mep_street'){ - if($location_sts){ - $org_arr = get_the_terms( $event_id, 'mep_org' ); - if(is_array($org_arr) && sizeof($org_arr)>0 ){ - $org_id = $org_arr[0]->term_id; - return get_term_meta( $org_id, 'org_street', true ); - } - }else{ - return get_post_meta($event_id,'mep_street',true); - } - } - - - if($item_name=='mep_city'){ - if($location_sts){ - $org_arr = get_the_terms( $event_id, 'mep_org' ); - if(is_array($org_arr) && sizeof($org_arr)>0 ){ - $org_id = $org_arr[0]->term_id; - return get_term_meta( $org_id, 'org_city', true ); - } - }else{ - return get_post_meta($event_id,'mep_city',true); - } - } - - - if($item_name=='mep_state'){ - if($location_sts){ - $org_arr = get_the_terms( $event_id, 'mep_org' ); - if(is_array($org_arr) && sizeof($org_arr)>0 ){ - $org_id = $org_arr[0]->term_id; - return get_term_meta( $org_id, 'org_state', true ); - } - }else{ - return get_post_meta($event_id,'mep_state',true); - } - } - - - - if($item_name=='mep_postcode'){ - if($location_sts){ - $org_arr = get_the_terms( $event_id, 'mep_org' ); - if(is_array($org_arr) && sizeof($org_arr)>0 ){ - $org_id = $org_arr[0]->term_id; - return get_term_meta( $org_id, 'org_postcode', true ); - } - }else{ - return get_post_meta($event_id,'mep_postcode',true); - } - } - - - if($item_name=='mep_country'){ - if($location_sts){ - $org_arr = get_the_terms( $event_id, 'mep_org' ); - if(is_array($org_arr) && sizeof($org_arr)>0 ){ - $org_id = $org_arr[0]->term_id; - return get_term_meta( $org_id, 'org_country', true ); - } - }else{ - return get_post_meta($event_id,'mep_country',true); - } - } - } - } -} - +if (!function_exists('mep_get_event_locaion_item')) { + function mep_get_event_locaion_item($event_id, $item_name) { + if ($event_id) { + $location_sts = get_post_meta($event_id, 'mep_org_address', true); + if ($item_name == 'mep_location_venue') { + if ($location_sts) { + $org_arr = get_the_terms($event_id, 'mep_org'); + + if (is_array($org_arr) && sizeof($org_arr) > 0) { + $org_id = $org_arr[0]->term_id; + return get_term_meta($org_id, 'org_location', true); + } + } else { + return get_post_meta($event_id, 'mep_location_venue', true); + } + return null; + } + + if ($item_name == 'mep_location_venue') { + if ($location_sts) { + $org_arr = get_the_terms($event_id, 'mep_org'); + if (is_array($org_arr) && sizeof($org_arr) > 0) { + $org_id = $org_arr[0]->term_id; + return get_term_meta($org_id, 'org_location', true); + } + + } else { + return get_post_meta($event_id, 'mep_location_venue', true); + } + } + if ($item_name == 'mep_street') { + if ($location_sts) { + $org_arr = get_the_terms($event_id, 'mep_org'); + if (is_array($org_arr) && sizeof($org_arr) > 0) { + $org_id = $org_arr[0]->term_id; + return get_term_meta($org_id, 'org_street', true); + } + } else { + return get_post_meta($event_id, 'mep_street', true); + } + } - -if (!function_exists('mep_save_attendee_info_into_cart')) { - function mep_save_attendee_info_into_cart($product_id){ - - $user = array(); - - if(isset($_POST['user_name'])){ - $mep_user_name = $_POST['user_name']; - }else{ $mep_user_name=""; } - - if(isset($_POST['user_email'])){ - $mep_user_email = $_POST['user_email']; - }else{ $mep_user_email=""; } - - if(isset($_POST['user_phone'])){ - $mep_user_phone = $_POST['user_phone']; - }else{ $mep_user_phone=""; } - - if(isset($_POST['user_address'])){ - $mep_user_address = $_POST['user_address']; - }else{ $mep_user_address=""; } - - if(isset($_POST['gender'])){ - $mep_user_gender = $_POST['gender']; - }else{ $mep_user_gender=""; } - - if(isset($_POST['tshirtsize'])){ - $mep_user_tshirtsize = $_POST['tshirtsize']; - }else{ $mep_user_tshirtsize=""; } - - if(isset($_POST['user_company'])){ - $mep_user_company = $_POST['user_company']; - }else{ $mep_user_company=""; } - - if(isset($_POST['user_designation'])){ - $mep_user_desg = $_POST['user_designation']; - }else{ $mep_user_desg=""; } - - if(isset($_POST['user_website'])){ - $mep_user_website = $_POST['user_website']; - }else{ $mep_user_website=""; } - - if(isset($_POST['vegetarian'])){ - $mep_user_vegetarian = $_POST['vegetarian']; - }else{ $mep_user_vegetarian=""; } - - - - if(isset($_POST['ticket_type'])){ - $mep_user_ticket_type = $_POST['ticket_type']; - }else{ $mep_user_ticket_type=""; } - - - - if(isset($_POST['event_date'])){ - $event_date = $_POST['event_date']; - }else{ $event_date=""; } - - - if(isset($_POST['mep_event_id'])){ - $mep_event_id = $_POST['mep_event_id']; - }else{ $mep_event_id=""; } - - - - if ( isset( $_POST['option_qty'] ) ) { - $mep_user_option_qty = $_POST['option_qty']; - } else { - $mep_user_option_qty = ""; - } - - - - if(isset($_POST['mep_ucf'])){ - $mep_user_cfd = $_POST['mep_ucf']; - }else{ - $mep_user_cfd = ""; - } - - -// echo $p = + if ($item_name == 'mep_city') { + if ($location_sts) { + $org_arr = get_the_terms($event_id, 'mep_org'); + if (is_array($org_arr) && sizeof($org_arr) > 0) { + $org_id = $org_arr[0]->term_id; + return get_term_meta($org_id, 'org_city', true); + } + } else { + return get_post_meta($event_id, 'mep_city', true); + } + } + if ($item_name == 'mep_state') { + if ($location_sts) { + $org_arr = get_the_terms($event_id, 'mep_org'); + if (is_array($org_arr) && sizeof($org_arr) > 0) { + $org_id = $org_arr[0]->term_id; + return get_term_meta($org_id, 'org_state', true); + } + } else { + return get_post_meta($event_id, 'mep_state', true); + } + } - if($mep_user_name){ $count_user = count($mep_user_name); } else{ $count_user = 0; } - - for ( $iu = 0; $iu < $count_user; $iu++ ) { - - if (isset($mep_user_name[$iu])): - $user[$iu]['user_name'] = stripslashes( strip_tags( $mep_user_name[$iu] ) ); - endif; - - if (isset($mep_user_email[$iu])) : - $user[$iu]['user_email'] = stripslashes( strip_tags( $mep_user_email[$iu] ) ); - endif; - - if (isset($mep_user_phone[$iu])) : - $user[$iu]['user_phone'] = stripslashes( strip_tags( $mep_user_phone[$iu] ) ); - endif; - - if (isset($mep_user_address[$iu])) : - $user[$iu]['user_address'] = stripslashes( strip_tags( $mep_user_address[$iu] ) ); - endif; - - if (isset($mep_user_gender[$iu])) : - $user[$iu]['user_gender'] = stripslashes( strip_tags( $mep_user_gender[$iu] ) ); - endif; - - if (isset($mep_user_tshirtsize[$iu])) : - $user[$iu]['user_tshirtsize'] = stripslashes( strip_tags( $mep_user_tshirtsize[$iu] ) ); - endif; - - if (isset($mep_user_company[$iu])) : - $user[$iu]['user_company'] = stripslashes( strip_tags( $mep_user_company[$iu] ) ); - endif; - - if (isset($mep_user_desg[$iu])) : - $user[$iu]['user_designation'] = stripslashes( strip_tags( $mep_user_desg[$iu] ) ); - endif; - - if (isset($mep_user_website[$iu])) : - $user[$iu]['user_website'] = stripslashes( strip_tags( $mep_user_website[$iu] ) ); - endif; - - if (isset($mep_user_vegetarian[$iu])) : - $user[$iu]['user_vegetarian'] = stripslashes( strip_tags( $mep_user_vegetarian[$iu] ) ); - endif; - - if (isset($mep_user_ticket_type[$iu])) : - $user[$iu]['user_ticket_type'] = strip_tags( $mep_user_ticket_type[$iu] ) ; - endif; - - // if ($ticket_price) : - // $user[$iu]['user_ticket_price'] = mep_get_event_ticket_price_by_name($mep_event_id,$mep_user_ticket_type); - // endif; - - if (isset($event_date[$iu])) : - $user[$iu]['user_event_date'] = stripslashes( strip_tags( $event_date[$iu] ) ); - endif; - - if (isset($mep_event_id[$iu])) : - $user[$iu]['user_event_id'] = stripslashes( strip_tags( $mep_event_id[$iu] ) ); - endif; - - if ( isset( $mep_user_option_qty[ $iu ] ) ) : - $user[ $iu ]['user_ticket_qty'] = stripslashes( strip_tags( $mep_user_option_qty[ $iu ] ) ); - endif; - - $reg_form_id = mep_fb_get_reg_form_id($product_id); - $mep_form_builder_data = get_post_meta($reg_form_id, 'mep_form_builder_data', true); - if ( $mep_form_builder_data ) { - foreach ( $mep_form_builder_data as $_field ) { - $user[$iu][$_field['mep_fbc_id']] = stripslashes( strip_tags( $_POST[$_field['mep_fbc_id']][$iu] ) ); + if ($item_name == 'mep_postcode') { + if ($location_sts) { + $org_arr = get_the_terms($event_id, 'mep_org'); + if (is_array($org_arr) && sizeof($org_arr) > 0) { + $org_id = $org_arr[0]->term_id; + return get_term_meta($org_id, 'org_postcode', true); + } + } else { + return get_post_meta($event_id, 'mep_postcode', true); + } + } + + + if ($item_name == 'mep_country') { + if ($location_sts) { + $org_arr = get_the_terms($event_id, 'mep_org'); + if (is_array($org_arr) && sizeof($org_arr) > 0) { + $org_id = $org_arr[0]->term_id; + return get_term_meta($org_id, 'org_country', true); + } + } else { + return get_post_meta($event_id, 'mep_country', true); + } + } } - } - - - } - return apply_filters('mep_cart_user_data_prepare',$user,$product_id); - } -} - - -if (!function_exists('mep_wc_price')) { - function mep_wc_price( $price, $args = array() ) { - $args = apply_filters( - 'wc_price_args', wp_parse_args( - $args, array( - 'ex_tax_label' => false, - 'currency' => '', - 'decimal_separator' => wc_get_price_decimal_separator(), - 'thousand_separator' => wc_get_price_thousand_separator(), - 'decimals' => wc_get_price_decimals(), - 'price_format' => get_woocommerce_price_format(), - ) - ) - ); - - $unformatted_price = $price; - $negative = $price < 0; - $price = apply_filters( 'raw_woocommerce_price', floatval( $negative ? $price * -1 : $price ) ); - $price = apply_filters( 'formatted_woocommerce_price', number_format( $price, $args['decimals'], $args['decimal_separator'], $args['thousand_separator'] ), $price, $args['decimals'], $args['decimal_separator'], $args['thousand_separator'] ); - - if ( apply_filters( 'woocommerce_price_trim_zeros', false ) && $args['decimals'] > 0 ) { - $price = wc_trim_zeros( $price ); - } - - $formatted_price = ( $negative ? '-' : '' ) . sprintf( $args['price_format'], '' . '' . '', $price ); - $return = '' . $formatted_price . ''; - - if ( $args['ex_tax_label'] && wc_tax_enabled() ) { - $return .= '' . WC()->countries->ex_tax_or_vat() . ''; - } - - /** - * Filters the string of price markup. - * - * @param string $return Price HTML markup. - * @param string $price Formatted price. - * @param array $args Pass on the args. - * @param float $unformatted_price Price as float to allow plugins custom formatting. Since 3.2.0. - */ - return apply_filters( 'mep_wc_price', $return, $price, $args, $unformatted_price ); - } } - - -if (!function_exists('mep_get_event_total_seat')) { - function mep_get_event_total_seat($event_id,$m=null,$t=null){ - $total_seat = apply_filters( 'mep_event_total_seat_counts', mep_event_total_seat($event_id,'total'), $event_id ); - $total_resv = apply_filters( 'mep_event_total_resv_seat_count', mep_event_total_seat($event_id,'resv'), $event_id ); - $total_sold = mep_ticket_type_sold($event_id); - $total_left = $total_seat - ($total_sold + $total_resv); - $event_date = date('Y-m-d H:i',strtotime(mep_get_event_upcoming_date($event_id))); - ob_start(); - if($t=='multi'){ - $total = (int) $total_seat * (int) $m; - $sold = $total - ($total_sold + $total_resv); - $available = $total - $sold; - ?> - - - - - - - - array( 'mep_events_attendees' ), - 'posts_per_page' => -1, - 'post_status' => 'publish', - 'meta_query' => array( - array( - 'key' => 'ea_event_id', - 'value' => $event_id, - 'compare' => '=' - ) - ) - ); - $loop = new WP_Query($args_search_qqq); - while ($loop->have_posts()) { - $loop->the_post(); - $post_id = get_the_id(); - $status = 'trash'; - $current_post = get_post( $post_id, 'ARRAY_A' ); - $current_post['post_status'] = $status; - wp_update_post($current_post); - } - } -} - - - add_filter( 'manage_mep_events_posts_columns', 'mep_set_custom_mep_events_columns' ); - if (!function_exists('mep_set_custom_mep_events_columns')) { - function mep_set_custom_mep_events_columns($columns) { - $columns['mep_event_seat'] = apply_filters('mep_seat_status_head_text',__( 'Seats [ Total - Sold = Available ]', 'mage-eventpress' )); - return $columns; - } -} - - // Add the data to the custom columns for the book post type: - add_action( 'manage_mep_events_posts_custom_column' , 'mep_mep_events_column', 10, 2 ); - if (!function_exists('mep_mep_events_column')) { - function mep_mep_events_column( $column, $post_id ) { - $post_id = mep_get_default_lang_event_id($post_id); - switch ( $column ) { - case 'mep_event_seat' : - $recurring = get_post_meta($post_id, 'mep_enable_recurring', true) ? get_post_meta($post_id, 'mep_enable_recurring', true) : 'no'; - if($recurring == 'yes'){ - $more_date = get_post_meta($post_id,'mep_event_more_date',true) ? get_post_meta($post_id,'mep_event_more_date',true) : array(); - $event_more_dates = is_array($more_date) && sizeof($more_date) > 0 ? count($more_date)+1 : ''; - echo mep_get_event_total_seat($post_id,$event_more_dates,'multi'); - }else{ - echo mep_get_event_total_seat($post_id); - } - - break; - } - } -} - -if (!function_exists('mep_get_term_as_class')) { - function mep_get_term_as_class($post_id,$taxonomy,$unq_id=''){ - $tt = get_the_terms($post_id,$taxonomy) ? get_the_terms($post_id,$taxonomy) : []; - if(is_array($tt) && sizeof($tt) > 0){ - $t_class = array(); - foreach($tt as $tclass){ - $t_class[] = $unq_id.'mage-'.$tclass->term_id; - } - $main_class = implode(' ',$t_class); - return $main_class; - }else{ - return null; + if (isset($_POST['user_email'])) { + $mep_user_email = $_POST['user_email']; + } else { + $mep_user_email = ""; + } + + if (isset($_POST['user_phone'])) { + $mep_user_phone = $_POST['user_phone']; + } else { + $mep_user_phone = ""; + } + + if (isset($_POST['user_address'])) { + $mep_user_address = $_POST['user_address']; + } else { + $mep_user_address = ""; + } + + if (isset($_POST['gender'])) { + $mep_user_gender = $_POST['gender']; + } else { + $mep_user_gender = ""; + } + + if (isset($_POST['tshirtsize'])) { + $mep_user_tshirtsize = $_POST['tshirtsize']; + } else { + $mep_user_tshirtsize = ""; + } + + if (isset($_POST['user_company'])) { + $mep_user_company = $_POST['user_company']; + } else { + $mep_user_company = ""; + } + + if (isset($_POST['user_designation'])) { + $mep_user_desg = $_POST['user_designation']; + } else { + $mep_user_desg = ""; + } + + if (isset($_POST['user_website'])) { + $mep_user_website = $_POST['user_website']; + } else { + $mep_user_website = ""; + } + + if (isset($_POST['vegetarian'])) { + $mep_user_vegetarian = $_POST['vegetarian']; + } else { + $mep_user_vegetarian = ""; + } + + + if (isset($_POST['ticket_type'])) { + $mep_user_ticket_type = $_POST['ticket_type']; + } else { + $mep_user_ticket_type = ""; + } + + + if (isset($_POST['event_date'])) { + $event_date = $_POST['event_date']; + } else { + $event_date = ""; + } + + + if (isset($_POST['mep_event_id'])) { + $mep_event_id = $_POST['mep_event_id']; + } else { + $mep_event_id = ""; + } + + + if (isset($_POST['option_qty'])) { + $mep_user_option_qty = $_POST['option_qty']; + } else { + $mep_user_option_qty = ""; + } + + + if (isset($_POST['mep_ucf'])) { + $mep_user_cfd = $_POST['mep_ucf']; + } else { + $mep_user_cfd = ""; + } + + +// echo $p = + + + if ($mep_user_name) { + $count_user = count($mep_user_name); + } else { + $count_user = 0; + } + + for ($iu = 0; $iu < $count_user; $iu++) { + + if (isset($mep_user_name[$iu])): + $user[$iu]['user_name'] = stripslashes(strip_tags($mep_user_name[$iu])); + endif; + + if (isset($mep_user_email[$iu])) : + $user[$iu]['user_email'] = stripslashes(strip_tags($mep_user_email[$iu])); + endif; + + if (isset($mep_user_phone[$iu])) : + $user[$iu]['user_phone'] = stripslashes(strip_tags($mep_user_phone[$iu])); + endif; + + if (isset($mep_user_address[$iu])) : + $user[$iu]['user_address'] = stripslashes(strip_tags($mep_user_address[$iu])); + endif; + + if (isset($mep_user_gender[$iu])) : + $user[$iu]['user_gender'] = stripslashes(strip_tags($mep_user_gender[$iu])); + endif; + + if (isset($mep_user_tshirtsize[$iu])) : + $user[$iu]['user_tshirtsize'] = stripslashes(strip_tags($mep_user_tshirtsize[$iu])); + endif; + + if (isset($mep_user_company[$iu])) : + $user[$iu]['user_company'] = stripslashes(strip_tags($mep_user_company[$iu])); + endif; + + if (isset($mep_user_desg[$iu])) : + $user[$iu]['user_designation'] = stripslashes(strip_tags($mep_user_desg[$iu])); + endif; + + if (isset($mep_user_website[$iu])) : + $user[$iu]['user_website'] = stripslashes(strip_tags($mep_user_website[$iu])); + endif; + + if (isset($mep_user_vegetarian[$iu])) : + $user[$iu]['user_vegetarian'] = stripslashes(strip_tags($mep_user_vegetarian[$iu])); + endif; + + if (isset($mep_user_ticket_type[$iu])) : + $user[$iu]['user_ticket_type'] = strip_tags($mep_user_ticket_type[$iu]); + endif; + + // if ($ticket_price) : + // $user[$iu]['user_ticket_price'] = mep_get_event_ticket_price_by_name($mep_event_id,$mep_user_ticket_type); + // endif; + + if (isset($event_date[$iu])) : + $user[$iu]['user_event_date'] = stripslashes(strip_tags($event_date[$iu])); + endif; + + if (isset($mep_event_id[$iu])) : + $user[$iu]['user_event_id'] = stripslashes(strip_tags($mep_event_id[$iu])); + endif; + + if (isset($mep_user_option_qty[$iu])) : + $user[$iu]['user_ticket_qty'] = stripslashes(strip_tags($mep_user_option_qty[$iu])); + endif; + + $reg_form_id = mep_fb_get_reg_form_id($product_id); + $mep_form_builder_data = get_post_meta($reg_form_id, 'mep_form_builder_data', true); + if ($mep_form_builder_data) { + foreach ($mep_form_builder_data as $_field) { + $user[$iu][$_field['mep_fbc_id']] = stripslashes(strip_tags($_POST[$_field['mep_fbc_id']][$iu])); + } + } + } + return apply_filters('mep_cart_user_data_prepare', $user, $product_id); } - } } - -if (!function_exists('mep_ticket_type_sold')) { - function mep_ticket_type_sold($event_id,$type='',$date=''){ - - $type_filter = !empty($type) ? array( - 'key' => 'ea_ticket_type', - 'value' => $type, - 'compare' => '=' - ) : ''; - $date_filter = !empty($date) ? array( - 'key' => 'ea_event_date', - 'value' => $date, - 'compare' => 'LIKE' - ) : ''; - $processing_status_filter = array( - 'key' => 'ea_order_status', - 'value' => 'processing', - 'compare' => '=' - ); - $completed_status_filter = array( - 'key' => 'ea_order_status', - 'value' => 'completed', - 'compare' => '=' - ); - $args = array( - 'post_type' => 'mep_events_attendees', - 'posts_per_page' => -1, - 'meta_query' => array( - 'relation' => 'AND', - array( - 'relation' => 'AND', - array( - 'key' => 'ea_event_id', - 'value' => $event_id, - 'compare' => '=' - ), - $type_filter, - apply_filters('mep_sold_meta_query_and_attribute', $date_filter) - ),array( - 'relation' => 'OR', - $processing_status_filter, - $completed_status_filter, - apply_filters('mep_sold_meta_query_or_attribute', array()) +if (!function_exists('mep_wc_price')) { + function mep_wc_price($price, $args = array()) { + $args = apply_filters( + 'wc_price_args', wp_parse_args( + $args, array( + 'ex_tax_label' => false, + 'currency' => '', + 'decimal_separator' => wc_get_price_decimal_separator(), + 'thousand_separator' => wc_get_price_thousand_separator(), + 'decimals' => wc_get_price_decimals(), + 'price_format' => get_woocommerce_price_format(), + ) ) - ) - ); - $loop = new WP_Query($args); -// echo '
'; print_r($loop); echo '
'; - // echo $loop->post_count; - return $loop->post_count; - } -} - + ); -if (!function_exists('mep_extra_service_sold')) { - function mep_extra_service_sold($event_id,$type,$date){ - //echo $date; - $args = array( + $unformatted_price = $price; + $negative = $price < 0; + $price = apply_filters('raw_woocommerce_price', floatval($negative ? $price * -1 : $price)); + $price = apply_filters('formatted_woocommerce_price', number_format($price, $args['decimals'], $args['decimal_separator'], $args['thousand_separator']), $price, $args['decimals'], $args['decimal_separator'], $args['thousand_separator']); + + if (apply_filters('woocommerce_price_trim_zeros', false) && $args['decimals'] > 0) { + $price = wc_trim_zeros($price); + } + + $formatted_price = ($negative ? '-' : '') . sprintf($args['price_format'], '' . '' . '', $price); + $return = '' . $formatted_price . ''; + + if ($args['ex_tax_label'] && wc_tax_enabled()) { + $return .= '' . WC()->countries->ex_tax_or_vat() . ''; + } + + /** + * Filters the string of price markup. + * + * @param string $return Price HTML markup. + * @param string $price Formatted price. + * @param array $args Pass on the args. + * @param float $unformatted_price Price as float to allow plugins custom formatting. Since 3.2.0. + */ + return apply_filters('mep_wc_price', $return, $price, $args, $unformatted_price); + } +} + + +if (!function_exists('mep_get_event_total_seat')) { + function mep_get_event_total_seat($event_id, $m = null, $t = null) { + $total_seat = apply_filters('mep_event_total_seat_counts', mep_event_total_seat($event_id, 'total'), $event_id); + $total_resv = apply_filters('mep_event_total_resv_seat_count', mep_event_total_seat($event_id, 'resv'), $event_id); + $total_sold = mep_ticket_type_sold($event_id); + $total_left = $total_seat - ($total_sold + $total_resv); + $event_date = date('Y-m-d H:i', strtotime(mep_get_event_upcoming_date($event_id))); + ob_start(); + if ($t == 'multi') { + $total = (int)$total_seat * (int)$m; + $sold = $total - ($total_sold + $total_resv); + $available = $total - $sold; + ?> + + + + + + + + array('mep_events_attendees'), + 'posts_per_page' => -1, + 'post_status' => 'publish', + 'meta_query' => array( + array( + 'key' => 'ea_event_id', + 'value' => $event_id, + 'compare' => '=' + ) + ) + ); + $loop = new WP_Query($args_search_qqq); + while ($loop->have_posts()) { + $loop->the_post(); + $post_id = get_the_id(); + $status = 'trash'; + $current_post = get_post($post_id, 'ARRAY_A'); + $current_post['post_status'] = $status; + wp_update_post($current_post); + } + } +} + + +add_filter('manage_mep_events_posts_columns', 'mep_set_custom_mep_events_columns'); +if (!function_exists('mep_set_custom_mep_events_columns')) { + function mep_set_custom_mep_events_columns($columns) { + $columns['mep_event_seat'] = apply_filters('mep_seat_status_head_text', __('Seats [ Total - Sold = Available ]', 'mage-eventpress')); + return $columns; + } +} + +// Add the data to the custom columns for the book post type: +add_action('manage_mep_events_posts_custom_column', 'mep_mep_events_column', 10, 2); +if (!function_exists('mep_mep_events_column')) { + function mep_mep_events_column($column, $post_id) { + $post_id = mep_get_default_lang_event_id($post_id); + switch ($column) { + case 'mep_event_seat' : + $recurring = get_post_meta($post_id, 'mep_enable_recurring', true) ? get_post_meta($post_id, 'mep_enable_recurring', true) : 'no'; + if ($recurring == 'yes') { + $more_date = get_post_meta($post_id, 'mep_event_more_date', true) ? get_post_meta($post_id, 'mep_event_more_date', true) : array(); + $event_more_dates = is_array($more_date) && sizeof($more_date) > 0 ? count($more_date) + 1 : ''; + + echo mep_get_event_total_seat($post_id, $event_more_dates, 'multi'); + } else { + echo mep_get_event_total_seat($post_id); + } + + break; + } + } +} + +if (!function_exists('mep_get_term_as_class')) { + function mep_get_term_as_class($post_id, $taxonomy, $unq_id = '') { + $tt = get_the_terms($post_id, $taxonomy) ? get_the_terms($post_id, $taxonomy) : []; + if (is_array($tt) && sizeof($tt) > 0) { + $t_class = array(); + foreach ($tt as $tclass) { + $t_class[] = $unq_id . 'mage-' . $tclass->term_id; + } + $main_class = implode(' ', $t_class); + return $main_class; + } else { + return null; + } + } +} + +if (!function_exists('mep_ticket_type_sold')) { + function mep_ticket_type_sold($event_id, $type = '', $date = '') { + + $type_filter = !empty($type) ? array( + 'key' => 'ea_ticket_type', + 'value' => $type, + 'compare' => '=' + ) : ''; + + $date_filter = !empty($date) ? array( + 'key' => 'ea_event_date', + 'value' => $date, + 'compare' => 'LIKE' + ) : ''; + $processing_status_filter = array( + 'key' => 'ea_order_status', + 'value' => 'processing', + 'compare' => '=' + ); + $completed_status_filter = array( + 'key' => 'ea_order_status', + 'value' => 'completed', + 'compare' => '=' + ); + + $args = array( + 'post_type' => 'mep_events_attendees', + 'posts_per_page' => -1, + 'meta_query' => array( + 'relation' => 'AND', + array( + 'relation' => 'AND', + array( + 'key' => 'ea_event_id', + 'value' => $event_id, + 'compare' => '=' + ), + $type_filter, + apply_filters('mep_sold_meta_query_and_attribute', $date_filter) + ), array( + 'relation' => 'OR', + $processing_status_filter, + $completed_status_filter, + apply_filters('mep_sold_meta_query_or_attribute', array()) + ) + ) + ); + $loop = new WP_Query($args); +// echo '
'; print_r($loop); echo '
'; + // echo $loop->post_count; + return $loop->post_count; + } +} + + +if (!function_exists('mep_extra_service_sold')) { + function mep_extra_service_sold($event_id, $type, $date) { + //echo $date; + $args = array( 'post_type' => 'mep_extra_service', 'posts_per_page' => -1, - - 'meta_query' => array( - 'relation' => 'AND', - array( - 'relation' => 'AND', - array( - 'key' => 'ea_extra_service_event', - 'value' => $event_id, - 'compare' => '=' - ), - array( - 'key' => 'ea_extra_service_name', - 'value' => $type, - 'compare' => '=' - ), - array( - 'key' => 'ea_extra_service_event_date', - 'value' => $date, - 'compare' => 'LIKE' + + 'meta_query' => array( + 'relation' => 'AND', + array( + 'relation' => 'AND', + array( + 'key' => 'ea_extra_service_event', + 'value' => $event_id, + 'compare' => '=' + ), + array( + 'key' => 'ea_extra_service_name', + 'value' => $type, + 'compare' => '=' + ), + array( + 'key' => 'ea_extra_service_event_date', + 'value' => $date, + 'compare' => 'LIKE' + ) + ), array( + 'relation' => 'OR', + array( + 'key' => 'ea_extra_service_order_status', + 'value' => 'processing', + 'compare' => '=' + ), + array( + 'key' => 'ea_extra_service_order_status', + 'value' => 'completed', + 'compare' => '=' + ) + ) ) - ),array( - 'relation' => 'OR', - array( - 'key' => 'ea_extra_service_order_status', - 'value' => 'processing', - 'compare' => '=' - ), - array( - 'key' => 'ea_extra_service_order_status', - 'value' => 'completed', - 'compare' => '=' - ) - ) - ) - ); - $loop = new WP_Query($args); - $count = 0; - foreach($loop->posts as $sold_service){ - $pid = $sold_service->ID; - $count = $count + get_post_meta($pid,'ea_extra_service_qty',true); - } - return $count; - } -} - -if (!function_exists('mep_ticket_sold')) { - function mep_ticket_sold($event_id){ - $event_start_date = date('Y-m-d',strtotime(get_post_meta($event_id,'event_start_date',true))); - // $get_ticket_type_list = get_post_meta($event_id,'mep_event_ticket_type',true) ? get_post_meta($event_id,'mep_event_ticket_type',true) : array(); - $get_ticket_type_list = metadata_exists( 'post', $event_id, 'mep_event_ticket_type' ) ? get_post_meta($event_id,'mep_event_ticket_type',true) : array(); - - $recurring = get_post_meta($event_id, 'mep_enable_recurring', true) ? get_post_meta($event_id, 'mep_enable_recurring', true) : 'no'; - - $sold = 0; - if(is_array($get_ticket_type_list) && sizeof($get_ticket_type_list) > 0){ - foreach($get_ticket_type_list as $ticket_type){ - $sold = $sold + mep_ticket_type_sold($event_id,mep_remove_apostopie($ticket_type['option_name_t']),$event_start_date); - } - } - - if($recurring == 'yes'){ - // $mep_event_more_date = get_post_meta($event_id,'mep_event_more_date',true); - $mep_event_more_date = metadata_exists( 'post', $event_id, 'mep_event_more_date' ) ? get_post_meta($event_id,'mep_event_more_date',true) : array(); - if(is_array($mep_event_more_date) && sizeof($mep_event_more_date) > 0){ - foreach ($mep_event_more_date as $md) { - if(is_array($get_ticket_type_list) && sizeof($get_ticket_type_list) > 0){ - foreach($get_ticket_type_list as $ticket_type){ - $sold = $sold + mep_ticket_type_sold($event_id,mep_remove_apostopie($ticket_type['option_name_t']),$md['event_more_start_date']); - } - } - } - } - } - - return $sold; - } -} - - - - -if (!function_exists('mep_event_total_seat')) { - function mep_event_total_seat($event_id,$type){ - $mep_event_ticket_type = get_post_meta($event_id, 'mep_event_ticket_type', true); - // print_r($mep_event_ticket_type); - $total = 0; - if(is_array($mep_event_ticket_type) && sizeof($mep_event_ticket_type) > 0){ - foreach ( $mep_event_ticket_type as $field ) { - if($type == 'total'){ - $total_name = array_key_exists('option_qty_t', $field) ? (int) $field['option_qty_t'] : 0; - }elseif($type == 'resv'){ - $total_name = array_key_exists('option_rsv_t', $field) ? (int) $field['option_rsv_t'] : 0; - } - $total = $total_name + $total; - } - } - return $total; - } -} - - -if (!function_exists('get_mep_datetime')) { -function get_mep_datetime($date,$type){ - $date_format = get_option( 'date_format' ); - $time_format = get_option( 'time_format' ); - $wpdatesettings = $date_format.' '.$time_format; - $timezone = wp_timezone_string(); - $timestamp = strtotime( $date . ' '. $timezone); - - if($type == 'date'){ - return wp_date( $date_format, $timestamp ); - } - if($type == 'date-time'){ - return wp_date( $wpdatesettings, $timestamp ); - } - if($type == 'date-text'){ - - return wp_date( $date_format, $timestamp ); - } - - if($type == 'date-time-text'){ - return wp_date( $wpdatesettings, $timestamp, wp_timezone() ); - } - if($type == 'time'){ - return wp_date( $time_format, $timestamp, wp_timezone()); - } - - if($type == 'Hour'){ - return wp_date( 'H', $timestamp, wp_timezone()); - } - if($type == 'hour'){ - return wp_date( 'h', $timestamp, wp_timezone()); - } - if($type == 'minute'){ - return wp_date( 'i', $timestamp, wp_timezone()); - } - - if($type == 'second'){ - return wp_date( 's', $timestamp, wp_timezone()); - } - - if($type == 'day'){ - return wp_date( 'd', $timestamp ); - } - if($type == 'Dday'){ - return wp_date( 'D', $timestamp ); - } - if($type == 'month'){ - return wp_date( 'm', $timestamp ); - } - if($type == 'month-name'){ - return wp_date( 'M', $timestamp ); - } - if($type == 'year'){ - return wp_date( 'y', $timestamp ); - } - if($type == 'year-full'){ - return wp_date( 'Y', $timestamp ); - } - if($type == 'timezone'){ - return wp_date( 'T', $timestamp ); - } - } -} - - -function mep_get_location($event_id,$type){ - - $location_sts = get_post_meta($event_id, 'mep_org_address', true) ? get_post_meta($event_id, 'mep_org_address', true) : ''; - if ($location_sts) { - $org_arr = get_the_terms($event_id, 'mep_org') ? get_the_terms($event_id, 'mep_org') : []; - $org_id = sizeof($org_arr) > 0 ? $org_arr[0]->term_id : ''; - $location = !empty($org_id) && get_term_meta($org_id, 'org_location', true) ? get_term_meta($org_id, 'org_location', true) : ''; - $street = !empty($org_id) && get_term_meta($org_id, 'org_street', true) ? get_term_meta($org_id, 'org_street', true) : ''; - $city = !empty($org_id) && get_term_meta($org_id, 'org_city', true) ? get_term_meta($org_id, 'org_city', true) : ''; - $state = !empty($org_id) && get_term_meta($org_id, 'org_state', true) ? get_term_meta($org_id, 'org_state', true) : ''; - $zip = !empty($org_id) && get_term_meta($org_id, 'org_postcode', true) ? get_term_meta($org_id, 'org_postcode', true) : ''; - $country = !empty($org_id) && get_term_meta($org_id, 'org_country', true) ? get_term_meta($org_id, 'org_country', true) : ''; -} else { - $location = get_post_meta($event_id, 'mep_location_venue', true) ? get_post_meta($event_id, 'mep_location_venue', true) : ''; - $street = get_post_meta($event_id, 'mep_street', true) ? get_post_meta($event_id, 'mep_street', true) : ''; - $city = get_post_meta($event_id, 'mep_city', true) ? get_post_meta($event_id, 'mep_city', true) : ''; - $state = get_post_meta($event_id, 'mep_state', true) ? get_post_meta($event_id, 'mep_state', true) : ''; - $zip = get_post_meta($event_id, 'mep_postcode', true) ? get_post_meta($event_id, 'mep_postcode', true) : ''; - $country = get_post_meta($event_id, 'mep_country', true) ? get_post_meta($event_id, 'mep_country', true) : ''; -} -$location_arr = [$location, $street, $city, $state, $zip, $country]; - -if($type == 'full'){ - - echo implode(',', array_filter($location_arr)); -} - -if($type == 'location'){ - echo $location; -} - -if($type == 'street'){ - echo $street; -} - -if($type == 'state'){ - echo $state; -} - -if($type == 'city'){ - echo $city; -} - -if($type == 'zip'){ - echo $zip; -} - -if($type == 'country'){ - echo $country; -} - -} - - - - - - - - - - - - -if (!function_exists('mep_get_event_upcomming_date')) { - function mep_get_event_upcomming_date($event_id,$type){ - - $recurring = get_post_meta($event_id, 'mep_enable_recurring', true) ? get_post_meta($event_id, 'mep_enable_recurring', true) : 'no'; - $more_date = get_post_meta($event_id,'mep_event_more_date',true) ? get_post_meta($event_id,'mep_event_more_date',true) : array(); - $start_datetime = get_post_meta($event_id,'event_start_datetime',true); - $start_date = date('Y-m-d H:i:s',strtotime(get_post_meta($event_id,'event_start_datetime',true))); - $end_date = get_post_meta($event_id,'event_end_date',true); - $end_datetime = get_post_meta($event_id,'event_end_datetime',true); - $show_multidate = mep_get_option('mep_date_list_in_event_listing', 'general_setting_sec', 'no'); - - // if (strtotime(current_time('Y-m-d H:i')) < strtotime($start_datetime)) { - - $all_datetime = array($start_date); - - if(sizeof($more_date) > 0){ - foreach($more_date as $mdate){ - $all_datetime[] = date('Y-m-d H:i:s',strtotime($mdate['event_more_start_date'].' '.$mdate['event_more_start_time'])); - } - } - $adt = []; - foreach($all_datetime as $ald){ - if (strtotime(current_time('Y-m-d H:i')) < strtotime($ald)) { - $adt[] = $ald; - } - } - if(sizeof($adt) > 0){ - return get_mep_datetime($adt[0],$type); - } - } -} - - -if (!function_exists('mep_on_post_publish')) { - function mep_on_post_publish( $post_id, $post, $update ) { - if ($post->post_type == 'mep_events' && $post->post_status == 'publish' && empty(get_post_meta( $post_id, 'check_if_run_once' ))) { - $product_cat_ids = wp_get_post_terms( $post_id, 'product_cat', array( 'fields' => 'ids' ) ); - // ADD THE FORM INPUT TO $new_post ARRAY - $new_post = array( - 'post_title' => $post->post_title, - 'post_content' => '', - 'post_name' => uniqid(), - 'post_category' => array(), // Usable for custom taxonomies too - 'tags_input' => array(), - 'post_status' => 'publish', // Choose: publish, preview, future, draft, etc. - 'post_type' => 'product' //'post',page' or use a custom post type if you want to ); - //SAVE THE POST - $pid = wp_insert_post($new_post); - $product_type = mep_get_option('mep_event_product_type', 'general_setting_sec','yes'); - update_post_meta( $post_id, 'link_wc_product', $pid ); - update_post_meta( $pid, 'link_mep_event', $post_id ); - update_post_meta( $pid, '_price', 0.01 ); - update_post_meta( $pid, '_sold_individually', 'yes' ); - update_post_meta( $pid, '_virtual', $product_type ); - $terms = array( 'exclude-from-catalog', 'exclude-from-search' ); - wp_set_object_terms( $pid, $terms, 'product_visibility' ); - wp_set_post_terms( $pid, $product_cat_ids, 'product_cat' ); - update_post_meta( $post_id, 'check_if_run_once', true ); - } - } -} - add_action( 'wp_insert_post', 'mep_on_post_publish', 10, 3 ); - - if (!function_exists('mep_count_hidden_wc_product')) { - function mep_count_hidden_wc_product($event_id){ - $args = array( - 'post_type' => 'product', - 'posts_per_page' => -1, - 'meta_query' => array( - array( - 'key' => 'link_mep_event', - 'value' => $event_id, - 'compare' => '=' - ) - ) - ); - $loop = new WP_Query($args); - print_r($loop->posts); - return $loop->post_count; - } -} - - add_action('save_post','mep_wc_link_product_on_save',99,1); - if (!function_exists('mep_wc_link_product_on_save')) { - function mep_wc_link_product_on_save($post_id){ - add_filter( 'wpseo_public_post_statuses', 'mepfix_sitemap_exclude_post_type', 5 ); - if (get_post_type($post_id) == 'mep_events') { - - if ( ! isset( $_POST['mep_event_reg_btn_nonce'] ) || - ! wp_verify_nonce( $_POST['mep_event_reg_btn_nonce'], 'mep_event_reg_btn_nonce' ) ) - {return;} - - if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) - {return;} - - if (!current_user_can('edit_post', $post_id)) - {return;} - $event_name = get_the_title($post_id); - - if(mep_count_hidden_wc_product($post_id) == 0 || empty(get_post_meta($post_id,'link_wc_product',true))){ - mep_create_hidden_event_product($post_id,$event_name); + $loop = new WP_Query($args); + $count = 0; + foreach ($loop->posts as $sold_service) { + $pid = $sold_service->ID; + $count = $count + get_post_meta($pid, 'ea_extra_service_qty', true); } - $product_cat_ids = wp_get_post_terms( $post_id, 'product_cat', array( 'fields' => 'ids' ) ); - - $product_id = get_post_meta($post_id,'link_wc_product',true) ? get_post_meta($post_id,'link_wc_product',true) : $post_id; - set_post_thumbnail( $product_id, get_post_thumbnail_id($post_id) ); - wp_publish_post( $product_id ); - - $product_type = mep_get_option('mep_event_product_type', 'general_setting_sec','yes'); - - $_tax_status = isset($_POST['_tax_status']) ? strip_tags($_POST['_tax_status']) : 'none'; - $_tax_class = isset($_POST['_tax_class']) ? strip_tags($_POST['_tax_class']) : ''; - - $update__tax_status = update_post_meta( $product_id, '_tax_status', $_tax_status); - $update__tax_class = update_post_meta( $product_id, '_tax_class', $_tax_class); - $update__tax_class = update_post_meta( $product_id, '_stock_status', 'instock'); - $update__tax_class = update_post_meta( $product_id, '_manage_stock', 'no'); - $update__tax_class = update_post_meta( $product_id, '_virtual', $product_type); - $update__tax_class = update_post_meta( $product_id, '_sold_individually', 'yes'); - - wp_set_post_terms( $product_id, $product_cat_ids, 'product_cat' ); - $terms = array( 'exclude-from-catalog', 'exclude-from-search' ); - wp_set_object_terms( $product_id, $terms, 'product_visibility' ); - // Update post - $my_post = array( - 'ID' => $product_id, - 'post_title' => $event_name, // new title - 'post_name' => uniqid()// do your thing here - ); - - // unhook this function so it doesn't loop infinitely - remove_action('save_post', 'mep_wc_link_product_on_save'); - // update the post, which calls save_post again - wp_update_post( $my_post ); - // re-hook this function - add_action('save_post', 'mep_wc_link_product_on_save'); - // Update the post into the database - + return $count; } - - } - } - - add_action('admin_head','mep_hide_date_from_order_page'); - function mep_hide_date_from_order_page(){ - $product_id =[]; - $args = array( - 'post_type' => 'mep_events', - 'posts_per_page' => -1 - ); - $qr = new WP_Query($args); - foreach ($qr->posts as $result) { - $post_id = $result->ID; - $product_id[] = get_post_meta($post_id, 'link_wc_product', true) ? '.woocommerce-page .post-'.get_post_meta($post_id, 'link_wc_product', true).'.type-product' : ''; - } - $product_id = array_filter($product_id); - $parr = implode(', ',$product_id); - echo ''; - } - - // add_action('parse_query', 'mep_product_tags_sorting_query'); - if (!function_exists('mep_product_tags_sorting_query')) { - function mep_product_tags_sorting_query($query) { - global $pagenow; - $taxonomy = 'product_visibility'; - $q_vars = &$query->query_vars; - if ( $pagenow == 'edit.php' && isset($q_vars['post_type']) && $q_vars['post_type'] == 'product') { - $tax_query = array( - [ - 'taxonomy' => 'product_visibility', - 'field' => 'slug', - 'terms' => 'exclude-from-catalog', - 'operator' => 'NOT IN', - ], - [ - 'taxonomy' => 'product_cat', - 'field' => 'slug', - 'terms' => 'uncategorized ', - 'operator' => 'NOT IN', - ] - - ); - $query->set( 'tax_query', $tax_query ); - } - - } } -add_action('wp_head','mep_exclude_hidden_product_from_search_engine'); -function mep_exclude_hidden_product_from_search_engine(){ - global $post; - if(is_single() && is_product()){ - $post_id = $post->ID; - $visibility = get_the_terms( $post_id, 'product_visibility' ) ? get_the_terms( $post_id, 'product_visibility' ) : [0]; - if(is_object($visibility[0])){ - if($visibility[0]->name == 'exclude-from-catalog'){ - $check_event_hidden = get_post_meta($post_id,'link_mep_event',true) ? get_post_meta($post_id,'link_mep_event',true) : 0; - if($check_event_hidden > 0){ - echo ' '; +if (!function_exists('mep_ticket_sold')) { + function mep_ticket_sold($event_id) { + $event_start_date = date('Y-m-d', strtotime(get_post_meta($event_id, 'event_start_date', true))); + // $get_ticket_type_list = get_post_meta($event_id,'mep_event_ticket_type',true) ? get_post_meta($event_id,'mep_event_ticket_type',true) : array(); + $get_ticket_type_list = metadata_exists('post', $event_id, 'mep_event_ticket_type') ? get_post_meta($event_id, 'mep_event_ticket_type', true) : array(); + + $recurring = get_post_meta($event_id, 'mep_enable_recurring', true) ? get_post_meta($event_id, 'mep_enable_recurring', true) : 'no'; + + $sold = 0; + if (is_array($get_ticket_type_list) && sizeof($get_ticket_type_list) > 0) { + foreach ($get_ticket_type_list as $ticket_type) { + $sold = $sold + mep_ticket_type_sold($event_id, mep_remove_apostopie($ticket_type['option_name_t']), $event_start_date); } - } - } - } -} - - - -add_action('wp','mep_hide_hidden_product_from_single',90); -if (!function_exists('mep_hide_hidden_product_from_single')) { -function mep_hide_hidden_product_from_single(){ - global $post,$wp_query; - if(is_product()){ - $post_id = $post->ID; - $visibility = get_the_terms( $post_id, 'product_visibility' ) ? get_the_terms( $post_id, 'product_visibility' ) : [0]; - if(is_object($visibility[0])){ - if($visibility[0]->name == 'exclude-from-catalog'){ - $check_event_hidden = get_post_meta($post_id,'link_mep_event',true) ? get_post_meta($post_id,'link_mep_event',true) : 0; - if($check_event_hidden > 0){ - $wp_query->set_404(); - status_header( 404 ); - get_template_part( 404 ); - exit(); - } - } - } - } -} -} - - - -if (!function_exists('get_event_list_js')) { - function get_event_list_js($id,$event_meta,$currency_pos){ - ob_start(); - ?> - - - $v){ - $string[$k] = mage_array_strip($v, $allowed_tags); } - return $string; + + if ($recurring == 'yes') { + // $mep_event_more_date = get_post_meta($event_id,'mep_event_more_date',true); + $mep_event_more_date = metadata_exists('post', $event_id, 'mep_event_more_date') ? get_post_meta($event_id, 'mep_event_more_date', true) : array(); + if (is_array($mep_event_more_date) && sizeof($mep_event_more_date) > 0) { + foreach ($mep_event_more_date as $md) { + if (is_array($get_ticket_type_list) && sizeof($get_ticket_type_list) > 0) { + foreach ($get_ticket_type_list as $ticket_type) { + $sold = $sold + mep_ticket_type_sold($event_id, mep_remove_apostopie($ticket_type['option_name_t']), $md['event_more_start_date']); + } + } + } + } + } + + return $sold; + } +} + + +if (!function_exists('mep_event_total_seat')) { + function mep_event_total_seat($event_id, $type) { + $mep_event_ticket_type = get_post_meta($event_id, 'mep_event_ticket_type', true); + // print_r($mep_event_ticket_type); + $total = 0; + if (is_array($mep_event_ticket_type) && sizeof($mep_event_ticket_type) > 0) { + foreach ($mep_event_ticket_type as $field) { + if ($type == 'total') { + $total_name = array_key_exists('option_qty_t', $field) ? (int)$field['option_qty_t'] : 0; + } elseif ($type == 'resv') { + $total_name = array_key_exists('option_rsv_t', $field) ? (int)$field['option_rsv_t'] : 0; + } + $total = $total_name + $total; + } + } + return $total; + } +} + + +if (!function_exists('get_mep_datetime')) { + function get_mep_datetime($date, $type) { + $date_format = get_option('date_format'); + $time_format = get_option('time_format'); + $wpdatesettings = $date_format . ' ' . $time_format; + $timezone = wp_timezone_string(); + $timestamp = strtotime($date . ' ' . $timezone); + + if ($type == 'date') { + return wp_date($date_format, $timestamp); + } + if ($type == 'date-time') { + return wp_date($wpdatesettings, $timestamp); + } + if ($type == 'date-text') { + + return wp_date($date_format, $timestamp); + } + + if ($type == 'date-time-text') { + return wp_date($wpdatesettings, $timestamp, wp_timezone()); + } + if ($type == 'time') { + return wp_date($time_format, $timestamp, wp_timezone()); + } + + if ($type == 'Hour') { + return wp_date('H', $timestamp, wp_timezone()); + } + if ($type == 'hour') { + return wp_date('h', $timestamp, wp_timezone()); + } + if ($type == 'minute') { + return wp_date('i', $timestamp, wp_timezone()); + } + + if ($type == 'second') { + return wp_date('s', $timestamp, wp_timezone()); + } + + if ($type == 'day') { + return wp_date('d', $timestamp); + } + if ($type == 'Dday') { + return wp_date('D', $timestamp); + } + if ($type == 'month') { + return wp_date('m', $timestamp); + } + if ($type == 'month-name') { + return wp_date('M', $timestamp); + } + if ($type == 'year') { + return wp_date('y', $timestamp); + } + if ($type == 'year-full') { + return wp_date('Y', $timestamp); + } + if ($type == 'timezone') { + return wp_date('T', $timestamp); + } + } +} + + +function mep_get_location($event_id, $type) { + + $location_sts = get_post_meta($event_id, 'mep_org_address', true) ? get_post_meta($event_id, 'mep_org_address', true) : ''; + if ($location_sts) { + $org_arr = get_the_terms($event_id, 'mep_org') ? get_the_terms($event_id, 'mep_org') : []; + $org_id = sizeof($org_arr) > 0 ? $org_arr[0]->term_id : ''; + $location = !empty($org_id) && get_term_meta($org_id, 'org_location', true) ? get_term_meta($org_id, 'org_location', true) : ''; + $street = !empty($org_id) && get_term_meta($org_id, 'org_street', true) ? get_term_meta($org_id, 'org_street', true) : ''; + $city = !empty($org_id) && get_term_meta($org_id, 'org_city', true) ? get_term_meta($org_id, 'org_city', true) : ''; + $state = !empty($org_id) && get_term_meta($org_id, 'org_state', true) ? get_term_meta($org_id, 'org_state', true) : ''; + $zip = !empty($org_id) && get_term_meta($org_id, 'org_postcode', true) ? get_term_meta($org_id, 'org_postcode', true) : ''; + $country = !empty($org_id) && get_term_meta($org_id, 'org_country', true) ? get_term_meta($org_id, 'org_country', true) : ''; + } else { + $location = get_post_meta($event_id, 'mep_location_venue', true) ? get_post_meta($event_id, 'mep_location_venue', true) : ''; + $street = get_post_meta($event_id, 'mep_street', true) ? get_post_meta($event_id, 'mep_street', true) : ''; + $city = get_post_meta($event_id, 'mep_city', true) ? get_post_meta($event_id, 'mep_city', true) : ''; + $state = get_post_meta($event_id, 'mep_state', true) ? get_post_meta($event_id, 'mep_state', true) : ''; + $zip = get_post_meta($event_id, 'mep_postcode', true) ? get_post_meta($event_id, 'mep_postcode', true) : ''; + $country = get_post_meta($event_id, 'mep_country', true) ? get_post_meta($event_id, 'mep_country', true) : ''; + } + $location_arr = [$location, $street, $city, $state, $zip, $country]; + + if ($type == 'full') { + + echo implode(',', array_filter($location_arr)); + } + + if ($type == 'location') { + echo $location; + } + + if ($type == 'street') { + echo $street; + } + + if ($type == 'state') { + echo $state; + } + + if ($type == 'city') { + echo $city; + } + + if ($type == 'zip') { + echo $zip; + } + + if ($type == 'country') { + echo $country; + } + +} + + +if (!function_exists('mep_get_event_upcomming_date')) { + function mep_get_event_upcomming_date($event_id, $type) { + + $recurring = get_post_meta($event_id, 'mep_enable_recurring', true) ? get_post_meta($event_id, 'mep_enable_recurring', true) : 'no'; + $more_date = get_post_meta($event_id, 'mep_event_more_date', true) ? get_post_meta($event_id, 'mep_event_more_date', true) : array(); + $start_datetime = get_post_meta($event_id, 'event_start_datetime', true); + $start_date = date('Y-m-d H:i:s', strtotime(get_post_meta($event_id, 'event_start_datetime', true))); + $end_date = get_post_meta($event_id, 'event_end_date', true); + $end_datetime = get_post_meta($event_id, 'event_end_datetime', true); + $show_multidate = mep_get_option('mep_date_list_in_event_listing', 'general_setting_sec', 'no'); + + // if (strtotime(current_time('Y-m-d H:i')) < strtotime($start_datetime)) { + + $all_datetime = array($start_date); + + if (sizeof($more_date) > 0) { + foreach ($more_date as $mdate) { + $all_datetime[] = date('Y-m-d H:i:s', strtotime($mdate['event_more_start_date'] . ' ' . $mdate['event_more_start_time'])); + } + } + $adt = []; + foreach ($all_datetime as $ald) { + if (strtotime(current_time('Y-m-d H:i')) < strtotime($ald)) { + $adt[] = $ald; + } + } + if (sizeof($adt) > 0) { + return get_mep_datetime($adt[0], $type); + } + } +} + + +if (!function_exists('mep_on_post_publish')) { + function mep_on_post_publish($post_id, $post, $update) { + if ($post->post_type == 'mep_events' && $post->post_status == 'publish' && empty(get_post_meta($post_id, 'check_if_run_once'))) { + $product_cat_ids = wp_get_post_terms($post_id, 'product_cat', array('fields' => 'ids')); + // ADD THE FORM INPUT TO $new_post ARRAY + $new_post = array( + 'post_title' => $post->post_title, + 'post_content' => '', + 'post_name' => uniqid(), + 'post_category' => array(), // Usable for custom taxonomies too + 'tags_input' => array(), + 'post_status' => 'publish', // Choose: publish, preview, future, draft, etc. + 'post_type' => 'product' //'post',page' or use a custom post type if you want to + ); + //SAVE THE POST + $pid = wp_insert_post($new_post); + $product_type = mep_get_option('mep_event_product_type', 'general_setting_sec', 'yes'); + update_post_meta($post_id, 'link_wc_product', $pid); + update_post_meta($pid, 'link_mep_event', $post_id); + update_post_meta($pid, '_price', 0.01); + update_post_meta($pid, '_sold_individually', 'yes'); + update_post_meta($pid, '_virtual', $product_type); + $terms = array('exclude-from-catalog', 'exclude-from-search'); + wp_set_object_terms($pid, $terms, 'product_visibility'); + wp_set_post_terms($pid, $product_cat_ids, 'product_cat'); + update_post_meta($post_id, 'check_if_run_once', true); + } + } +} +add_action('wp_insert_post', 'mep_on_post_publish', 10, 3); + +if (!function_exists('mep_count_hidden_wc_product')) { + function mep_count_hidden_wc_product($event_id) { + $args = array( + 'post_type' => 'product', + 'posts_per_page' => -1, + 'meta_query' => array( + array( + 'key' => 'link_mep_event', + 'value' => $event_id, + 'compare' => '=' + ) + ) + ); + $loop = new WP_Query($args); + print_r($loop->posts); + return $loop->post_count; + } +} + +add_action('save_post', 'mep_wc_link_product_on_save', 99, 1); +if (!function_exists('mep_wc_link_product_on_save')) { + function mep_wc_link_product_on_save($post_id) { + add_filter('wpseo_public_post_statuses', 'mepfix_sitemap_exclude_post_type', 5); + if (get_post_type($post_id) == 'mep_events') { + + if (!isset($_POST['mep_event_reg_btn_nonce']) || + !wp_verify_nonce($_POST['mep_event_reg_btn_nonce'], 'mep_event_reg_btn_nonce')) { + return; + } + + if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { + return; + } + + if (!current_user_can('edit_post', $post_id)) { + return; + } + $event_name = get_the_title($post_id); + + if (mep_count_hidden_wc_product($post_id) == 0 || empty(get_post_meta($post_id, 'link_wc_product', true))) { + mep_create_hidden_event_product($post_id, $event_name); + } + $product_cat_ids = wp_get_post_terms($post_id, 'product_cat', array('fields' => 'ids')); + + $product_id = get_post_meta($post_id, 'link_wc_product', true) ? get_post_meta($post_id, 'link_wc_product', true) : $post_id; + set_post_thumbnail($product_id, get_post_thumbnail_id($post_id)); + wp_publish_post($product_id); + + $product_type = mep_get_option('mep_event_product_type', 'general_setting_sec', 'yes'); + + $_tax_status = isset($_POST['_tax_status']) ? sanitize_text_field($_POST['_tax_status']) : 'none'; + $_tax_class = isset($_POST['_tax_class']) ? sanitize_text_field($_POST['_tax_class']) : ''; + + $update__tax_status = update_post_meta($product_id, '_tax_status', $_tax_status); + $update__tax_class = update_post_meta($product_id, '_tax_class', $_tax_class); + $update__tax_class = update_post_meta($product_id, '_stock_status', 'instock'); + $update__tax_class = update_post_meta($product_id, '_manage_stock', 'no'); + $update__tax_class = update_post_meta($product_id, '_virtual', $product_type); + $update__tax_class = update_post_meta($product_id, '_sold_individually', 'yes'); + + wp_set_post_terms($product_id, $product_cat_ids, 'product_cat'); + $terms = array('exclude-from-catalog', 'exclude-from-search'); + wp_set_object_terms($product_id, $terms, 'product_visibility'); + // Update post + $my_post = array( + 'ID' => $product_id, + 'post_title' => $event_name, // new title + 'post_name' => uniqid()// do your thing here + ); + + // unhook this function so it doesn't loop infinitely + remove_action('save_post', 'mep_wc_link_product_on_save'); + // update the post, which calls save_post again + wp_update_post($my_post); + // re-hook this function + add_action('save_post', 'mep_wc_link_product_on_save'); + // Update the post into the database + + } + + } +} + +add_action('admin_head', 'mep_hide_date_from_order_page'); +function mep_hide_date_from_order_page() { + $product_id = []; + $args = array( + 'post_type' => 'mep_events', + 'posts_per_page' => -1 + ); + $qr = new WP_Query($args); + foreach ($qr->posts as $result) { + $post_id = $result->ID; + $product_id[] = get_post_meta($post_id, 'link_wc_product', true) ? '.woocommerce-page .post-' . get_post_meta($post_id, 'link_wc_product', true) . '.type-product' : ''; + } + $product_id = array_filter($product_id); + $parr = implode(', ', $product_id); + echo ''; +} + +// add_action('parse_query', 'mep_product_tags_sorting_query'); +if (!function_exists('mep_product_tags_sorting_query')) { + function mep_product_tags_sorting_query($query) { + global $pagenow; + $taxonomy = 'product_visibility'; + $q_vars = &$query->query_vars; + if ($pagenow == 'edit.php' && isset($q_vars['post_type']) && $q_vars['post_type'] == 'product') { + $tax_query = array( + [ + 'taxonomy' => 'product_visibility', + 'field' => 'slug', + 'terms' => 'exclude-from-catalog', + 'operator' => 'NOT IN', + ], + [ + 'taxonomy' => 'product_cat', + 'field' => 'slug', + 'terms' => 'uncategorized ', + 'operator' => 'NOT IN', + ] + + ); + $query->set('tax_query', $tax_query); + } + + } +} + +add_action('wp_head', 'mep_exclude_hidden_product_from_search_engine'); +function mep_exclude_hidden_product_from_search_engine() { + global $post; + if (is_single() && is_product()) { + $post_id = $post->ID; + $visibility = get_the_terms($post_id, 'product_visibility') ? get_the_terms($post_id, 'product_visibility') : [0]; + if (is_object($visibility[0])) { + if ($visibility[0]->name == 'exclude-from-catalog') { + $check_event_hidden = get_post_meta($post_id, 'link_mep_event', true) ? get_post_meta($post_id, 'link_mep_event', true) : 0; + if ($check_event_hidden > 0) { + echo ' '; + } + } + } + } +} + + +add_action('wp', 'mep_hide_hidden_product_from_single', 90); +if (!function_exists('mep_hide_hidden_product_from_single')) { + function mep_hide_hidden_product_from_single() { + global $post, $wp_query; + if (is_product()) { + $post_id = $post->ID; + $visibility = get_the_terms($post_id, 'product_visibility') ? get_the_terms($post_id, 'product_visibility') : [0]; + if (is_object($visibility[0])) { + if ($visibility[0]->name == 'exclude-from-catalog') { + $check_event_hidden = get_post_meta($post_id, 'link_mep_event', true) ? get_post_meta($post_id, 'link_mep_event', true) : 0; + if ($check_event_hidden > 0) { + $wp_query->set_404(); + status_header(404); + get_template_part(404); + exit(); + } + } + } + } + } +} + + +if (!function_exists('get_event_list_js')) { + function get_event_list_js($id, $event_meta, $currency_pos) { + ob_start(); + ?> + + + $v) { + $string[$k] = mage_array_strip($v, $allowed_tags); + } + return $string; + } + return strip_tags($string, $allowed_tags); } - return strip_tags($string, $allowed_tags); - } } /** * The Giant SEO Plugin Yoast PRO doing some weird thing and that is its auto create a 301 redirect url when delete a post its causing our event some issue Thats why i disable those part for our event post type with the below filter hoook which is provide by Yoast. */ -add_filter('wpseo_premium_post_redirect_slug_change', '__return_true' ); -add_filter('wpseo_premium_term_redirect_slug_change', '__return_true' ); -add_filter('wpseo_enable_notification_term_slug_change','__return_false'); - -/** - * The below function will add the event more date list into the event list shortcode, Bu default it will be hide with a Show Date button, after click on that button it will the full list. - */ -add_action('mep_event_list_loop_footer','mep_event_recurring_date_list_in_event_list_loop'); -if (!function_exists('mep_event_recurring_date_list_in_event_list_loop')) { -function mep_event_recurring_date_list_in_event_list_loop($event_id){ - $recurring = get_post_meta($event_id, 'mep_enable_recurring', true) ? get_post_meta($event_id, 'mep_enable_recurring', true) : 'no'; - $_more_dates = get_post_meta($event_id,'mep_event_more_date',true); +add_filter('wpseo_premium_post_redirect_slug_change', '__return_true'); +add_filter('wpseo_premium_term_redirect_slug_change', '__return_true'); +add_filter('wpseo_enable_notification_term_slug_change', '__return_false'); - // $_more_date = array_key_exists('mep_event_more_date', $event_meta) ? unserialize($event_meta['mep_event_more_date'][0]) : array(); - $more_date = apply_filters('mep_event_date_more_date_array_event_list',$_more_dates,$event_id); - - - $start_datetime = get_post_meta($event_id,'event_start_datetime',true); - $start_date = get_post_meta($event_id,'event_start_date',true); - $end_date = get_post_meta($event_id,'event_end_date',true); - $end_datetime = get_post_meta($event_id,'event_end_datetime',true); - $show_multidate = mep_get_option('mep_date_list_in_event_listing', 'general_setting_sec', 'no'); - - if(is_array($more_date) && sizeof($more_date) > 0){ - - ?> -