Отобразить определенный атрибут продукта на страницах архива Woocommerce - PullRequest
0 голосов
/ 10 декабря 2018

Я искал ТАК, пытаясь найти ответ на этот вопрос, но пока не повезло.По сути, я хочу отобразить некоторые метаданные под заголовком моих продуктов на страницах архива / магазина.Мой атрибут - 'colors', поэтому, попробовав различные фрагменты кода, я пришел к следующему:

add_action( 'woocommerce_after_shop_loop_item', 'acf_template_loop_product_meta', 20 );

function acf_template_loop_product_meta() {

    echo '<h4>Color:' . get_field( '$colors = $product->get_attribute( 'pa_colors' )' .'</h4>';
    echo '<h4>Length:' . get_field( 'length' ) . '</h4>';
    echo '<h4>Petal Count:' . get_field( 'petal_count' ) . '</h4>';
    echo '<h4>Bud Size:' . get_field( 'bud_size' ) . '</h4>';
}

Последние три строки кода относятся к расширенным настраиваемым полям, и все они работают отлично.Это тот, кто пытается получить атрибут цвета, с которым у меня проблема.Какой будет правильный код для отображения этого?

1 Ответ

0 голосов
/ 11 декабря 2018

Во-первых, если вы используете экземплярный объект WC_Product, вам нужно вызвать его и проверить его перед использованием любого WC_Product метода для него.

И get_field( '$colors = $product->get_attribute( 'pa_colors' )' всегда будеткинь ошибку.Или вы используете поле ACF, или вы получаете отображаемые значения атрибута продукта "pa_colors".

Попробуйте следующее:

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

    // Check that we got the instance of the WC_Product object, to be sure (can be removed)
    if( ! is_object( $product ) ) { 
        $product = wc_get_product( get_the_id() );
    }

    echo '<h4>Color:' . $product->get_attribute('pa_colors') .'</h4>';
    echo '<h4>Length:' . get_field('length') . '</h4>';
    echo '<h4>Petal Count:' . get_field('petal_count') . '</h4>';
    echo '<h4>Bud Size:' . get_field('bud_size') . '</h4>';
}

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

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