> Zencart中文手册 > Zencart注册时去掉输入地址的方法

        关于购物网站的地址,很有讲究。很多人不清楚zencart是怎么处理地址信息的,这里先说明一下。zencart有两种地址:付款地址和帐单地址,属于生成的订单的信息,所以修改订单的操作应该包括修改付款地址和帐单地址,但不管怎么修改,都是针对已经生成的订单的历史数据而言 的。
那么付款地址和帐单地址是从哪里来的呢?每一个注册用户在自己的账户管理里,有个栏目叫做地址簿。用户可以事先在其中增减地址,编辑地址。用户在下单的过程中,如果对默认的付款地址或帐单地址需要修改,可以点修改按钮,进入地址簿更换、添加或修改地址。
那么下单的过程中默认的付款地址和帐单地址从哪里来的呢? 在地址簿里,用户可以任意指定一个地址为主地址,这个主地址就是下单的过程中默认的付款地址和帐单地址。用户地址是什么?用户地址就是主地址。每个用户都唯一对应一个主地址ID,用户指定一个地址为主地址的时候,其实是把自己的主地址ID更换一下而已。
zen cart默认的注册流程是必须要填写地址信息的,注册成功了,用户的地址簿中就出现了第一个地址,同时也是主地址。zen cart的思想是:如果下单必须要求用户提供地址信息,与其在下单时要用户输入,不如注册时要求用户输入。
另外一种购物车设计的思想与此相反,认为注册过程越快捷越好,一种定制的需求应运而生。怎样才能在注册时不用输入地址信息,而在第一次下单的时候输入地址信息呢?
以上的分析已经把ZenCart处理地址信息的脉络搞清了,下面就要点穴了,穴位在三个地方。第一个穴位,是注册的处理过程,要做的事情是拦截。由于ZenCart会在生成账户的同时,在地址簿中增加一条地址信息,所以必须卡死这一点,不让地址簿中增加信息。也就是说用户注册完成后,自己的地址簿为空。当然 数据库中用户对应的主地址ID要写入一个假想的值,Ethan为其赋值为-1。
第二个穴位,是点击购物车中结帐按钮后的处理过程,要做的事情是增加一个判断和跳转。如果是已经注册的用户,并且其主地址ID为-1,则跳转到地址簿的新增地址页面,否则按正常流程走。
第三个穴位,是新增地址的处理过程,要做的事情是移花接木。zen cart在新增一个地址的时候,是要求输入姓名和性别的,但是用户在注册的时候已经输入姓名和性别了,这里希望不用重复输入,可以对用户主地址ID进行判 断,如果大于0,不做改动,如果为-1,则不出现姓名和性别的输入框,暗中调用用户在注册的时候输入的姓名和性别,作为隐藏字段提交。