Woocommerce-将属性值显示为下拉字段

时间:2018-09-01 15:57:24

标签: php wordpress woocommerce attributes

我对woocommerce及其属性有疑问。我大约有10个属性,例如:速度,重量,颜色,引擎等。我要做的是在一页上创建搜索表单,并且用户在通过选择字段填写/选择了正确的选项后会搜索产品。

但是我坚持使用了一段代码,该代码应该创建这样的下拉列表(该代码将显示特定属性的所有值)。

代码:

<?php
$subheadingvalues = get_the_terms( $product->id, 'pa_naped');
if ($subheadingvalues): ?>
<select>
    <?php foreach ( $subheadingvalues as $subheadingvalue ): ?>
        <option value="<?php echo $subheadingvalue->name; ?>">
            <?php echo $subheadingvalue->name; ?>
        </option>
    <?php endforeach; ?>
</select>

<?php endif; ?>

此代码的主要问题?根本不起作用-什么也不显示。我在woocommerce仪表板中仔细检查了属性名称,它的名称确实是pa_naped(引擎)。为什么它不起作用?

第二,如果我想做同样的事情,但对于我自己选择的所有属性(如上所述)怎么办?我应该制作一种数组还是某物?

2 个答案:

答案 0 :(得分:1)

要获取术语的所有值,您需要使用get_terms()

因此您的函数应如下所示:

$subheadingvalues = get_terms('pa_naped', array(
'hide_empty' => false,
));
?> <select>
    <?php foreach ($subheadingvalues as $subheadingvalue): ?>
    <option value="<?php echo $subheadingvalue->name; ?>">
        <?php echo $subheadingvalue->name; ?>
    </option>
    <?php endforeach;?>
</select>

Reference

答案 1 :(得分:0)

这就是我进行dietary-preference分类的方式。

$attrargs = array(
    'show_option_all'   => '',
    'show_option_none'  => 'Dieta',
    'orderby'           => 'id',
    'order'             => 'ASC',
    'show_count'        => 1,
    'hide_empty'        => 1,
    'child_of'          => 0,
    'exclude'           => '',
    'echo'              => 1,
    'selected'          => 0,
    'hierarchical'      => 0,
    'name'              => 'pa_dietary-preference',
    'id'                => 'pa_dietary-preference',
    'class'             => 'pa_dietary-preference',
    'depth'             => 0,
    'tab_index'         => 0,
    'taxonomy'          => 'pa_dietary-preference',
    'hide_if_empty'     => false,
    'option_none_value' => -1,
    'value_field'       => 'term_id',
    'required'          => true,
);

<?php wp_dropdown_categories( $attrargs ); ?>