用途:woo-guard 用于在 WooCommerce 代码交付前进行审查,针对 AI 代理生成的或修改过的 WooCommerce 代码——扩展、支付与配送集成、结账定制、订单与商品逻辑。它作为首次实现后的“守卫”环节应用,因为 WooCommerce 平台持续演进(订单存储引擎、结账框架变更),凭记忆写出的代码可能已过时。
主要能力与规则:订单与商品数据方面,订单必须仅通过 CRUD API 访问(wc_get_order()、wc_get_orders()、$order->get_meta()、$order->update_meta_data() + $order->save()),禁止对订单数据使用 get_post_meta()、update_post_meta()、以 post_type => shop_order 的 WP_Query/get_posts() 及直接 $wpdb 连接 postmeta;商品、客户和优惠券走 CRUD 对象与 save();库存改动走 wc_update_product_stock() 语义,订单状态经 $order->update_status();触及订单的扩展需声明 HPOS 兼容,触及结账的需声明 cart_checkout_blocks 兼容。结账与金额方面,验证必须服务端进行(legacy 用 woocommerce_checkout_process,Blocks 用 Store API 扩展 schema),JavaScript 仅作 UX;金额不用浮点,使用 wc_format_decimal()、wc_price() 及 WooCommerce 税费/舍入设置。运行环境方面,WC()->cart 和 WC()->session 在 REST、cron、CLI、admin 上下文可能为 null,须先检查;优先使用钩子而非模板覆盖;后台任务用 Action Scheduler 并保证幂等。
使用方式:提供守卫模式(推荐,对 diff 或目标文件应用规则后自检)、实时模式(写入时应用规则)和审查模式(走 references/review-checklist.md 输出结构化发现报告,除要求外不编辑代码)。交付前自检涵盖订单元数据、CRUD 绕过、兼容性声明、服务端结账验证、金额浮点、运行时上下文、模板文件及安全基线。
适用场景:审查 WooCommerce 扩展、支付与配送集成、结账定制、订单/商品逻辑,尤其在 AI 生成代码后。限制:不覆盖 WordPress 完整层(i18n 与资源/查询纪律属 wp-guard);不审查商店配置、主题样式或支付账户设置;不决定定价或业务逻辑。安全基线在所有 WooCommerce 代码中保持最高严重级别:输出转义、请求数据 wp_unslash() 后清理、状态变更做权限与 nonce 检查、含变量的查询使用 $wpdb->prepare()。