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 ); } } // Get user information and save to attendee list after order confirmation add_action( 'woocommerce_order_status_completed_notification', 'mep_set_event_attendee_data' ); function mep_set_event_attendee_data( $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_meta_text = "_stock_msg_".$order_id; $order_processing = "processing_".$order_id; $order_completed = "completed_".$order_id; $order_cancelled = "cancelled_".$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); $first_name = $order_meta['_billing_first_name'][0]; $last_name = $order_meta['_billing_last_name'][0]; $company_name = $order_meta['_billing_company'][0]; $address_1 = $order_meta['_billing_address_1'][0]; $address_2 = $order_meta['_billing_address_2'][0]; $city = $order_meta['_billing_city'][0]; $state = $order_meta['_billing_state'][0]; $postcode = $order_meta['_billing_postcode'][0]; $country = $order_meta['_billing_country'][0]; $email = $order_meta['_billing_email'][0]; $phone = $order_meta['_billing_phone'][0]; $billing_intotal = $order_meta['_billing_address_index'][0]; $payment_method = $order_meta['_payment_method_title'][0]; $user_id = $order_meta['_customer_user'][0]; $mep_atnd = "_mep_atnd_".$order_id; $mep_stock_msgc = get_post_meta($event_id,$mep_atnd, true); mep_event_confirmation_email_sent($event_id,$email); if($mep_stock_msgc!='a2'){ foreach ($user_info_arr as $_user_info) { $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 = $_user_info['user_ticket_type']; // ADD THE FORM INPUT TO $new_post ARRAY $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); $update_fname = update_post_meta( $pid, 'ea_name', $uname); $update_uid = update_post_meta( $pid, 'ea_user_id', $user_id); $update_ad1 = update_post_meta( $pid, 'ea_address_1', $address); $update_email = update_post_meta( $pid, 'ea_email', $email); $update_phone = update_post_meta( $pid, 'ea_phone', $phone); $update_gender = update_post_meta( $pid, 'ea_gender', $gender); $update_company = update_post_meta( $pid, 'ea_company', $company); $update_desg = update_post_meta( $pid, 'ea_desg', $designation); $update_web = update_post_meta( $pid, 'ea_website', $website); $update_veg = update_post_meta( $pid, 'ea_vegetarian', $vegetarian); $update_teesize = update_post_meta( $pid, 'ea_tshirtsize', $tshirtsize); $update_ticket_type = update_post_meta( $pid, 'ea_ticket_type', $ticket_type); $update_pym = update_post_meta( $pid, 'ea_payment_method', $payment_method); $update_event_name = update_post_meta( $pid, 'ea_event_name', $event_name); $update_eid = update_post_meta( $pid, 'ea_event_id', $event_id); $update_oid = update_post_meta( $pid, 'ea_order_id', $order_id); } } } } 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; } $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' )) { // 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); 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_filter( 'post_row_actions', 'mep_remove_row_actions', 10, 1 ); function mep_remove_row_actions( $actions ) { if( get_post_type() === 'mep_events_attendees' ) // unset( $actions['edit'] ); // unset( $actions['view'] ); unset( $actions['trash'] ); unset( $actions['inline hide-if-no-js'] ); return $actions; } // 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', 'mep' ); $columns['mep_atten'] = __( 'Attendees', 'mep' ); return $columns; } // 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; } // Add the custom columns to the book post type: add_filter( 'manage_mep_events_attendees_posts_columns', 'mep_set_custom_events_attendees_columns' ); function mep_set_custom_events_attendees_columns($columns) { unset( $columns['title'] ); unset( $columns['date'] ); $columns['mep_uid'] = __( 'Unique ID', 'mep' ); $columns['mep_fn'] = __( 'Full Name', 'mep' ); $columns['mep_email'] = __( 'email', 'mep' ); $columns['mep_phone'] = __( 'Phone', 'mep' ); $columns['mep_address'] = __( 'Addresss', 'mep' ); $columns['mep_tsize'] = __( 'Tee Size', 'mep' ); $columns['mep_ttype'] = __( 'Ticket', 'mep' ); $columns['mep_evnt'] = __( 'Event', 'mep' ); return $columns; } // Add the data to the custom columns for the book post type: add_action( 'manage_mep_events_attendees_posts_custom_column' , 'mep_events_attendees_column', 10, 2 ); function mep_events_attendees_column( $column, $post_id ) { switch ( $column ) { case 'mep_uid' : echo get_post_meta( $post_id, 'ea_user_id', true ).get_post_meta( $post_id, 'ea_order_id', true ).$post_id; break; case 'mep_fn' : echo get_post_meta( $post_id, 'ea_name', true ); break; case 'mep_email' : echo get_post_meta( $post_id, 'ea_email', true ); break; case 'mep_phone' : echo get_post_meta( $post_id, 'ea_phone', true ); break; case 'mep_tsize' : echo get_post_meta( $post_id, 'ea_tshirtsize', true ); break; case 'mep_address' : echo get_post_meta( $post_id, 'ea_address_1', true )."
".get_post_meta( $post_id, 'ea_address_2', true )."
".get_post_meta( $post_id, 'ea_state', true ).", ".get_post_meta( $post_id, 'ea_city', true ).", ".get_post_meta( $post_id, 'ea_country', true ); break; case 'mep_ttype' : echo get_post_meta( $post_id, 'ea_ticket_type', true ); break; case 'mep_evnt' : echo get_post_meta( $post_id, 'ea_event_name', true ); break; case 'mep_atten' : echo 'Attendees List'; break; } } function mep_disable_new_posts() { // Hide sidebar link global $submenu; unset($submenu['edit.php?post_type=mep_events_attendees'][10]); // // Hide link on listing page if (isset($_GET['post_type']) && $_GET['post_type'] == 'mep_events_attendees') { echo ''; } } add_action('admin_menu', 'mep_disable_new_posts'); 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(){ ?> Add To Your Calendar 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)){ ?>
Name Ticket Event Download
Download
","",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(); ?>
Name City
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; }