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