如何通过WooCommerce REST API创建带过期日期的优惠券?
解决WooCommerce REST API创建优惠券时过期日期无法设置的问题
以下是关键解决要点和正确请求示例:
1. 日期格式需合规
WooCommerce REST API要求date_expires字段使用带时区信息的ISO 8601格式(如YYYY-MM-DDTHH:MM:SS±HH:MM),或仅使用纯日期格式YYYY-MM-DD(不含时间部分)。仅传递不带时区的时间字符串会导致API无法正确解析。
2. 避免同时传递date_expires和date_expires_gmt
API会根据WordPress站点的时区设置,自动将date_expires转换为对应的GMT时间。手动同时传入两个字段会引发冲突,只需单独传递date_expires即可。
3. 确保API版本与权限达标
- 使用v3及以上版本的WooCommerce REST API,旧版本对日期字段的处理存在兼容性问题。
- 确认API密钥拥有编辑优惠券的权限,否则无法修改日期相关字段。
正确请求示例
带时间和时区的格式:
{ "code": "IGNME", "description": "IGNORE ME", "discount_type": "percent", "amount": 5, "date_expires": "2024-03-21T19:23:00+01:00" }
仅日期的格式:
{ "code": "IGNME", "description": "IGNORE ME", "discount_type": "percent", "amount": 5, "date_expires": "2024-03-21" }
额外排查步骤
- 检查WordPress后台设置-常规中的时区配置,确保
date_expires的时区信息与站点时区匹配。 - 验证请求的
Content-Type头是否设置为application/json,避免JSON数据解析错误。 - 用Postman等工具直接发送请求,排除代码实现层面的问题。
内容的提问来源于stack exchange,提问作者sommmen
相关产品推荐
相关产品推荐

