如果购物车为空,购物车页面将重定向到woocommerce中的购物页面?

时间:2014-06-19 06:26:50

标签: wordpress woocommerce shopping-cart

我正在开发wordpress woocommerce

我想在购物车页面为空时将购物车页面重定向到商店页面,否则显示购物车页面。任何人都可以有解决方案吗?

这是我尝试过的代码,但它不起作用

function my_empty_cart() {
  global $woocommerce;

    if (isset( $_GET['empty-cart'] ) ) { 
        wp_safe_redirect( get_permalink( woocommerce_get_page_id( 'product' ) ) );
    }
}
add_action( 'init', 'my_empty_cart' );

6 个答案:

答案 0 :(得分:10)

// old woocommerce : use sizeof( $woocommerce->cart->cart_contents) to check cart content count

// In new woocommerce 2.1+ : WC()->cart->cart_contents_count to check cart content count

add_action("template_redirect", 'redirection_function');
function redirection_function(){
    global $woocommerce;
    if( is_cart() && WC()->cart->cart_contents_count == 0){
        wp_safe_redirect( get_permalink( woocommerce_get_page_id( 'shop' ) ) );
    }
}
每次都会运行

init钩子。使用template_redirect

==============Updates=============

在新的woocommerce中,他们更新了功能,现在您可以使用以下功能直接获取购物车内容。

WC()->cart->cart_contents_count

答案 1 :(得分:3)

这里你是我的朋友:)

我自己测试了这个,因为我需要类似的东西。

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' );

答案 2 :(得分:1)

我试过@ Pushpak的解决方案,但它不再起作用了。要查看购物车内容,请使用以下代码:

global $woocommerce;
if ( $woocommerce->cart->cart_contents_count != 0 ) {
    // cart has content
} else {
    // cart is empty
}

答案 3 :(得分:1)

2018年9月25日-

今天为我工作:

function cart_empty_redirect_to_shop() {
  global $woocommerce, $woocommerce_errors;

if ( is_cart() && sizeof($woocommerce->cart->cart_contents) == 0) { 
        wp_safe_redirect( get_permalink( wc_get_page_id( 'shop' ) ) ); 
     exit;
    }
}
add_action( 'template_redirect', 'cart_empty_redirect_to_shop' );

答案 4 :(得分:0)

只需转到woocommerce文件夹并导航到CART文件夹..有一个cart-empty.php

然后找到以下内容:

<p><a class="button1 btn btn-normal" href="<?php echo get_permalink.....

它会说getpermalink(woocommerce _.....

只需将其更改为

即可
<p><a class="button1 btn btn-normal" href="<?php echo get_permalink('THE PAGE ID YOU WANT TO REDIRECT TO');

然后把你的叔叔扯掉......它会重定向到你指定的id的页面。

如果你不明白,请告诉我。

答案 5 :(得分:0)

2021 年更新

由于 WooCommerce 版本 3 在尝试访问购物车页面并且购物车已经为空时使用以下内容重定向到商店页面:

add_action( 'template_redirect', 'empty_cart_redirect' );
function empty_cart_redirect(){
    if( is_cart() && WC()->cart->is_empty() ) {
        wp_safe_redirect( get_permalink( wc_get_page_id( 'shop' ) ) );
        exit();
    }
}

代码位于活动子主题(或活动主题)的functions.php 文件中。经测试有效。


注意事项 - 过时和弃用的代码:

  • global $woocommerce;$woocommerce->cart 一起使用被简单地替换为 WC()->cart
  • sizeof($woocommerce->cart->cart_contents) == 0 替换为简单的 WC()->cart->is_empty()
  • woocommerce_get_page_id() 替换为 wc_get_page_id()

删除购物车页面上的所有购物车项目时,要激活重定向,需要一些额外的 jQuery 代码,请参阅:Redirect to shop if cart is emptied on cart page in WooCommerce 3+