检查Woocommerce 3中的购物车是否为空

时间:2018-05-31 22:34:41

标签: php wordpress woocommerce cart hook-wordpress

我可以'想一想,如何检查购物车是否为空。我究竟做错了什么?

我的代码:

add_action( 'wp_footer', 'redirecionar' );
function redirecionar(){
    global $woocommerce;
    if ( is_page('carrinho-de-compras') and !sizeof($woocommerce->cart->cart_contents) ) {
       // do something
    }
}    

OR

add_action( 'wp_footer', 'vazio' );
    function vazio() {
        if ( ! WC()->cart->get_cart_contents_count() == 0 ) { 
           // do something
        }
}

解决

<?php add_action( 'wp_footer', 'vazio' );
    function vazio() {
        if ( ! WC()->cart->is_empty() ) { ?>
        <div style="width: 20%;" class="footer-section <?php echo esc_html($woo);?>">
            <a href="<?php echo 'https://my_web_page.pt/finalizar-compra';?>" title="Finalizar Compra"><i class="fa fa-credit-card"></i></a>
        </div>
    <?php   }
    } ?>

3 个答案:

答案 0 :(得分:1)

add_action( 'wp_footer', 'vazio' );
  function vazio() {
     if (sizeof( WC()->cart->get_cart() ) > 0 ) { 
       // do something
     }
   }

这将检查购物车中是否有物品。您可以根据需要添加else语句或检查等效性。

答案 1 :(得分:0)

在新的woocommerce 2.1+中:WC()-> cart-> cart_contents_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' ) ) );
    }
}

要检查购物车内容,您还可以使用以下代码:

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

答案 2 :(得分:0)

对于将ajax添加到购物车,您还需要将其添加到JS文件中:

$('body').on( 'added_to_cart', function(){
    if( ! $(this).hasClass('has_items') ) {
        // do something
    }
});