列印模式主題
按這裡檢視本主題的原始格式
購物車研究站 > Twe-commerce3.X 程式 佈景 安裝 > 紅利模組BUG修正


發表者: pacman 2012-03-15, 04:44 PM
如題,新增了紅利模組後,出現這個錯誤訊息。
程式在checkout_confirmation.php中。
找遍了整個目錄也沒發現這個函數,不知在哪,請各位幫忙!!

發表者: oldpa 2012-03-15, 06:32 PM
安裝說明檔中
找出
CODE
if (!twe_session_is_registered('customer_shopping_points_spending'))
   twe_session_register('customer_shopping_points_spending');

更改成
CODE
if (!isset($_SESSION['customer_shopping_points_spending']))
   $_SESSION['customer_shopping_points_spending'];

找出字串
CODE
if(twe_session_is_registered('customer_shopping_points_spending')) twe_session_unregister('customer_shopping_points_spending');

更改成
CODE
if(isset($_SESSION['customer_shopping_points_spending'])) unset($_SESSION['customer_shopping_points_spending']);

找出
$HTTP_POST_VARS
更改成
$_POST



若已經安裝進程式中
開啟checkout_confirmation.php
找出
CODE
if (!twe_session_is_registered('customer_shopping_points_spending'))
   twe_session_register('customer_shopping_points_spending');

更改成
CODE
if (!isset($_SESSION['customer_shopping_points_spending']))
   $_SESSION['customer_shopping_points_spending'];

找出
$HTTP_POST_VARS
更改成
$_POST

開啟checkout_payment.php

找出字串
CODE
if(twe_session_is_registered('customer_shopping_points_spending')) twe_session_unregister('customer_shopping_points_spending');

更改成
CODE

if(isset($_SESSION['customer_shopping_points_spending'])) unset($_SESSION['customer_shopping_points_spending']);

發表者: pacman 2012-03-16, 09:09 AM
感謝老爹這麼快的回覆

