Отобразить определенный атрибут выбранного продукта в цене варианта WooCommerce - PullRequest
1 голос
/ 06 апреля 2019

Я пытаюсь отобразить атрибуты выбранного продукта на одной странице продукта после.

Я нашел много кодов, которые даже работают, но все эти коды возвращают список всех доступных атрибутов.

add_action( 'woocommerce_before_variations_form', 'display_attribute', 5 );
function display_attribute(){
    global $product;
    $output = array();
    if( $verpackung = $product->get_attribute('pa_verpackung') ){
        echo $verpackung;
        $output[] = $verpackung;
    }
}

Это переменный продукт, и я хотел бы показать размерпакета, который является атрибутом.Например: € 39, - за коробку 300 г.

1 Ответ

0 голосов
/ 06 апреля 2019

Следующее отобразит после выбранной цены изменения (для переменных продуктов) соответствующий тип упаковки, например, например: "€ 39, - для коробки по 300 г"

add_filter( 'woocommerce_available_variation', 'set_packaging_type_after_variation_price', 10, 3 );
function set_packaging_type_after_variation_price( $data, $product, $variation ) {
    $targeted_taxonomy  = 'pa_verpackung'; // <== Define here the product attribute taxonomy

    // Loop through variation attributes
    foreach( $data['attributes'] as $variation_attribute => $term_slug ) {
        $attribute_taxonomy = str_replace( 'attribute_', '', $variation_attribute ); // Get product attribute the taxonomy

        // For matching variation attribute …
        if ( $attribute_taxonomy == $targeted_taxonomy ){
            $verpackung  = get_term_by( 'slug', $term_slug, $attribute_taxonomy )->name; // Get the term name
            $verpackung = ' <span class="verpackung">'. __('für eine '). $verpackung .'</span></span>';
            // Set the "packaging" after the selected viariation price
            $data['price_html'] = str_replace( '</span></span>', '</span>' . $verpackung, $data['price_html'] );
            break; // Stop the loop
        }
    }
    return $data;
}

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

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