mage-eventpress/inc/mep_extra_price.php

283 lines
10 KiB
PHP
Raw Normal View History

2018-02-27 06:37:04 -05:00
<?php
2018-12-02 00:45:21 -05:00
function mep_add_custom_fields_text_to_cart_item( $cart_item_data, $product_id, $variation_id ){
$product_id = get_post_meta($product_id,'link_mep_event',true) ? get_post_meta($product_id,'link_mep_event',true) : $product_id;
2019-11-04 06:24:02 -05:00
if (get_post_type($product_id) == 'mep_events') {
2018-07-02 04:39:41 -04:00
$tp = get_post_meta($product_id,'_price',true);
2018-12-02 00:45:21 -05:00
2018-07-02 04:39:41 -04:00
$new = array();
2018-08-16 08:19:34 -04:00
2019-03-25 06:17:44 -04:00
if(isset($_POST['mep_event_location_cart'])){
$event_cart_location = $_POST['mep_event_location_cart'];
}else{ $event_cart_location = ""; }
2018-08-16 08:19:34 -04:00
2019-03-25 06:17:44 -04:00
if(isset($_POST['mep_event_date_cart'])){
$event_cart_date = $_POST['mep_event_date_cart'];
}else{ $event_cart_date = ""; }
2018-08-16 08:19:34 -04:00
if(isset($_POST['mep_event_start_date'])){
$mep_event_start_date = $_POST['mep_event_start_date'];
}else{ $mep_event_start_date = ""; }
2019-03-25 06:17:44 -04:00
if(isset($_POST['event_addt_price'])){
$checked = $_POST['event_addt_price'];
}else{ $checked=""; }
2018-08-16 08:19:34 -04:00
if(isset($_POST['option_name'])){
2019-03-25 06:17:44 -04:00
$names = $_POST['option_name'];
}else{ $names=array(); }
2018-08-16 08:19:34 -04:00
2019-03-25 06:17:44 -04:00
if(isset($_POST['option_qty'])){
$qty = $_POST['option_qty'];
}else{ $qty=""; }
2018-08-16 08:19:34 -04:00
2019-03-25 06:17:44 -04:00
if(isset($_POST['option_price'])){
$price = $_POST['option_price'];
}else{ $price=""; }
2018-08-16 08:19:34 -04:00
2018-07-02 04:39:41 -04:00
$count = count( $names );
2018-08-16 08:19:34 -04:00
if(isset($_POST['option_name'])){
2018-07-02 04:39:41 -04:00
for ( $i = 0; $i < $count; $i++ ) {
if ( $names[$i] != '' ) :
$new[$i]['option_name'] = stripslashes( strip_tags( $names[$i] ) );
endif;
if ( $price[$i] != '' ) :
$new[$i]['option_price'] = stripslashes( strip_tags( $price[$i] ) );
endif;
if ( $qty[$i] != '' ) :
$new[$i]['option_qty'] = stripslashes( strip_tags( $qty[$i] ) );
endif;
$opttprice = ($price[$i]*$qty[$i]);
$tp = ($tp+$opttprice);
}
2018-08-16 08:19:34 -04:00
}
2018-02-27 06:37:04 -05:00
2018-07-02 04:39:41 -04:00
2018-08-16 08:19:34 -04:00
if(isset($_POST['mep_event_ticket_type'])){
2019-03-25 06:17:44 -04:00
$ttp = $_POST['mep_event_ticket_type'];
$ttpqt = $_POST['tcp_qty'];
$ticket_type = mep_get_order_info($ttp,1);
$ticket_type_price = (mep_get_order_info($ttp,0)*$ttpqt);
$cart_item_data['event_ticket_type'] = $ticket_type;
2018-07-02 04:39:41 -04:00
$cart_item_data['event_ticket_price'] = $ticket_type_price;
2019-03-25 06:17:44 -04:00
$cart_item_data['event_ticket_qty'] = $ttpqt;
$tp = $tp+$ticket_type_price;
2018-07-02 04:39:41 -04:00
}
2019-03-25 06:17:44 -04:00
$form_position = mep_get_option( 'mep_user_form_position', 'general_attendee_sec', 'details_page' );
if($form_position=='details_page'){
$user = mep_save_attendee_info_into_cart($product_id);
}else{
$user = '';
}
2018-07-02 04:39:41 -04:00
$mep_event_ticket_type = get_post_meta($product_id, 'mep_event_ticket_type', true) ? get_post_meta($product_id, 'mep_event_ticket_type', true) : array();
$cnt = 0;
$ticket_type_arr = array();
if(is_array($mep_event_ticket_type) && sizeof($mep_event_ticket_type) > 0){
foreach($mep_event_ticket_type as $_type){
// echo $_type['option_name_t'];
$cart_arr = $new[$cnt];
// print_r($cart_arr);
2019-10-07 00:39:24 -04:00
$name_key = array_search($_type['option_name_t'],$cart_arr);
$qty_key = array_search($_type['option_qty_t'],$cart_arr);
2019-10-07 00:39:24 -04:00
if(is_array($name_key)){
$total_found = count($name_key);
}else{
$total_found = 0;
}
if($cart_arr['option_qty'] > 0){
$ticket_type_arr[$cnt]['ticket_name'] = stripslashes( strip_tags( $cart_arr[$name_key] ) );
$ticket_type_arr[$cnt]['ticket_qty'] = stripslashes( strip_tags( $cart_arr['option_qty'] ) );
$ticket_type_arr[$cnt]['ticket_price'] = stripslashes( strip_tags( $cart_arr['option_price'] ) );
$ticket_type_arr[$cnt]['event_date'] = stripslashes( strip_tags( $mep_event_start_date ) );
}
$cnt++;
}
}
$mep_events_extra_prices = get_post_meta($product_id, 'mep_events_extra_prices', true) ? get_post_meta($product_id, 'mep_events_extra_prices', true) : array();
2019-11-04 06:24:02 -05:00
$us = 0;
foreach($mep_events_extra_prices as $extra_service){
foreach ($new as $key => $val) {
if ($val['option_name'] === $extra_service['option_name']) {
if($val['option_qty'] > 0){
$event_extra[$us]['service_name'] = stripslashes( strip_tags($val['option_name']) );
2019-11-04 06:24:02 -05:00
$event_extra[$us]['service_qty'] = stripslashes(strip_tags($val['option_qty']));
$event_extra[$us]['service_price'] = stripslashes(strip_tags($val['option_price']));
}
}else{
$event_extra = array();
}
}
$us++;
}
2019-11-04 06:24:02 -05:00
$cart_item_data['event_ticket_info'] = $ticket_type_arr;
2019-02-18 23:30:58 -05:00
$cart_item_data['event_extra_option'] = $new;
$cart_item_data['event_user_info'] = $user;
$cart_item_data['event_tp'] = $tp;
$cart_item_data['line_total'] = $tp;
$cart_item_data['line_subtotal'] = $tp;
2019-11-04 06:24:02 -05:00
2019-02-18 23:30:58 -05:00
$cart_item_data['event_cart_location'] = $event_cart_location;
$cart_item_data['event_cart_date'] = $mep_event_start_date;
// $cart_item_data['event_cart_date'] = $event_cart_date;
2019-11-04 06:24:02 -05:00
}
$cart_item_data['event_id'] = $product_id;
2018-02-27 06:37:04 -05:00
return $cart_item_data;
}
add_filter( 'woocommerce_add_cart_item_data', 'mep_add_custom_fields_text_to_cart_item', 90, 3);
2018-02-27 06:37:04 -05:00
add_action( 'woocommerce_before_calculate_totals', 'add_custom_price',90,1 );
2018-02-27 06:37:04 -05:00
function add_custom_price( $cart_object ) {
2018-12-02 00:45:21 -05:00
foreach ( $cart_object->cart_contents as $key => $value ) {
2018-12-02 02:22:21 -05:00
$eid = $value['event_id'];
if (get_post_type($eid) == 'mep_events') {
2018-02-27 06:37:04 -05:00
$cp = $value['event_tp'];
$value['data']->set_price($cp);
$value['data']->set_regular_price($cp);
$value['data']->set_sale_price($cp);
$value['data']->set_sold_individually('yes');
2018-02-27 06:37:04 -05:00
$new_price = $value['data']->get_price();
}
2018-12-02 02:22:21 -05:00
}
2018-02-27 06:37:04 -05:00
}
2018-07-02 04:39:41 -04:00
2018-02-27 06:37:04 -05:00
function mep_display_custom_fields_text_cart( $item_data, $cart_item ) {
2018-07-02 04:39:41 -04:00
$mep_events_extra_prices = $cart_item['event_extra_option'];
// print_r($cart_item);
2019-04-10 07:36:55 -04:00
$eid = $cart_item['event_id'];
if (get_post_type($eid) == 'mep_events') {
$user_info = $cart_item['event_user_info'];
$ticket_type_arr = $cart_item['event_ticket_info'];
// echo '<pre>';
// print_r($user_info);
2018-02-27 06:37:04 -05:00
echo "<ul class='event-custom-price'>";
if(is_array($user_info) && sizeof($user_info > 0)){
foreach($user_info as $userinf){
?>
<li><?php _e('Event Date','mage-eventpress'); ?>: <?php echo date('D, d M Y',strtotime($userinf['user_event_date'])); ?></li>
<?php
}
}else{
?>
<li><?php _e('Event Date','mage-eventpress'); ?>: <?php echo date('D, d M Y',strtotime($cart_item['event_cart_date'])); ?></li>
<?php
}
2019-02-18 23:30:58 -05:00
?>
2019-03-25 06:17:44 -04:00
<li><?php _e('Event Location','mage-eventpress'); ?>: <?php echo $cart_item['event_cart_location']; //echo $cart_item['event_ticket_type']; ?></li>
2019-02-18 23:30:58 -05:00
<?php
2019-03-25 06:17:44 -04:00
if($mep_events_extra_prices){
2018-07-02 04:39:41 -04:00
foreach ( $mep_events_extra_prices as $field ) {
if($field['option_qty']>0){
?>
<li><?php echo esc_attr( $field['option_name'] ); ?> x <?php echo esc_attr( $field['option_qty'] ); ?>: <?php echo wc_price($field['option_qty'] *$field['option_price'] ); ?> </li>
<?php
}
2018-07-02 04:39:41 -04:00
}
}
2018-08-16 08:19:34 -04:00
if(array_key_exists('event_ticket_type', $cart_item)){
// if($cart_item['event_ticket_type']){
2019-04-17 07:54:24 -04:00
echo "<li> Ticket: ".$cart_item['event_ticket_type']." x ".$cart_item['event_ticket_qty'].": ".wc_price($cart_item['event_ticket_price'])."</li>";
2018-07-02 04:39:41 -04:00
}
echo "</ul>";
}
2018-02-27 06:37:04 -05:00
return $item_data;
2018-07-02 04:39:41 -04:00
}
add_filter( 'woocommerce_get_item_data', 'mep_display_custom_fields_text_cart', 90, 2 );
2018-02-27 06:37:04 -05:00
2018-07-02 04:39:41 -04:00
2018-02-27 06:37:04 -05:00
function mep_add_custom_fields_text_to_order_items( $item, $cart_item_key, $values, $order ) {
2019-03-25 06:17:44 -04:00
$eid = $values['event_id'];
2018-12-02 02:22:21 -05:00
if (get_post_type($eid) == 'mep_events') {
$mep_events_extra_prices = $values['event_extra_option'];
2019-04-10 07:36:55 -04:00
if(isset($values['event_ticket_type'])){
$event_ticket_type = $values['event_ticket_type'];
2019-04-10 07:36:55 -04:00
}else{
$event_ticket_type = " ";
2019-04-10 07:36:55 -04:00
}
if(isset($values['event_ticket_price'])){
$event_ticket_price = $values['event_ticket_price'];
2019-04-10 07:36:55 -04:00
}else{
$event_ticket_price = " ";
2019-04-10 07:36:55 -04:00
}
if(isset($values['event_ticket_qty'])){
$event_ticket_qty = $values['event_ticket_qty'];
2019-04-10 07:36:55 -04:00
}else{
$event_ticket_qty = " ";
2019-04-10 07:36:55 -04:00
}
$product_id = $values['product_id'];
$cart_location = $values['event_cart_location'];
$cart_date = $values['event_cart_date'];
2019-03-25 06:17:44 -04:00
$form_position = mep_get_option( 'mep_user_form_position', 'general_attendee_sec', 'details_page' );
if($form_position=='details_page'){
$event_user_info = $values['event_user_info'];
}else{
$event_user_info = mep_save_attendee_info_into_cart($eid);
}
2019-02-18 23:30:58 -05:00
$item->add_meta_data('Location',$cart_location);
$item->add_meta_data('_event_ticket_info',$values['event_ticket_info']);
2019-02-18 23:30:58 -05:00
2018-08-25 06:12:18 -04:00
if (is_array($mep_events_extra_prices) || is_object($mep_events_extra_prices)){
foreach ( $mep_events_extra_prices as $field ) {
if($field['option_qty']>0){
$item->add_meta_data(esc_attr( $field['option_name'] )." x ".$field['option_qty'], wc_price($field['option_qty'] *$field['option_price'] ) );
// $opt_name = $product_id.str_replace(' ', '', $field['option_name']);
// $opt_qty = $field['option_qty'];
// $tes = get_post_meta($product_id,"mep_xtra_$opt_name",true);
// $ntes = ($tes+$opt_qty);
// update_post_meta( $product_id, "mep_xtra_$opt_name",$ntes);
}
}
2018-08-25 06:12:18 -04:00
}
2018-07-02 04:39:41 -04:00
if($event_ticket_type){
// $tck_name = $product_id.str_replace(' ', '', $event_ticket_type);
// $tesqt = get_post_meta($product_id,"mep_xtra_$tck_name",true);
// $ntesqt = (int) ($tesqt+$event_ticket_qty);
// update_post_meta( $product_id, "mep_xtra_$tck_name",$ntesqt);
// $item->add_meta_data('_event_ticket_type','ticket_typs');
}else{
$item->add_meta_data('_event_ticket_type','normal');
}
$item->add_meta_data('_event_user_info',$event_user_info);
$item->add_meta_data('_no_of_ticket',count($event_user_info));
$item->add_meta_data('_event_service_info',$mep_events_extra_prices);
$item->add_meta_data('event_id',$eid);
$item->add_meta_data('_product_id',$eid);
2018-02-27 06:37:04 -05:00
}
2018-07-02 04:39:41 -04:00
}
add_action( 'woocommerce_checkout_create_order_line_item', 'mep_add_custom_fields_text_to_order_items', 90, 4 );