如何在每个循环中显示产品属性名称而不是?

时间:2019-02-12 11:38:56

标签: php html wordpress woocommerce woocommerce-theming

我有一个属性循环,并尝试在*ngFor下拉列表的第一个选择中显示属性名称。但是,每次我回显名称时,都会显示该条。因此,显示的是“ <select>”而不是“金属”。

下面是我当前的循环和我当前正在使用的代码。显然pa_attribute_metal并没有提取实际名称。

$attribute['name']

通过每个循环提取属性的实际显示名称并在$attributes = $product->get_attributes(); foreach ($attributes as $attribute): echo '<select name="'.$attribute['name'].'" class="example">'; echo '<option name="'.$attribute['name'].'">'.$attribute['name'].'</option>'; echo '</select>'; endforeach; 中显示该属性的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

<select name="attribute_taxonomy" class="attribute_taxonomy">
    <option value=""><?php esc_html_e('product attribute', 'woocommerce'); ?></option>
    <?php
    global $wc_product_attributes;

    // Array of defined attribute taxonomies.
    $attribute_taxonomies = wc_get_attribute_taxonomies();

    if (!empty($attribute_taxonomies)) {
        foreach ($attribute_taxonomies as $tax) {
            $attribute_taxonomy_name = wc_attribute_taxonomy_name($tax->attribute_name);
            $label = $tax->attribute_label ? $tax->attribute_label : $tax->attribute_name;
            echo '<option value="' . esc_attr($attribute_taxonomy_name) . '">' . esc_html($label) . '</option>';
        }
    }
    ?>
</select>

答案 1 :(得分:0)

   while ($query->have_posts()) {
      $query->next_post();
      $result[] = $query->post;
      $taxonomy = 'pa_size';
      $meta = get_post_meta($result[$i]->ID, 'attribute_'. $taxonomy, true);
      $term = get_term_by('slug', $meta, $taxonomy);
      array_push($arrayValue, $term);
  }
  for ($j = 0; $j<count($arrayValue); $j++){
     echo $arrayValue[$j]->name;
  }