這次仿站,有人問,dedecms加入購物車后,訂單號S-P開頭的,能不能換成其他形式的,實際上是可以的,只要找到相關(guān)shopcart購物車調(diào)用的類文件修改下,找到dede網(wǎng)站下include/shopcar.class.php
大概找到46行代碼處,這里就是生成訂單號的代碼
修改代碼:
$this->OrdersId ='S-P'.time().'RN'.mt_rand(100,999);
修改紅色部分就可以了,代碼中常量解釋如下
這句話中$this->OrdersId 最后得到的就是訂單號。
'S-P' 這個就是織夢商城訂單號的開頭字母。我們可以隨意修改。
time() 這個是Unix時間戳(Unix Timestamp:時間戳是自 1970 年 1 月 1 日(00:00:00 GMT)以來的秒數(shù)),也就是訂單號S-P后邊跟的那一串?dāng)?shù)字。
'RN' 這個是訂單號中數(shù)字時間戳后邊又跟的字母,這個也可以去修改。
mt_rand(100,999) 這個是100~999之間,隨機生成一個數(shù)字。也就是說,隨機生成一個3位數(shù)。也可以其他如改成隨機兩位數(shù)的。
之所以這樣組合生成訂單號,是因為這樣可以有效防止訂單號發(fā)生重復(fù)。如果每秒生成上千的訂單號的大商城,諸如京東這樣的商城,那么如果用這樣方式組合生成訂單號,就有可能會出現(xiàn)訂單號重復(fù)的現(xiàn)象,我們可以在加入些變量或常量,例如用戶id,訪客ip。