Помощь 1.7.8.8 как убрать модальное окно добавления товара в корзину ?

webzx

Создатель
Регистрация
22 Янв 2014
Сообщения
26
Реакции
13
1.7.8.8 как убрать модальное окно добавления товара в корзину с предложением оформить или продолжить покупки ?
Просто бесит) не только как розраба но и как пользователя.

Пример на скрине
 

Вложения

  • 2023-01-24_02-43-45.png
    2023-01-24_02-43-45.png
    156,1 KB · Просмотры: 24
1.7.8.8 как убрать модальное окно добавления товара в корзину с предложением оформить или продолжить покупки ?
Просто бесит) не только как розраба но и как пользователя.

Пример на скрине
Решается установкой модуля корзины типа supercheckout, easycheckout... Там можно убрать этот шаг
 
Решается установкой модуля корзины типа supercheckout, easycheckout... Там можно убрать этот шаг
нет, модулями не подходит, нужно поправить без доп. модуля.
пробовал отключать AJAX корзину, но тогда после нажатия "в корзину" товар не появляется в корзине пока не перезагрузишь страницу в ручную, создается впечатление что сайт завис т.к. визуально ничего не меняется...

Я еще добавить код что бы после добавления в корзину на кнопке менялась надпись и пиктограмма "в корзине".

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

если примитивно, то нужно имитировать нажатие "продолжить покупки" или закрытие модального окна.

Очень нужно, помогите решить задачу.

В общем модальное окно я отключил, закомментировал showModal(resp.modal), теперь код который я добавил в /themes/classic/templates/catalog/_partials/product-add-to-cart.tpl

Код:
<!-- Определение в корзине -->
{$in_cart = 0}
{foreach from=$cart['products'] item='cart_product' }
    {if $cart_product['id_product'] == $product.id}
        {$in_cart = 1}
    {/if}
{/foreach}
<!-- Если в корзине -->
{if $in_cart}
<div class="add">
    <a href="/cart" class="btn btn-primary add-to-cart">{l s='Already in cart' d='Shop.Theme.Actions'}</a>
</div>
{else}
<div class="add">
    <button class="btn btn-primary add-to-cart" data-button-action="add-to-cart" type="submit" {if !$product.add_to_cart_url} disabled {/if}>
        <i class="material-icons shopping-cart">&#xE547;</i>
        {l s='Add to cart' d='Shop.Theme.Actions'}
    </button>
</div>
{/if}


не работает (до отключения модального окна работал), то есть надпись на кнопке перестала меняться после добавления в корзину, потому что страница не перегружается и переменная in_cart не обновляется. Подсказали мне что нужно все делать в javascript.
Файл /themes/classic/assets/js/theme.js Показ окна в blockcart.showModal

Но вот тут я уже в тупике, помогите сделать так что бы кнопка "в корзину" после добавления товара изменялась на надпись "в корзине"
 
/themes/classic/modules/ps_shoppingcart/ps_shoppingcart.js


Код:
/* global $, prestashop */

/**
 * This module exposes an extension point in the form of the `showModal` function.
 *
 * If you want to override the way the modal window is displayed, simply define:
 *
 * prestashop.blockcart = prestashop.blockcart || {};
 * prestashop.blockcart.showModal = function myOwnShowModal (modalHTML) {
 *   // your own code
 *   // please not that it is your responsibility to handle closing the modal too
 * };
 *
 * Attention: your "override" JS needs to be included **before** this file.
 * The safest way to do so is to place your "override" inside the theme's main JS file.
 *
 */

$(document).ready(function () {
  prestashop.blockcart = prestashop.blockcart || {};

  var showModal = prestashop.blockcart.showModal || function (modal) {
    var $body = $('body');
    $body.append(modal);
    $body.one('click', '#blockcart-modal', function (event) {
      if (event.target.id === 'blockcart-modal') {
        $(event.target).remove();
      }
    });
  };

  $(document).ready(function () {
    prestashop.on(
      'updateCart',
      function (event) {

        if($('body:not(#cart)').hasClass('add1')) {
          var cart_click = function (e) {
            $('body').addClass('side_open1 side_content')
            $('.side_menu .side_menu_rel > div').removeClass('show');
            $('#side_cart_wrap').addClass('show');
            $('.side_close').removeClass('search_close menu_close mail_close').addClass('cart_close');
            $('.side_menu').find('.cart-prods').addClass('loading');
            // console.log('1');
          }
          cart_click();
        }

        var refreshURL = $('.blockcart').data('refresh-url');
        var requestData = {};

        if (event && event.reason) {
          requestData = {
            id_product_attribute: event.reason.idProductAttribute,
            id_product: event.reason.idProduct,
            action: event.reason.linkAction
          };
        }

        $.post(refreshURL, requestData).then(function (resp) {
          $('.blockcart').replaceWith($(resp.preview).find('.blockcart'));
          var count_new = $(resp.preview).find('.cart-products-count').text()
          $('.prod_count').html(count_new);
          count_new > 0 ? $('.prod_count').addClass('active') : $('.prod_count').removeClass('active');

          if($('body').hasClass('add1')) {
            $('.side_menu').find('.cart-prods').addClass('loading');
            // console.log('2');
            setTimeout(function(){
              $('.side_menu').find('.cart-prods').removeClass('loading');
              $('.side_menu').find('.cart-prods > li:not(.show)').each(function(i){
                var row = $(this);
                setTimeout(function(){
                  row.addClass('show');
                }, 300 + i * 160);
              });
            }, 400);
          } else {
            if (resp.modal) {
//              showModal(resp.modal);
            }
          }
        }).fail(function (resp) {
          prestashop.emit('handleError', {eventType: 'updateShoppingCart', resp: resp});
        });
      }
    );
  });
});
 
Назад
Сверху