Отобразить атрибуты продукта, не настроенные для вариантов вариантов продукта Woocommerce - PullRequest
1 голос
/ 12 мая 2019

У меня есть настраиваемая вкладка для каждого варианта продукта со статическим содержимым «описание варианта», которое я также отображал на странице продукта в> сводке продукта при выборе варианта (как в эта ссылка ) .

И теперь мне нужно отобразить то же самое на странице магазина в цикле товаров (см. Мою страницу магазина ) .

ИЛИ даже лучше отображать определенные атрибуты. Я попробовал этот код:

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

    echo '<h4><b>Seizoen:</b>' . $product->get_attribute('pa_seizoen') .'</h4>';
    echo '<h4><b>Maat:</b> ' . $product->get_attribute('pa_maat') .'</h4>';
    echo '<h4><b>Tijk:</b> ' . $product->get_attribute('pa_tijk-weving') .'</h4>';
    echo '<h4><b>Vulkracht:</b> ' . $product->get_attribute('pa_fullkraft[') .'</h4>';
    echo '<h4><b>Vulkracht:</b> ' . $product->get_attribute('pa_vulling') .'</h4>';
}

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

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 12 мая 2019

Вы используете плагин (или некоторые настройки), который отображает на странице вашего магазина (или страницах архива) каждый продукт в отдельности.

Таким образом, вам нужно получить родительский переменный продукт для других атрибутов продукта, которые не установлены для вариантов (и описание продукта или другие необходимые связанные данные) :

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

    if( $seizoen = $product->get_attribute('pa_seizoen') ) {
        echo '<h4><strong>Seizoen:</strong>' . $seizoen . '</h4>';
    }
    if( $maat = $product->get_attribute('pa_maat') ) {
        echo '<h4><strong>Maat:</strong> ' . $maat . '</h4>';
    }

    $parent_id = $product->get_parent_id(); // Get the parent Variable Product ID
    // Below, all Parent variable product data
    if( $parent_id > 0 && $parent_product = wc_get_product($parent_id) ) {
        if( $tijk_weving = $parent_product->get_attribute('pa_tijk-weving') ) {
            echo '<h4><strong>Tijk:</strong> ' . $tijk_weving . '</h4>';
        }
        if( $fullkraft = $parent_product->get_attribute('pa_fullkraft') ) {
            echo '<h4><strong>Vulkracht:</strong> ' . $fullkraft . '</h4>';
        }
        if( $vulling = $parent_product->get_attribute('pa_vulling') ) {
            echo '<h4><strong>Vulling:</strong> ' . $vulling . '</h4>';
        }

        // Display the parent variable product description
        echo '<p><strong>Beschrijving:</strong> ' . $parent_product->get_description() . '</p>';

        // Display the parent variable product short description
        echo '<p><strong>Korte beschrijving:</strong> ' . $parent_product->get_short_description() . '</p>';
    }  

    // Display the product variation description
    // echo '<p><strong>Beschrijving:</strong> ' . $product->get_description() . '</p>';

    // Display the product variation weight
    // echo '<p><strong>Gewicht:</strong> ' . wc_format_weight( $product->get_weight() ) . '</p>';

    // Display the product variation dimensions
    // echo '<p><strong>Dimensies:</strong> ' . $product->get_dimensions() . '</p>';
}

Код помещается в файл functions.php вашей активной дочерней темы (или активной темы).Это должно работать сейчас.

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