cart ) || $woocommerce->cart == '' ) $woocommerce->cart = new WC_Cart(); $woocommerce->cart->empty_cart( false ); } add_action( 'wp_logout', 'woocommerce_empty_cart' ); /** * Load the cart upon login * @param mixed $user_login * @param mixed $user */ function woocommerce_load_persistent_cart( $user_login, $user = 0 ) { global $woocommerce; if ( ! $user ) return; $saved_cart = get_user_meta( $user->ID, '_woocommerce_persistent_cart', true ); if ( $saved_cart ) if ( empty( $woocommerce->session->cart ) || ! is_array( $woocommerce->session->cart ) || sizeof( $woocommerce->session->cart ) == 0 ) $woocommerce->session->cart = $saved_cart['cart']; } add_action( 'wp_login', 'woocommerce_load_persistent_cart', 1, 2 ); /** * Add to cart messages. * * @access public * @return void */ function woocommerce_add_to_cart_message( $product_id ) { global $woocommerce; if ( is_array( $product_id ) ) { $titles = array(); foreach ( $product_id as $id ) { $titles[] = get_the_title( $id ); } $added_text = sprintf( __( 'Added "%s" to your cart.', 'woocommerce' ), join( __( '" and "', 'woocommerce' ), array_filter( array_merge( array( join( '", "', array_slice( $titles, 0, -1 ) ) ), array_slice( $titles, -1 ) ) ) ) ); } else { $added_text = sprintf( __( '"%s" was successfully added to your cart.', 'woocommerce' ), get_the_title( $product_id ) ); } // Output success messages if ( get_option( 'woocommerce_cart_redirect_after_add' ) == 'yes' ) : $return_to = apply_filters( 'woocommerce_continue_shopping_redirect', wp_get_referer() ? wp_get_referer() : home_url() ); $message = sprintf('%s %s', $return_to, __( 'Continue Shopping →', 'woocommerce' ), $added_text ); else : $message = sprintf('%s %s', get_permalink( woocommerce_get_page_id( 'cart' ) ), __( 'View Cart →', 'woocommerce' ), $added_text ); endif; wc_add_message( apply_filters('woocommerce_add_to_cart_message', $message) ); } /** * Clear cart after payment. * * @access public * @return void */ function woocommerce_clear_cart_after_payment() { global $woocommerce, $wp; if ( ! empty( $wp->query_vars['order-received'] ) ) { $order_id = absint( $wp->query_vars['order-received'] ); if ( isset( $_GET['key'] ) ) $order_key = $_GET['key']; else $order_key = ''; if ( $order_id > 0 ) { $order = new WC_Order( $order_id ); if ( $order->order_key == $order_key ) { $woocommerce->cart->empty_cart(); } } } if ( $woocommerce->session->order_awaiting_payment > 0 ) { $order = new WC_Order( $woocommerce->session->order_awaiting_payment ); if ( $order->id > 0 ) { // If the order has not failed, or is not pending, the order must have gone through if ( $order->status != 'failed' && $order->status != 'pending' ) $woocommerce->cart->empty_cart(); } } } add_action( 'get_header', 'woocommerce_clear_cart_after_payment' );