你现在的位置:首页 > PHP网站建设知识库 > ZenCart > 正文

优化zencart注册项流程

操作上共涉及到两处: 

一、 商店设置 —> 客户资料 除了地区选择保留下拉框选择外 

二 商店设置  —> 最小值 

这里把 地区 省份 公司 邮编 姓氏 生日 城市 电话号码 等按需设置为无, 不需要的选项在编辑里 把数据清空提交 即可 切记不可以输入 ” 数字 0 “ 很重要 
这样设置好后 去看下注册页的提交项目是不是少了很多 
可是这样还没完 我们再继续  默认的情况下 项项后面都有个 * 号 提示为必添项, 实际上也确实是必添项  这里同样分两步走 第一步 先把不需要的必添项目后面的 * 号去掉先; 
要去这个 * 号提示 需要修改的是 对应的语言包文件 
(操作前的小提示: 不要使用记事本来编辑修改PHP文件 特别是编码为UTF8的PHP文件 原因可以自己百度上Google一下 BOM相关信息 或 参见 百度百科介绍) 
以去掉中文界面下的 * 号提示为例 打开 中文语言包下的 schinese.php 文件  zencart代码的书写与命名很规范 打开schinese.php后找到类似下面这样的代码片断: 
1 define(‘ENTRY_COMPANY’, ‘公司名称:’); 
2 define(‘ENTRY_COMPANY_ERROR’, ‘请输入公司名称。’); 
3 define(‘ENTRY_COMPANY_TEXT’, ”); 

5 define(‘ENTRY_GENDER’, ‘称呼:’); 
6  define(‘ENTRY_GENDER_ERROR’, ‘请选择称呼。’); 
7 define(‘ENTRY_GENDER_TEXT’, ‘*’); 
把代码中 define(‘ENTRY_GENDER_TEXT’, ‘*‘); 这句中的 * 号删掉 注意只删 * 号 切记要保留 一对 半角的 单引号 很 重 要 ! 
其他的依次类推 把不需要的项目中的 ENTRY_COUNTRY_TEXT 全部去掉 * 号 
保存并上传覆盖 就可了 
这里可能会碰上一个小问题 明明都改对了 可是为何 注册页中涉及到修改的项目 * 号提示还在 
答: 因为 zencart的文件替代机制 如果在可以使用替代文件的目录中有与现使用模板存放目录名相同的文件夹 且该文件夹下有相同名的文件, 默认情况下,当前模板会优先加载该文件使用 所以 上面修改的语言文件 实际对应的路径 
应该是 includes/languages/你的当前模板存放目录名的文件夹/下的语言文件 
而非 includes/languages/下的语言文件  有点绕口 是吧  但你会明白的 , 
如此修改后 虽然 不想要的 必添的项目后面的提示 不在了 可是还是会验证你提交的必填项有没有填写  所以 我们还要继续 去掉这个验证检查 
第二步 去掉 必填项的验证 
Zencart对注册表单的必填项的验证是使用JS来完成的 
这个JS文件位于 includes/modules/pages/create_account/下的 jscript_form_check.php 文件中 
懂的还好 不懂的看着有点儿蒙是吧  没关系 这里有个小技巧 查看刚才修改过的语言文件中对应的字段 然后用这个字段在这里查找包含这个字段的 哪几行代码就是了, 
为了日后方便维护 这里不推荐直接删掉相对的代码片断 而是采取注释掉, 
例如: 我刚才在语言文件中去掉了 详细地址 这一项 必填提示 他使用的字段是 ENTRY_STREET_ADDRESS 哪在这里我就用 ENTRY_STREET_ADDRESS 查找 
找到 这样的 语句 
1<?php if ((int)ENTRY_STREET_ADDRESS_MIN_LENGTH > 0) { ?> 
2  check_input(“street_address”, <?php echo ENTRY_STREET_ADDRESS_MIN_LENGTH; ?>, “<?php echo ENTRY_STREET_ADDRESS_ERROR; ?>”); 
3<?php } ?> 
我们只需要把上面的代码片断注释掉 即可  这里 建议 采用  /** 代码  */ 来注释 
这里 我整理了几段 一般可能不太需要的 代码片断注释掉作示例 
验证 姓氏 
1/** 
2<?php if ((int)ENTRY_LAST_NAME_MIN_LENGTH > 0) { ?> 
3  check_input(“lastname”, <?php echo ENTRY_LAST_NAME_MIN_LENGTH; ?>, “<?php echo ENTRY_LAST_NAME_ERROR; ?>”); 
4<?php } ?> 
5*/ 
验证 详细地址 
1/** 
2<?php if ((int)ENTRY_STREET_ADDRESS_MIN_LENGTH > 0) { ?> 
3  check_input(“street_address”, <?php echo ENTRY_STREET_ADDRESS_MIN_LENGTH; ?>, “<?php echo ENTRY_STREET_ADDRESS_ERROR; ?>”); 
4<?php } ?> 
5*/ 
验证 邮编 
1/** 
2<?php if ((int)ENTRY_POSTCODE_MIN_LENGTH > 0) { ?> 
3 check_input(“postcode”, <?php echo ENTRY_POSTCODE_MIN_LENGTH; ?>, “<?php echo ENTRY_POST_CODE_ERROR; ?>”); 
4<?php } ?>*/ 
验证 城市 
1/** 
2<?php if ((int)ENTRY_CITY_MIN_LENGTH > 0) { ?> 
3 check_input(“city”, <?php echo ENTRY_CITY_MIN_LENGTH; ?>, “<?php echo ENTRY_CITY_ERROR; ?>”); 
4<?php } ?> 
5*/ 
验证省份 
1<?php if (ACCOUNT_STATE == ‘true’) echo ‘  if (!form.state.disabled && form.zone_id.value == “”) check_input(“state”, ‘ . ENTRY_STATE_MIN_LENGTH . ‘, “‘ . ENTRY_STATE_ERROR . ‘”)’ . “n” . ‘  else if (form.state.disabled) check_select(“zone_id”, “”, “‘ . ENTRY_STATE_ERROR_SELECT . ‘”);’ . “n”; ?> 
验证 国家 
1 /** 
2 check_select(“country”, “”, “<?php echo ENTRY_COUNTRY_ERROR; ?>”); 
3 */ 
验证 电话号码 
1/** 
2<?php if ((int)ENTRY_TELEPHONE_MIN_LENGTH > 0) { ?> 
3check_input(“telephone”, <?php echo ENTRY_TELEPHONE_MIN_LENGTH; ?>, “<?php echo ENTRY_TELEPHONE_NUMBER_ERROR; ?>”); 
4<?php } ?> 
5*/