We should allow failed orders to be resumed, not show a blank page. Closes #3612

@coenjacobs might need to go in 15
This commit is contained in:
Mike Jolley 2013-09-26 17:18:12 +01:00
parent 21f48bea99
commit fce70b288d
2 changed files with 1 additions and 5 deletions

View File

@ -83,7 +83,7 @@ class WC_Shortcode_Checkout {
$order = new WC_Order( $order_id );
$valid_order_statuses = apply_filters( 'woocommerce_valid_order_statuses_for_payment', array( 'pending', 'failed' ), $order );
if ( !current_user_can( 'pay_for_order', $order_id ) ) {
if ( ! current_user_can( 'pay_for_order', $order_id ) ) {
echo '<div class="woocommerce-error">' . __( 'Invalid order.', 'woocommerce' ) . ' <a href="' . get_permalink( woocommerce_get_page_id( 'myaccount' ) ).'">'. __( 'My Account &rarr;', 'woocommerce' ) .'</a>' . '</div>';
return;
}

View File

@ -136,10 +136,6 @@ function woocommerce_clear_cart_after_payment() {
$order = new WC_Order( $woocommerce->session->order_awaiting_payment );
if ( $order->id > 0 ) {
// If the order has failed, and the customer is logged in, they can try again from their account page
if ( $order->status == 'failed' && is_user_logged_in() )
$woocommerce->cart->empty_cart();
// 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();