woocommerce获取属性值列表

clu*_*ess 12 php wordpress wordpress-plugin woocommerce

我在wordpress上使用woocommerce来创建一个简单的商店网站,我为产品添加了一些属性.这些就是,sizecolor.在尺寸不足的情况下,我有各种各样的值,包括小,中和大.与颜色相同即.红色,蓝色,绿色.

我想要做的是在下拉列表中显示这些值.基本上只列出它们,这样我就可以使用这些值作为商店目录页面的过滤器.

任何帮助都会很棒.

编辑:我已经深入研究了woocommerce代码和api文档,只发现了这个代码来提取属性.

global $woocommerce;

$attr_tax = $woocommerce->get_attribute_taxonomy_names();

foreach( $attr_tax as $tax ) {
     echo $woocommerce->attribute_taxonomy_name( $tax->attribute_name );
}
Run Code Online (Sandbox Code Playgroud)

这个片段给我的只是分类标准,即.pa_size和pa_color.我对woocommerce非常陌生,但在api docs中搜索却没有透露如何提取这些属性的值.

Ste*_*nes 16

您可以使用get_terms() http://codex.wordpress.org/Function_Reference/get_terms

如果您传入pa_size或pa_color,您将获得该分类中的术语列表.


小智 14

希望这对某人有帮助:

global $product; 

// Get product attributes
$attributes = $product->get_attributes();

if ( ! $attributes ) {
    echo "No attributes";
}

foreach ( $attributes as $attribute ) {

        echo $attribute['name'] . ": ";
        $product_attributes = array();
        $product_attributes = explode('|',$attribute['value']);

        $attributes_dropdown = '<select>';

        foreach ( $product_attributes as $pa ) {
            $attributes_dropdown .= '<option value="' . $pa . '">' . $pa . '</option>';
        }

        $attributes_dropdown .= '</select>';

        echo $attributes_dropdown;
}
Run Code Online (Sandbox Code Playgroud)

  • 这肯定会对某人有帮助。但谁呢?如何?这段代码有什么作用?通过代码中的一些解释或注释使其更加清晰:) (3认同)
  • OP 要求提供所有属性的列表。您的解决方案仅在单个产品级别上。 (2认同)

小智 7

这篇文章是在不久前写的,所以我不知道Woocommerce是否在之前的版本中使用了这种方法.
对于任何想要这样做的人来说,这条线就是您所需要的.

$product->list_attributes();
Run Code Online (Sandbox Code Playgroud)

这允许您自定义顺序并切换是否要在后端显示变化,


Ari*_*rif 6

除了输出html的@user5029040答案之外,如果你想获取一个数组,你可以使用以下函数。

$product->get_variation_attributes();
Run Code Online (Sandbox Code Playgroud)

  • 在循环之外不起作用:`调用未定义的方法 WC_Product_Simple::get_variation_attributes()` (2认同)