Paid Memberships Pro 會員方案名稱亂碼解決方式(Cloudways資料庫編碼問題)

5/5 - (15 votes)

Paid Memberships Pro 會員方案名稱亂碼解決方式(Cloudways資料庫編碼問題)

有學員反應他在Cloudways平台上安裝的WordPress在使用Paid Memberships Pro這套外掛建立新的會員方案時(membership level),方案名稱無法顯示中文(英文跟數字正常),錯誤的畫面如下圖所示:

Paid Memberships Pro 會員方案名稱亂碼解決方式(Cloudways資料庫編碼問題)

這個問題是因為Paid Memberships Pro在建立資料庫表單的時候沒有規範編碼格式,像WordPress就有考慮到多國語言,所以他會有所規範。
(延伸閱讀:MySQL官方說明WordPress創建資料庫檔案)

解決方式:

  1. 先將資料庫編碼改成utf8:
    我是透過adminer這個只有一個php檔案的資料庫管理工具,他跟phpMyadmin功能幾乎一樣,但phpMyadmin安裝上會有些門檻。adminer不需要安裝,只要把檔案放到網站下,用瀏覽器打開就可以了。
    ALTER DATABASE MyDb CHARACTER SET utf8;
    WordPress官方說明:https://codex.wordpress.org/Converting_Database_Character_Sets
  2. 把Paid Memberships Pro停用,刪除Paid Memberships Pro所創建的資料表,然後重新啟用 Paid Memberships Pro:
    重新啟用後會創建新的資料表,這些新創建的資料表就會是utf8的編碼,於是創建中文名稱的會員方案就不會有問題了。

另外附上影片操作說明:

以下是影片裡頭提到的網址跟所用到的語法:

adminer官網:https://www.adminer.org/

adminer教學:http://www.aaronlife.com/teaching/uch_php_2015-06-03_00.html

MySQL語法:

1.查詢目前整個資料庫編碼:
show variables like “character_set_database”;

2.查詢某個資料表編碼,資料表名稱請修改:
SHOW TABLE STATUS where name like ‘wp_pmpro_membership_levels’;

3.將資料庫編碼改成utf8
ALTER DATABASE MyDb CHARACTER SET utf8;
WordPress官方說明:https://codex.wordpress.org/Converting_Database_Character_Sets

訂閱文章更新電子報

透過WordPress.com平台(jetpack功能)訂閱文章更新電子報

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

返回頂端