如何開發 WooCommerce 日誌紀錄外掛


每次遇到想要跟我學習 WordPress 外掛開發的朋友來信,總是只能丟些教學文件給他們,畢竟我也不知道他們想做什麼東西,只能提供官方文件給他們參考,雖然這幾年來也寫了不少,但好像都缺少比較完整的開發教學。

想到之前為了教老婆開發而整理出的一套課程大綱,似乎有這個契機可以把它發展下去,但如果只是講理論而沒應用好像無法立即派上用場,於是想到可以整合之前寫過的小工具作為內容,就可以設計出真的能做出東西的教材。

剛好上週為了除錯的事情順手寫了一支日誌外掛,整合理論與實務的教學計畫如下:

--

前言

日誌紀錄是開發者與網站維護人員最重要的好夥伴,除了可以在開發當下輸出執行結果來確認程式的邏輯外,當網站發生錯誤時也能從紀錄中去檢查問題所在原因。查看 WooCommerce 的日誌紀錄步驟為:進入後台側選單 > 點選 WooCommerce > 狀態 > 日誌紀錄 > 選擇日誌檔 > 查看,就會顯示相關的資訊。

一、WooCommerce 內建日誌紀錄的問題

WooComerce 內建的日誌有以下幾個痛點:

  1. 選單的目錄層級過多,日誌檔太多時東西不好找
  2. 要更新日誌內容必須點選查看,直接重新整理頁面會回到預設的日誌檔
  3. 日誌紀錄的時間是由舊到新,如果單一檔案內容太多必須要捲很長的頁面才能看到最新一筆紀錄
  4. 日誌紀錄的時間非本地時間,查看時腦海中必須自行轉換
  5. 紀錄種類標示不清,難以一眼區分該紀錄是重大錯誤還是單純的訊息通知

二、WooCommerce 日誌紀錄外掛開發目標

為了解決以上問題,本篇教學將會介紹如何開發一支 WooCommerce 專用的外掛,本外掛預期會達到的效果如下:

  1. 可以在後台 WooCommerce 選單下點擊日誌紀錄選單後直接進行查看,節省多次點擊的步驟
  2. 可以設定要查看的日誌檔名稱,設定完成後僅會顯示該日誌檔的紀錄,以減少翻查時間
  3. 日誌使用表格條列式呈現,並以日誌檔名稱、日期、本地時間做分類,排序方式由新到舊
  4. 日誌表格突顯紀錄類型,讓使用者可以很容易的區分需要注意的紀錄
  5. 開發完成後導入 Github Action 打包 zip 檔供使用者第一次下載安裝
  6. 開發完成後導入自主託管更新機制,讓使用者不需另行下載安裝 zip 檔便能在後台自動更新

三、適合對象

  1. 正在學習 PHP 的新手
  2. 想要了解 WordPress 開發基礎知識的 PHP 工程師
  3. 想要開發 WordPress 外掛的創業者
  4. 想設計 WordPress 課程的老師
  5. 想撰寫 WordPress 書籍的作者

四、課程大綱

1. 認識 WordPress 外掛開發基礎知識

  • 介紹 WordPress 運作的組成:Nginx、MySQL、PHP
  • 介紹開發環境的專有名詞:本機、測試主機、正式主機
  • 使用 Local WP,介面操作教學
  • 介紹 WordPress 是由哪些檔案所構成
  • 介紹外掛的基礎組成:主程式、標頭宣告
  • 介紹 PHP 變數、函式、輸出
  • 介紹 WordPress 勾點、常用 API、資料表
  • 介紹 FTP、打包上傳
  • 介紹 Git、Github、開發流程、分支
  • 安裝 WordPress Coding standard、自動格式化
  • 介紹外掛檔案拆分邏輯,使用 Autoload、Packagist
  • PHP 物件導向基礎知識

2. WooCommerce 日誌紀錄外掛後端開發流程

  • 讀取 WooCommerce 日誌紀錄檔
  • 解析日誌內容,組合日誌紀錄陣列
  • 註冊 REST API Endpoint 提供第三方讀取紀錄

3. WooCommerce 日誌紀錄外掛前端開發流程

  • 註冊後台選單
  • 使用 Master CSS 設計版面
  • 使用 PHP 輸出頁面內容

4.外掛發布與更新維護

  • 整合 Github Actions 發行安裝檔
  • 版本控管分支策略
  • 整合自主託管外掛更新機制

