2011-08-10 17:11:11 +00:00
< ? php
/**
* Checkout Shortcode
*
* Used on the checkout page , the checkout shortcode displays the checkout process .
*
* @ package WooCommerce
* @ category Shortcode
* @ author WooThemes
*/
function get_woocommerce_checkout ( $atts ) {
2011-09-06 11:11:22 +00:00
global $woocommerce ;
return $woocommerce -> shortcode_wrapper ( 'woocommerce_checkout' , $atts );
2011-08-10 17:11:11 +00:00
}
function woocommerce_checkout ( $atts ) {
2011-09-13 16:17:52 +00:00
global $woocommerce , $woocommerce_checkout ;
2011-09-06 11:11:22 +00:00
2011-08-10 17:11:11 +00:00
if ( ! defined ( 'WOOCOMMERCE_CHECKOUT' )) define ( 'WOOCOMMERCE_CHECKOUT' , true );
2011-09-06 11:11:22 +00:00
if ( sizeof ( $woocommerce -> cart -> cart_contents ) == 0 ) :
2011-08-10 17:11:11 +00:00
wp_redirect ( get_permalink ( get_option ( 'woocommerce_cart_page_id' )));
exit ;
endif ;
$non_js_checkout = ( isset ( $_POST [ 'update_totals' ]) && $_POST [ 'update_totals' ]) ? true : false ;
2011-09-13 16:17:52 +00:00
$woocommerce_checkout = & new woocommerce_checkout ();
2011-08-10 17:11:11 +00:00
2011-09-13 16:17:52 +00:00
$woocommerce_checkout -> process_checkout ();
2011-08-10 17:11:11 +00:00
2011-09-06 11:11:22 +00:00
$result = $woocommerce -> cart -> check_cart_item_stock ();
2011-08-10 17:11:11 +00:00
2011-09-06 11:11:22 +00:00
if ( is_wp_error ( $result )) $woocommerce -> add_error ( $result -> get_error_message () );
2011-08-10 17:11:11 +00:00
2011-09-06 11:11:22 +00:00
if ( $woocommerce -> error_count () == 0 && $non_js_checkout ) $woocommerce -> add_message ( __ ( 'The order totals have been updated. Please confirm your order by pressing the Place Order button at the bottom of the page.' , 'woothemes' ) );
2011-08-10 17:11:11 +00:00
2011-09-06 11:11:22 +00:00
$woocommerce -> show_messages ();
2011-08-10 17:11:11 +00:00
woocommerce_get_template ( 'checkout/form.php' , false );
}