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' );