如何在PHP中列出Woocommerce所有商品属性的attribute_type值
WooCommerce 获取商品属性attribute_type值实现方案
wc_get_attribute_taxonomies() 返回的每个元素都是包含完整属性配置的stdClass对象,你需要的attribute_type字段可以直接遍历读取,无需额外调用其他接口。
完整实现代码
// 获取所有系统注册的商品属性 $all_attributes = wc_get_attribute_taxonomies(); $attribute_type_map = []; foreach ($all_attributes as $attribute) { // 直接读取attribute_type字段,就是该属性的注册值 $attr_id = $attribute->attribute_id; $attribute_type_map[$attr_id] = [ 'attribute_name' => $attribute->attribute_name, 'attribute_label' => $attribute->attribute_label, 'attribute_type' => $attribute->attribute_type ]; } // 可按需打印验证结果 // print_r($attribute_type_map);
单属性查询方案
如果你只需要查询指定ID的属性类型,可以调用wc_get_attribute()方法直接获取:
// 示例查询ID为6的属性类型 $target_attr = wc_get_attribute(6); // 输出对应type值,对应你给出的示例会返回select echo $target_attr->type;
补充说明
- 不管是系统默认的select/text等类型,还是你通过钩子自定义注册的属性类型,只要是走WooCommerce标准注册流程,返回的
attribute_type值都会和注册值完全一致。 - 返回的属性列表默认按后台配置的排序规则返回,不需要额外排序处理。
内容的提问来源于stack exchange,提问作者user1223445
相关产品推荐
相关产品推荐

