У меня возникли проблемы с передачей непустых корзин.
Моя цель - очистить корзину, когда пользователь входит в систему.
Я создал подключаемый модуль, который подключается к WP login.
Похоже, что он делает именно то, что я хочу от вывода команд запроса корзины, но в пользовательской корзине WC все еще есть содержимое.
Вот мой код плагина:
function WPLoginAction() {
$myfile = fopen("/home3/fitnevq7/public_html/scriptlogs/wploginnew", "w");
$txt = "wp login start \n";
fwrite($myfile, $txt);
$ISEmpty = WC()->cart->is_empty();
$txt = "is Cart empty before = " . $ISEmpty . "\n";
fwrite($myfile, $txt);
$count= WC()->cart->get_cart_contents_count();
$txt = "var count = " . $count . "\n";
fwrite($myfile, $txt);
global $woocommerce;
$var = $woocommerce->cart->empty_cart(true);
$txt = "var result = " . $var . "\n";
fwrite($myfile, $txt);
$count= WC()->cart->get_cart_contents_count();
$txt = "var count after delete = " . $count . "\n";
fwrite($myfile, $txt);
$ISEmpty = WC()->cart->is_empty();
$txt = "is Cart empty after = " . $ISEmpty . "\n";
fwrite($myfile, $txt);
}
add_action('login_enqueue_scripts', 'WPLoginAction');
}
Вывод из скрипта
wp login start
is Cart empty before =
var count = 1
var result =
var count after delete = 0
is Cart empty after = 1
Это будет означать, что скрипт работает, но корзина WC все еще отображается с одним элементом через GUI.
Обратите внимание, что я создал страницу WPс двумя строками кода ниже и работает эта страница работает.
global $woocommerce;
$var = $woocommerce->cart->empty_cart(true);