如何開發 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 開發日常

有經營 LINE 官方帳號的站長對以下情境一定不陌生:顧客在 LINE 上詢問「我的訂單什麼時候到?」但打開 LINE 官方帳號後台,看到的只是陌生的好友姓名,跟官網後台的會員名稱完全對不起來、也不知道這個 LINE 會員買了什麼、訂單狀態如何。 為了解決這個問題,我們團隊歷經三個月的開發,期間訪談了許多位第一線經營 LINE 官方帳號的電商業主,根據他們的回饋,開發出這套專為 WooCommerce 所設計的客戶管理解決方案,目前該外掛已經進入穩定期,也是我們團隊每日必用的 LINE 管理工具。 為了可以協助更多不同產業的使用情景,我們將該外掛開源出來,歡迎有需要使用的朋友自由取用,以下介紹該外掛件的主要功能: 一、好友管理 截至目前撰文當下,在 LINE 官方後台是無法主動推播訊息給新加入或是尚未傳送過訊息的好友,透過本外掛可以將新加入的好友直接匯入網站會員資料庫,即可主動傳送訊息並開始進行聊天。 好友匯入有三種方式,分別是:當好友主動傳送訊息時自動匯入、從網站會員匯入以及從 LINE 官方帳號匯入,如果搭配 LINE 登入外掛如...

在思考 Bazewp 的商業模式時,第一直覺就是可以把聯盟行銷的連結放在外掛分析頁的查看價格按鈕上面,萬一有人透過該連結購買外掛就能賺得分潤,但由於外掛實在太多,要個別去申請對應的推廣連結也是一個大工程。 於是就在想會不會有平台已經整合好這件事:只要申請該平台的帳號,就能直接開通 Kinsta 或是 Elementor 等多家 WordPress 產品的聯盟行銷資格,而不用一個一個去開帳號,然後身為主機商或是外掛開發者想要找到推廣者,也能上架該平台讓人推廣。 抱持著這樣的好奇心,第一份 WordPress 市場研究報告就決定以聯盟行銷外掛為主題,以下報告結合 Bazewp 的外掛數據,並使用 AI 的深度研究功能來獲取初稿,再經由人工驗證與潤稿,希望透過這樣的分析能找出該市場的潛在機會。 以下為報告全文: 網頁好讀版:https://oberonlai.blog/wordpress-affiliate-plugin-eco/...

時常看到新聞寫 WordPress 的市佔率全球之冠,或是今年市佔又提升了多少個百分點,每次看到我都會想,全世界到底有多少個網站是用 WordPress 做的?這些網站都是什麼類型的網站?他們都用了什麼佈景主題或外掛?甚至都是哪些產業在使用? 為了更進一步挖掘 WordPress 的生態系,我決定做一個專門搜集 WordPress 網站的網站,利用爬蟲去找出使用 WordPress 架設的網站,然後搜集佈景主題以及外掛資訊,並且使用 AI 進行分類與辨識: Bazewp.com 的主要功能介紹如下: 1. WordPress 網站搜尋 首頁的部分可以直觀的看到網站列表以及篩選工具,每個網站搜集的資訊有: 網站名稱、描述、語系、截圖、配色 產業類型、網站類型 網站關鍵字 使用的佈景主題、外掛 聯絡資訊、社群連結 在電腦板上面可以用分隔視窗查看單一網站的資訊,左側顯示網站列表,方便在瀏覽時可以快速切換,在右側邊欄展開的情下重新整理頁面,則會直接進入單一網站的介紹頁,方便後續瀏覽與分享。...