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

Очистка корзины

Тема в разделе "Вопросы, советы и доработки.", создана пользователем todayz, 2 апр 2015.

  1. todayz

    todayz

    Сообщения:
    4
    Симпатии:
    2
    Баллы:
    3
    Доброго времени суток. Я уже второй день ковыряюсь с тем, как мне в страницу Checkout добавить кнопочку с возможностью очистки корзины.

    Грубо говоря на странице должна быть кнопочка "очистить корзину". При нажатии на которую будет вызываться функция wc_empty_cart(); выводится сообщение о том, что заказ отменён и через несколько секунд редирект на главную страницу сайта.

    Ссылку я добавил в файл form-billing.php. Но никак не пойму как вызвать нужную мне функцию при нажатии на a href ссылку.

    Помогите пожалуйста разобраться.
     
  2. D&B

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

    Сообщения:
    3.269
    Симпатии:
    724
    Баллы:
    113
    Там же есть значок удаления товара после чего появляется кнопка Вернуться в магазин.
     
  3. todayz

    todayz

    Сообщения:
    4
    Симпатии:
    2
    Баллы:
    3
    Мне не нужно чтобы человек видел всё наименование магазина. Товары вообще скрыты от посетителей. А добавляются в корзину при помощи примых ссылок типа "shop/?add-to-cart=1436". Поэтому интересует именно такая функция, как я описал. Чтобы не дать посетителю вернуться в корзину или посмотреть весь шоп целиком.
     
  4. todayz

    todayz

    Сообщения:
    4
    Симпатии:
    2
    Баллы:
    3
    Нашёл вот такое вот решение, но оно не работает (((

    В functions.php темы добавил

    // check for empty-cart get param to clear the cart
    add_action( 'init', 'woocommerce_clear_cart_url' );
    function woocommerce_clear_cart_url() {
    global $woocommerce;
    if ( isset( $_GET['empty-cart'] ) ) {
    $woocommerce->cart->empty_cart();
    }
    }

    а в form-billing.php.

    <a class="button" href="<?php echo $woocommerce->cart->get_cart_url(); ?>?empty-cart"><?php _e( 'Empty Cart', 'woocommerce' ); ?></a>

    Но страница грузится не полностью, и я так понимаю грузится ровно до кода ссылки. Может где-то с синтаксисом что-то не так. Не могу никак понять ((
     
  5. birkinmax

    birkinmax

    Сообщения:
    53
    Симпатии:
    6
    Баллы:
    8
    Вы нашли решение этого вопроса? Для меня это тоже актуально. Тоже не могу найти код кнопки
     
  6. todayz

    todayz

    Сообщения:
    4
    Симпатии:
    2
    Баллы:
    3
    на самом деле нашёл.

    В файл wp-content/plugins/woocommerce/templates/checkout/form-billing.php

    добавил следующий код:

    <?php
    echo "<a class=\"button\" href=\"'.$woocommerce->cart->get_cart_url().'?empty-cart\">Отменить заказ</a>";
    ?>

    а в functions.php тему добавил вот такую конструкцию:

    // check for empty-cart get param to clear the cart

    add_action( 'init', 'woocommerce_clear_cart_url' );
    function woocommerce_clear_cart_url() {
    global $woocommerce;

    if ( isset( $_GET['empty-cart'] ) ) {
    $woocommerce->cart->empty_cart();
    wp_redirect('http://MYSITE.RU/корзина_пуста/'); exit;
    }
    }

    wp_redirect делать в принципе не обязательно, просто когда корзина опустошается, то ничего на экран не выводится. Поэтому я создал отдельную страницу, чтобы показать посетителю, что корзина действительно опустошилась.
     
    • Нравится Нравится x 2
  7. birkinmax

    birkinmax

    Сообщения:
    53
    Симпатии:
    6
    Баллы:
    8
    Спасибо большое!
     
  8. Stork.71

    Stork.71 Местный

    Сообщения:
    1.036
    Симпатии:
    254
    Баллы:
    83
    На будущее просьба к топикстартеру:
    Если это не сложно, после того, как нашли решение, не поленитесь потратить пару минут и выложить его здесь. Это может помочь кому-то ;)
     
    • Согласен Согласен x 1
  9. Solomon Fox

    Solomon Fox

    Сообщения:
    90
    Симпатии:
    4
    Баллы:
    8
    У меня такой же вопрос, нашел код который при переходе на определенную страницу очищает корзину
    Код:
    add_action( 'init', 'woocommerce_clear_cart_url' );
    function woocommerce_clear_cart_url() {
      global $woocommerce;
    
        if ( is_front_page() && isset( $_GET['empty-cart'] ) ) {
            $woocommerce->cart->empty_cart();
        }
    }
    но почему то при переходе на главную страницу или на любую другую код не работает. Добавлял в функшнс.пхп темы, в чем загвоздка Нужно что бы при переходе на определенную страницу корзина очищалась. По логике is_front_page() меняем на is_page() указываем ID страницы и все. Но не работает, кто сталкивался?
     
  10. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    553
    Баллы:
    113
    Данный код очистит главную только в том случае , если у нее задан GET-параметр 'empty-cart'. Он у Вас задается при переходе в URL главной страницы?
     
  11. Solomon Fox

    Solomon Fox

    Сообщения:
    90
    Симпатии:
    4
    Баллы:
    8
    Спасибо за ответ. Видимо нет, подскажете где и как это можно прописать этот параметр для страницы?
     
  12. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    553
    Баллы:
    113
    Не проще его просто убрать из приведенного вами кода, если он Вам не нужен?
    Тогда при любом переходе на главную будет очищаться корзина.
     
  13. Solomon Fox

    Solomon Fox

    Сообщения:
    90
    Симпатии:
    4
    Баллы:
    8
    $_GET['empty-cart'] ) вот нашел. Я так предполагаю вместо него можно другое условие прописать Что-то типо
    add_action( 'init', 'woocommerce_clear_cart_url' );
    function woocommerce_clear_cart_url() {
    global $woocommerce;

    if ( is_page(IDстраницы) == isset( is_page(IDстраницы-благодарности при переходе на которую очистка) ) {
    $woocommerce->cart->empty_cart();
    }
    }
    Правильно?
     
  14. Solomon Fox

    Solomon Fox

    Сообщения:
    90
    Симпатии:
    4
    Баллы:
    8
    пробовал без гета)) не работает ни на главной ни при изменеие на is_page
     
  15. Solomon Fox

    Solomon Fox

    Сообщения:
    90
    Симпатии:
    4
    Баллы:
    8
    наигрался с гет параметром теперь товар в корзину вообще не добавляется.))
     
  16. Solomon Fox

    Solomon Fox

    Сообщения:
    90
    Симпатии:
    4
    Баллы:
    8
    да без гет параметра не работает к сожалению