PHP-如果时间在晚上8点到早上8点之间,则增加额外运费



我有一个订餐脚本,我想添加它。如果配送时间在晚上8:00:00到早上7:59:59AM之间,则添加5美元的额外费用;如果配送时间是上午8:00:00和晚上7:59:59之间,则按脚本中的方式继续配送。

这是我的代码,用于计算交付费用,返回我们已经在仪表板中设置的交付费用。

我们想添加此项作为修复,以增加我们夜间送货的费用。

日送达=正常送达费夜间配送=正常配送费+5

谢谢你,我希望有人能指导我。

public static function verifyLocation($merchant_id=0, $lat=0, $lng=0,$order_subtotal=0)
{
$resp = Yii::app()->db->createCommand()
->select('merchant_id,latitude,lontitude,minimum_order')
->from('{{merchant}}')        
->where("merchant_id=:merchant_id",array(
':merchant_id'=>(integer)$merchant_id,             
)) 
->limit(1)   
->queryRow(); 
if($resp){

$provider = FunctionsV3::getMapProvider();          
MapsWrapper::init($provider);
$unit = FunctionsV3::getMerchantDistanceType($merchant_id); 
$mode = isset($provider['mode'])?$provider['mode']:'driving';


$merchant_delivery_distance = getOption($merchant_id,'merchant_delivery_miles');   

/*GET DELIVERY FEE*/
$delivery_fee = getOption($merchant_id,'merchant_delivery_charges');    
$resp_distance = array();

if($merchant_delivery_distance>0){
$resp_distance = MapsWrapper::getDistance($resp['latitude'],$resp['lontitude'],$lat,$lng,$unit,$mode);

$distance = $resp_distance['distance'];
if($merchant_delivery_distance>0){
if($distance>$merchant_delivery_distance){                  
$pretty_distance = Yii::t("default","[distance] [unit]",array(
'[distance]'=>$merchant_delivery_distance,
'[unit]'=>MapsWrapper::prettyUnit($unit)
));
$error = Yii::t("default","Sorry but this merchant delivers only with in [distance] your current distance is [current_distance]",array(
'[distance]'=>$pretty_distance,
'[current_distance]'=>$resp_distance['pretty_distance']
));
throw new Exception( $error );
} 
}

/*MINIMUM ORDER TABLE*/
$min_tables_enabled = getOption($merchant_id,'min_tables_enabled');
if($min_tables_enabled==1){                                     
$min_order = self::getMinimumOrderTable(
$merchant_id,$resp_distance['distance'],$resp_distance['unit'],$resp['minimum_order']
);                  
if($min_order>$order_subtotal){
$error = Yii::t("default","Sorry but minimum order is [min_order] for distance [distance]",array(
'[min_order]'=>FunctionsV3::prettyPrice($min_order),
'[distance]'=>$resp_distance['pretty_distance']
));
throw new Exception( $error );
}
}

/*SHIPPING FEE*/
$shipping_enabled = getOption($merchant_id,'shipping_enabled');
if($shipping_enabled==2){                   
$delivery_fee = self::getShippingFee($merchant_id,$resp_distance['distance'],$resp_distance['unit'],$delivery_fee);
}       
} 

return array_merge((array)$resp_distance, array('delivery_fee'=>$delivery_fee));

} else throw new Exception( t("Merchant not found") );
}   

您可以通过使用php日期获取所需时间之间的时间来实现这一点,这样您就可以相应地增加费用*注意:如果您要根据个人用户时区设置价格,PHP会从服务器获取日期。应使用Javascript与PHP 集成

本已清理。。。

最新更新