質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

0回答

479閲覧

[woocommerce]Call to a member function empty_cart() on null inの解決方法

fkshin

総合スコア12

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2018/04/02 04:58

###現状
woocommerceにて、checkoutから他のページ飛んだときに、カートの中をクリアにしたいと思っています。

商品を選ぶ

カートに入れる

決済画面[checkout]

別のページに飛ぶ

再び決済画面

カートの中身がゼロに

なのですが、functionに下記を書くと、
「動作はするけど管理画面に入れない」
状態になってしまいます。

php

1function woocommerce_clear_cart_url() { 2 $url = $_SERVER['REQUEST_URI']; 3 $check = strstr($url,'checkout'); 4 if (!$check){ 5 global $woocommerce; 6 $empty = WC()->cart->empty_cart(); 7 return $empty; 8 } 9} 10add_action( 'woocommerce_init', 'woocommerce_clear_cart_url' );

エラーメッセージ
Fatal error: Call to a member function empty_cart() on null in /Users/~~~~~/functions.php on line 823

###試したこと
1.プラグインを全部消して実装
→変わらず


empty_cart()がnullなら…

2.他の関数で出来ないか実践
■ログアウトしたらカートを空にする

php

1function your_function() { 2 if( function_exists('WC') ){ 3 WC()->cart->empty_cart(); 4 } 5} 6add_action('wp_logout', 'your_function');

問題なく動きます
→このwp_logoutをwoocommerce_initに変更すると上記エラーが出る
↓ということは
woocommerce_initが原因…?

###最後に
皆様の知恵をお貸し下さい。
よろしくお願いします!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問