DDEV 真的要說是神器,不誇張。 Docker-based local PHP+Node.js web development environments 看說明就是一套使用 Docker 容器技術,且以 PHP + Node.js 為主要開發環境為導向設計的工具。 但! 這套工具把 WordPre …
[WordPress] 搭配 Cloudflare WAF 規則減少網站被攻擊的幾個做法
昨天網站開始大量收到一組來自中國 IP 的請求,請求時間都很短,實屬惡意爬蟲的砍站行為。 收到警示通知後就把那整組 IP 丟給 Cloudflare WAF 防火牆功能給設定封鎖。 直到今天都還在很努力地爬,完全沒發現自己已經被封鎖了。 更多類似的資安防護操作筆記可以參考: [Fail2ban] 同 …
[Nginx] 升級 PHP 8 後開始的 502 Bad Gateway
這事件一開始是在一台 Oracle 的 Arm 主機上發生。網站莫名的會 502,沒有在 php_error.log 裡留下任何記錄,再來也只有「單一站」會這樣!該主機上的其他網站都沒事,實在詭異。 原本以為是 Oracle 的網路問題,但隨著這陣子開始升級不少主機的 PHP 版本到 8.0 後,這 …
[WooCommerce] 建立客製化結帳欄位、儲存欄位與顯示欄位資訊的開發流程整理
WooCommerce 這個「結帳欄位客製化」一直都是個不敗的議題。因為真的是每個電商網站中算最核心有變化的地方。 先不論金流、物流會利用這欄位來記錄資訊,有的店家想要知道結帳客人的生日又或是想問問一些關於產品的問題回饋等。這些操作都會在結帳頁面的欄位上做更動。 這篇筆記不是要把細節展開(過往筆記都 …
[Ubuntu] 編譯 Atop 與安裝的方法
也不知道為啥稍早 Ubuntu 22.04 Server 的機器無法直接使用 apt install atop 來安裝 atop 這個查詢硬碟使用狀況的指令。(如果可以的人應該就不會繼續看這篇了) 我就直接找原始碼來編譯與安裝了! 首先去下載頁面 抓當下最新版(Version 2.9.0) wget …
[WooCommerce] 後台使用貨號(SKU)搜尋訂單的方法
預設使用 WP_List_Table 建立的列表清單,搜尋功能並不是最完整。 WooCommerce 這邊還有提供一個事件過濾器的 Hook 來強化搜尋的結果: woocommerce_shop_order_search_results 使用這個 Hook 來加入貨號(SKU)條件的方法如下: fu …
[WooCommerce] 後台整理術:客製化使用者(顧客)資料顯示欄位與強化搜尋功能的方法
寫這篇就不得不說 WordPress 在「使用者」這塊後台工具其實還.. 很原始,預設沒有太多可以調整的地方。尤其直覺上應該是顯示「姓名」的那個「顯示名稱」欄位,其實固定是用兩個欄位「姓氏」與「名字」去組合出來的,中文使用者明顯會看到姓名中間有一個空格。 如果對 WooCommerce 使用者權限的 …
[WooCommerce] 取得訂單當下使用的 Coupon 優惠券折扣碼資訊
WooCommerce 後台可以新增建立很多組優惠折扣碼。而建立的標題就等於該折扣碼。但訂單記錄的時候只有把折扣碼(也就是標題)給寫進訂單裡。 如果要開放顧客也查看這個折扣碼的描述等資訊,就要把折扣碼資訊也在建立訂單當下寫進去訂單裡。避免如果日後同一折扣碼,但有不同操作,又或是刪除了折扣碼查詢不到當 …
[WooCommerce] 結帳時取得顧客於購物車與結帳頁面當下狀態資訊的方法
這需求真的幾乎可以說是每次進行客製化過程一定會遇到的開發技巧!! 比方說最基本的從顧客下單填寫的郵遞區號來判斷是台灣離島還是本島,用來計算運費。 又或是有條件的(比方說客戶消費等級)來開放某些金物流選項等。 過去有寫過不少這樣案例的筆記: [WooCommerce] 程式化處理購物車運費折扣 – 滿 …
[WooCommerce] 下單數位虛擬商品後訂單自動轉完成狀態的方法
預設內建針對數位虛擬商品下單流程還是有一個確認是否收到款項的過程。 結帳後建立訂單到客戶刷卡完,通常金流這塊,WooCommerce 網站只會讓該筆訂單到「處理中」的狀態。 雖然這也沒有什麼問題,就是通常有兩個以下情況: 完成訂單後才會開通某個商品更進階權限的需求 已經刷卡了,除非認定是盜刷,主動向 …