-

不知道這樣的教學內容對你會有所幫助嗎?有的話回信跟我說,讓我知道可以繼續發展下去~

WordPress 開發日常

Read more from WordPress 開發日常

很開心今年又有 WordCamp 可以參加,每次參加都很珍惜,每年都靠著志工們的無私付出,才能有這麼多精彩的活動可以參與。今年是第一次舉辦在高雄,高雄展覽館超大氣,整個會場超舒服,真希望新北也能有這麼棒的場地~ 今年我的攻略路線就是專心聽演講,以往都覺得在現場跟人聊天交流比較重要,演講的內容事後還可以去看 WordPress.tv 回顧,結果最後都沒去看XD,自己當過講者也知道,每次上台前要花好多時間準備、練習再練習才有辦法呈現一場演講,所以與其只是在哪邊喇賽,還不如好好享受每位講者精心準備的內容。 為了達成此目標,我六點起床,搭了 6:54 的高鐵直達高雄,再坐小黃 30 分鐘拼第一場演講,然後趁著每場中間的休息時間去贊助商攤位認識一下,午餐過後找不到咖啡可以喝,只能撐著睡意,努力聽到最後一場,最後為了趕高鐵放棄了閉幕抽獎,度過非常充實的一天。 為了更精準的吸收每場的內容,我聽的場次我都有用語音備忘錄錄下來,然後回到家再用 Gemini 整理出逐字稿與重點整理,這邊我把有聽的七個場次整理出來並補上自己的心得,分享給當天無法參與的朋友們。 高效率人才管理,讓 WordPress...

OrderChatz 全新推播功能公開封測中!現在加入 LINE 官方帳號 @dwpev 輸入「真買家」,就會收到外掛下載連結以及免費的封測序號,讓你親身體驗分眾行銷的強大威力! 在廣告成效越來越差的情況下,再行銷是所有電商業主的必修課題,尤其是如何篩選出正確的 LINE 好友進而投放正確的行銷資訊更是一門大學問,常使用 LINE 官方帳號進行再行銷的你可能會遇到以下問題: 人力成本與工作量爆表:人工逐筆查訂單、比對商品並貼標,遇到一位好友多張訂單就會產生大量重複作業,整體工時與人事成本快速攀升。 標籤維護難度高、錯誤率大:退款、追加購買或不同客服的命名習慣會讓標籤狀態不一致,導致分眾邏輯失準、名單品質下降。 推播額度與行銷成本浪費:把訊息傳給不相關或已流失的好友會降低開信/點擊率,浪費 LINE 發送額度與廣告預算,讓 ROI 看不清楚。 時效性不足、錯失最佳接觸時機:人工貼標與核查耗時,導致無法在限時促銷或新品上市的黃金時段快速觸達目標客群。 測量與優化受限:錯誤或雜亂的分眾會讓 A/B 測試與成效分析失真,行銷團隊難以找出真正有效的訊息與受眾組合。...

在使用 LINE 作為客服工具時,常遇到一個棘手問題:顧客在 LINE 上詢問「我的訂單什麼時候到?」但打開 LINE 官方帳號後台,看到的只是陌生的使用者名稱,完全無法得知對方是誰、買了什麼、訂單狀態如何。 由於 LINE 後台看不到好友的電子郵件,而 LINE 顯示名稱又常與顧客下單時填寫的姓名不一致,只能先向顧客詢問購買時使用的電子郵件。若顧客記錯或忘記,再加上同一電子郵件可能有多筆訂單,還得進一步詢問訂單編號或購買日期。 因此,一位顧客詢問訂單資訊的客服流程,通常需要經過以下步驟: 詢問顧客電子郵件 詢問訂單編號或購買日期 登入 WooCommerce 後台 在訂單列表中使用電子郵件搜尋訂單 確認所屬訂單並記下相關資訊 回到 LINE 聊天介面回覆顧客 假設顧客即時回覆且訂單搜尋一次就成功,每個步驟約花 30 秒,整個流程至少要 3 分鐘。若同時有 10 位顧客詢問,就需耗時 30 分鐘,這還不包含等待回覆、網站後台讀取速度,以及在不同平台之間切換的時間。難道沒有更便利的方法嗎? OrderChatz - WooCommerce LINE 客服外掛 OrderChatz...