Введите часть искомого слова, названия или фразы...
↑ ↓
  1. Новые темы озаглавленные с маленькой буквы - удаляются без предупреждения!
  2. Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Решено Добавление в корзину без перезагрузки страницы

Тема в разделе "Ищу плагин, функционал", создана пользователем adward, 4 июн 2014.

  1. adward

    adward

    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    6
    Собственно в теме и указал то, что ищу.

    Хотелось бы чтобы при клике "добавить в корзину" - не перезагружалась страница целиком.

    Кто либо встречал?..
     
  2. D&B

    D&B Администратор Команда форума Местный

    Сообщения:
    3.724
    Симпатии:
    880
    Баллы:
    113
    • Нравится Нравится x 1
  3. maxfire

    maxfire

    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    В файле /wp-content/plugins/woocommerce/templates/single-product/add-to-cart/simple.php вместо:

    1. <buttontype="submit"class="single_add_to_cart_button button alt"><?php echo $product->single_add_to_cart_text();?></button>
    вставляем код:

    1. <button type="submit" data-quantity="1" data-product_id="<?php echo $product->id;?>"
    2. class="button alt add_to_cart_button product_type_simple"><?php echo $product->single_add_to_cart_text();?></button>
     
  4. searchingman

    searchingman Местный

    Сообщения:
    1.635
    Симпатии:
    631
    Баллы:
    113
    Править файлы-шаблоны плагина категорически не рекомендуется. Для этого их нужно копировать в свою тему и затем править.
     
    • Согласен Согласен x 2
  5. igor.gayyar

    igor.gayyar

    Сообщения:
    403
    Симпатии:
    5
    Баллы:
    18
    здравствуйте
    не работает, перезагрузка страницы остается..((
     
  6. rikitiki

    rikitiki Местный

    Сообщения:
    805
    Симпатии:
    211
    Баллы:
    43
    Добавить то в тему можно, только по этому пути работать не будет. Во всяком случае у меня не сработало.
     
  7. Артём Давыдов

    Артём Давыдов

    Сообщения:
    12
    Симпатии:
    1
    Баллы:
    3
    Нашел решение, чтобы после перезагрузки страницы - скролл возвращался на последнюю позицию.
    Это полезно тогда, когда тема не поддерживает ajax добавление в корзину и каждый раз возвращает страницу вверх.
    Обращайтесь
     
  8. tuxfighter

    tuxfighter Местный

    Сообщения:
    1.796
    Симпатии:
    277
    Баллы:
    83
    т.е. просто выложить это решение здесь - религия не позволяет?
     
    • Нравится Нравится x 1
    • Согласен Согласен x 1
  9. Kaliondis

    Kaliondis

    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Код:
    add_filter( 'woocommerce_add_to_cart_fragments', 'woocommerce_header_add_to_cart_fragment' );
    
    function woocommerce_header_add_to_cart_fragment( $fragments ) {
     ob_start();
     ?>
     <a class="cart-contents" href="<?php echo WC()->cart->get_cart_url(); ?>" title="<?php _e( 'Перейти в корзину' ); ?>"><i class="fa fa-shopping-cart"></i><?php echo sprintf (_n( '%d товар', '%d товаров', WC()->cart->cart_contents_count ), WC()->cart->cart_contents_count ); ?> - <?php echo WC()->cart->get_cart_total(); ?></a>
     <?php
     $fragments['a.cart-contents'] = ob_get_clean();
     return $fragments;
    }
    вроде так
     
  10. Delirium_Tremens

    Delirium_Tremens

    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    А это куда вставлять?
     
  11. Kaliondis

    Kaliondis

    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Да куда угодно, лиж бы в страницы подгрузился. Можете в function.php
     
  12. Kaliondis

    Kaliondis

    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Код:
    // Ajax cart update
    function woocommerce_header_add_to_cart_fragment( $fragments ) {
        ob_start();
        if ( sizeof( WC()->cart->get_cart() ) > 0 ) {
            ?>
            <a class="cart-contents cart-complete" href="<?php echo esc_url( WC()->cart->get_cart_url() ); ?>" title="<?php esc_attr_e( 'Перейти в корзину', 'ma' ); ?>">
                <span class="amount"><?php echo wp_kses_data( WC()->cart->get_cart_subtotal() ); ?></span> <span class="count">(<?php echo wp_kses_data( sprintf( _n( '%d тов.', '%d тов.', WC()->cart->get_cart_contents_count(), 'ma' ), WC()->cart->get_cart_contents_count() ) );?>)</span>
            </a>
            <?php
        } else {
            ?>
            <a class="cart-contents" href="<?php echo esc_url( WC()->cart->get_cart_url() ); ?>" title="<?php esc_attr_e( 'Перейти в корзину', 'ma' ); ?>">
            </a>
            <?php
        }
        $fragments['a.cart-contents'] = ob_get_clean();
        return $fragments;
    }
    add_filter( 'woocommerce_add_to_cart_fragments', 'woocommerce_header_add_to_cart_fragment' );
    
    ХХХ золотых ХХХ товаров - появляется при sizeof( WC()->cart->get_cart() ) > 0
     
  13. Delirium_Tremens

    Delirium_Tremens

    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Ничего не заработало, но все равно спасибо!
     
  14. exepr0gaming

    exepr0gaming

    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Сегодня столкнулся с подобной проблемой, решил следующим образом -
    Там, где Вы используете корзину пишем:
    <a class="cart-contents" href="<?php echo WC()->cart->get_cart_url(); ?>" title="<?php _e( 'Перейти к оформлению товаров' ); ?>"><?php echo sprintf (_n( '%d товар', '%d товаров', WC()->cart->cart_contents_count ), WC()->cart->cart_contents_count ); ?> - <?php echo WC()->cart->get_cart_total(); ?></a>
    В файле функций добавляем:
    add_filter( 'woocommerce_add_to_cart_fragments', 'woocommerce_header_add_to_cart_fragment' );
    function woocommerce_header_add_to_cart_fragment( $fragments ) {
    ob_start();
    ?>
    <a class="cart-contents" href="<?php echo WC()->cart->get_cart_url(); ?>" title="<?php _e( 'View your shopping cart' ); ?>"><?php echo sprintf (_n( '%d товар', '%d товаров', WC()->cart->cart_contents_count ), WC()->cart->cart_contents_count ); ?> - <?php echo WC()->cart->get_cart_total(); ?></a>
    <?php
    $fragments['a.cart-contents'] = ob_get_clean();
    return $fragments;
    }
    Классы свои можете оставить естественно, лишь бы они в функции и ссылке совпадали, ничего сложного, ну и конечно же в теме, в товарах ajax должен быть включен.
    ---

    У меня с небольшой проверкой, на пустую корзину, выглядит в общем и целом вот так (но оно Вам может и не нужно совершенно, кода выше хватает для работы):
    <div class="cart-contents header-wrap__cart">
    <center>Моя корзина<br>
    <i class="fa fa-shopping-cart"></i><br>
    <a class="cart-items cart-contents" href="<?php echo WC()->cart->get_cart_url(); ?>" title="Посмотреть корзину">
    <span class="header-wrap__cart-quant-val cart-count" style="color:#000000;">
    <?php
    if (WC()->cart->cart_contents_count > 0) {
    echo sprintf(_n('%d товар', '%d товаров', WC()->cart->cart_contents_count, 'store'), WC()->cart->cart_contents_count); ?></span><br>
    <span style="color:#000000;" class="header-wrap__cart-quant-val cart-count">На <?php echo WC()->cart->get_cart_total(); ?>
    </span>
    <?php
    } else {
    echo '<span class="header-wrap__cart-quant-val cart-count" style="color:#000000;">Корзина пуста</span>';
    }
    ?>
    </a></center>
    </div>
     
    Последнее редактирование: 16 дек 2017