外觀
佈景主題
來源:佈景主題架構
需要注意
共 7 項 — 1 高 / 4 中 / 2 低
除錯日誌殘留
- 位置:
functions.php:128-135 - 說明: 7 行 error_log 將訂單備註內容寫入伺服器日誌,建議自正式環境移除
- 建議調整: 移除或改為 WP_DEBUG 條件判斷
- 影響等級: 高
- 驗收: 修改完成後重跑掃描,該項目不再出現
SQL 拼接(條件式風險)
- 位置:
functions.php:117 - 說明:
$order_id未經$wpdb->prepare()直接拼入 SQL,但來源為 Woo hook 參數非外部輸入,實際可利用性有限 - 建議調整: 改用
$wpdb->prepare('SELECT ... WHERE comment_post_ID = %d', $order_id) - 影響等級: 中
- 驗收: 修改完成後重跑掃描,該項目不再出現
空陣列未防護
- 位置:
functions.php:120 - 說明:
$comments[0]未檢查陣列是否為空,訂單無備註時可能產生 PHP warning 或中斷流程 - 建議調整: 加入
if (empty($comments)) return; 防護 - 影響等級: 中
- 驗收: 修改完成後重跑掃描,該項目不再出現
付款方式判斷邏輯脆弱
- 位置:
functions.php:111-141 - 說明: 用訂單備註字串比對(信用卡/TAIWANPAY/超商代碼)判斷付款方式,金流商調整備註格式時可能不再正確運作
- 建議調整: 改用
$order->get_payment_method()取得付款方式 ID - 影響等級: 中
- 驗收: 修改完成後重跑掃描,該項目不再出現
硬編碼商品名稱與 shipping ID
- 位置:
js/main.js:41-83 - 說明: 用
includes('預購')includes('團購')比對商品名稱,使用固定 ID 操作 shipping method - 建議調整: 改用商品 tag/category 或 meta 判斷,shipping ID 改為動態取得
- 影響等級: 中
- 驗收: 修改完成後重跑掃描,該項目不再出現
Customizer 效能浪費
- 位置:
functions.php:46-62 - 說明: 每次 customize_register 都 foreach 所有 theme_mods 重新 set,不必要
- 建議調整: 移除此段或改為只在特定條件下執行
- 影響等級: 低
- 驗收: 修改完成後重跑掃描,該項目不再出現
購物金解析依賴中文冒號
- 位置:
template-parts/header-v4.php:38 - 說明: 用
explode(':', $text)解析 shortcode 輸出,格式變動時可能失效 - 建議調整: 改用 shortcode 的結構化輸出或正規表達式
- 影響等級: 低
- 驗收: 修改完成後重跑掃描,該項目不再出現
驗收
修改完成後重跑佈景主題掃描,所有高/中風險項目清除。
