Показать доступные размеры товара или количество размеров на страницах архива Woocommerce - PullRequest
2 голосов
/ 15 апреля 2019

Это код, который я использую для отображения доступных размеров на странице покупок / категорий.То, что я пытаюсь сделать, это когда есть много доступных размеров, например: (XXS, XS, S, M, L, XL, XXL, 3XL, 4XL), то я хочу скрыть эту строку и показать альтернативный текст как (9Размеры доступны) Любая помощь будет оценена.

add_action( 'woocommerce_shop_loop_item_title', 'mycode_add_size_above_product_title', 20 );
function mycode_add_size_above_product_title() {
global $product;
$size = $product->get_attribute( 'pa_size' );
if ( ! empty( $size ) ) {
    echo '<div style="font-size:10px">' . $size . '</div>';
}

Я пробовал это, но это показывает жало два раза!

if (strlen($string) <=50) {
 echo $string;
} else {
echo substr($string, 0, 50) . '...';
}

ДО: LEVI'S XXS, XS, S, M, L, XL, XXL, 3XL, 4XL $ 65,00

ОЖИДАЕМЫЙ РЕЗУЛЬТАТ: (только при наличии более 5 размеров) LEVI'S 9 Доступные размеры $ 65,00

Ответы [ 2 ]

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

Обновлено

Следующее будет ограничивать отображаемые размеры 5, а если больше, будет отображаться количество доступных размеров:

add_action( 'woocommerce_shop_loop_item_title', 'mycode_add_size_above_product_title', 20 );
function mycode_add_size_above_product_title() {
    global $product;

    if( $sizes = $product->get_attribute( 'pa_size' ) ) {
        $count = count( explode(', ', $sizes) ); // The size count

        if ( $count > 5 ) {
            echo '<div style="font-size:10px">' . $count . ' ' . __("sizes available!") . '</div>';
        } else {
            echo '<div style="font-size:10px">' . $sizes . '</div>';
        }
    }
}

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

Конечно, вы можете настроить количество отображаемых размеров, заменив 5 на любое целое число ...

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

Проведите проверку длины внутри эхосигнала div.

if (!empty($size)) {
    echo '<div style="font-size:10px">';
    if (strlen($size ) <=50) {
        echo $size;
    } else {
        echo substr($size , 0, 50) . '...';
    }
    echo '</div>';
}
...