Отобразить значения атрибутов товара для переменных товаров под изображением товара в магазине Woocommerce - PullRequest
1 голос
/ 04 апреля 2019

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

Проблема в том, что мой выведенный код помещается либо:
а) над изображением товара или…
б) под кнопкой добавления в корзину.
Мне нужно разместить его под изображением товара.

Я нашел все различные хуки в документации Woocommerce и подделал их все, но ни один из них не работает.По крайней мере, не на мой единственный продукт.Мне удалось получить выходные размеры, отображаемые под всем видом архива, так что что-то работает.

add_action( "woocommerce_after_shop_loop_item_title', 'ladiesfashion_show_product_size_loop', 10 );

function ladiesfashion_show_product_size_loop() {

    global $product;

    if ( ! empty( $sizes ) ) {   
        echo '<div style="color:black;"><b><br>Tilgængelige størrelser:</b> ' . $size = $product->get_attribute( 'pa_toej-stoerrelse' );
        echo '</div>';         
    }

}

У меня такое ощущение, что мне как-то может понадобиться выполнить какое-то "remove_action", но я не могу понять, как работает эта часть, и что я должен удалить, прежде чем добавитьмоя собственная функция?

РЕШЕНИЕ

OceanWP (моя тема) использует настраиваемые хуки для элементов Woocommerce.Смена крючка решила мою проблему:

add_action( 'ocean_after_archive_product_image', 'ladiesfashion_show_product_size_loop', 10 );

    function ladiesfashion_show_product_size_loop() {

        global $product;

        $sizes = $product->get_dimensions();

        if ( ! empty( $sizes ) ) {   
            echo '<div style="color:black;"><b><br>Tilgængelige størrelser:</b> ' . $size = $product->get_attribute( 'pa_toej-stoerrelse' );
            echo '</div>';         
        }

    }

1 Ответ

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

В вашем коде есть некоторые ошибки, и вы не используете правильный хук и приоритет. Попробуйте следующее (где мы отображаем размеры в расположении изображения продукта Woocommerce по умолчанию) :

add_action( 'woocommerce_before_shop_loop_item_title', 'ladiesfashion_show_product_size_loop', 15 );
function ladiesfashion_show_product_size_loop() {
    global $product;

    if ( $product->has_dimensions() && $sizes = $product->get_attribute( 'toej-stoerrelse' ) ) {
        echo '<div style="color:black;"><strong>Tilgængelige størrelser:</strong> ' . $sizes . '</div><br>';
    }
}

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

enter image description here

...