在 Woocommerce 中,您可以添加全局产品属性和术语。例如:
Size (attribute)
small (term)
medium (term)
large (term)
这与产品无关。然后,您可以从产品的预定义属性中进行选择。
我需要使用 php 获取属性中的所有术语。所以选择所需的属性,例如大小,然后返回一个包含[small,medium,large]
.
看起来很简单,但我找不到任何帮助。
在 Woocommerce 中,您可以添加全局产品属性和术语。例如:
Size (attribute)
small (term)
medium (term)
large (term)
这与产品无关。然后,您可以从产品的预定义属性中进行选择。
我需要使用 php 获取属性中的所有术语。所以选择所需的属性,例如大小,然后返回一个包含[small,medium,large]
.
看起来很简单,但我找不到任何帮助。
有点令人困惑,尤其是在查看 WooCommerce 文档时,因为绝对没有提到获取术语/属性列表。
属性保存为自定义分类,术语为分类术语。这意味着您可以使用原生 Wordpress 函数:Wordpress get_terms() 函数参考
通过单击 WooCommerce 中的属性,您可以查看 URL,您可以看到它们都以“pa_”开头
这可能是您需要的:
$terms = get_terms("pa_size");
foreach ( $terms as $term ) {
echo "<option>" . $term->name . "</option>";
}
我希望能够从设置的后端获取所有不同的属性,并将它们放在一个数组中供我使用,我从 class-wc-admin-attributes.php 文件中获取了一些代码并对其进行了修改我的需求:
<?php
$attribute_taxonomies = wc_get_attribute_taxonomies();
$taxonomy_terms = array();
if ($attribute_taxonomies) :
foreach ($attribute_taxonomies as $tax) :
if (taxonomy_exists(wc_attribute_taxonomy_name($tax->attribute_name))) :
$taxonomy_terms[$tax->attribute_name] = get_terms(wc_attribute_taxonomy_name($tax->attribute_name), 'orderby=name&hide_empty=0');
endif;
endforeach;
endif;
var_dump($taxonomy_terms);
exit;
这将遍历所有属性分类法,检索每个分类法的术语,为您留下一组术语对象以用于每个分类法。
我用这个:
echo '<h1>variations</h1>';
mario( $product->get_available_variations());
echo '<h1>Atributos</h1>';
mario($product->get_attributes());
echo '<h1>Poste Terms</h1>';
mario(wp_get_post_terms( $post->ID, 'pa_color'));
function mario($texto){
echo '<pre>';var_dump($texto);echo '</pre>';
};
真正使用:“wp_get_post_terms($post->ID,'pa_color')”我只搜索一个词,但想法是循环查找返回该函数的键 ['name']。
获取 woocommerce 中带有属性术语的所有属性。
$attributes = wc_get_attribute_taxonomies();
foreach ($attributes as $attribute) {
$attribute->attribute_terms = get_terms(array(
'taxonomy' => 'pa_'.$attribute->attribute_name,
'hide_empty' => false,
));
}