Перенаправление на главную страницу, если корзина пуста

Я хочу перенаправить пользователя на домашнюю страницу, если корзина пуста, возможно ли это сделать из панели администратора, если да, пожалуйста, помогите, иначе мне придется перенаправить через перегрузку контроллера.


person murtza gondal    schedule 11.03.2014    source источник
comment
@amitBera, что вы подразумеваете под блогом RS?   -  person murtza gondal    schedule 12.03.2014


Ответы (2)


Я не думаю, что вы можете сделать это от администратора, но вы можете попробовать

  1. В app/design/frontend/default/your-theme/template/checkout/cart/noItems.phtml добавить (это может быть не лучшее решение, но работает)

     <?php Mage::app()->getResponse()->setRedirect($this->getContinueShoppingUrl()); ?>
    
  2. Создайте наблюдателя (попробуйте controller_action_predispatch_checkout_cart_delete), который проверяет, пуста ли ваша корзина, а затем перенаправляет на домашнюю страницу (для перенаправления от наблюдателя см.)

  3. Использование javascript и таймера, чтобы пользователь видел, что корзина пуста перед перенаправлением на домашнюю страницу (см. перенаправление с задержкой по времени?) Добавьте приведенный ниже код в noItems.phtml см. решение №1.

    <script>
     setTimeout(function () {
       window.location.href = "<?php echo $this->getContinueShoppingUrl() ?>"; //will redirect  to your blog page (an ex: blog.html)
     }, 2000); //will call the function after 2 secs.
    </script>
    
person Renon Stewart    schedule 12.03.2014
comment
Первое решение не работает, также я не думаю, что хорошо перенаправлять из файла phtml. наблюдатель - последний вариант, я думаю. Спасибо за ответ - person murtza gondal; 12.03.2014
comment
да, но это взлом, я хотел посмотреть, есть ли какое-либо решение, предоставляемое magento. Спасибо за ответ - person murtza gondal; 14.03.2014
comment
Ничто из вышеперечисленного не является «взломом», это настройка (при условии, что вы не вносили никаких изменений в файлы ядра magento) - person Renon Stewart; 14.03.2014
comment
сначала он загрузит пустую страницу корзины, а затем перенаправит пользователя на домашнюю страницу. Потеря времени пользователя. Observer - правильное решение, перенаправляйте, как только в корзине нет товаров без двойного перенаправления. - person murtza gondal; 16.03.2014

Добавьте это в свой functions.php

function cart_empty_redirect_to_shop() {
    global $woocommerce;

    if ( is_page('cart') and !sizeof($woocommerce->cart->cart_contents) ) {
        wp_redirect( get_permalink( wc_get_page_id( 'shop' ) ) ); exit;
    }
}

add_action( 'wp_head', 'cart_empty_redirect_to_shop' );

Приведенное выше перенаправит пустую корзину на страницу магазина.

person Uncle Iroh    schedule 17.11.2015
comment
Вопрос был о Magento, а не Wordpress - person Paradoxetion; 28.03.2016