webdevqa.jp.net

Woocommerceカートをクリアする方法

Woocommerceを使用して、ページの読み込み時にカートの内容をクリアする方法を考えています。

Functions.phpにこれを追加することで、明確なカートボタンを追加する方法に出くわしました

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

    if ( isset( $_GET['empty-cart'] ) ) {
        $woocommerce->cart->empty_cart(); 
    }
}

しかし、ホームページのページ読み込みなどでこれをトリガーする方法について疑問に思っていました(すばらしいページを正確に指定できれば、ホームページでも便利です)

何か案は?ありがとう!

15
user1370288

フロントページでのみトリガーするには、関数は次のように見える必要があります。

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(); 
    }
}

function is_front_page() は、wordpressサイトのフロントページでのみtrueを返します。また、関数 is_page() =ページタイトル、ID、スラッグを渡すことができる場所

16
mirus

これの更新バージョンは次のようになります。

WC()->cart->empty_cart();
16
Kuliraj

これを試して。それがあなたのお役に立てば幸いです。

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

  if (strpos($_SERVER['REQUEST_URI'], '/checkout')  <  0 ) 
  {
         $woocommerce->cart->empty_cart();
  }
}
2
MakeWebBetter

このWooCommerceコア関数を単に呼び出すことができます。

WC()->cart->empty_cart();

カートセッションをクリアするには:

WC()->session->set('cart', array());

ありがとう

1
Sushil Adhikari

上記のコードはいずれもWordpressインストール(4.9.6)では動作しませんでした。したがって、add_actionを変更し、変数requestを削除して、直接実行しました。

現在、私のWoocommerceプラグインは、ユーザーが重複エラーなしでチェックアウトページを終了すると、カートから製品を消去します。皆さん、助けてくれてありがとう

add_action( 'woocommerce_add_cart_item_data', 'woocommerce_clear_cart_url' );

function woocommerce_clear_cart_url() {

    global $woocommerce;
    $woocommerce->cart->empty_cart();
} 
1

上記は私のために働いていなかったので、WordPress条件付きに依存しないものが必要でした:

/*empty cart if user come to homepage*/
add_action( 'init', 'woocommerce_clear_cart_url' );
function woocommerce_clear_cart_url() {
global $woocommerce;

if ($_SERVER['REQUEST_URI'] === '/') { 
    $woocommerce->cart->empty_cart(); 
 }
}
0
DrMosko

カートページに空のカートボタンが必要な場合は、以下のプラグインを使用してカートをクリアできます

プラグイン名:WooCommerceリンクの空のカートボタン: https://wordpress.org/plugins/woo-empty-cart-button/

プラグインを有効にするだけで設定は不要です。

0
user6795377