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

如何将逗号分隔订单ID传入wcs_get_subscriptions函数获取订阅数据

解决方法:从查询字符串提取订单ID并传入wcs_get_subscriptions

没问题,我来帮你搞定这个需求。你只需要把查询字符串里的逗号分隔ID转换成数组,再传给wcs_get_subscriptions的post_id参数就行,具体操作步骤和代码示例如下:

1. 提取并处理查询字符串中的订单ID

首先从查询参数里拿到逗号分隔的ID字符串(假设你的查询参数名是order_ids,如果实际用的是别的名称,替换成对应字段即可),然后把它拆成数组,同时做基础校验避免非法输入:

// 从查询字符串获取订单ID列表,默认空值
$order_ids_str = isset($_GET['order_ids']) ? $_GET['order_ids'] : '';
$target_post_ids = [];

if (!empty($order_ids_str)) {
    // 把逗号分隔的字符串拆成数组
    $target_post_ids = explode(',', $order_ids_str);
    // 过滤掉非数字的无效ID
    $target_post_ids = array_filter($target_post_ids, 'is_numeric');
    // 把字符串类型的ID转为整数(可选,但更贴合post_id的类型要求)
    $target_post_ids = array_map('intval', $target_post_ids);
}

2. 将处理后的ID数组传入订阅查询函数

现在把处理好的$target_post_ids数组替换你原代码里硬编码的ID列表,就能查询对应订单的订阅信息了:

if (!empty($target_post_ids)) {
    $subscriptions = wcs_get_subscriptions(array(
        'subscriptions_per_page' => -1,
        'subscription_status' => array('active'),
        'post_id' => $target_post_ids // 这里用处理后的动态数组替代硬编码ID
    ));

    foreach($subscriptions as $sub){
        // 输出配送城市,你也可以替换成其他需要的订阅字段
        echo $sub->get_shipping_city() . '<br>';
    }
} else {
    // 处理没有传入有效ID的情况
    echo '未获取到有效的订阅订单ID';
}

额外提示

  • 一定要确认查询参数的名称和你实际使用的一致,比如如果你的URL是?selected_ids=123,456,就要把$_GET['order_ids']改成$_GET['selected_ids']
  • 加入array_filter和array_map是为了避免非法字符或非数字ID导致的查询错误,提升代码的健壮性
  • 如果这个脚本是公开可访问的,建议加上权限校验,防止恶意请求获取订阅数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:08:53