在做傷迪傷口網的時候,客戶要求無需登錄注冊也可以下訂單購買商品。這個網站是用dedecms5.7二次開發的,已經有很我地方被我小改過了,這下發現網站本身不帶這功能,這又得改原程序了。
在官方論壇上也看到有人有這樣子的需求,看了一下他們的問題也解決了,這里把他們的方法也貼出來。
第一個人的解決辦法是這樣子的,原文如下:
修改DEDE本身的訂單程序,DEDE不就是要求注冊會員才可以嗎 ? 簡單 那我現在注冊一個公共會員 寫死在程序中去 就是在用戶名和密碼字段我直接自動寫了值 不就OK了嗎 呵呵,當然如果你想智能一點 如果用戶是會員 則用用戶的會員號 否則就用默認的賬號 也簡單呀 JS唄 !!!
第二個人的解決辦法原諒如下:
可以這樣操作試一下 后臺先開啟會員功能 如果不希望有會員加入 可以禁止會員注冊
然后找到plus/carbuyaction.php文件
刪除以下代碼
- //確認用戶登錄信息
- if($cfg_ml->IsLogin())
- {
- $userid = $cfg_ml->M_ID;
- }
- else
- {
- $username = trim($username);
- $password = trim($password);
- if(emptyempty($username) || $password)
- {
- ShowMsg("請選登錄!","-1",0,2000);
- exit();
- }
- $rs = $cfg_ml->CheckUser($username,$password);
- if($rs==0)
- {
- ShowMsg("用戶名不存在!","-1",0,2000);
- exit();
- } //Vevb.com
- else if($rs==-1)
- {
- ShowMsg("密碼錯誤!","-1",0,2000);
- exit();
- }
- $userid = $cfg_ml->M_ID;
- }
在我這個網站中,這兩個都不能完全解決問題,但是結合一下兩個人的,正好符合我的要求。第一個人的思路中存在一個問題,就是“如果有人買了東西沒有支付 后來的用戶不是要一起支付了 能看到其它的未支付訂單”,下面有人提出了這個質疑,不太理想。第二個人把那段代碼刪除后,那就是把用戶登錄的信息也沒在訂單中關聯起來了,所以我們即要游客可以訂單,會員也能購買。如是我作了如下修改:
/plus/carbuyaction.php的
- //確認用戶登錄信息
- if($cfg_ml->IsLogin())
- {
- $userid = $cfg_ml->M_ID;
- }
- else
- {
- $username = trim($username);
- $password = trim($password);
- if(emptyempty($username) || $password)
- {
- ShowMsg("請選登錄!","-1",0,2000);
- exit();
- }
- $rs = $cfg_ml->CheckUser($username,$password);
- if($rs==0)
- {
- ShowMsg("用戶名不存在!","-1",0,2000);
- exit();
- }
- else if($rs==-1)
- {
- ShowMsg("密碼錯誤!","-1",0,2000);
- exit();
- }
- $userid = $cfg_ml->M_ID;
- }
改為:
- //確認用戶登錄信息
- if($cfg_ml->IsLogin())
- {
- $userid = $cfg_ml->M_ID;
- }
- else
- {
- $username = trim($username);
- $password = trim($password);
- if(emptyempty($username) || $password)
- {
- $userid = 0;
- }
- else
- {
- $rs = $cfg_ml->CheckUser($username,$password);
- if($rs==0)
- {
- ShowMsg("用戶名不存在!","-1",0,2000);
- exit();
- }
- else if($rs==-1)
- {
- ShowMsg("密碼錯誤!","-1",0,2000);
- exit();
- }
- $userid = $cfg_ml->M_ID;
- }
- }
修改的意思就是,如果用戶沒有登錄,那我就把0賦值給 id,這樣在后臺只要看到是0下的訂單,就是游客的。經目前測試,沒發現問題。
新聞熱點
疑難解答