这里是普通文章模块栏目内容页
修改ECSHOP注册页面的Email修改成非必填项!

有人说,在后台的 “会员注册项设置 ”里面不是可以控制是否必填吗??我就碰到好几个人这么说过。
其实是他看问题不认真,这里说的是“将会员注册页面的email修改成非必填项”,注意是 email , 那个"会员注册项设置"里是不包括EMAIL的

闲话少叙,下面就来说一下方法,
注意此方法是在Ecshop2.7.2版上修改的,针对以前版本的修改,我曾在官方论坛发布过,大家可以去搜索查阅。


1)、

首先来修改模板文件, 这里以官方默认模板为例
打开 /themes/default/user_passport.dwt 文件
找到
onblur="checkEmail(this.value);"
将其删除,继续向下找到
<span id="email_notice" style="color:#FF0000"> *</span>
也将其删除

2)、

打开 /js/user.js 文件,找到下面JS代码段并删除之(大概在466行左右)

if (email.length == 0)
{
msg += email_empty + '\n';
}
else
{
if ( ! (Utils.isEmail(email)))
{
msg += email_invalid + '\n';
}
}

3)、

打开 /includes/lib_passport.php 文件,

找到下面代码,同样是删除(大概在40行左右) ,注意是删除


if (empty($email))
{
$GLOBALS['err']->add($GLOBALS['_LANG']['email_empty']);
}
else
{
if (!is_email($email))
{
$GLOBALS['err']->add(sprintf($GLOBALS['_LANG']['email_invalid'], htmlspecialchars($email)));
}
}

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;
}