Как отобразить имя атрибута продукта вместо слага в каждом цикле? - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть цикл атрибутов, и я пытаюсь отобразить имена атрибутов при первом выборе раскрывающегося списка <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;

Каков наилучший способ вывести фактическое отображаемое имя атрибута через каждый цикл и отобразить его в <option>?

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019
   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;
  }
0 голосов
/ 12 февраля 2019
<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>
...