У меня проблема с тем, что WooCommerce не очищает корзину после перенаправления с платежного шлюза - Payfast. Товары по-прежнему остаются в корзине, пока страница не обновится.
Я реализовал этот код в файле functions.php моей дочерней темы для принудительной очистки корзины на страницах с ярлыками «спасибо», «оформить заказ» и «получить заказ».
//Force Clear Cart
add_action( 'init', 'woocommerce_clear_cart_url' );
function woocommerce_clear_cart_url() {
global $woocommerce;
if ( is_page( array( 'thank-you', 'checkout', 'order-received' ) ) && isset( $_GET['empty-cart'] ) ) {
$woocommerce->cart->empty_cart();
}
}
add_action( 'woocommerce_thankyou', 'order_received_empty_cart_action', 10,
1 );
function order_received_empty_cart_action( $order_id ){
WC()->cart->empty_cart();
}
Но, похоже, это не работает как отступ.