diff --git a/css/style.css b/css/style.css index f878a9f..eb6ab3b 100644 --- a/css/style.css +++ b/css/style.css @@ -1435,6 +1435,27 @@ h4.mep-cart-table-title { margin: -26px 0 0; padding: 0 0 0 25px; } + + +.mep-ev-waitlist-active{ + padding: 10px; + position: absolute; + right: 0px; + top: 0px; + border-radius: 10px 0px 0px 10px; +} +.mep-ev-waitlist-active h2{ + font-size: 18px; + color: #fff !important; + font-weight: bold; +} + + + + + + + /* Responsive CSS =====================================================================*/ @media only screen and (min-width: 768px) and (max-width: 990px) { diff --git a/inc/mep_event_meta.php b/inc/mep_event_meta.php index 5ae307d..ccac5d6 100644 --- a/inc/mep_event_meta.php +++ b/inc/mep_event_meta.php @@ -764,7 +764,6 @@ function mep_event_ticket_type() { function mep_event_date_meta_box_cb($post){ $values = get_post_custom( $post->ID ); $more_date = get_post_meta($post->ID, 'mep_event_more_date', true); -// print_r($values); ?>
@@ -776,13 +775,13 @@ $more_date = get_post_meta($post->ID, 'mep_event_more_date', true);
- + - + - +
diff --git a/inc/mep_shortcode.php b/inc/mep_shortcode.php index 9eec6a2..4a3a441 100644 --- a/inc/mep_shortcode.php +++ b/inc/mep_shortcode.php @@ -218,6 +218,9 @@ $author_terms = get_the_terms(get_the_id(), 'mep_org'); ?> + + +
@@ -225,6 +228,10 @@ $author_terms = get_the_terms(get_the_id(), 'mep_org');
+ + + +
diff --git a/readme.txt b/readme.txt index 3c2b9a1..00e0104 100644 --- a/readme.txt +++ b/readme.txt @@ -3,8 +3,8 @@ Contributors: magepeopleteam Tags: event, woocomerce events manager, events manager, Wordpress Events plugin, Events plugin, wp events Requires at least: 4.5 Stable tag: trunk -Version: 2.1.3 -Tested up to: 5.0 +Version: 2.3.4 +Tested up to: 4.9 WC requires at least: 3.0 WC tested up to: 3.5.0 Requires PHP: 5.6 @@ -280,10 +280,4 @@ You can display the event list on any page by using the ShortCode. Just use this *= 2.3.2 = *Update Release: ==> France Language Pack Ready. -05 Feb 2019* - - -*= 2.3.3 = -*Update Release: -==> Payment issue fixed, Multidate features added -19 Feb 2019* \ No newline at end of file +05 Feb 2019* \ No newline at end of file diff --git a/woocommerce-event-press.php b/woocommerce-event-press.php index 4cd7801..bf14839 100644 --- a/woocommerce-event-press.php +++ b/woocommerce-event-press.php @@ -1,901 +1,934 @@ -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, - '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. - * - * @since 3.0.0 - * @param int $product_id - * @return bool|string - */ - 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; - } - } -} - - - -function mep_get_order_info($info,$id){ - $stock_msg = $info; - $koba = explode("_", $stock_msg); - return $koba[$id]; -} - - - -add_filter( 'woocommerce_data_stores', 'mep_woocommerce_data_stores' ); -function mep_woocommerce_data_stores ( $stores ) { - $stores['product'] = 'MEP_Product_Data_Store_CPT'; - return $stores; - } - - } else { - - add_action('admin_notices', 'wc_not_loaded'); - - } - - - -add_action('woocommerce_before_checkout_form', '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']; - } -} - - -// Send Confirmation email to customer -function mep_event_confirmation_email_sent($event_id,$sent_email){ -$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){ - $sent = wp_mail( $sent_email, $email_sub, $email_body, $headers ); - } -} - -} - - -add_action( 'woocommerce_thankyou','mep_set_first_order_sts'); -function mep_set_first_order_sts($order_id ){ - - // Getting an instance of the order object - $order = wc_get_order( $order_id ); - $order_meta = get_post_meta($order_id); - - - # Iterating through each order items (WC_Order_Item_Product objects in WC 3+) - foreach ( $order->get_items() as $item_id => $item_values ) { - $product_id = $item_values->get_product_id(); - $item_data = $item_values->get_data(); - $product_id = $item_data['product_id']; - $item_quantity = $item_values->get_quantity(); - $product = get_page_by_title( $item_data['name'], OBJECT, 'mep_events' ); - $event_name = $item_data['name']; - $event_id = $product->ID; - $item_id = $item_id; - // $item_data = $item_values->get_data(); - } - - -$mep_atnd = "_mep_atnd_".$order_id; -update_post_meta( $event_id, $mep_atnd, "a1"); -} - - - - - - - - - -add_action('woocommerce_order_status_changed', 'mep_event_seat_management', 10, 4); -function mep_event_seat_management( $order_id, $from_status, $to_status, $order ) { -global $wpdb; - - - // Getting an instance of the order object - $order = wc_get_order( $order_id ); - $order_meta = get_post_meta($order_id); - - -$c = 1; - - # Iterating through each order items (WC_Order_Item_Product objects in WC 3+) - foreach ( $order->get_items() as $item_id => $item_values ) { - $product_id = $item_values->get_product_id(); - $item_data = $item_values->get_data(); - $product_id = $item_data['product_id']; - $item_quantity = $item_values->get_quantity(); - $product = get_page_by_title( $item_data['name'], OBJECT, 'mep_events' ); - $event_name = $item_data['name']; - $event_id = $product->ID; - $item_id = $item_id; - // $item_data = $item_values->get_data(); - } - -$table_name = $wpdb->prefix . 'woocommerce_order_itemmeta'; -$result = $wpdb->get_results( "SELECT * FROM $table_name WHERE order_item_id=$item_id" ); - - - $mep_total = get_post_meta($event_id,'total_booking', true); - if($mep_total){ - $mep_total_booking = $mep_total; - }else{ - $mep_total_booking =0; - } - - - $email = $order_meta['_billing_email'][0]; - $order_meta_text = "_stock_msg_".$order_id; - $order_processing = "processing_".$order_id; - $order_completed = "completed_".$order_id; - $order_cancelled = "cancelled_".$order_id; - $mep_atnd = "_mep_atnd_".$order_id; - - - - - -// if($order->has_status( 'processing' ) || $order->has_status( 'pending' )) { -if($order->has_status( 'processing' ) || $order->has_status( 'completed' )) { -// update_post_meta( $event_id, $mep_atnd, "a2"); - -$mep_stock_msgc = mep_get_order_info(get_post_meta($event_id,$order_meta_text, true),0); -$mep_stock_orderc = mep_get_order_info(get_post_meta($event_id,$order_meta_text, true),1); - -if($mep_stock_orderc==$order_id){ - if($mep_stock_msgc=='cancelled'){ - - foreach ( $result as $page ){ - if (strpos($page->meta_key, '_') !== 0) { - - $order_option_name = $event_id.str_replace(' ', '', mep_get_string_part($page->meta_key,0)); - - $order_option_qty = mep_get_string_part($page->meta_key,1); - $tes = get_post_meta($event_id,"mep_xtra_$order_option_name",true); - $ntes = ($tes+$order_option_qty); - update_post_meta( $event_id, "mep_xtra_$order_option_name",$ntes); - } - } - - - - } - } - - - - - update_post_meta( $event_id, $order_meta_text, $order_processing); - - - $mep_stock_msg = mep_get_order_info(get_post_meta($event_id,$order_meta_text, true),0); - $mep_stock_order = mep_get_order_info(get_post_meta($event_id,$order_meta_text, true),1); - - -if($mep_stock_order==$order_id){ - if($mep_stock_msg=='completed'){ - update_post_meta( $event_id, $order_meta_text, $order_processing); - } - else{ - update_post_meta( $event_id, 'total_booking', ($mep_total_booking+$item_quantity)); - update_post_meta( $event_id, $order_meta_text, $order_processing); - - } - } - - - - -} - - - - - -if($order->has_status( 'cancelled' )) { - update_post_meta( $event_id,$mep_atnd, "a2"); - update_post_meta( $event_id, $order_meta_text, $order_cancelled); - $mep_stock_msg = mep_get_order_info(get_post_meta($event_id,$order_meta_text, true),0); - $mep_stock_order = mep_get_order_info(get_post_meta($event_id,$order_meta_text, true),1); - - - if($mep_stock_order==$order_id){ - $update_total_booking = update_post_meta( $event_id, 'total_booking', ($mep_total_booking-$item_quantity)); - - foreach ( $result as $page ){ - if (strpos($page->meta_key, '_') !== 0) { - $order_option_name = $event_id.str_replace(' ', '', mep_get_string_part($page->meta_key,0)); - $order_option_qty = mep_get_string_part($page->meta_key,1); - $tes = get_post_meta($event_id,"mep_xtra_$order_option_name",true); - $ntes = ($tes-$order_option_qty); - if($tes>0){ - update_post_meta( $event_id, "mep_xtra_$order_option_name",$ntes); - } - } - } - } - -} - - - - - - - -if( $order->has_status( 'completed' )) { -update_post_meta( $event_id, $mep_atnd, "a2"); - // update_post_meta( $event_id, $order_meta_text, $order_completed); - $mep_stock_msg = mep_get_order_info(get_post_meta($event_id,$order_meta_text, true),0); - $mep_stock_order = mep_get_order_info(get_post_meta($event_id,$order_meta_text, true),1); - mep_event_confirmation_email_sent($event_id,$email); - - if($mep_stock_order==$order_id){ - - if($mep_stock_msg=='processing'){ - update_post_meta( $event_id, $order_meta_text, $order_completed); - } - else{ - update_post_meta( $event_id, 'total_booking', ($mep_total_booking+$item_quantity)); - update_post_meta( $event_id, $order_meta_text, $order_completed); - - foreach ( $result as $page ){ - if (strpos($page->meta_key, '_') !== 0) { - $order_option_name = $event_id.str_replace(' ', '', mep_get_string_part($page->meta_key,0)); - $order_option_qty = mep_get_string_part($page->meta_key,1); - $tes = get_post_meta($event_id,"mep_xtra_$order_option_name",true); - $ntes = ($tes+$order_option_qty); - update_post_meta( $event_id, "mep_xtra_$order_option_name",$ntes); - } - } - } - - } - - - } - -} - - - -add_action('restrict_manage_posts', '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'); -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'); -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']; - - } -} - - - - - - - - - - -// 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 ); -function mep_custom_event_column( $column, $post_id ) { -switch ( $column ) { -case 'mep_status' : -$values = get_post_custom( $post_id ); -echo mep_get_event_status($values['mep_event_start_date'][0]); - break; - - case 'mep_atten' : - echo 'Attendees List'; - break; - } -} - - -// Getting event exprie date & time -function mep_get_event_status($startdatetime){ - - $time = strtotime($startdatetime); - $newformat = date('Y-m-d H:i:s',$time); - $datetime1 = new DateTime(); - $datetime2 = new DateTime($newformat); - $interval = $datetime1->diff($datetime2); -// print_r($newformat); - if(time() > strtotime($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"; - } -} - - - - - -// Redirect to Checkout after successfuly event registration -add_filter ('woocommerce_add_to_cart_redirect', 'mep_event_redirect_to_checkout'); -function mep_event_redirect_to_checkout() { - global $woocommerce; - $checkout_url = wc_get_checkout_url(); - return $checkout_url; -} - - - - -function mep_load_events_templates($template) { - global $post; - if ($post->post_type == "mep_events"){ - $template_name = 'single-events.php'; - $template_path = 'mage-events/'; - $default_path = plugin_dir_path( __FILE__ ) . 'templates/'; - $template = locate_template( array($template_path . $template_name) ); - if ( ! $template ) : - $template = $default_path . $template_name; - endif; - return $template; - } - - if ($post->post_type == "mep_events_attendees"){ - $plugin_path = plugin_dir_path( __FILE__ ); - $template_name = 'templates/single-mep_events_attendees.php'; - if($template === get_stylesheet_directory() . '/' . $template_name - || !file_exists($plugin_path . $template_name)) { - return $template; - } - return $plugin_path . $template_name; - } - - return $template; -} -add_filter('single_template', 'mep_load_events_templates'); - - - - - -add_filter('template_include', 'mep_organizer_set_template'); -function mep_organizer_set_template( $template ){ - - if( is_tax('mep_org')){ - $template = plugin_dir_path( __FILE__ ).'templates/taxonomy-organozer.php'; - } - - if( is_tax('mep_cat')){ - $template = plugin_dir_path( __FILE__ ).'templates/taxonomy-category.php'; - } - - return $template; -} - - - -function mep_social_share(){ -?> - - - -prefix . 'woocommerce_order_itemmeta'; -$result = $wpdb->get_results( "SELECT * FROM $table_name WHERE order_item_id=$id" ); - -foreach ( $result as $page ) -{ - if (strpos($page->meta_key, '_') !== 0) { - echo mep_get_string_part($page->meta_key,$part).'
'; - } -} - -} - -add_action('woocommerce_account_dashboard','mep_ticket_lits_users'); -function mep_ticket_lits_users(){ -ob_start(); -?> -
- - - - - - - - array( 'mep_events_attendees' ), - 'posts_per_page' => -1, - 'meta_query' => array( - array( - 'key' => 'ea_user_id', - 'value' => get_current_user_id() - ) - ) - ); - $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 ); - $event_meta = get_post_custom($event_id); - - $time = strtotime($event_meta['mep_event_start_date'][0]); - $newformat = date('Y-m-d H:i:s',$time); - - - if(time() < strtotime($newformat)){ -?> - - - - - - - -
-
-","",strip_tags(file_get_contents($filename, FALSE, NULL, 24, 14))); - } - $theme[$file] = $naame; -} -return $theme; -} - - - -function event_single_template_list($current_theme){ -$themes = event_template_name(); - $buffer = ''; - echo $buffer; -} - -function mep_title_cutoff_words($text, $length){ - if(strlen($text) > $length) { - $text = substr($text, 0, strpos($text, ' ', $length)); - } - - return $text; -} - -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; -} - - -function my_function_meta_deta() { - global $order; - -$order_id = $_GET['post']; - // Getting an instance of the order object - $order = wc_get_order( $order_id ); - $order_meta = get_post_meta($order_id); - - # Iterating through each order items (WC_Order_Item_Product objects in WC 3+) - foreach ( $order->get_items() as $item_id => $item_values ) { - $product_id = $item_values->get_product_id(); - $item_data = $item_values->get_data(); - $product_id = $item_data['product_id']; - $item_quantity = $item_values->get_quantity(); - $product = get_page_by_title( $item_data['name'], OBJECT, 'mep_events' ); - $event_name = $item_data['name']; - $event_id = $product->ID; - $item_id = $item_id; - } - -$user_info_arr = wc_get_order_item_meta($item_id,'_event_user_info',true); - -// print_r($user_info_arr); - - ob_start(); -?> -
- - - - - - - - -
NameCity
-
-id ); - - - -// add_action( 'woocommerce_thankyou', 'woocommerce_thankyou_change_order_status', 10, 1 ); -function woocommerce_thankyou_change_order_status( $order_id ){ - if( ! $order_id ) return; - - $order = wc_get_order( $order_id ); - - if( $order->get_status() == 'processing' ) - $order->update_status( 'completed' ); -} - - - - -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 =$cur.$n_price; - } - - // if($mep_events_extra_prices){ - // $gn_price = $cur.$mep_events_extra_prices[0]['option_price']; - // } - - if($mep_event_ticket_type){ - $gn_price = $cur.$mep_event_ticket_type[0]['option_price_t']; - } - -return $gn_price; -} - -function mep_get_label($pid,$label_id,$default_text){ - return mep_get_option( $label_id, 'label_setting_sec', $default_text); -} - -// Add the custom columns to the book post type: -add_filter( 'manage_mep_events_posts_columns', 'mep_set_custom_edit_event_columns' ); -function mep_set_custom_edit_event_columns($columns) { - - unset( $columns['date'] ); - - $columns['mep_status'] = __( 'Status', 'mage-eventpress' ); - - return $columns; -} - - -function mep_get_full_time_and_date($datetime){ - $user_set_format = mep_get_option( 'mep_event_time_format','general_setting_sec',12); - - if($user_set_format==12){ - echo date_i18n('D, d M Y h:i A', strtotime($datetime)); - } - if($user_set_format==24){ - echo date_i18n('D, d M Y H:i', strtotime($datetime)); - } -} - - -function mep_get_only_time($datetime){ - $user_set_format = mep_get_option( 'mep_event_time_format','general_setting_sec',12); - - if($user_set_format==12){ - echo date_i18n('h:i A', strtotime($datetime)); - } - if($user_set_format==24){ - echo date_i18n('H:i', strtotime($datetime)); - } -} - - - -function mep_get_event_city($id){ -$location_sts = get_post_meta($id,'mep_org_address',true); -$event_meta = get_post_custom($id); -if($location_sts){ -$org_arr = get_the_terms( $post->ID, 'mep_org' ); -$org_id = $org_arr[0]->term_id; - echo "".get_term_meta( $org_id, 'org_city', true ).""; -}else{ - - echo "".$event_meta['mep_city'][0].""; - -} -} \ No newline at end of file +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, + '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. + * + * @since 3.0.0 + * @param int $product_id + * @return bool|string + */ + 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; + } + } +} + + + +function mep_get_order_info($info,$id){ + $stock_msg = $info; + $koba = explode("_", $stock_msg); + return $koba[$id]; +} + + + +add_filter( 'woocommerce_data_stores', 'mep_woocommerce_data_stores' ); +function mep_woocommerce_data_stores ( $stores ) { + $stores['product'] = 'MEP_Product_Data_Store_CPT'; + return $stores; + } + + } else { + + add_action('admin_notices', 'wc_not_loaded'); + + } + + + +add_action('woocommerce_before_checkout_form', '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']; + } +} + + +// Send Confirmation email to customer +function mep_event_confirmation_email_sent($event_id,$sent_email){ +$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){ + $sent = wp_mail( $sent_email, $email_sub, $email_body, $headers ); + } +} + +} + + +add_action( 'woocommerce_thankyou','mep_set_first_order_sts'); +function mep_set_first_order_sts($order_id ){ + + // Getting an instance of the order object + $order = wc_get_order( $order_id ); + $order_meta = get_post_meta($order_id); + + + # Iterating through each order items (WC_Order_Item_Product objects in WC 3+) + foreach ( $order->get_items() as $item_id => $item_values ) { + $product_id = $item_values->get_product_id(); + $item_data = $item_values->get_data(); + $product_id = $item_data['product_id']; + $item_quantity = $item_values->get_quantity(); + $product = get_page_by_title( $item_data['name'], OBJECT, 'mep_events' ); + $event_name = $item_data['name']; + $event_id = $product->ID; + $item_id = $item_id; + // $item_data = $item_values->get_data(); + } + + +$mep_atnd = "_mep_atnd_".$order_id; +update_post_meta( $event_id, $mep_atnd, "a1"); +} + + + + + + + + + +add_action('woocommerce_order_status_changed', 'mep_event_seat_management', 10, 4); +function mep_event_seat_management( $order_id, $from_status, $to_status, $order ) { +global $wpdb; + + + // Getting an instance of the order object + $order = wc_get_order( $order_id ); + $order_meta = get_post_meta($order_id); + + +$c = 1; + + # Iterating through each order items (WC_Order_Item_Product objects in WC 3+) + foreach ( $order->get_items() as $item_id => $item_values ) { + $product_id = $item_values->get_product_id(); + $item_data = $item_values->get_data(); + $product_id = $item_data['product_id']; + $item_quantity = $item_values->get_quantity(); + $product = get_page_by_title( $item_data['name'], OBJECT, 'mep_events' ); + $event_name = $item_data['name']; + $event_id = $product->ID; + $item_id = $item_id; + // $item_data = $item_values->get_data(); + } + +$table_name = $wpdb->prefix . 'woocommerce_order_itemmeta'; +$result = $wpdb->get_results( "SELECT * FROM $table_name WHERE order_item_id=$item_id" ); + + + $mep_total = get_post_meta($event_id,'total_booking', true); + if($mep_total){ + $mep_total_booking = $mep_total; + }else{ + $mep_total_booking =0; + } + + + $email = $order_meta['_billing_email'][0]; + $order_meta_text = "_stock_msg_".$order_id; + $order_processing = "processing_".$order_id; + $order_completed = "completed_".$order_id; + $order_cancelled = "cancelled_".$order_id; + $mep_atnd = "_mep_atnd_".$order_id; + + + + + +// if($order->has_status( 'processing' ) || $order->has_status( 'pending' )) { +if($order->has_status( 'processing' ) || $order->has_status( 'completed' )) { +// update_post_meta( $event_id, $mep_atnd, "a2"); + +$mep_stock_msgc = mep_get_order_info(get_post_meta($event_id,$order_meta_text, true),0); +$mep_stock_orderc = mep_get_order_info(get_post_meta($event_id,$order_meta_text, true),1); + +if($mep_stock_orderc==$order_id){ + if($mep_stock_msgc=='cancelled'){ + + foreach ( $result as $page ){ + if (strpos($page->meta_key, '_') !== 0) { + + $order_option_name = $event_id.str_replace(' ', '', mep_get_string_part($page->meta_key,0)); + + $order_option_qty = mep_get_string_part($page->meta_key,1); + $tes = get_post_meta($event_id,"mep_xtra_$order_option_name",true); + $ntes = ($tes+$order_option_qty); + update_post_meta( $event_id, "mep_xtra_$order_option_name",$ntes); + } + } + + + + } + } + + + + + update_post_meta( $event_id, $order_meta_text, $order_processing); + + + $mep_stock_msg = mep_get_order_info(get_post_meta($event_id,$order_meta_text, true),0); + $mep_stock_order = mep_get_order_info(get_post_meta($event_id,$order_meta_text, true),1); + + +if($mep_stock_order==$order_id){ + if($mep_stock_msg=='completed'){ + update_post_meta( $event_id, $order_meta_text, $order_processing); + } + else{ + update_post_meta( $event_id, 'total_booking', ($mep_total_booking+$item_quantity)); + update_post_meta( $event_id, $order_meta_text, $order_processing); + + } + } + + + + +} + + + + + +if($order->has_status( 'cancelled' )) { + update_post_meta( $event_id,$mep_atnd, "a2"); + update_post_meta( $event_id, $order_meta_text, $order_cancelled); + $mep_stock_msg = mep_get_order_info(get_post_meta($event_id,$order_meta_text, true),0); + $mep_stock_order = mep_get_order_info(get_post_meta($event_id,$order_meta_text, true),1); + + + if($mep_stock_order==$order_id){ + $update_total_booking = update_post_meta( $event_id, 'total_booking', ($mep_total_booking-$item_quantity)); + + foreach ( $result as $page ){ + if (strpos($page->meta_key, '_') !== 0) { + $order_option_name = $event_id.str_replace(' ', '', mep_get_string_part($page->meta_key,0)); + $order_option_qty = mep_get_string_part($page->meta_key,1); + $tes = get_post_meta($event_id,"mep_xtra_$order_option_name",true); + $ntes = ($tes-$order_option_qty); + if($tes>0){ + update_post_meta( $event_id, "mep_xtra_$order_option_name",$ntes); + } + } + } + } + +} + + + + + + + +if( $order->has_status( 'completed' )) { +update_post_meta( $event_id, $mep_atnd, "a2"); + // update_post_meta( $event_id, $order_meta_text, $order_completed); + $mep_stock_msg = mep_get_order_info(get_post_meta($event_id,$order_meta_text, true),0); + $mep_stock_order = mep_get_order_info(get_post_meta($event_id,$order_meta_text, true),1); + mep_event_confirmation_email_sent($event_id,$email); + + if($mep_stock_order==$order_id){ + + if($mep_stock_msg=='processing'){ + update_post_meta( $event_id, $order_meta_text, $order_completed); + } + else{ + update_post_meta( $event_id, 'total_booking', ($mep_total_booking+$item_quantity)); + update_post_meta( $event_id, $order_meta_text, $order_completed); + + foreach ( $result as $page ){ + if (strpos($page->meta_key, '_') !== 0) { + $order_option_name = $event_id.str_replace(' ', '', mep_get_string_part($page->meta_key,0)); + $order_option_qty = mep_get_string_part($page->meta_key,1); + $tes = get_post_meta($event_id,"mep_xtra_$order_option_name",true); + $ntes = ($tes+$order_option_qty); + update_post_meta( $event_id, "mep_xtra_$order_option_name",$ntes); + } + } + } + + } + + + } + +} + + + +add_action('restrict_manage_posts', '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'); +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'); +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']; + + } +} + + + + + + + + + + +// 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 ); +function mep_custom_event_column( $column, $post_id ) { +switch ( $column ) { +case 'mep_status' : +$values = get_post_custom( $post_id ); +echo mep_get_event_status($values['mep_event_start_date'][0]); + break; + + case 'mep_atten' : + echo 'Attendees List'; + break; + } +} + + +// Getting event exprie date & time +function mep_get_event_status($startdatetime){ + + $time = strtotime($startdatetime); + $newformat = date('Y-m-d H:i:s',$time); + $datetime1 = new DateTime(); + $datetime2 = new DateTime($newformat); + $interval = $datetime1->diff($datetime2); +// print_r($newformat); + if(time() > strtotime($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"; + } +} + + + + + +// Redirect to Checkout after successfuly event registration +add_filter ('woocommerce_add_to_cart_redirect', 'mep_event_redirect_to_checkout'); +function mep_event_redirect_to_checkout() { + global $woocommerce; + $checkout_url = wc_get_checkout_url(); + return $checkout_url; +} + + + + +function mep_load_events_templates($template) { + global $post; + if ($post->post_type == "mep_events"){ + $template_name = 'single-events.php'; + $template_path = 'mage-events/'; + $default_path = plugin_dir_path( __FILE__ ) . 'templates/'; + $template = locate_template( array($template_path . $template_name) ); + if ( ! $template ) : + $template = $default_path . $template_name; + endif; + return $template; + } + + if ($post->post_type == "mep_events_attendees"){ + $plugin_path = plugin_dir_path( __FILE__ ); + $template_name = 'templates/single-mep_events_attendees.php'; + if($template === get_stylesheet_directory() . '/' . $template_name + || !file_exists($plugin_path . $template_name)) { + return $template; + } + return $plugin_path . $template_name; + } + + return $template; +} +add_filter('single_template', 'mep_load_events_templates'); + + + + + +add_filter('template_include', 'mep_organizer_set_template'); +function mep_organizer_set_template( $template ){ + + if( is_tax('mep_org')){ + $template = plugin_dir_path( __FILE__ ).'templates/taxonomy-organozer.php'; + } + + if( is_tax('mep_cat')){ + $template = plugin_dir_path( __FILE__ ).'templates/taxonomy-category.php'; + } + + return $template; +} + + + +function mep_social_share(){ +?> + + + +prefix . 'woocommerce_order_itemmeta'; +$result = $wpdb->get_results( "SELECT * FROM $table_name WHERE order_item_id=$id" ); + +foreach ( $result as $page ) +{ + if (strpos($page->meta_key, '_') !== 0) { + echo mep_get_string_part($page->meta_key,$part).'
'; + } +} + +} + +add_action('woocommerce_account_dashboard','mep_ticket_lits_users'); +function mep_ticket_lits_users(){ +ob_start(); +?> +
+ + + + + + + + array( 'mep_events_attendees' ), + 'posts_per_page' => -1, + 'meta_query' => array( + array( + 'key' => 'ea_user_id', + 'value' => get_current_user_id() + ) + ) + ); + $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 ); + $event_meta = get_post_custom($event_id); + + $time = strtotime($event_meta['mep_event_start_date'][0]); + $newformat = date('Y-m-d H:i:s',$time); + + + if(time() < strtotime($newformat)){ +?> + + + + + + + +
+
+","",strip_tags(file_get_contents($filename, FALSE, NULL, 24, 14))); + } + $theme[$file] = $naame; +} +return $theme; +} + + + +function event_single_template_list($current_theme){ +$themes = event_template_name(); + $buffer = ''; + echo $buffer; +} + +function mep_title_cutoff_words($text, $length){ + if(strlen($text) > $length) { + $text = substr($text, 0, strpos($text, ' ', $length)); + } + + return $text; +} + +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; +} + + +function my_function_meta_deta() { + global $order; + +$order_id = $_GET['post']; + // Getting an instance of the order object + $order = wc_get_order( $order_id ); + $order_meta = get_post_meta($order_id); + + # Iterating through each order items (WC_Order_Item_Product objects in WC 3+) + foreach ( $order->get_items() as $item_id => $item_values ) { + $product_id = $item_values->get_product_id(); + $item_data = $item_values->get_data(); + $product_id = $item_data['product_id']; + $item_quantity = $item_values->get_quantity(); + $product = get_page_by_title( $item_data['name'], OBJECT, 'mep_events' ); + $event_name = $item_data['name']; + $event_id = $product->ID; + $item_id = $item_id; + } + +$user_info_arr = wc_get_order_item_meta($item_id,'_event_user_info',true); + +// print_r($user_info_arr); + + ob_start(); +?> +
+ + + + + + + + +
NameCity
+
+id ); + + + +// add_action( 'woocommerce_thankyou', 'woocommerce_thankyou_change_order_status', 10, 1 ); +function woocommerce_thankyou_change_order_status( $order_id ){ + if( ! $order_id ) return; + + $order = wc_get_order( $order_id ); + + if( $order->get_status() == 'processing' ) + $order->update_status( 'completed' ); +} + + + + +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 =$cur.$n_price; + } + + // if($mep_events_extra_prices){ + // $gn_price = $cur.$mep_events_extra_prices[0]['option_price']; + // } + + if($mep_event_ticket_type){ + $gn_price = $cur.$mep_event_ticket_type[0]['option_price_t']; + } + +return $gn_price; +} + +function mep_get_label($pid,$label_id,$default_text){ + return mep_get_option( $label_id, 'label_setting_sec', $default_text); +} + +// Add the custom columns to the book post type: +add_filter( 'manage_mep_events_posts_columns', 'mep_set_custom_edit_event_columns' ); +function mep_set_custom_edit_event_columns($columns) { + + unset( $columns['date'] ); + + $columns['mep_status'] = __( 'Status', 'mage-eventpress' ); + + return $columns; +} + + +function mep_get_full_time_and_date($datetime){ + $user_set_format = mep_get_option( 'mep_event_time_format','general_setting_sec',12); + + if($user_set_format==12){ + echo date_i18n('D, d M Y h:i A', strtotime($datetime)); + } + if($user_set_format==24){ + echo date_i18n('D, d M Y H:i', strtotime($datetime)); + } +} + + +function mep_get_only_time($datetime){ + $user_set_format = mep_get_option( 'mep_event_time_format','general_setting_sec',12); + + if($user_set_format==12){ + echo date_i18n('h:i A', strtotime($datetime)); + } + if($user_set_format==24){ + echo date_i18n('H:i', strtotime($datetime)); + } +} + + + +function mep_get_event_city($id){ +$location_sts = get_post_meta($id,'mep_org_address',true); +$event_meta = get_post_custom($id); +if($location_sts){ +$org_arr = get_the_terms( $post->ID, 'mep_org' ); +$org_id = $org_arr[0]->term_id; + echo "".get_term_meta( $org_id, 'org_city', true ).""; +}else{ + + echo "".$event_meta['mep_city'][0].""; + +} +} + + +function mep_get_total_available_seat($event_id, $event_meta){ + $book_count = get_post_meta(get_the_id(),'total_booking', true); +if($book_count){ $total_book = $book_count; }else{ $total_book = 0; } +$simple_rsv = $event_meta['mep_rsv_seat'][0]; +if($simple_rsv){ +$simple_rsv = $simple_rsv; +}else{ +$simple_rsv = 0; +} +$total_book = ($total_book + $simple_rsv); +$mep_event_ticket_type = get_post_meta(get_the_id(), 'mep_event_ticket_type', true); +if($mep_event_ticket_type){ +$stc = 0; +$leftt = 0; +$res = 0; +foreach ( $mep_event_ticket_type as $field ) { +$qm = $field['option_name_t']; +$tesqn = get_the_id().str_replace(' ', '', $qm); +$tesq = get_post_meta(get_the_id(),"mep_xtra_$tesqn",true); +$stc = $stc+$field['option_qty_t']; +$res = $res + (int)$field['option_rsv_t']; +$res = (int)$res; +$llft = ($field['option_qty_t'] - (int)$tesq); +$leftt = ($leftt+$llft); +} +$leftt = $leftt-$res; +}else{ + $leftt = $event_meta['mep_total_seat'][0]- $total_book; +} +return $leftt; +}