结账页的服务条款勾选框怎么做才拦得住
现象#
加了一个「我已阅读并同意条款」的复选框,顾客不勾也能点「付款」,订单里也查不到任何勾选记录。
原因#
- 复选框只是 UI,没有拦截逻辑就不会阻止买家继续付款
block_progress未声明时平台忽略扩展返回的拦截结果- 勾选状态放在组件 state 里,切换步骤重新挂载就丢
- 2026-07 起
useBuyerJourneyIntercept弃用,长期要迁到校验 Function
处理步骤#
- 勾选后立刻
applyAttributeChange写terms_accepted,别只存 state - 在 toml 的
[extensions.capabilities]里开启block_progress = true - 在
purchase.checkout.actions.render-before读属性判断是否勾选 - 未勾选时返回
behavior:'block',错误用target指到复选框本身 - 单页与三页结账各下一笔不勾选的测试单,确认都能停住
验收标准#
不勾选时点「付款」停在原步骤且复选框标红;勾选后能付款,订单附加信息里出现 terms_accepted=yes。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。