另外在書中第7-16頁中,步驟17里,
if ((USE_REDEEM_SYSTEM == 'true') && ($customer_shopping_points = twe_get_shopping_points()) ......

= 與 == 的意義不同,不知道是否確定用 = 而非 ==
麻煩老爹能否確定一下。

再次感謝!!

發表者: oldpa 2012-03-16, 09:56 AM
應該是 ==
真的很抱歉
因為程式在打包時
一時不查將舊的安裝文件搞錯了

造成困擾請見諒

發表者: pacman 2012-03-22, 02:09 PM
老爹,我試了一下,= 才對,$customer_shopping_points在這裡被指定為紅利點數值

書中寫的是正確的

發表者: oldpa 2012-03-23, 09:38 AM
謝謝指正

發表者: release 2012-05-26, 11:02 PM
非常感謝老爹與pacman大大關於紅利模組的BUG修正分享。

但不知為何,照以上步驟(連同書上的26個安裝步驟)修改完成並上傳後,
仍於「外掛模組」的「訂單總計模組」中出現以下錯誤訊息:

Warning: include(/raid/vhost/網域名/www/twecommerce/lang/tchinese/modules/order_total/ot_redemptions.php) [function.include]: failed to open stream: No such file or directory in /raid/vhost/網域名/www/twecommerce/admin/modules.php on line 138

Warning: include() [function.include]: Failed opening '/raid/vhost/網域名/www/twecommerce/lang/tchinese/modules/order_total/ot_redemptions.php' for inclusion (include_path='.:/usr/local/php5/lib/php') in /raid/vhost/網域名/www/twecommerce/admin/modules.php on line 138

但後台的左欄已出現「客戶紅利點數」字樣。

不知以上的執行錯誤,是否因第五章的「TWE3.02升級」尚未完成,才導致的呢?
但敝站的主機版本為:
網頁主機: Apache/2.0.64 (Unix) PHP/5.2.13
PHP 版本: 5.2.13 (Zend: 2.2.0)

還望老爹及各方高手告知:ot_redemptions.php或modules.php
這兩支程式應如何除錯,感激不盡!

發表者: oldpa 2012-05-28, 09:28 AM
語系檔不存在
檔名ot_redemptions.php


請確實將語系程式ot_redemptions.php
上傳至
/www/twecommerce/lang/tchinese/modules/order_total/

發表者: release 2012-05-28, 10:17 AM
感謝老爹的迅速回覆。
但按照以上指示,上傳完語系程式ot_redemptions.php後,
並未在右欄出現「使用紅利點數--安裝模組」的項目,
而是看到「使用紅利點數--移除模組/編輯」的項目。
但是,我根本還沒按過「安裝模組」的按鈕啊!
而且,若此時點一下左欄的「紅利積點設定」,
就會被跳出後台,回到登入畫面。

另外,此時在左欄只看到「紅利積點設定」項目(雖已出現Points Rewards表單內容),
但未看到「客戶未核發紅利點數」及「客戶紅利點數」。

可否麻煩老爹進一步告知有哪個步驟或哪個程式安裝不完全呢?
再次感謝老爹撥空指導!!

發表者: oldpa 2012-05-28, 10:44 AM
建議你重新再安裝一次

發表者: release 2012-05-28, 02:41 PM
謝謝老爹建議,但我將redemptions.sql重新導入資料庫後,
在phpMyAdmin的視窗中出現以下訊息:

SQL 語法:
ALTER TABLE `admin_access` ADD `customers_points` INT( 1 ) NOT NULL ;
MySQL 傳回: 
#1060 - Duplicate column name 'customers_points'

上次載入是成功的,而這次載入卻失敗,可否請問是什麼原因?

發表者: oldpa 2012-05-28, 05:59 PM
那是重複導入相同資料的訊息
重安裝時可以跳過資料庫導入步驟

發表者: release 2012-05-28, 06:32 PM
那老爹可否容我問一個蠢問題:「如果已經重複導入了怎麼辦?」
對不起,老爹,我真的不太清楚「導入」是什麼意思?(只知「匯入」資料庫..)
如果redemptions.sql是資料表,為何在phpMyAdmin的視窗中找不到呢?

而且現在點左欄的「客戶紅利點數」後,已經不是正常出現Points Rewards表單了。而是出現以下錯誤訊息:
Warning: ini_set() [function.ini-set]: A session is active. You cannot change the session module's ini settings at this time in /raid/vhost/網域名/www/twecommerce/admin/includes/application_top.php on line 37

Fatal error: Cannot redeclare adodb_error_handler() (previously declared in /raid/vhost/網域名/www/twecommerce/includes/classes/adodb4990/adodb-errorhandler.inc.php:31) in /raid/vhost/網域名/www/twecommerce/includes/classes/adodb4990/adodb-errorhandler.inc.php on line 78

這也是和重複導入redemptions.sql有關嗎?
再次感謝老爹!!

發表者: release 2012-05-29, 01:06 AM
不好意思真的問了很瞎的問題…所以先自行試著依上面的錯誤訊息除錯。
先把admin_access 資料表中的customers_points及customers_points_pending兩個欄位刪除,重新載入redemptions.sql後,發現接下來也需刪除customers資料表中的customers_shopping_points欄位,仿上列步驟操作,接著就出現更多需刪除的欄位(甚至還有primary主索引),因為怕刪掉不該刪的資料表欄位,就不敢繼續刪了。

也試著爬文,發現真的有不少人也遇過相同或類似問題,但最後好像多半不了了之(而且已是舊版的紅利模組)。
不知老爹或版上高手可否就以上錯誤現象指點迷津?
難道重複匯入資料表後,就無解救之道了嗎?

發表者: oldpa 2012-05-29, 09:39 AM
既然出現重複導入的錯誤訊息
此時資料是不會再寫入資料庫
所以重新安裝可以跳過資料導入部份

如果已經刪除之前資料
就必須再一次做匯入的動作

redemptions.sql只是檔名
重點是裡面的語法

發表者: release 2012-09-04, 11:46 PM
後來發現:
第4版書中光碟的customers_points.php、customers_points_pending.php、redemptions.php這3個檔是2006舊版,需以更新檔替換之。
站上的「TWE檔案下載區」有紅利積點更新檔案,將裡面的3個檔案customers_points.php、customers_points_pending.php、redemptions.php依次按原路徑上傳覆蓋後,後台的「客戶紅利點數」已可正常顯示,但裡面只有紅利積點設定這個項目(可展開並操作)。
仍然看不到「客戶未核發紅利點數」及「客戶紅利點數」這兩個項目。

重新安裝後,仍無法解決此問題。不知是否和TWE版本有關?(我用的是3.01版的)
不知可否請老爹建議其他可能的修正或抓錯方向?
另,請問老爹:今天新發佈的Twecommerce_jquery_tabs.zip是否只適用於3.02版?
有請老爹及其他高手不吝賜教,感謝!!

發表者: oldpa 2012-09-05, 09:11 AM
看不到連結的原因之

一是否非最高管理者或是無管理權限
二資料庫中configuration資料表裡的CUSTOMERS_POINTS_PENDING與CUSTOMERS_POINTS為false或是不存在在兩個機碼

Twecommerce_jquery_tabs.zip適用3.01~3.02


發表者: release 2012-09-05, 11:39 AM
QUOTE (oldpa @ 2012-09-05, 09 11:59)
看不到連結的原因之

一是否非最高管理者或是無管理權限
二資料庫中configuration資料表裡的CUSTOMERS_POINTS_PENDING與CUSTOMERS_POINTS為false或是不存在在兩個機碼

Twecommerce_jquery_tabs.zip適用3.01~3.02

感謝老爹!

我試著用最高管理者的ID登入後台後,馬上就看到另兩個項目了。
(之前都是用另一管理者的ID登入)
就最初設計的精神來說,這是否為了方便管理,才把紅利的權限只留給最高管理者呢?
這幾天再試著賞玩Twecommerce_jquery_tabs.zip的功能。

再次感謝老爹!! smil3dbd4dbc14f3f.gif

發表者: release 2012-09-06, 06:27 PM
不好意思,又來請問老爹。

如果在結帳頁面,已輸入了紅利折抵金額,
但在下一頁並未看到紅利折抵,結帳金額也依然是未折抵前的數目,
可能原因為何?應如何修正呢?

謝謝老爹!

發表者: oldpa 2012-09-06, 07:49 PM
1.後台>外掛模組>購物總額>使用紅利點數??


發表者: release 2012-09-06, 08:38 PM
QUOTE (oldpa @ 2012-09-06, 19 49:24)
1.後台>外掛模組>購物總額>使用紅利點數??

謝謝老爹的迅速回覆。

後台外掛模組的部分已啟用了,
且結帳流程的「付款方式」頁面已出現了以下字樣:
---------------------------------------------------------------------
紅利點數使用功能
您目前有1,124.06 有效紅利點數可用於購物折抵NT$1,124.1.

請輸入您想要使用的點數 :  □
或勾選所有的可用餘額(只限於您的點數低於本筆訂單總額). (點數)-> □
----------------------------------------------------------------------

但不管是「輸入點數」,或直接勾選「所有的可用餘額」,
在下一頁都仍然顯示「未扣除紅利」的總金額,紅利相關字眼則完全消失不見。

不知是何原因呢?再次麻煩老爹賜教。

發表者: release 2012-10-14, 07:45 PM
修好了!!現在已能正常扣抵紅利點數。
提醒:以下的checkout_confirmation.php是僅照第四版書中第7-14~7-16頁修改的「新版checkout_confirmation.php」。
(此檔未照本文第1頁老爹和pacman版友的討論內容除錯。)

步驟如下:
1.先到後台移除紅利模組。
2.重新上傳「新版checkout_confirmation.php」,及customers_points.php、customers_points_pending.php、redemptions.php這3個檔的2012更新檔(見本頁最上方文中說明),上傳這4個檔後,再到後台重新安裝紅利模組。

不知為何照前頁老爹和pacman版友的討論內容除錯後的checkout_confirmation.php上傳,卻出現以下錯誤訊息:
Parse error: syntax error, unexpected '@' in www/twecommerce/checkout_confirmation.php on line 106

而試著用未除錯的版本,反而成功?不明其因,故在此提出,供老爹及版友參考 smil3dbd4d6422f04.gif

註:測試前,記得要到後台的「客戶紅利點數--紅利積點設定」中,作「啟動紅利點數系統」及「啟動紅利點數兌換系統」等等相關設定動作。

發表者: oldpa 2012-10-16, 09:40 AM
Parse error: syntax error, unexpected '@' in www/twecommerce/checkout_confirmation.php on line 106

試著將checkout_confirmation.php 第105 106 107行一些空白的地方用delete鍵清除
可能是COPY板上的程式碼
其中有些隱藏的字元導致

發表者: release 2012-10-16, 03:33 PM
謝謝老爹賜教。
那可否請問:這兩個檔(未除錯的「新版checkout_confirmation.php」和有除錯的checkout_confirmation.php)的差別,究竟在哪裡呢?
是在執行「功能」的差別或執行「效率」的差別,或是後者有支援往後版本的延伸性
,還是「程式碼的簡潔」呢?

謝謝老爹! smil3dbd4d6422f04.gif

發表者: oldpa 2012-10-16, 09:27 PM
主要是因應php5.3的版本修改
如果你是用3.01版的
checkout_confirmation.php
是可以不用修改也可以執行

如果是3.02就一定要改
不然程式會顯示錯誤

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)