WordPress Bulk Edit Products for WooCommerce 插件修改紀錄

研究背景

如果經常使用 WooCommerce 進行電商管理,應該對 Bulk Edit Products for WooCommerce 這款插件不陌生。它提供類似 Excel 的操作介面,讓使用者能夠批量編輯產品價格、描述,甚至能修改第三方 meta field,非常實用。

然而,對於僅需要基本功能、但產品數量較多的使用者來說,免費版的一個限制令人頭疼——每頁最多只能顯示 10 項商品。如果想要一次顯示所有產品,則需要升級到 Premium 版本,價格為 22 美金。但如果我們的伺服器效能足夠,是否可以透過修改插件代碼來突破這個限制呢?

發掘思路

既然該插件允許調整每頁顯示的產品數量,那麼一定存在對應的變數或函數來控制這項設定。我們的目標是找到這個變數,修改它,並測試是否能讓免費版突破限制。

alt text
首先先從他的文字本體找到對應的翻譯檔案,我們直接從 WordPress 下載他的免費版本,搜尋 “Products per page” 這串關鍵字
alt text
可以注意到我們找到了,通靈一下我們在 admin/editor.php 看到了 “products_per_page” 這個關鍵字,那就繼續用這個關鍵字往下找看看
alt text
includes/data.php 發現了很像變數的設定,我們嘗試修改成 50 之後存檔更新插件後到網站看有沒有用,可以注意到此時此刻我們依舊未改變到,那就代表應該還有另一個變數在控制,這個函數主要也只是初始設定,具體設定應該還有一個 ajax 請求發送,這是我們要找的目標。

於是針對 “per_page” 這個關鍵字我們要繼續搜尋,終於找到高機率可能是的變數,所以修改,上傳,測試。
alt text
alt text

完成,結束,我們可以在一頁中顯示出我們所有產品了。

透過對插件代碼的分析,我們發現影響 WooCommerce Bulk Edit 插件顯示產品數量的變數,並成功修改它,讓免費版本突破 10 項商品的限制,實現一次性顯示更多產品的需求。