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

Решено Выбор количества товара в общем каталоге

Тема в разделе "Вопросы, советы и доработки.", создана пользователем Grigoriy, 13 сен 2016.

  1. Grigoriy

    Grigoriy

    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Добрый день! Я новичок, есть много вопросов. Потихоньку читаю форум и смотрю тематические видео. Есть магазин dudino.ru. Хочу реализовать возможность добавлять определённое количество товара в корзину без необходимости переходит на страницу самого товара. Во вложении виден один из способов решения. Ещё видел магазин, где под товаром было поле с + и - и покупатель подбирал нужное себе количество. Ссылку, правда, потерял. Как можно реализовать такой функционал?
     

    Вложения:

  2. rikitiki

    rikitiki Местный

    Сообщения:
    750
    Симпатии:
    185
    Баллы:
    43
    Для вариативного товара сделать просто, так как существует соответствующий плагин. Для простого товара сложней, виду того что плагина нет и придётся основательно корректировать файлы woocоmmerce. В двух словах не объяснишь.
    Нечто подобное делал на двух своих сайтах:
    http://innka.info/product-category/uxod-za-kozhej/sredstva-timewise/
    http://xarod.tk/shop/
     
  3. Grigoriy

    Grigoriy

    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Да, реализация хорошая. Но мне надо, чтобы это окошко с 1 и стрелками отображалось под каждым товаром постоянно. Без необходимости курсор на него наводить.
    Есть много не вариативных товаров, так что нужно комплексное решение.

    P.S. Вы сам делали? Очень трудоёмко?
     
  4. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    553
    Баллы:
    113
    Для простых товаров с поддержкой AJAX работает следующий код (вставьте в functions.php).
    PHP:
    // выбор количества при добавлении простых товаров в корзину с поддержкой AJAX на страницах категорий товаров
    add_action('woocommerce_before_shop_loop', 'custom_woo_before_shop_link');
    function custom_woo_before_shop_link() {
        add_filter('woocommerce_loop_add_to_cart_link', 'custom_woo_loop_add_to_cart_link', 10, 2);
        add_action('woocommerce_after_shop_loop', 'custom_woo_after_shop_loop');
    }
    // customise Add to Cart link/button for product loop
    function custom_woo_loop_add_to_cart_link($button, $product) {
        // not for variable, grouped or external products
        if (!in_array($product->product_type, array('variable', 'grouped', 'external'))) {
            // only if can be purchased
            if ($product->is_purchasable()) {
                // show qty +/- with button
                ob_start();
                woocommerce_simple_add_to_cart();
                $button = ob_get_clean();
                // modify button so that AJAX add-to-cart script finds it
                $replacement = sprintf('data-product_id="%d" data-quantity="1" $1 ajax_add_to_cart add_to_cart_button product_type_simple ', $product->id);
                $button = preg_replace('/(class="single_add_to_cart_button)/', $replacement, $button);
            }
        }
        return $button;
    }
    // add the required JavaScript
    function custom_woo_after_shop_loop() {
        ?>

        <script>
        jQuery(function($) {
        <?php /* when product quantity changes, update quantity attribute on add-to-cart button */ ?>
        $("form.cart").on("change", "input.qty", function() {
            $(this.form).find("button[data-quantity]").data("quantity", this.value);
        });
        <?php /* remove old "view cart" text, only need latest one thanks! */ ?>
        $(document.body).on("adding_to_cart", function() {
            $("a.added_to_cart").remove();
        });
        });
        </script>

        <?php
    }
    Результат на примере темы Storefront. (см. скриншот)
     
    • Нравится Нравится x 2
    • Симпатия Симпатия x 1
  5. tuxfighter

    tuxfighter Местный

    Сообщения:
    678
    Симпатии:
    105
    Баллы:
    43
    Тема Vantage аякс работает, но все плохо:
    vantage.jpg

    изменил кол-во только у одного товара

    прийдеться вернутся к старому варианту
     
  6. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    553
    Баллы:
    113
    Представленный выше код используется только для простых товаров. Вариативные товары он не затрагивает.
    У Вас, вероятно, используется какой-то код (плагин) для вариативных товаров с которым, возможно, происходит конфликт.
    Вот так выглядит используемый код на теме Vantage (см. скриншот).
     
  7. tuxfighter

    tuxfighter Местный

    Сообщения:
    678
    Симпатии:
    105
    Баллы:
    43
  8. Grigoriy

    Grigoriy

    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Спасибо тебе, мил человек, огромное! Работает!
    А как можно вывести выпадающий список с вариантами товара на основную страницу? Как на скриншоте у пользователя tuxfighter
     
  9. rikitiki

    rikitiki Местный

    Сообщения:
    750
    Симпатии:
    185
    Баллы:
    43
    Отличный код! Но в Похожих товарах и Новинках количество не отображает? Как туда вставить?
     
  10. Ahazhgir

    Ahazhgir

    Сообщения:
    7
    Симпатии:
    1
    Баллы:
    3
    Доброго времени суток.
    Вы знаете как добавить подобную функцию не только на страницах категорий, но и для товаров выводимых шорткодом?