我目前正在处理订单流程。我不是PHP编码的明星,但现在尝试这个; - )
if(isset($_SESSION["cart_item"]) && count($_SESSION["cart_item"])>0){
if($configdetail->servicefeeapply==2){
foreach ($_SESSION["cart_item"] as $key => $value) {
$totalprice +=$value['itemprice'];
}
if(in_array('postal',$value['shipping'])){
$shippingprice=str_replace(",",'.',$configdetail->servicefee);
}
}
if($configdetail->servicefeeapply==1){
foreach ($_SESSION["cart_item"] as $key => $value){
if(in_array('postal',$value['shipping'])){
$shippingprice +=str_replace(",",'.',$configdetail->servicefee);
}
$totalprice +=$value['itemprice'];
}
}
if($post['paymentype']=='paypal'){
$grandtotal = $totalprice+$shippingprice+$servicefee;
}
else{
$grandtotal = $totalprice+$shippingprice;
}
}
我现在的问题是,“发货”会话中的数组可以是“邮政”,“电子邮件”或“电子邮件,邮寄”。但代码“in_array”始终只占用“foreach”函数的最后一次运行。因此,当我通过电子邮件发送第一篇文章并通过邮件发送第二篇文章时,我获得正确的服务费。但是,当我通过邮件发送第一篇文章和通过电子邮件发送第二篇文章时,它只需要数组'电子邮件'而我无法显示servicefee。
有什么想法吗?我希望我已经解释得够了。 非常感谢。
答案 0 :(得分:0)
if(isset($_SESSION["cart_item"]) && count($_SESSION["cart_item"])>0){
foreach ($_SESSION["cart_item"] as $key => $value) {
$totalprice +=$value['itemprice'];
}
foreach ($_SESSION["cart_item"] as $key => $value) {
if(in_array('postal',$value['shipping'])){
if($configres->servicefeeapply==2){
$shippingprice =str_replace(",",'.',$configdetail->servicefee);
}
else{
$shippingprice +=str_replace(",",'.',$configdetail->servicefee);
}
break;
}
}
}
我想我是通过休息来实现的; 非常感谢你的帮助。