mage-eventpress/woocommerce-event-press.php

1029 lines
34 KiB
PHP

<?php
/**
* Plugin Name: Woocommerce Events Manager
* Plugin URI: http://mage-people.com
* Description: A Complete Event Solution for WordPress by MagePeople..
* Version: 2.0
* Author: MagePeople Team
* Author URI: http://www.mage-people.com/
*/
if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access pages directly.
require_once(dirname(__FILE__) . "/inc/class/mep_settings_api.php");
require_once(dirname(__FILE__) . "/inc/mep_cpt.php");
require_once(dirname(__FILE__) . "/inc/mep_tax.php");
require_once(dirname(__FILE__) . "/inc/mep_event_meta.php");
require_once(dirname(__FILE__) . "/inc/mep_extra_price.php");
require_once(dirname(__FILE__) . "/inc/mep_shortcode.php");
require_once(dirname(__FILE__) . "/inc/admin_setting_panel.php");
require_once(dirname(__FILE__) . "/inc/mep_enque.php");
require_once(dirname(__FILE__) . "/templates/template-prts/templating.php");
// require_once(dirname(__FILE__) . "/lib/PHPExcel.php");
// require_once(dirname(__FILE__) . "/inc/mep_csv_export.php");
// Class for Linking with Woocommerce with Event Pricing
add_action('plugins_loaded', '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,
'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 '<a class="button button-primary button-large" href="'.get_site_url().'/wp-admin/edit.php?post_type=mep_events_attendees&meta_value='.$post_id.'">Attendees List</a>';
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 "<span class=err>Expired</span>";
}
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 "<span class='active'>$dd $hh $mm</span>";
}
}
// 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 )."<br/>".get_post_meta( $post_id, 'ea_address_2', true )."<br/>".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 '<a class="button button-primary button-large" href="'.get_site_url().'/wp-admin/edit.php?post_type=mep_events_attendees&meta_value='.$post_id.'">Attendees List</a>';
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 '<style type="text/css">
#favorite-actions, .add-new-h2, .tablenav, .page-title-action { display:none; }
</style>';
}
}
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(){
?>
<ul class='mep-social-share'>
<li> <a data-toggle="tooltip" title="" class="facebook" onclick="window.open('https://www.facebook.com/sharer.php?u=<?php the_permalink(); ?>','Facebook','width=600,height=300,left='+(screen.availWidth/2-300)+',top='+(screen.availHeight/2-150)+''); return false;" href="http://www.facebook.com/sharer.php?u=<?php the_permalink(); ?>" data-original-title="Share on Facebook"><i class="fa fa-facebook"></i></a></li>
<li><a data-toggle="tooltip" title="" class="gpuls" onclick="window.open('https://plus.google.com/share?url=<?php the_permalink(); ?>','Google plus','width=585,height=666,left='+(screen.availWidth/2-292)+',top='+(screen.availHeight/2-333)+''); return false;" href="https://plus.google.com/share?url=<?php the_permalink(); ?>" data-original-title="Share on Google Plus"><i class="fa fa-google-plus"></i></a> </li>
<li><a data-toggle="tooltip" title="" class="twitter" onclick="window.open('https_ssl_verify://twitter.com/share?url=<?php the_permalink(); ?>&amp;text=<?php the_title(); ?>','Twitter share','width=600,height=300,left='+(screen.availWidth/2-300)+',top='+(screen.availHeight/2-150)+''); return false;" href="http://twitter.com/share?url=<?php the_permalink(); ?>&amp;text=<?php the_title(); ?>" data-original-title="Twittet it"><i class="fa fa-twitter"></i></a></li>
</ul>
<?php
}
function mep_calender_date($datetime){
$time = strtotime($datetime);
$newdate = date('Ymd',$time);
$newtime = date('Hi',$time);
$newformat = $newdate."T".$newtime."00Z";
return $newformat;
}
function mep_add_to_google_calender_link($pid){
$event = get_post($pid);
$event_meta = get_post_custom($pid);
$event_start = $event_meta['mep_event_start_date'][0];
$event_end = $event_meta['mep_event_end_date'][0];
$location = $event_meta['mep_location_venue'][0]." ".$event_meta['mep_street'][0]." ".$event_meta['mep_city'][0]." ".$event_meta['mep_state'][0]." ".$event_meta['mep_postcode'][0]." ".$event_meta['mep_country'][0];
ob_start();
?>
<a href="http://www.google.com/calendar/event?
action=TEMPLATE
&text=<?php echo $event->post_title; ?>
&dates=<?php echo mep_calender_date($event_start); ?>/<?php echo mep_calender_date($event_end); ?>
&details=<?php echo strip_tags($event->post_content); ?>
&location=<?php echo $location; ?>
&trp=false
&sprop=
&sprop=name:"
target="_blank" class='mep-add-calender' rel="nofollow"> <i class="fa fa-calendar"></i> Add To Your Calendar</a>
<?php
$content = ob_get_clean();
echo $content;
}
function mep_get_item_name($name){
$explode_name = explode('_', $name, 2);
$the_item_name = str_replace('-', ' ', $explode_name[0]);
return $the_item_name;
}
function mep_get_item_price($name){
$explode_name = explode('_', $name, 2);
$the_item_name = str_replace('-', ' ', $explode_name[1]);
return $the_item_name;
}
function mep_get_string_part($data,$string){
$pieces = explode(" x ", $data);
return $pieces[$string]; // piece1
}
function mep_get_event_order_metadata($id,$part){
global $wpdb;
$table_name = $wpdb->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).'<br/>';
}
}
}
add_action('woocommerce_account_dashboard','mep_ticket_lits_users');
function mep_ticket_lits_users(){
ob_start();
?>
<div class="mep-user-ticket-list">
<table>
<tr>
<th>Name</th>
<th>Ticket</th>
<th>Event</th>
<th>Download</th>
</tr>
<?php
$args_search_qqq = array (
'post_type' => 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)){
?>
<tr>
<td><?php echo get_post_meta( get_the_id(), 'ea_name', true ); ?></td>
<td><?php echo get_post_meta( get_the_id(), 'ea_ticket_type', true ); ?></td>
<td><?php echo get_post_meta( get_the_id(), 'ea_event_name', true ); ?></td>
<td><a href="<?php the_permalink(); ?>">Download</a></td>
</tr>
<?php
}
}
?>
</table>
</div>
<?php
$content = ob_get_clean();
echo $content;
}
// event_template_name();
function event_template_name(){
$template_name = 'index.php';
$template_path = get_stylesheet_directory().'/mage-events/themes/';
$default_path = plugin_dir_path( __FILE__ ) . 'templates/themes/';
$template = locate_template( array($template_path . $template_name) );
if ( ! $template ) :
$template = $default_path . $template_name;
endif;
// echo $template_path;
if (is_dir($template_path)) {
$thedir = glob($template_path."*");
}else{
$thedir = glob($default_path."*");
// file_get_contents('./people.txt', FALSE, NULL, 20, 14);
}
$theme = array();
foreach($thedir as $filename){
//Use the is_file function to make sure that it is not a directory.
if(is_file($filename)){
$file = basename($filename);
$naame = str_replace("?>","",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 = '<select name="mep_event_template">';
foreach ($themes as $num=>$desc){
if($current_theme==$num){ $cc = 'selected'; }else{ $cc = ''; }
$buffer .= "<option value=$num $cc>$desc</option>";
}//end foreach
$buffer .= '</select>';
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 .= "<option value='$value'>$value</option>";
}
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();
?>
<div class='event-atendee-infos'>
<table class="atendee-info">
<tr>
<th>Name</th>
<th>City</th>
</tr>
<?php
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'];
?>
<tr><td><?php echo $uname; ?></td><td><?php echo $address; ?></td></tr>
<?php
}
?>
</table>
</div>
<?php
$content = ob_get_clean();
echo $content;
}
// add_action( 'woocommerce_admin_order_totals_after_refunded','my_function_meta_deta', $order->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;
}