Отображение пользовательского текста на основе атрибутов товара в переменной продукта Woocommerce - PullRequest
0 голосов
/ 02 февраля 2019

Я пытаюсь отобразить текст на странице изменяемого продукта в зависимости от параметров текущего продукта.Скажем, если этот продукт поставляется с параметрами (атрибутами) # 1, то отображается текст # 1, если этот продукт предлагается с параметрами (атрибутами) # 2, то отображается текст # 2

Я пробовал следующий код, но обатекст № 1 и текст № 2 отображаются для всех переменных продуктов независимо от доступных атрибутов.

add_action('woocommerce_single_product_summary', 'display_custom_meta_field_value', 25 );
function display_custom_meta_field_value() {
    global $product;

    if ( $product->is_type( 'variable' ) ) {

        if (wc_attribute_taxonomy_name ('valve-options-white')  == 'pa_valve-options-white' ) 
        echo  '<p id="value-on-single-product"><i class="fas fa-info-circle"></i><a href="#" class="popmake-1087"> Which Valves Do I Need? CLICK HERE</a></p>';

        if ( (wc_attribute_taxonomy_name ('valve-options-chrome') ) == ('pa_valve-options-chrome') )
        echo  '<p id="value-on-single-product"><i class="fas fa-info-circle"></i><a href="#" class="popmake-697"> Which Valves Do I Need? CLICK HERE</a></p>';
    }
}

Я хочу, чтобы только один из текста № 1 или текста № 2 отображался для каждого переменного продукта в зависимости от того, какие атрибуты (группа) был назначен.Спасибо.

1 Ответ

0 голосов
/ 02 февраля 2019

Вместо этого следует попробовать следующее, используя метод WC_Product_Variable get_variation_attributes():

add_action('woocommerce_single_product_summary', 'display_custom_meta_field_value', 25 );
function display_custom_meta_field_value() {
    global $product;

    if ( $product->is_type( 'variable' ) ) {
        // Loop through variations attributes
        foreach($product->get_variation_attributes() as $taxonomy => $term_slugs ) {
            if( $taxonomy === 'pa_valve-options-white' ) {
                $popmake_id = '1087';
            } elseif( $taxonomy === 'pa_valve-options-chrome' ) {
                $popmake_id = '697';
            }
        }

        if ( isset($popmake_id) ) {
            $text = __( "Which Valves Do I Need? CLICK HERE","woocommerce" );
            echo '<p id="value-on-single-product"><i class="fas fa-info-circle"></i><a href="#" class="popmake-'.$popmake_id.'"> '.$text.'</a></p>';
        }
    }
}

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

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