关于将ecshop会员注册页面的Email修改成非必填项

2016-09-11 20:39 来源:www.chinab4c.com 作者:ecshop专家

 有人说,在后台的 “会员注册项设置 ”里面不是可以控制是否必填吗??我就碰到好几个人这么说过。

其实是他看问题不认真,这里说的是“将会员注册页面的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行左右) ,注意是删除

 

 

    /* 检查email */
    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行左右)
 

/* 检查email是否重复 */
        $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;
        }