get_price(); } else{ $price=sanitize_text_field($_POST['price']); } if($product_enable_book==1) { if($product_calc_mode=="Day") { $total_days+=1; } $mode=$product_calc_mode; } else if($enable_book==1) { if($calc_mode=="Day") { $total_days+=1; } $mode=$calc_mode; } if($mode =="Day") { if($total_days=='1') { $mode=$mode; }else{ $mode="Days"; } } $total_amt_pro=$price*$quantity*$total_days; ?> id; $get_user_currency = strtolower($user_country.'_price'); if($get_user_currency!=''){ $new_price = get_post_meta($post_id, $get_user_currency, true); if($new_price==''){ $new_price = $price; } } return $new_price; } function phoen_arbpw_calander_on_product() { global $product; global $post; $product_gen_settings=get_post_meta( $post->ID, 'phoen_arbpw_calander_mode', true ); $product_enable_book=isset($product_gen_settings['product_enable_book'])?$product_gen_settings['product_enable_book']:''; $product_days_to_sel=isset($product_gen_settings['product_days_to_sel'])?$product_gen_settings['product_days_to_sel']:''; $gen_settings = get_option('phoe_arbpw_value'); $days_to_sel=isset($gen_settings['days_to_sel'])?$gen_settings['days_to_sel']:''; $enable_book=isset($gen_settings['enable_book'])?$gen_settings['enable_book']:''; if($product_enable_book==1) { if($product_days_to_sel==2) { ?>
From To
Date
From To
Date
get_error_message(), 'error' ); $data_msg = 1; } } else if(sanitize_text_field($_POST['start_date'])=="") { $data = new WP_Error( 'error', sprintf( __( 'Enter Date correctly', 'custom-options'),"" ) ); wc_add_notice( $data->get_error_message(), 'error' ); $data_msg = 1; } } else if($enable_book==1) { if($days_to_sel==2) { if((sanitize_text_field($_POST['start_date'])=="")||(sanitize_text_field($_POST['end_date'])=="")) { $data = new WP_Error( 'error', sprintf( __( 'Enter Date correctly', 'custom-options'),"" ) ); wc_add_notice( $data->get_error_message(), 'error' ); $data_msg = 1; } } else if(sanitize_text_field($_POST['start_date'])=="") { $data = new WP_Error( 'error', sprintf( __( 'Enter Date correctly', 'custom-options'),"" ) ); wc_add_notice( $data->get_error_message(), 'error' ); $data_msg = 1; } } if($data_msg == 1) { return false; } return $passed; } function phoen_arbpw_add_cart_item($cart_item_data) { return $cart_item_data; } function phoen_arbpw_get_item_data( $other_data, $cart_item_data ) { $product_gen_settings=get_post_meta( $cart_item_data['product_id'], 'phoen_arbpw_calander_mode', true ); $product_enable_book=isset($product_gen_settings['product_enable_book'])?$product_gen_settings['product_enable_book']:''; $product_days_to_sel=isset($product_gen_settings['product_days_to_sel'])?$product_gen_settings['product_days_to_sel']:''; $gen_settings = get_option('phoe_arbpw_value'); $enable_book=isset($gen_settings['enable_book'])?$gen_settings['enable_book']:''; $days_to_sel=isset($gen_settings['days_to_sel'])?$gen_settings['days_to_sel']:''; if ( ! empty( $cart_item_data['phoeniixx_booking_dates'] ) ) { foreach ( $cart_item_data['phoeniixx_booking_dates'] as $options ) { if($product_enable_book==1) { if($product_days_to_sel==2) { echo "
"." FROM: ".$options['start_value']; echo "
"." To: ".$options['end_value']; } else if($product_days_to_sel==1){ echo "
"." DATE: ".$options['start_value']; } } else if($enable_book==1) { if($days_to_sel==2){ echo "
"." FROM: ".$options['start_value']; echo "
"." To: ".$options['end_value']; } else if($days_to_sel==1){ echo "
"." DATE: ".$options['start_value']; } } } } return $other_data; } function phoen_arbpw_add_to_cart_product( $cart_item_data,$product_id ) { $val_post = sanitize_text_field($_POST['start_date']); $end_val=sanitize_text_field($_POST['end_date']); if($val_post != '') { $data[] = array( 'start_value' => $val_post, 'end_value'=>$end_val ); $cart_item_data['phoeniixx_booking_dates'] = $data; } return $cart_item_data; } function phoen_arbpw_calculate_extra_feea($cart_object ) { $gen_settings = get_option('phoe_arbpw_value'); $enable_book=isset($gen_settings['enable_book'])?$gen_settings['enable_book']:''; $calc_mode=isset($gen_settings['calc_mode'])?$gen_settings['calc_mode']:''; $days_to_sel=isset($gen_settings['days_to_sel'])?$gen_settings['days_to_sel']:''; $old_price1=''; foreach ( $cart_object->cart_contents as $key => $value ) { $product_gen_settings=get_post_meta( $value['data']->id ,'phoen_arbpw_calander_mode', true ); $product_enable_book=isset($product_gen_settings['product_enable_book'])?$product_gen_settings['product_enable_book']:''; $product_days_to_sel=isset($product_gen_settings['product_days_to_sel'])?$product_gen_settings['product_days_to_sel']:''; $product_calc_mode=isset($product_gen_settings['product_calc_mode'])?$product_gen_settings['product_calc_mode']:''; $st_date= $value['phoeniixx_booking_dates'][0]['start_value']; $end_date= $value['phoeniixx_booking_dates'][0]['end_value']; $orgPrice = intval( $value['data']->price ); $old_price1=$orgPrice; $dteStart = new DateTime($st_date); $dteEnd = new DateTime($end_date); $dteDiff = $dteStart->diff($dteEnd); $dteDiff = $dteEnd->diff($dteStart)->format("%a"); if($product_enable_book==1) { if(($product_calc_mode=="Day")&&($product_days_to_sel==2)) { $dteDiff+=1; } else if($product_days_to_sel==1) { $dteDiff=1; } if($end_date=="") { $dteDiff=1; } } else if($enable_book==1){ if(($calc_mode=="Day")&&($days_to_sel==2)) { $dteDiff+=1; } else if($days_to_sel==1){ $dteDiff=1; } if($end_date==""){ $dteDiff=1; } } else if($enable_book=="") { $dteDiff=1; } $phoen_data = ($old_price1*$dteDiff); $value['data']->set_price($phoen_data); //$value['data']->price *=$dteDiff; } } function phoen_arbpw_order_item_meta($item_id,$values) { if ( ! empty( $values['phoeniixx_booking_dates'] ) ) { foreach ( $values['phoeniixx_booking_dates'] as $options ) { if($options['end_value']!="") { woocommerce_add_order_item_meta( $item_id,'FROM', $options['start_value'] ); woocommerce_add_order_item_meta( $item_id,'TO', $options['end_value'] ); } else { woocommerce_add_order_item_meta( $item_id, 'DATE', $options['start_value'] ); } } } } function phoen_arbpw_add_price_html( $price = '', $product) { $price_html=''; global $product; $product_gen_settings=get_post_meta( $product->id, 'phoen_arbpw_calander_mode', true ); $product_enable_book=isset($product_gen_settings['product_enable_book'])?$product_gen_settings['product_enable_book']:''; $product_calc_mode=isset($product_gen_settings['product_calc_mode'])?$product_gen_settings['product_calc_mode']:''; $gen_settings = get_option('phoe_arbpw_value'); $enable_book=isset($gen_settings['enable_book'])?$gen_settings['enable_book']:''; $gen_settings = get_option('phoe_arbpw_value'); $calc_mode=isset($gen_settings['calc_mode'])?$gen_settings['calc_mode']:''; if($product_enable_book==1) { $price_html = __('/'.$product_calc_mode, 'phoen_arbpw'); } else if($enable_book==1) { $price_html = __('/'.$calc_mode, 'phoen_arbpw'); } if($price!="") { $price .= '' . $price_html . ''; } return $price; } function phoen_arbpw_get_cart_item_from_session($cart_item_data, $values) { if ( ! empty( $values['phoeniixx_booking_dates'] ) ) { $cart_item_data['phoeniixx_booking_dates'] = $values['phoeniixx_booking_dates']; $cart_item_data = phoen_arbpw_add_cart_item( $cart_item_data ); } return $cart_item_data; } register_activation_hook( __FILE__, 'phoe_arbpw_activation_func'); function phoe_arbpw_activation_func() { $phoen_setting_data = get_option('phoe_arbpw_value'); if(is_array($phoen_setting_data) && empty($phoen_setting_data)){ $phoe_arbpw_value = array( 'enable_book'=>1, 'calc_mode'=>'Day', 'days_to_sel'=>'2' ); update_option('phoe_arbpw_value',$phoe_arbpw_value); } } //edit price tag e.g /day or /night add_filter( 'woocommerce_get_price_html', 'phoen_arbpw_add_price_html' , 10, 2 ); //calculate price according to per unit include additional or custom cahrge add_action( 'woocommerce_before_calculate_totals', 'phoen_arbpw_calculate_extra_feea', 1, 1 ); // Get item data to display on cart page after checkout on product column add_filter( 'woocommerce_get_item_data', 'phoen_arbpw_get_item_data' , 10, 2 ); //Stores options value in cart add_filter( 'woocommerce_add_cart_item_data', 'phoen_arbpw_add_to_cart_product' , 10, 2 ); //return options value on cart in product column during session add_filter( 'woocommerce_add_cart_item', 'phoen_arbpw_add_cart_item' , 20, 1 ); // it takes value from checkout to order add_filter( 'woocommerce_get_cart_item_from_session', 'phoen_arbpw_get_cart_item_from_session' , 20, 2 ); //add textbox to product page add_action( 'woocommerce_before_add_to_cart_button', 'phoen_arbpw_calander_on_product', 10, 0 ); // Validate when adding to cart add_filter( 'woocommerce_add_to_cart_validation', 'phoen_arbpw_validate_add_cart_product' , 10, 3 ); //order page add_action( 'woocommerce_add_order_item_meta', 'phoen_arbpw_order_item_meta' , 10, 2 ); include_once(PHOEN_ARBPRPLUGPATH.'includes/phoeniixx_arbpw_product.php'); }else{ add_action('admin_notices', 'phoen_arbpw_admin_notice'); function phoen_arbpw_admin_notice() { global $current_user ; $user_id = $current_user->ID; /* Check that the user hasn't already clicked to ignore the message */ if ( ! get_user_meta($user_id, 'phoen_arbpw_ignore_notice') ) { echo '

'; printf(__('Woocommerce Appointment and Booking System could not detect an active Woocommerce plugin. Make sure you have activated it. | Hide Notice'), '?phoen_arbpw_nag_ignore=0'); echo "

"; } } add_action('admin_init', 'phoen_arbpw_nag_ignore'); function phoen_arbpw_nag_ignore() { global $current_user; $user_id = $current_user->ID; /* If user clicks to ignore the notice, add that to their user meta */ if ( isset($_GET['phoen_arbpw_nag_ignore']) && '0' == $_GET['phoen_arbpw_nag_ignore'] ) { add_user_meta($user_id, 'phoen_arbpw_ignore_notice', 'true', true); } } }?>