先前分享過 WordPress 目前積極在推動的 WooCommerce Blocks 區塊編輯器,裡面甚至包含了結帳頁的區塊,可以同步購物車的商品數量以及直接在編輯器中管理結帳欄位,但很可惜的是這個結帳區塊支援的金流外掛有限,更不用說是台灣的金流,因此決定自己先跳坑踩個雷來試著整合一下,實作效果如下:
![]() |
如果你也想體驗看看的話可以依照以下步驟:
![]() |
順利的話就可以在 4. Payment Options 的地方看到綠界信用卡的選項:
![]() |
目前這支外掛只支援綠界信用卡的選項,其他付款方式都還沒整合,所以就先幫我玩玩就好,如果你想用在正式環境的話建議是不要,我接下來會陸續整合其他的台灣金流外掛,有任何想法再跟我說吧,以下是寫給開發者看的內容:
心得一句話:「真是天殺的難搞!」
可能東西還很新吧,相關的教學都還只有官方的 Github 說明,而裡面的範例給的是 WooCommerce Stripe Plugin 帶有 52 個檔案變動的 Pull Request,還需要自己爬哪裡用到關鍵的 Hook 跟 Class,然後因為 Stripe 這支外掛結構滿大的,研究起來花了不少時間,後來索性去看 WooCommerce 內建的付款方式是如何整合。
但下場也沒好到哪裡去,woocommerce-gutenberg-products-block 裡面東西更多,引入 block 的方式跟官方文件又有些許不同,於是去抓目前已經有支援結帳區塊的金流外掛,最後找到 woocommerce-gateway-eway 這支,它的結構相對單純好理解得多。
整合過程中踩到以下幾個雷:
整合的方式跟建立金流很像,也是需要繼承一支類別來給定對應的方法,但不管是用 autoload 還是 require 的方式載入,都無法抓到 WooCommerce Blocks 裡面 AbstractPaymentMethodType 這個類別:
![]() |
我是直接複製貼上文件裡面的 namespace,想說都完全照貼了怎麼可能還會有錯,搞了好久想說從別的外掛複製看看,才驚覺文件裡面的路徑寫錯,Integration 少了一個 s…
![]() |
這告訴我官方文件不一定是 100% 正確的…
發現上述問題後以為接下來就海闊天空了,但事情沒那麼簡單,我習慣用 autoload 來載入 PHP 檔案,但發現如果直接在外掛的主檔案做載入的話,依舊抓不到 AbstractPaymentMethodType,後來文件裡面有寫因為載入順序的話,必須要先判斷該類別是否存在,有存在的話才進行載入,實驗過正確的寫法如下:
![]() |
本來想打算用官方的 @wordpress/create-block 來做,但知道他是根據 create-react-app 而來的所以應該很肥,因此想說自己來配置 Webpack 環境,無奈東西太多且相關的知識還遠遠不足,目前第一版外掛 JS 的編譯部分我完全沒處理,我是作弊直接拿 WooCommerce 內建的 BankTransfer 編譯過的 JavaScript 來改XD,關鍵在 name 的這個地方要改成跟金流類別裡面同樣的 id 名稱:
![]() |
![]() |
詳細的外掛結構可以參考 Github 存放庫,我會繼續把 Webpack 的環境配置給搞懂,到時候再把它開源出來,希望透過這樣的拋磚可以讓開發者大大們願意嘗試整合 WooCommerce Blocks,重點是可以一起交流研究,不然光是少了 s 的那一關我就快被逼瘋了,我們下週見!
最近常用 AI 產生程式碼,結果一堆程式自己都看不懂,只有錯誤發生時才會回頭研究到底寫了什麼。想說乾脆寫篇文章記錄一下,當作學習筆記。本篇主題是 OpenAI API 與 WordPress 的整合,讓 AI 能直接操作 WordPress。 初探工具請求(Function calling) 像 GPT 這類自然語言模型是靠訓練資料回應問題,但資料若過時,或想取得即時資訊,模型本身無法處理。這時可以透過「工具請求(Function calling)」來解決。 原理是:先告訴 AI 有哪些工具可用,當對話中出現相關需求,AI 就能自動判斷是否要使用某個工具。這些工具可以是 WordPress 的函式(如 WP_Query 查文章),也可以是外部 API(例如 Google 搜尋),執行後把結果再交給 AI 處理並產出回應,自然語言化地回答使用者。 適用場景 1. 整合客服機器人 如果你想設計聊天介面給其他人使用,像是客服機器人外掛,就很適合採用這個技術來取得網站內的資訊,像是讓客人查詢商品、訂單相關資訊、搜尋產品使用說明文件,或是讓管理員查詢營業額、網站瀏覽數據。...
過去我一直覺得,接收管理員通知用 Email 就夠了。如果訂單量不大,靠主機或第三方發信服務,其實也能運作得很順利。但後來與客戶訪談時發現,很多老闆根本不會用 Email,就算有,也常被廣告信和雜訊淹沒。 我自己試過很多收信軟體,試圖藉由工具來過濾重要訊息,但過不了多久,「重要信件」又變得滿天飛。雖然我會每天安排時間檢查,但有些緊急事件,例如新訂單通知,我希望能即時知道。 手機上的 App 通常只能根據「有新郵件」來推播,還找不到能針對「特定寄件者」推播的服務。因此我預設會把 App 的通知功能關掉,避免不緊急的訊息干擾我。 用 LINE 收通知也一樣,目前沒辦法只針對特定對象推播,只能全開或全關。這讓我想過是不是該換個沒那麼常用的通訊軟體來接收通知,但又懶得裝新 App,只好……自己開發一個外掛來解決了(?) 實機展示 要能在手機上接收到訂單通知,有三個關鍵技術:Web Push、Service Worker,以及 Progressive Web App,這邊先跳過他們,如果你也想在手機上收到訂單通知可以參考以下步驟: 1. 下載 DWP 網站助理...
創業的時光真是飛快得不可思議。明明才剛寫完第一個月的回顧,怎麼一下子又到了第二個月。這個月我全力投入開發新產品,原以為靠 AI 協助,兩週內就能搞定,沒想到一弄就是一整個月,還卡關連連,導致原本預定的行銷工作停滯不前。但我真的很喜歡開發產品的過程,彷彿在解謎闖關,每解開一個難題就多學一點新知,形成一種自我成長的良性循環。 工作佔比 四月份總工作時數為 65.64 小時,比三月增加了 24 小時。各類工作佔比如下: 行銷:30% 產品更新:7% 產品研發:63% 其中一個週末我整整兩天都在工作,有幾天甚至加班到晚上七點多。比較難統計的是晚上洗完澡到就寢前,還是會用平板跟 AI 討論白天卡住的問題,甚至請它幫我先寫好隔天要用的功能。若將這些時數也納入,總工時應該超過 70 小時。 我覺得比較理想的工作狀態是一個月大約 50 小時。像加班的那個週末,一直卡關讓我很煩躁,為了突破瓶頸逼自己解完才能休息,結果越急越解不開。後來乾脆休息一天,結果回來上工十分鐘就解決了。 所以還是得適時讓自己充電,給大腦一點空白,真正需要動腦時才有空間處理複雜問題。 行銷 內容行銷...