Отображение пользовательских терминов таксономии для атрибутов продукта WooCommerce - PullRequest
1 голос
/ 23 апреля 2019

В WooCommerce я использую Категория и таксономическое изображение плагин, который позволяет мне добавлять изображения к терминам атрибутов продукта.

Теперь я пытаюсь отобразить для определенного атрибута товара соответствующие изображения терминов для каждого товара на странице магазина.

Автор Категория и изображение таксономии Плагин предлагает использовать следующий код для отображения термина изображения:

  if (function_exists('get_wp_term_image'))
  {
      $meta_image = get_wp_term_image($term_id); 
      //It will give category/term image url 
  }
  echo $meta_image; // category/term image url

Я использую код ниже для отображения "color "названия терминов атрибута продукта на странице магазина:

add_action('woocommerce_after_shop_loop_item','add_attribute');
function add_attribute() {
    global $product;

    $spec_val = $product->get_attribute('spec');

    if(!empty($spec_val)) { 
        echo'<span class="view_attr"> SPECIFICATION: '  . $spec_val  . '</span>';
    }
}

Как отобразить изображения термина?

Может быть, это решение:

add_action('woocommerce_after_shop_loop_item','woo_new_product_tab_content');
function woo_new_product_tab_content() {
    global $product;

    $ingredients = $product->get_attributes( 'color' );

    foreach( $ingredients as $attr_name => $attr ){
        foreach( $attr->get_terms() as $term ){
            if ( wc_attribute_label( $attr_name ) == "Color" ) {
                echo $term->name ;
                $meta_image = get_wp_term_image($term->term_id);
                echo '<img src="'.$meta_image.'"/>';
            } 
            else echo '';
        }
    }
}

1 Ответ

1 голос
/ 23 апреля 2019

Атрибуты продукта - это нечто очень специфичное и более сложное в WooCommerce, чем в других таксономиях.Каждый атрибут продукта является таксономией, имеет свои собственные термины и может использоваться для вариаций переменных продуктов ...

Плагины Изображения таксономии и Изображение категории и таксономии разрешить использование изображений на всех терминах пользовательских таксономий WooCommerce в качестве тега продукта и атрибутов продукта (категория продукта уже имеет эту функцию по умолчанию) .

Здесь мы используем Категория и изображение таксономии и его выделенная функция get_wp_term_image().

В приведенном ниже коде вы можете включить несколько атрибутов товара, определенных в массиве.если опция "Включить архивы?"Включено для атрибута продукта, вы можете по желанию использовать термин ссылки.

add_action('woocommerce_after_shop_loop_item','woo_new_product_tab_content');
function woo_new_product_tab_content() {
    global $product;

    // Define your product attribute labels in the array (label names)
    $defined_pa_labels = array( 'Color' );

    // Loop through WC_Product_Attribute Objects
    foreach( $product->get_attributes() as $taxonomy => $product_attribute ) {
        $taxonomy_name  = $product_attribute->get_name();       // Slug
        $taxonomy_label = wc_attribute_label( $taxonomy_name ); // Name (label name)

        if( in_array( $taxonomy_label, $defined_pa_labels ) ) {

            // Loop through product attribute WP_Term Objects
            foreach( $product_attribute->get_terms() as $term ) {
                $term_name = $term->name;  // Term name
                $term_slug = $term->slug;  // Term slug
                $term_id = $term->term_id; // Term ID

                // Get product attribute term image
                if( $image_url = get_wp_term_image( $term_id ) ) {

                    // Get product attribute term link (optional) 
                    // if the product attribute is enabled on archives)
                    $term_url  = get_term_link( $term, $taxonomy );

                    // Output
                    echo '<span style="text-align:center"><img src="'.esc_url( $image_url).'"/>'.$term->name.'</span>';
                }
            }
        }
    }
}

Код находится в файле function.php вашей активной дочерней темы (или активной темы).Проверено и работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...