Автоматическое обновление корзины Woocommerce и стилизация кнопок количества товара

Часто бывает что заказчику необходимо кастомизировать кнопку увеличения количества товара, да еще и чтобы при этом корзина обновлялась автоматически.

для этого нужно Перейти в папку / wp-content / plugins / woocommerce / templates / global и скопировать файл quantity-input.php в папку your-theme / woocommerce / global /

после чего его нужно отредактировать, ниже готовый код

<?php
/**
 * Product quantity inputs
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/global/quantity-input.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see     https://docs.woocommerce.com/document/template-structure/
 * @package WooCommerceTemplates
 * @version 7.4.0
 *
 * @var bool   $readonly If the input should be set to readonly mode.
 * @var string $type     The input type attribute.
 */
defined( 'ABSPATH' ) || exit;

/* translators: %s: Quantity. */$label = ! empty( $args['product_name'] ) ? sprintf( esc_html__( '%s quantity', 'woocommerce' ), wp_strip_all_tags( $args['product_name'] ) ) : esc_html__( 'Quantity', 'woocommerce' );

?>
<div class="quantity">
 <?php
 /**
  * Hook to output something before the quantity input field.
  *
  * @since 7.2.0
  */ do_action( 'woocommerce_before_quantity_input_field' );
 ?>
 <label class="screen-reader-text" for="<?php echo esc_attr( $input_id ); ?>"><?php echo esc_attr( $label ); ?></label>
 <button class="minus qty_button quantity-button.inc" >

помимо этого нужно вставить в functions.php вашей темы код для обновления самой корзины после увеличения количества товара

// Обновление корзины при изменении колич.товара
add_action( 'wp_footer', 'cart_update_qty_script' );
function cart_update_qty_script() {
    if (is_cart()) : // Проверяем страница корзины это или нет
    ?>
<style>
 /* Если хотим скрыть кнопку кнопку "Обновить". */ button[name="update_cart"]{display: none;}</style>
<script>
jQuery( function( $ ) {
 
 $( 'body' ).on( 'change', '.qty', function() { // поле с количеством имеет класс .qty
   setTimeout(function() { 
                    $( '[name="update_cart"]' ).trigger( 'click' );
                }, 1300 );
 } );
 
  $( 'body' ).on( 'click', '.quantity-button.inc, .quantity-button.dec', function() { // элементы инкремента/декремента 
   setTimeout(function() { 
                    $( '[name="update_cart"]' ).trigger( 'click' );
                }, 1300 );
 } );
} );           
</script>
    <?php
    endif;
}
// End Обновление корзины при изменении колич.товара

ну и конечно добавить CSS код для стилизации кастомных кнопок

 <style>
 
.form-group--number {
    max-width: 150px;
}
label.screen-reader-text {
    display: none;
}
 
.form-group--number button {
    border: none;
    position: relative;
    top: 6px;
    right: 6px;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    max-width: 20px;
    color: #222;
    font-size: 30px;
    background: none;
}
 .input-text.qty.text {
    top: -10px;
    position: relative;
    border: 0;
    margin: 0;
    padding: 0;
}
.form-group--number button.down {
    left: 12px;
}
.form-group--number button.down:before {
    position: absolute;
    top: 50%;
    left: 50%;
    display: inline-block;
    content: '';
    width: 14px;
    height: 1px;
    background-color: #999;
    -webkit-transform: translate(-50%, -50%) rotate(0deg);
    -moz-transform: translate(-50%, -50%) rotate(0deg);
    -ms-transform: translate(-50%, -50%) rotate(0deg);
    -o-transform: translate(-50%, -50%) rotate(0deg);
    transform: translate(-50%, -50%) rotate(0deg);
}
.form-group--number button.up {
    right: 12px;
}
.form-group--number button.up:before, .form-group--number button.up:after {
    position: absolute;
    top: 50%;
    left: 50%;
    display: inline-block;
    content: '';
    width: 14px;
    height: 1px;
    background-color: #999;
}
 
.form-group--number button.up:before {
    -webkit-transform: translate(-50%, -50%) rotate(90deg);
    -moz-transform: translate(-50%, -50%) rotate(90deg);
    -ms-transform: translate(-50%, -50%) rotate(90deg);
    -o-transform: translate(-50%, -50%) rotate(90deg);
    transform: translate(-50%, -50%) rotate(90deg);
}
.form-group--number button.up:after {
    -webkit-transform: translate(-50%, -50%) rotate(0deg);
    -moz-transform: translate(-50%, -50%) rotate(0deg);
    -ms-transform: translate(-50%, -50%) rotate(0deg);
    -o-transform: translate(-50%, -50%) rotate(0deg);
    transform: translate(-50%, -50%) rotate(0deg);
}
 
.form-group--number .form-control {
    border: 2px solid #eaeaea;
    height: 45px;
    padding: 0 25px;
    font-size: 18px;
    font-weight: 600;
    text-align: center;
    color: #222;
    background-color: transparent;
}
.form-group--number input {
    border-radius: 0;
}
 
</style>

Просмотр комментариев

Поделиться
Опубликовано
Богдан Кошелев

Недавние Посты

Аттестация ИСПДн как гарант безопасности персональных данных

В эпоху стремительного развития цифровых технологий и массовой цифровизации общества, безопасность персональных данных становится вопросом…

% дней назад

Что нужно знать о создании интернет-магазина

В современном быстро меняющемся мире онлайн-торговли создание собственного интернет-магазина становится необходимостью для предпринимателей всех уровней.…

% дней назад

Работа на биржах копирайтинга

В современном мире, на фоне активного развития технологий и роста удаленной работы, все больше людей…

% дней назад

SMS-рассылки — мощный инструмент для бизнеса

SMS-рассылки стали одним из наиболее эффективных способов связи и маркетинга в современном мире. С каждым…

% дней назад

Интернациональный SEO или как продвигать сайты за границей

В эпоху мировой глобализации интернет стал ключевым инструментом для расширения бизнеса за границей. Однако, чтобы…

% дней назад

Для каких целей покупают каналы в Telegram?

В постоянно меняющемся ландшафте социальных сетей и платформ обмена сообщениями Telegram превратился в мощного игрока,…

% дней назад