You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WooCommerce API:正确传递含+号邮箱地址的方法

解决WooCommerce API传递含+号邮箱的404问题

问题描述

尝试通过以下两种方式调用WooCommerce API获取客户数据,均返回404错误,怀疑是邮箱中的+号导致:

第一种方式:

let currentUserEmail = "test+test@my-url.com"
let apiURL = 'https://www.url.com/wc-api/v3/customers/email/' + currentUserEmail;

第二种方式:

let currentUserEmail = "test+test@my-url.com"
let apiURL = 'https://www.url.com/wc-api/v3/customers/email/' + encodeURIComponent(currentUserEmail);

问题原因

  • 直接拼接邮箱时,URL路径中的+会被服务器解析为空格,导致匹配不到正确的客户邮箱。
  • 使用encodeURIComponent会将+转为%2B,但WooCommerce v3 API的customers/email/{email}端点对路径中编码后的特殊字符兼容不佳,无法正确识别。

正确解决方案

方案1:使用encodeURI转义邮箱

encodeURI仅转义URL中特殊的保留字符(比如+),但保留邮箱的@、.等必要字符,更适配API路径的解析逻辑:

let currentUserEmail = "test+test@my-url.com"
let apiURL = 'https://www.url.com/wc-api/v3/customers/email/' + encodeURI(currentUserEmail);

方案2:改用查询参数传递邮箱

这是更稳妥的替代方案,WooCommerce API支持通过email查询参数筛选客户,编码后的参数能被服务器正确解析:

let currentUserEmail = "test+test@my-url.com"
let apiURL = `https://www.url.com/wc-api/v3/customers?email=${encodeURIComponent(currentUserEmail)}`;

方案3:验证API端点兼容性

确认站点的WooCommerce版本是否支持customers/email/{email}路径端点,部分旧版本或自定义配置的站点可能仅支持查询参数方式。


内容的提问来源于stack exchange,提问作者Vueer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 21:57:35