Skip to content

Instantly share code, notes, and snippets.

@PluginHive
Created December 12, 2019 12:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save PluginHive/2fa31078a4d06ada032230107e692015 to your computer and use it in GitHub Desktop.
Save PluginHive/2fa31078a4d06ada032230107e692015 to your computer and use it in GitHub Desktop.
Code snippet to display the number of days selected by the customer for a booking in the WooCommerce Email.
add_filter( 'woocommerce_email_order_item_quantity', 'display_number_of_days_booked_as_quantity_in_order_emails',10,2 );
function display_number_of_days_booked_as_quantity_in_order_emails($quantity,$item =array())
{
if(!empty($item) && !empty($item->get_product_id()) )
{
$product_id = $item->get_product_id();
$from_date = $item->get_meta('From',true);
$to_date = $item->get_meta('To',true);
if (!empty($from_date))
{
if (!empty($to_date))
{
if (is_array($from_date))
{
$from_date = $from_date[0];
}
if (is_array($to_date))
{
$to_date = $to_date[0];
}
$datediff = get_number_of_slots_selected(strtotime($from_date),strtotime($to_date),$product_id);
}
else
{
$datediff = 1;
}
return $datediff;
}
else
{
return '-';
}
}
return $quantity;
}
function get_number_of_slots_selected($book_from,$book_to,$product_id){
$divider = get_interval_in_seconds($product_id);
$datediff = (int)$book_to - (int)$book_from;
return round( ($datediff / $divider) + 1);
}
function get_interval_in_seconds($product_id){
$interval = 0;
$interval_period = get_post_meta( $product_id, "_phive_book_interval_period", 1 );
$phive_enable_buffer = get_post_meta($product_id,"_phive_enable_buffer",1);
$buffer_period = get_post_meta($product_id,"_phive_buffer_period",1);
$prod_interval = get_post_meta( $product_id, "_phive_book_interval", 1 );
if( ($phive_enable_buffer == 'yes') && ($interval_period == $buffer_period) && $interval_period == 'minute'){
$interval = get_buffer_added_interval($product_id);
}
else{
$interval = $prod_interval;
}
$buffer_added_interval = $interval;
switch ( $interval_period ) {
case 'minute':
$interval = 60*$buffer_added_interval;
break;
case 'hour':
$interval = 60*60*$buffer_added_interval;
break;
case 'day':
$interval = 60*60*24;
break;
case 'month':
$interval = 60*60*24*30;
break;
}
return $interval;
}
function get_buffer_added_interval($product_id){
$buffer_before_time = get_post_meta( $product_id, "_phive_buffer_before",1);
$buffer_after_time = get_post_meta( $product_id, "_phive_buffer_after",1);
$interval_type = get_post_meta( $product_id, "_phive_book_interval_type", 1 );
$prod_interval = get_post_meta( $product_id, "_phive_book_interval", 1 );
$interval_period = get_post_meta( $product_id, "_phive_book_interval_period", 1 );
$buffer_before_time = empty($buffer_before_time)?'0': $buffer_before_time;
$buffer_after_time = empty($buffer_after_time)?'0': $buffer_after_time;
$interval = $prod_interval;
if((($buffer_before_time%$prod_interval) != 0) || (($buffer_after_time%$prod_interval) != 0)){
$interval += ($buffer_before_time + $buffer_after_time);
}
return $interval;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment