快速答案:大版本更新不要在正式站直接按。順序是:在剛從正式站複製出來的測試站先更新、跑完購物與上課流程;正式站挑離峰、避開檔期與考試時段,一次只更新一個外掛家族;更新前做一個專用的備份點。會跑資料庫升級的更新,要先想好退回的代價——外掛檔案退得回去,資料庫不一定。
為什麼會這樣 #
WooCommerce、課程外掛、會員與訂閱外掛的大版本,常常不只改畫面,而是改資料結構:訂單的儲存方式、測驗題目的格式、會員方案與角色的對應。更新完後台跳出「需要更新資料庫」,就是在做這件事。資料一旦轉換過,把外掛退回舊版,舊程式讀不懂新資料,只能還原資料庫,而還原會把這段時間的新訂單一起帶走。課程外掛的例子見Tutor LMS 更新後測驗壞掉。
另一個風險在周邊:金流、電子發票、物流、課程開通都是掛在 WooCommerce 上的擴充,主程式跳了一大步、擴充還沒跟上,壞掉的往往就是結帳和開通。
怎麼處理 #
- 先分級。看版本號哪一碼變了、更新說明有沒有提到資料庫或結構變更。同一小版本的修補可直接更新;跨小版本先上測試站;跨大版本或有資料庫升級的,測試站加完整檢查。
- 測試站要「剛複製」的。一個月前的測試站資料太舊,測不出問題。複製後先做三件事:金流切到測試模式或拿掉正式金鑰、寄信關掉或只寄給自己、整站加密碼保護。訂閱制的站帶著正式金鑰會真的扣款(見訂閱被扣兩次怎麼查);圖片放在雲端儲存的,也要確認測試站不會寫進正式站的空間。
- 照清單跑流程。電商:加入購物車、套折價券、結帳到金流頁、訂單狀態、發票、通知信。課程站:購課後自動開通、進課程、看影片、作答測驗。後台:訂單列表能開、編輯器能存。
- 分批。一次動一個家族:WordPress 核心 → WooCommerce 主程式 → 金流、發票、物流擴充 → 課程或會員外掛。每批之間清快取、跑一次流程,壞了才知道是哪一批。
- 排時間。避開促銷、開課與考試時段,選你隔天有空盯的時候,不要週五晚上。
- 留回滾點。正式站更新前手動備份並註明用途;會升級資料庫的,先開維護模式或暫停收單,讓「退回」時中間沒有夾著新訂單。
我們實際遇過的情況 #
一家電商的大型多功能佈景主題要跨大版本更新,我們排定先在測試站更新、看過版面才動正式站,課程外掛補漏洞也一樣(見漏洞通知該不該馬上更新)。反例是外掛直接在正式站更新,Elementor 從此打不開,只能先還原(見更新後 Elementor 打不開)。
整套換掉會員外掛更要拆細:新會員購買、升級、取消後恢復、訂閱暫停時角色怎麼變,都在測試站逐一跑過,最後匯出會員名單比對方案與角色,清單見換會員外掛前的比對與測試。
什麼時候該找人 #
外掛已落後好幾個大版本、要好幾個家族一起升;或資料庫升級卡在一半,訂單、學員成績開始異常。這時再按一次更新或直接還原,都可能讓資料更亂,要先有人判斷資料轉換進行到哪裡。
WPTOOLBEAR網站工具熊