Как показать корзину покупок woocommerce с помощью php, но настроить ее, добавив значок и изменив текст

пожалуйста, помогите мне, я хочу показать корзину покупок woocommerce с настроенным текстом и значком на моем веб-сайте WordPress. Я использую этот исходный код для справки: https://docs.woocommerce.com/document/show-cart-contents-total/

Я показываю это в интерфейсе, это выглядит так с исходным кодом по ссылке выше, но я хотел бы показать его со значком внутри, и я также хотел бы изменить текст, чтобы он был «продукты» вместо 'Предметы'

введите здесь описание изображения

Вот мой код попытки показать этот значок и измененный текст, пожалуйста, помогите мне:

<a class="cart-customlocation" href="<?php echo wc_get_cart_url(); ?>" title="<?php _e( 'View your shopping cart' ); ?>">
<?php echo sprintf ( _n( '<i class="fa fa-cart"></i>Cart  %d product', '<i class="fa fa-cart"></i>Cart  %d products s', WC()->cart->get_cart_contents_count() ), WC()->cart->get_cart_contents_count() ); ?> - <?php echo WC()->cart->get_cart_total(); ?></a>

Код в functions.php:

add_filter( 'woocommerce_add_to_cart_fragments', 'woocommerce_header_add_to_cart_fragment' 
 );

function woocommerce_header_add_to_cart_fragment( $fragments ) {
global $woocommerce;

ob_start();

?>
<a class="cart-customlocation" href="<?php echo esc_url(wc_get_cart_url()); ?>" title="<?php _e('View your shopping cart', 'woothemes'); ?>"><?php echo sprintf(_n('%d item', '%d items', $woocommerce->cart->cart_contents_count, 'woothemes'), $woocommerce->cart->cart_contents_count);?> - <?php echo $woocommerce->cart->get_cart_total(); ?></a>
<?php
$fragments['a.cart-customlocation'] = ob_get_clean();
return $fragments; }

person Vladimir B.    schedule 22.08.2020    source источник


Ответы (1)


введите здесь описание изображения

Вот краткий пример разметки. Вам нужно будет стилизовать с помощью css.

html/php

<a href="<?php echo wc_get_cart_url(); ?>" class="basketicon" title="<?php _e( 'View your shopping cart' ); ?>">
    <span class="basketicon__icon"></span>
    <span class="basketicon__total">
        <?php echo sprintf ( _n( '%d item', '%d items', WC()->cart->get_cart_contents_count() ), WC()->cart->get_cart_contents_count() ); ?> - <?php echo WC()->cart->get_cart_total(); ?>
    </span>
</a>

css/sass

.basketicon{
    margin: 0 30px 0 0;
    padding: 0 30px 0 0;
    display: inline-flex;
    align-items: center;
    position: relative;

    @media (min-width: $lg){
        margin: 0 30px 0 0;
        padding: 0 30px 0 0;
    }

    &::before{
        @media (min-width: $lg){
            content: '';
            position: absolute;
            right: -10px;
            width: 20px;
            height: 1px;
            background: #fff;
        }
    }
    &__icon{
        &::before{
            content: url(../images/basket.svg);
            height: 10px;
            width: 10px;
            display: block;
        }
    }
    &__total{
        display: none;
        color: #fff;
        font-size: rem(16);
        margin: 0 0 0 10px;

        @media (min-width: $lg){
            font-size: rem(12);
            display: inline-block;
        }
        @media (min-width: $xl){
            font-size: rem(14);
        }
        @media (min-width: $xxxl){
            font-size: rem(15);
        }
    }
    &:hover,
    &:focus{
        .basketicon{
            &__icon{
                &::before{
                    transform: scale(0.8);
                }
            }
        }
    }
}
person beatnik    schedule 22.08.2020
comment
Я все еще не могу получить значок, появляется только текст, я использую ваш код, пожалуйста, помогите мне. - person Vladimir B.; 23.08.2020
comment
я изменил псевдоэлемент, включив в него svg или png. Как уже упоминалось, я использовал icomoon для иконок. если это не то, что вы используете. вам нужно найти изображение корзины, либо png или svg - person beatnik; 23.08.2020
comment
Здравствуйте, большое спасибо за помощь, в моей теме не было шрифта awesome cdn для таблицы стилей, плюс я не правильно написал класс для иконки. Вот что работает ‹a class=basketicon href=‹?php echo wc_get_cart_url(); ?› title=‹?php _e('Просмотреть корзину'); ?›› ‹i class=fa fa-shopping-cart›‹/i› ‹?php echo sprintf ( _n( '%d item', '%d items', WC()-›cart-›get_cart_contents_count() ) , WC()-›cart-›get_cart_contents_count() ); ?› - ‹?php echo WC()-›cart-›get_cart_total(); ?›‹/a› Ваш код тоже отлично работает, большое спасибо! - person Vladimir B.; 23.08.2020