mage-eventpress/inc/template-prts/event_add_cart.php

349 lines
24 KiB
PHP
Executable File

<?php
if (!defined('ABSPATH')) {
die;
} // Cannot access pages directly.
add_action('mep_add_to_cart', 'mep_get_event_reg_btn',10,2);
if (!function_exists('mep_get_event_reg_btn')) {
// Get Event Registration Button
function mep_get_event_reg_btn($event_id = '',$params=[])
{
global $post, $event_meta;
$event_id = mep_get_default_lang_event_id($event_id);
$saved_user_role = get_post_meta($event_id, 'mep_member_only_user_role', true) ? get_post_meta($event_id, 'mep_member_only_user_role', true) : [];
$event_member_type = get_post_meta($event_id, 'mep_member_only_event', true) ? get_post_meta($event_id, 'mep_member_only_event', true) : 'for_all';
$cart_btn_label = array_key_exists('cart-btn-label',$params) ? $params['cart-btn-label'] : mep_get_label($event_id, 'mep_cart_btn_text', __('Register This Event','mage-eventpress'));
$ticket_type_label = array_key_exists('ticket-label',$params) ? $params['ticket-label'] : mep_get_label($event_id, 'mep_event_ticket_type_text', __('Ticket Type:','mage-eventpress'));
$extra_service_label = array_key_exists('extra-service-label',$params) ? $params['extra-service-label'] : mep_get_label($event_id, 'mep_event_extra_service_text', __('Extra Service:','mage-eventpress'));
$select_date_label = array_key_exists('select-date-label',$params) ? $params['select-date-label'] : mep_get_option('mep_event_rec_select_event_date_text', 'label_setting_sec', __('Select Event Date:', 'mage-eventpress'));
// $select_date_label = 'U lala lala';
$total_book = 0;
$post_id = $event_id ? $event_id : get_the_id();
$event_meta = get_post_custom($post_id);
$event_expire_on_old = mep_get_option('mep_event_expire_on_datetimes', 'general_setting_sec', 'event_start_datetime');
$event_expire_on = $event_expire_on_old == 'event_end_datetime' ? 'event_expire_datetime' : $event_expire_on_old;
$event_expire_date = $event_meta[$event_expire_on][0];
// $event_sqi = array_key_exists('mep_sqi',$event_meta) ? $event_meta['mep_sqi'][0] : '';
$mep_full_name = strip_tags($event_meta['mep_full_name'][0]);
$mep_reg_email = strip_tags($event_meta['mep_reg_email'][0]);
$mep_reg_phone = strip_tags($event_meta['mep_reg_phone'][0]);
$mep_reg_address = strip_tags($event_meta['mep_reg_address'][0]);
$mep_reg_designation = strip_tags($event_meta['mep_reg_designation'][0]);
$mep_reg_website = strip_tags($event_meta['mep_reg_website'][0]);
$mep_reg_veg = strip_tags($event_meta['mep_reg_veg'][0]);
$mep_reg_company = strip_tags($event_meta['mep_reg_company'][0]);
$mep_reg_gender = strip_tags($event_meta['mep_reg_gender'][0]);
$mep_reg_tshirtsize = strip_tags($event_meta['mep_reg_tshirtsize'][0]);
$time = strtotime($event_expire_date);
$newformat = date('Y-m-d H:i:s', $time);
$datetime1 = new DateTime();
$datetime2 = new DateTime($newformat);
$interval = $datetime1->diff($datetime2);
$mep_event_ticket_type = get_post_meta($post_id, 'mep_event_ticket_type', true) ? get_post_meta($post_id, 'mep_event_ticket_type', true) : array();
$total_seat = apply_filters('mep_event_total_seat_counts', mep_event_total_seat($post_id, 'total'), $post_id);
$total_resv = apply_filters('mep_event_total_resv_seat_count', mep_event_total_seat($post_id, 'resv'), $post_id);
$total_sold = mep_ticket_sold($post_id);
$total_left = $total_seat - ($total_sold + $total_resv);
$reg_status = array_key_exists('mep_reg_status', $event_meta) ? $event_meta['mep_reg_status'][0] : '';
$seat_left = apply_filters('mep_event_total_seat_count', $total_left, $post_id);
$current = current_time('Y-m-d H:i:s');
$time = strtotime($event_expire_date);
$newformat = date('Y-m-d H:i:s', $time);
$recurring = get_post_meta($post_id, 'mep_enable_recurring', true) ? get_post_meta($post_id, 'mep_enable_recurring', true) : 'no';
if ($recurring == 'yes') {
$event_more_dates = get_post_meta($post_id, 'mep_event_more_date', true) ? get_post_meta($post_id, 'mep_event_more_date', true) : array();
$md = end($event_more_dates);
$more_date = $md['event_more_start_date'] . ' ' . $md['event_more_start_time'];
$newformat = empty($event_more_dates) ? $newformat : date('Y-m-d H:i:s', strtotime($more_date));
}
// $default_timezone_val = get_option('timezone_string') ? get_option('timezone_string') : 'UTC';
// date_default_timezone_set($default_timezone_val);
$datetime1 = new DateTime($newformat);
$datetime2 = new DateTime($current);
$interval = date_diff($datetime2, $datetime1);
$mep_available_seat = array_key_exists('mep_available_seat', $event_meta) ? $event_meta['mep_available_seat'][0] : 'on';
$leftt = apply_filters('mep_event_total_seat_count', $total_left, $post_id);
$days = $interval->d;
$hours = $interval->h;
$minutes = $interval->i;
$dd = $days > 0 ? $days . " days " : '';
$hh = $hours > 0 ? $hours . " hours " : '';
$mm = $minutes > 0 ? $minutes . " minutes " : '';
// $qty_typec = array_key_exists('qty_box_type',$event_meta) ? $event_meta['qty_box_type'][0] : '';
$cart_product_id = get_post_meta($post_id, 'link_wc_product', true) ? esc_attr(get_post_meta($post_id, 'link_wc_product', true)) : esc_attr($post_id);
$not_in_the_cart = apply_filters('mep_check_product_into_cart',true,$cart_product_id);
/**
* First Checking If the registration status enable or disable
*/
if ($reg_status != 'off') {
/**
* Then Checking If the event date already gone or not
*/
if (strtotime(current_time('Y-m-d H:i:s')) > strtotime(apply_filters('mep_event_expire_datetime_val',$newformat,$post_id))) {
/**
* If The event expired then it fire below Hook, The event expire texts arein the inc/template-parts/event_labels.php file
*/
do_action('mep_event_expire_text');
/**
* If the event is not expired then Its checking the available seat status
*/
} elseif ($seat_left <= 0) {
/**
* If All the seats are booked then it fire the below hooks, The event no seat texts are in the inc/template-parts/event_labels.php file
*/
do_action('mep_event_no_seat_text',$post_id);
do_action('mep_after_no_seat_notice',$post_id);
} else {
/**
* If everything is fine then its go on ....
*/
if( $event_member_type == 'for_all' || ($event_member_type != 'for_all' && is_user_logged_in() && ( in_array(wp_get_current_user()->roles[0],$saved_user_role) || in_array('all',$saved_user_role) ) )){
echo "<input type='hidden' value='$extra_service_label' id='mep_extra_service_label'/>";
echo "<input type='hidden' value='$select_date_label' id='mep_select_date_label'/>";
//if( in_array($user_role,$saved_user_role) ){
?>
<!-- Register Now Title -->
<h4 class="mep-cart-table-title">
<?php echo mep_get_option('mep_register_now_text', 'label_setting_sec') ? mep_get_option('mep_register_now_text', 'label_setting_sec') : _e('Register Now:', 'mage-eventpress'); ?>
</h4>
<!--The event add to cart main form start here-->
<form action="" method='post' id="mage_event_submit">
<?php
/**
* Here is a magic hook which fire just before of the Add to Cart Button, And the Ticket type & Extra service list are hooked up into this, You can find them into inc/template-parts/event_ticket_type_extra_service.php
*/
do_action('mep_event_ticket_type_extra_service', $post_id, $ticket_type_label,$extra_service_label,$select_date_label );
?>
<input type='hidden' id='rowtotal' value="<?php echo get_post_meta($post_id, "_price", true); ?>" />
<input type="hidden" name='currency_symbol' value="<?php echo get_woocommerce_currency_symbol(); ?>">
<input type="hidden" name='currency_position' value="<?php echo get_option('woocommerce_currency_pos'); ?>">
<input type="hidden" name='currency_decimal' value="<?php echo wc_get_price_decimal_separator(); ?>">
<input type="hidden" name='currency_thousands_separator' value="<?php echo wc_get_price_thousand_separator(); ?>">
<input type="hidden" name='currency_number_of_decimal' value="<?php echo wc_get_price_decimals(); ?>">
<?php do_action('mep_add_term_condition',$post_id); ?>
<!--The Add to cart button table start Here-->
<table class='table table-bordered mep_event_add_cart_table'>
<tr>
<td align="left" class='total-col'>
<?php do_action('mep_before_price_calculation',$post_id); ?>
<?php echo mep_get_option('mep_quantity_text', 'label_setting_sec') ? mep_get_option('mep_quantity_text', 'label_setting_sec') : _e('Quantity:', 'mage-eventpress');
if ($mep_event_ticket_type) { ?>
<input id="quantity_5a7abbd1bff73" class="input-text qty text extra-qty-box" step="1" min="1" max="<?php echo $leftt; ?>" name="quantity" value="1" title="Qty" size="4" pattern="[0-9]*" inputmode="numeric" type="hidden">
<span id="ttyttl"></span>
<?php } ?>
<span class='the-total'> <?php echo mep_get_option('mep_total_text', 'label_setting_sec') ? mep_get_option('mep_total_text', 'label_setting_sec') : _e('Total', 'mage-eventpress'); ?>
<span id="usertotal"></span>
</span>
<?php do_action('mep_after_price_calculation',$post_id); ?>
</td>
<td align="right">
<?php do_action('mep_before_add_cart_btn',$post_id); ?>
<input type="hidden" name="mep_event_location_cart" value="<?php trim(mep_ev_location_ticket($post_id, $event_meta)); ?>">
<input type="hidden" name="mep_event_date_cart" value="<?php do_action('mep_event_date'); ?>">
<?php if($not_in_the_cart){ ?>
<button type="submit" name="add-to-cart" value="<?php echo $cart_product_id; ?>" class="button-default woocommerce button alt button alt btn-mep-event-cart"><?php echo $cart_btn_label; ?></button>
<?php }else{
?>
<!-- <button onclick="location.href='<?php echo wc_get_cart_url(); ?>';" class="button-default woocommerce button alt button alt btn-mep-event-cart"><?php _e('Already Added into Cart! View Cart', 'mage-eventpress'); ?> </button> -->
<a href="<?php echo wc_get_cart_url(); ?>" class="button-default woocommerce button alt button alt btn-mep-event-cart"><?php _e('Already Added into Cart! View Cart', 'mage-eventpress'); ?> </a>
<?php
} ?>
<?php do_action('mep_after_add_cart_btn',$post_id); ?>
</td>
</tr>
</table>
<!--The Add to cart button table start Here-->
</form>
<!--The event add to cart main form end here-->
<?php
}else{
echo '<span class="mep_warning">';
_e("Whoops, this event for members only. Login to view content. Not a member? That's easy.","mage-eventpress");
echo '</span>';
}
?>
<?php
}
} // End Of checking Registration status
}
}
add_action('mep_add_to_cart_list', 'mep_get_event_reg_btn_list');
if (!function_exists('mep_get_event_reg_btn_list')) {
// Get Event Registration Button
function mep_get_event_reg_btn_list()
{
global $post, $event_meta;
$total_book = 0;
$post_id = $post->ID;
$event_meta = get_post_custom($post_id);
$event_expire_on_old = mep_get_option('mep_event_expire_on_datetimes', 'general_setting_sec', 'event_start_datetime');
$event_expire_on = $event_expire_on_old == 'event_end_datetime' ? 'event_expire_datetime' : $event_expire_on_old;
$event_expire_date = $event_meta[$event_expire_on][0];
// $event_sqi = $event_meta['mep_sqi'][0];
$mep_full_name = strip_tags($event_meta['mep_full_name'][0]);
$mep_reg_email = strip_tags($event_meta['mep_reg_email'][0]);
$mep_reg_phone = strip_tags($event_meta['mep_reg_phone'][0]);
$mep_reg_address = strip_tags($event_meta['mep_reg_address'][0]);
$mep_reg_designation = strip_tags($event_meta['mep_reg_designation'][0]);
$mep_reg_website = strip_tags($event_meta['mep_reg_website'][0]);
$mep_reg_veg = strip_tags($event_meta['mep_reg_veg'][0]);
$mep_reg_company = strip_tags($event_meta['mep_reg_company'][0]);
$mep_reg_gender = strip_tags($event_meta['mep_reg_gender'][0]);
$mep_reg_tshirtsize = strip_tags($event_meta['mep_reg_tshirtsize'][0]);
// $simple_rsv = array_key_exists('mep_rsv_seat', $event_meta) ? $event_meta['mep_rsv_seat'][0] : 0;
// $total_book = ($total_book + $simple_rsv);
// $seat_left = ((int)$event_meta['mep_total_seat'][0]- (int)$total_book);
$time = strtotime($event_expire_date);
$newformat = date('Y-m-d H:i:s', $time);
$datetime1 = new DateTime();
$datetime2 = new DateTime($newformat);
$interval = $datetime1->diff($datetime2);
$mep_event_ticket_type = get_post_meta($post_id, 'mep_event_ticket_type', true) ? get_post_meta($post_id, 'mep_event_ticket_type', true) : array();
$total_seat = mep_event_total_seat(get_the_id(), 'total');
$total_resv = mep_event_total_seat(get_the_id(), 'resv');
$total_sold = mep_ticket_sold(get_the_id());
$total_left = $total_seat - ($total_sold + $total_resv);
$reg_status = array_key_exists('mep_reg_status', $event_meta) ? $event_meta['mep_reg_status'][0] : '';
$seat_left = apply_filters('mep_event_total_seat_count', $total_left, get_the_id());
$current = current_time('Y-m-d H:i:s');
$time = strtotime($event_expire_date);
$newformat = date('Y-m-d H:i:s', $time);
$recurring = get_post_meta($post_id, 'mep_enable_recurring', true) ? get_post_meta($post_id, 'mep_enable_recurring', true) : 'no';
if ($recurring == 'yes') {
$event_more_dates = get_post_meta($post_id, 'mep_event_more_date', true) ? get_post_meta($post_id, 'mep_event_more_date', true) : array();
$md = end($event_more_dates);
$more_date = $md['event_more_start_date'] . ' ' . $md['event_more_start_time'];
$newformat = empty($event_more_dates) ? $newformat : date('Y-m-d H:i:s', strtotime($more_date));
}
// $default_timezone_val = get_option('timezone_string') ? get_option('timezone_string') : 'UTC';
// date_default_timezone_set($default_timezone_val);
$datetime1 = new DateTime($newformat);
$datetime2 = new DateTime($current);
$interval = date_diff($datetime2, $datetime1);
$mep_available_seat = array_key_exists('mep_available_seat', $event_meta) ? $event_meta['mep_available_seat'][0] : 'on';
$leftt = apply_filters('mep_event_total_seat_count', $total_left, get_the_id());
$days = $interval->d;
$hours = $interval->h;
$minutes = $interval->i;
$dd = $days > 0 ? $days . " days " : '';
$hh = $hours > 0 ? $hours . " hours " : '';
$mm = $minutes > 0 ? $minutes . " minutes " : '';
// $qty_typec = $event_meta['qty_box_type'][0];
$cart_product_id = get_post_meta($post_id, 'link_wc_product', true) ? esc_attr(get_post_meta($post_id, 'link_wc_product', true)) : esc_attr($post_id);
$not_in_the_cart = apply_filters('mep_check_product_into_cart',true,$cart_product_id);
/**
* First Checking If the registration status enable or disable
*/
if ($reg_status != 'off') {
/**
* Then Checking If the event date already gone or not
*/
if (strtotime(current_time('Y-m-d H:i:s')) > strtotime($newformat)) {
/**
* If The event expired then it fire below Hook, The event expire texts arein the inc/template-parts/event_labels.php file
*/
do_action('mep_event_expire_text');
/**
* If the event is not expired then Its checking the available seat status
*/
} elseif ($seat_left <= 0) {
/**
* If All the seats are booked then it fire the below hooks, The event no seat texts are in the inc/template-parts/event_labels.php file
*/
do_action('mep_event_no_seat_text',$post_id);
do_action('mep_after_no_seat_notice',$post_id);
} else {
/**
* If everything is fine then its go on ....
*/
?>
<!-- Register Now Title -->
<h4 class="mep-cart-table-title">
<?php echo mep_get_option('mep_register_now_text', 'label_setting_sec') ? mep_get_option('mep_register_now_text', 'label_setting_sec') : _e('Register Now:', 'mage-eventpress'); ?>
</h4>
<!--The event add to cart main form start here-->
<form action="" method='post' id="mage_event_submit">
<?php
/**
* Here is a magic hook which fire just before of the Add to Cart Button, And the Ticket type & Extra service list are hooked up into this, You can find them into inc/template-parts/event_ticket_type_extra_service.php
*/
do_action('mep_event_ticket_types_list');
do_action('mep_event_extra_service_list');
?>
<input type='hidden' id='rowtotal' value="<?php echo get_post_meta($post_id, "_price", true); ?>" />
<input type="hidden" name='currency_symbol' value="<?php echo get_woocommerce_currency_symbol(); ?>">
<input type="hidden" name='currency_position' value="<?php echo get_option('woocommerce_currency_pos'); ?>">
<input type="hidden" name='currency_decimal' value="<?php echo wc_get_price_decimal_separator(); ?>">
<input type="hidden" name='currency_thousands_separator' value="<?php echo wc_get_price_thousand_separator(); ?>">
<input type="hidden" name='currency_number_of_decimal' value="<?php echo wc_get_price_decimals(); ?>">
<?php do_action('mep_add_term_condition',$post_id); ?>
<!--The Add to cart button table start Here fff-->
<table class='table table-bordered mep_event_add_cart_table'>
<tr>
<td align="left" class='total-col'><?php echo mep_get_option('mep_quantity_text', 'label_setting_sec') ? mep_get_option('mep_quantity_text', 'label_setting_sec') : _e('Quantity:', 'mage-eventpress');
if ($mep_event_ticket_type) { ?>
<input id="quantity_5a7abbd1bff73" class="input-text qty text extra-qty-box" step="1" min="1" max="<?php echo $leftt; ?>" name="quantity" value="1" title="Qty" size="4" pattern="[0-9]*" inputmode="numeric" type="hidden">
<span id="ttyttl"></span>
<?php } ?>
<span class='the-total'> <?php echo mep_get_option('mep_total_text', 'label_setting_sec') ? mep_get_option('mep_total_text', 'label_setting_sec') : _e('Total', 'mage-eventpress'); ?>
<span id="usertotal"></span>
</span>
</td>
<td align="right" class='mep-event-cart-btn-sec'>
<input type="hidden" name="mep_event_location_cart" value="<?php trim(mep_ev_location_ticket($post_id, $event_meta)); ?>">
<input type="hidden" name="mep_event_date_cart" value="<?php do_action('mep_event_date'); ?>">
<?php if($not_in_the_cart){ ?>
<button type="submit" name="add-to-cart" value="<?php echo $cart_product_id; ?>" class="button-default woocommerce button alt button alt btn-mep-event-cart"><?php _e(mep_get_label($post_id, 'mep_cart_btn_text', 'Register This Event'), 'mage-eventpress'); ?></button>
<?php }else{ ?>
<a href="<?php echo wc_get_cart_url(); ?>" class="button-default woocommerce button alt button alt btn-mep-event-cart"><?php _e('Already Added into Cart!', 'mage-eventpress'); ?> </a>
<?php } ?>
</td>
</tr>
</table>
<!--The Add to cart button table start Here-->
</form>
<!--The event add to cart main form end here-->
<?php
}
} // End Of checking Registration status
}
}