首 页  >>  E商学院  >>  zencart百科  >>  简化Zen Cart注册

简化Zen Cart注册

ZenCart 默认的注册项太繁杂 于用户友好体验度是不利的,
这是病 得治 因此也就有了本处方.


简化 Zen Cart
的注册项操作共涉及到两大处,
后台设置和文件修改 先说 第一步 后台设置部分;


进入后台 如下操作:
一 商店设置 ---> 客户资料
--->然后按实际需要关掉不需要的项目
如图1(点击图片查看大图):


二 商店设置 ---> 最小值:


这里把 地区 省份 公司 邮编 姓氏 生日 城市 电话号码 等按需设置为无或保留,
不需要的选项在编辑里 把数据清空提交 即可, 切记不可以输入
" 数字 0 " 很重要!!!
,
如图2(点击图片查看大图):


这样设置好后, 去看下注册页的提交项目是不是少了很多.


可是这样还没完, 我们再继续往下看, 默认的情况下, 必添项后面都有个 * 号 提示,
实际上也确实是必填项 因此开始第二步 修改文件


修改文件同样分两步走 第一步 先把不需要的必填项目后面的 *
号去掉先;
要去这个 * 号提示 需要修改的是
对应的语言包文件,


为了好理解一些 下面以去掉中文界面下的 * 号提示为例, 打开
中文语言包下的 schinese.php 文件,
这个文件路径为:
includes/languages/你的模板目录名/schinese.php
英文的就是
includes/languages/你的模板目录名/english.php
其他的语言依次类推, Zen Cart默认这些语言文件全部位于
includes/languages/ 下,
为何 我们这里提到的路径多了一级 "你的模板目录名" 呢?
原因可参见 Zen
Cart的文件替代机制一文;
如果不想使用替代机制, 直接修改对应的文件也是可以的, 只是不建议这种操作行为,


Zen Cart代码的书写与命名很规范 打开schinese.php后找到类似下面这样的代码片断:








1
2
3
4
5
6
7


define('ENTRY_COMPANY', '公司名称:'); define('ENTRY_COMPANY_ERROR', '请输入公司名称。'); define('ENTRY_COMPANY_TEXT', ''); define('ENTRY_GENDER', '称呼:'); define('ENTRY_GENDER_ERROR', '请选择称呼。'); define('ENTRY_GENDER_TEXT', '*');


把代码中 define('ENTRY_GENDER_TEXT', '*'); 这句中的 * 号删掉,
注意只删 * 号 切记要保留 一对 半角的 单引号 很重要 !!!
其他的依次类推 把不需要的项目中的 ENTRY_COUNTRY_TEXT
全部去掉 * 号,
保存并上传覆盖 就可以了.


如此修改后 虽然 不想要的 必添的项目后面的 * 号提示 不在了,
可是还是会验证你提交的必填项有没有填写 所以 我们还要继续
去掉这个验证检查.


开始修改文件的第二步 去掉 必填项的表单验证


Zen Cart对注册表单的必填项的验证是使用JS来完成的,
这个JS文件位于
includes/modules/pages/create_account/jscript_form_check.php 文件中,


又是一堆代码, 从哪下手呢? 懂的还好 不懂的看着有点儿蒙是吧, 没关系 这里有个小技巧 可用,
查看刚才修改过的语言文件中对应的必填项语言常量,
既哪窜大写的字母,
然后用这个常量作为关健字 在这里查找, 如果还没看明白, 哪就直接看下面的代码好了.


为了日后方便维护 这里不推荐直接删掉对应的代码片断 而是采取注释掉,


例如: 刚才在语言文件中去掉了 详细地址 这一项 必填提示,
他使用的语言常量是 ENTRY_STREET_ADDRESS 那么在这里就用
ENTRY_STREET_ADDRESS 查找,


结果会找到 这样的 语句








1
2
3


<?php if ((int)ENTRY_STREET_ADDRESS_MIN_LENGTH > 0) { ?> check_input("street_address", <?php echo ENTRY_STREET_ADDRESS_MIN_LENGTH; ?>, "<?php echo ENTRY_STREET_ADDRESS_ERROR; ?>"); <?php } ?>


我们只需要把上面的代码片断注释掉 即可,
提示一下, 涉及到的代码部分虽然为PHP语句,
但修改的文件实际上为JS文件,
因此这里的注释语法最好采用JS的多行注释, 以利于日后阅读和修改理解.


这里 我整理了几段 常用的 代码片断 如果没看懂上面的 按语言常量查找对应的代码片断 就直接引用下面的示例即可,
提示: 示例中的代码以经被注释,
如果需要保留 请去掉 注释符.


验证 姓氏








1
2
3
4
5


/**
<?php if ((int)ENTRY_LAST_NAME_MIN_LENGTH > 0) { ?>
   check_input("lastname", <?php echo ENTRY_LAST_NAME_MIN_LENGTH; ?>, "<?php echo ENTRY_LAST_NAME_ERROR; ?>");
<?php } ?>
*/


验证 详细地址








1
2
3
4
5


/**
<?php if ((int)ENTRY_STREET_ADDRESS_MIN_LENGTH > 0) { ?>
   check_input("street_address", <?php echo ENTRY_STREET_ADDRESS_MIN_LENGTH; ?>, "<?php echo ENTRY_STREET_ADDRESS_ERROR; ?>");
<?php } ?>
*/


验证 邮编








1
2
3
4
5


/**
<?php if ((int)ENTRY_POSTCODE_MIN_LENGTH > 0) { ?>
   check_input("postcode", <?php echo ENTRY_POSTCODE_MIN_LENGTH; ?>, "<?php echo ENTRY_POST_CODE_ERROR; ?>");
<?php } ?>
*/


验证 城市








1
2
3
4
5


/**
<?php if ((int)ENTRY_CITY_MIN_LENGTH > 0) { ?>
   check_input("city", <?php echo ENTRY_CITY_MIN_LENGTH; ?>, "<?php echo ENTRY_CITY_ERROR; ?>");
<?php } ?>
*/


验证省份








1
2
3


/**
<?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
3


/**
check_select("country", "", "<?php echo ENTRY_COUNTRY_ERROR; ?>");
*/


验证 电话号码








1
2
3
4
5


/**
<?php if ((int)ENTRY_TELEPHONE_MIN_LENGTH > 0) { ?>
   check_input("telephone", <?php echo ENTRY_TELEPHONE_MIN_LENGTH; ?>, "<?php echo ENTRY_TELEPHONE_NUMBER_ERROR; ?>");
<?php } ?>
*/


如果还想更完美和简洁些,
可以打开
includes/templates/你的模板目录名/templatestpl_modules_create_account.php
文件,
然后继续以对应的项目语言常量为关健字查找,
将不必要填写的项目代码注释掉,
这里因为本地程序此文件修改的较多,就不帖代码示例,
通过上面的操作, Zen Cart
用户注册最少只需要输入三项必填项 即可完成注册.
即 EMail项 密码项和密码二次验证项.


最后再啰嗦一句 请不要用记事本编辑PHP文档
切记 !!!


点击次数:615  发布日期:2013-04-15  【打印此页】  【关闭