Dynamically Display Delivery/Pickup Time based on Product Process Time
February 1, 2021
TutorialsWooFood
woocommerce food orderingwordpress food ordering plugin
add_filter("woofood_adjust_pickup_time", "change_dynamically_pickup_time", 10, 1);
function change_dynamically_pickup_time($default)
{
global $woocommerce;
if(WC()->cart)
{
$woofood_delivery_time = 0;
$all_product_times = array();
$total_time_to_delivery = 0;
foreach( WC()->cart->get_cart() as $cart_item ):
## Using WC_Order_Item methods ##
// Item ID is directly accessible from the $item_key in the foreach loop or
$item_id = $cart_item['data']->get_id();
$item_name = $cart_item['data']->get_name(); // Name of the product
$item_type = $cart_item['data']->get_type(); // Type of the order item ("line_item")
## Access Order Items data properties (in an array of values) ##
$item_data = $cart_item['data']->get_data();
$product_name = $item_data['name'];
$product_id = $item_data['id'];
$all_product_times[] = intval(get_post_meta($product_id, 'process_time_woocommerce', true));
endforeach;
$woofood_delivery_time = max($all_product_times) + intval($woofood_delivery_time) ;
return $woofood_delivery_time;
}
else{
return $default;
}
}