码迷,mamicode.com
首页 > 其他好文 > 详细

Zen-cart改变运输地址和改变账单地址流程BUG

时间:2016-07-08 13:33:50      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

 

 
改变运输地址 和 改变账单地址 1 2 main_page=checkout_shipping_address main_page=checkout_payment_address 这种情况都会加载地址薄表单 和 地址簿列表: 这个流程展示文件是如何包含的。 tpl_modules_check
 
 
 

改变运输地址 和 改变账单地址

1
2
main_page=checkout_shipping_address            
main_page=checkout_payment_address

这种情况都会加载地址薄表单 和 地址簿列表:
技术分享
这个流程展示文件是如何包含的。

tpl_modules_checkout_address_book.php模板中,对应默认地址的选中:

1
<?php echo zen_draw_radio_field(‘address‘, $addresses->fields[‘address_book_id‘], ($addresses->fields[‘address_book_id‘] == $_SESSION[‘sendto‘]), ‘id="name-‘ . $addresses->fields[‘address_book_id‘] . ‘"‘); ?>

单选框是否被选中,完全依赖当前的$_SESSION[‘sendto‘],从上面的示例图可以看到tpl_modules_checkout_address_book.php模板会被两个控制器(checkout_shipping_address 和 checkout_payment_address)包含,地址是否选中不应该只依赖当前的$_SESSION[‘sendto‘],我发现在Zen-cart151的默认模板中都是如此设置的,这明显是一个Bug,不过问题不大。

首先在tpl_modules_checkout_address_book.php开头添加

1
2
3
4
5
if($addressType == ‘billto‘){
    $checked = $_SESSION[‘billto‘];
}else{
    $checked = $_SESSION[‘sendto‘];
}

然后把

1
<?php echo zen_draw_radio_field(‘address‘, $addresses->fields[‘address_book_id‘], ($addresses->fields[‘address_book_id‘] == $_SESSION[‘sendto‘]), ‘id="name-‘ . $addresses->fields[‘address_book_id‘] . ‘"‘); ?>

替换成:

1
<?php echo zen_draw_radio_field(‘address‘, $addresses->fields[‘address_book_id‘], ($addresses->fields[‘address_book_id‘] == $checked), ‘id="name-‘ . $addresses->fields[‘address_book_id‘] . ‘"‘); ?>

这样的小Bug在Zen-cart目前所有版本都是如此,那意思是说只要点修改账单地址,点一下继续,那的账单地址就可以被改变了,而你的本意可能是希望不做任何修改。

 

 

企业模板网站

 

Zen-cart改变运输地址和改变账单地址流程BUG

标签:

原文地址:http://www.cnblogs.com/zuimoban/p/5652927.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!