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

如何通过WooCommerce REST API批量添加产品标签?

解决WooCommerce REST API批量添加标签的问题

问题描述

我使用以下代码通过WooCommerce REST API添加产品:

<?php
$data = [
    'name' => 'my title',
    'type' => 'simple',
    'regular_price' => '19',
    'description' => 'my description',
    'categories' => [
        [
            'id' => 9
        ],
    ],
    'tags' => [
        [
            'name' => 'my tag',
        ],
    ],

];

print_r($woocommerce->post('products', $data));
?>

现在我有一个数量不固定的标签数组:

array (size=3)
  'tag1' => string 'tag1' (length=4)
  'tag2' => string 'tag2' (length=4)
  'tag3' => string 'tag3' (length=4)

直接将这个数组放入上述代码的tags字段后无法成功提交,请问该如何解决?

解决方法

WooCommerce REST API要求tags字段的格式是由包含name键的关联数组组成的索引数组,你现有的标签数组是键值重复的关联数组,结构不符合API要求,需要先转换格式。

步骤1:转换标签数组格式

使用array_map函数将现有标签数组转换为API接受的格式:

// 你的原始标签数组
$original_tags = [
    'tag1' => 'tag1',
    'tag2' => 'tag2',
    'tag3' => 'tag3'
];

// 转换为API要求的格式
$formatted_tags = array_map(function($tag_name) {
    return ['name' => $tag_name];
}, $original_tags);

步骤2:替换原代码中的tags字段

将转换后的数组代入原代码的tags字段:

<?php
$original_tags = [
    'tag1' => 'tag1',
    'tag2' => 'tag2',
    'tag3' => 'tag3'
];

$formatted_tags = array_map(function($tag_name) {
    return ['name' => $tag_name];
}, $original_tags);

$data = [
    'name' => 'my title',
    'type' => 'simple',
    'regular_price' => '19',
    'description' => 'my description',
    'categories' => [
        ['id' => 9]
    ],
    'tags' => $formatted_tags // 使用转换后的标签数组
];

print_r($woocommerce->post('products', $data));
?>

补充说明

如果你的原始标签数组是纯值的索引数组(比如['tag1', 'tag2', 'tag3']),同样可以用上述array_map方法转换,逻辑完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 01:40:28