定型管 電子鈑金
返回列表 回復 發帖

帖子標題:[分享] ECSHOP驗證郵件後送積分的設置方法

1、lib_common.php 的 log_account_change方法
/**
* 記錄帳戶變動
* @param int     $user_id       用戶id
* @param float $user_money     可用余額變動
* @param float $frozen_money 凍結余額變動
* @param int     $rank_points 等級積分變動
* @param int     $pay_points     消費積分變動
* @param string   $change_desc 變動說明
* @param int     $change_type 變動類型:參見常量文件
* @return   void
*/
function log_account_change($user_id, $user_money = 0, $frozen_money = 0, $rank_points = 0, $pay_points = 0, $change_desc = '', $change_type = ACT_OTHER)
它會執行兩個動作,一個是調整註冊會員積分調整記錄日誌,一個就是修改個人帳戶的積分。
2、在user.php驗證郵件方法下加入如下代碼
/* 驗證用戶註冊郵件 */
elseif ($action == 'validate_email')
{
$hash = empty($_GET['hash']) ? '' : trim($_GET['hash']);
if ($hash)
{
       include_once(ROOT_PATH . 'includes/lib_passport.php');
       $id = register_hash('decode', $hash);
       if ($id > 0)
       {
         $sql = 'SELECT is_validated FROM '.$ecs->table('users')." WHERE user_id='$id'";
                     $row = $db->getRow($sql);
                     if($row['is_validated'] == 0)
                     {
                               $sql = "UPDATE " . $ecs->table('users') . " SET is_validated = 1 WHERE user_id='$id'";
                               $db->query($sql);
                               $sql = 'SELECT user_name, email FROM ' . $ecs->table('users') . " WHERE user_id = '$id'";
                               $row = $db->getRow($sql);
                               //驗證完成送積分 by gaojin 201003300850
                               include_once(ROOT_PATH .'includes/lib_common.php');
                               log_account_change($id, 0, 0, 0, 500,$GLOBALS['_LANG']['register_points']);
                               show_message(sprintf($_LANG['validate_ok'], $row['user_name'], $row['email']),$_LANG['profile_lnk'], 'user.php');
                              
                     }
                     else
                     {
                               show_message(sprintf('請不要重復驗證', $row['user_name'], $row['email']),$_LANG['profile_lnk'], 'user.php');
                     }
       }
}
show_message($_LANG['validate_fail']);
}

修改了重復點擊驗證郵件未驗證的bug,會導致重復送積分的問題。希望對大家有所幫助。


ecshop模板
网站模板
提醒您: 您在"ECSHOP 交流討論區"交流請遵守台灣法律規範,"最模板" 發表的文章《ECSHOP驗證郵件後送積分的設置方法》版權歸屬作者所有,如是轉貼版權歸屬原作者所有.本論壇不對其真實性做任何考證.
返回列表