将会员注册页的E-MAIL由必填项改为非必填项

2016-07-07 15:00 来源:www.chinab4c.com 作者:ecshop专家



看到论坛里有不少朋友发帖询问解决办法,故共享之。
以下修改是 ECSHOP2.7.1版 官方默认模板基础上做的修改,其他版本或其他模板,大同小异。

1、
打开 user_passport.dwt 文件

onblur="checkEmail(this.value);"
删除
并将
<span id="email_notice" style="color:#FF0000"> *</span>
也删除
2、
打开 js/user.js 文件,找到 register() 函数部分
将(大概在466行左右,这里千万别找错地方)
  1. if (email.length == 0)
  2. {
  3. msg += email_empty + '\n';
  4. }
  5. else
  6. {
  7. if ( ! (Utils.isEmail(email)))
  8. {
  9. msg += email_invalid + '\n';
  10. }
  11. }
复制代码
删除
3、打开 includes/lib_passport.php 文件,找到 register函数部分
将(大概在40行左右)
  1. /* 检查email */
  2. if (empty($email))
  3. {
  4. $GLOBALS['err']->add($GLOBALS['_LANG']['email_empty']);
  5. }
  6. else
  7. {
  8. if (!is_email($email))
  9. {
  10. $GLOBALS['err']->add(sprintf($GLOBALS['_LANG']['email_invalid'], htmlspecialchars($email)));
  11. }
  12. }
复制代码
删除

4、继续打开 includes/modules/integrates/integrate.php 文件

找到(大概在196行左右)


$sql = "SELECT " . $this->field_id .
" FROM " . $this->table($this->user_table).
" WHERE " . $this->field_email . " = '$email'";
if ($this->db->getOne($sql, true) > 0)
{
$this->error = ERR_EMAIL_EXISTS;

return false;
}

删除之

回答:
很好,很实用

不错 如果你可以写个通用教程就完美了 呵呵!

在注册一次就有问题了

不明白楼上是啥意思,

注册过一次没问题,但是再次注册的时候就会出现问题



确实如4楼、6楼朋友所说,

已经修正

已经解决了!谢谢zhangyh

这只是在注册页面的修改吧?订单提交过程中的注册好像还不行啊。能否将flow.php页面中的注册也完善一下啊?

还是不行,注册任何一个用户都是提示已经存在

只要mail处留空的话那注册的时候就会出现已经存在



已经有人照着我的方法修改成功了,
10楼的兄弟,要认真仔细些,
另外如果你的是UTF-8编码的话,尽量别用记事本编辑,要用专业的代码编辑软件

2.7.1后台不是就有这个功能吗?

已经有人照着我的方法修改成功了,
zhangyh 发表于 2010-2-1 09:29

我照着您的办法修改成功了。
但现在有点不足的就是,在订单提交页面上的用户注册那里还是必须要输入email的。能否再将这里补充一下呢?