Created
April 14, 2017 16:02
-
-
Save digamber89/8b9d269aa33fe25dbb720567e4462081 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Checkout Form | |
* | |
* This template can be overridden by copying it to yourtheme/woocommerce/checkout/form-checkout.php. | |
* | |
* HOWEVER, on occasion WooCommerce will need to update template files and you | |
* (the theme developer) will need to copy the new files to your theme to | |
* maintain compatibility. We try to do this as little as possible, but it does | |
* happen. When this occurs the version of the template file will be bumped and | |
* the readme will list any important changes. | |
* | |
* @see https://docs.woocommerce.com/document/template-structure/ | |
* @author WooThemes | |
* @package WooCommerce/Templates | |
* @version 2.3.0 | |
*/ | |
if ( ! defined( 'ABSPATH' ) ) { | |
exit; | |
} | |
wc_print_notices(); | |
do_action( 'woocommerce_before_checkout_form', $checkout ); | |
// If checkout registration is disabled and not logged in, the user cannot checkout | |
if ( ! $checkout->is_registration_enabled() && $checkout->is_registration_required() && ! is_user_logged_in() ) { | |
echo apply_filters( 'woocommerce_checkout_must_be_logged_in_message', __( 'You must be logged in to checkout.', 'woocommerce' ) ); | |
return; | |
} | |
?> | |
<form name="checkout" method="post" class="checkout woocommerce-checkout" action="<?php echo esc_url( wc_get_checkout_url() ); ?>" enctype="multipart/form-data"> | |
<?php if ( $checkout->get_checkout_fields() ) : ?> | |
<?php do_action( 'woocommerce_checkout_before_customer_details' ); ?> | |
<div id="digthis-step-1" class="steps"> | |
<div class="col2-set" id="customer_details"> | |
<div class="col-1"> | |
<?php do_action( 'woocommerce_checkout_billing' ); ?> | |
</div> | |
<div class="col-2"> | |
<?php do_action( 'woocommerce_checkout_shipping' ); ?> | |
</div> | |
</div> | |
<div class="form-row"> | |
<input type="hidden" name="current_step" id="current_step" value="step-1"> | |
<input type="submit" name="verify-checkout" id="verify-checkout" value="Verify Checkout"> | |
</div> | |
<?php do_action( 'woocommerce_checkout_after_customer_details' ); ?> | |
</div> | |
<?php endif; ?> | |
<div id="digthis-step-2" class="steps"> | |
<h3 id="order_review_heading"><?php _e( 'Your order', 'woocommerce' ); ?></h3> | |
<?php do_action( 'woocommerce_checkout_before_order_review' ); ?> | |
<div id="order_review" class="woocommerce-checkout-review-order"> | |
<?php do_action( 'woocommerce_checkout_order_review' ); ?> | |
</div> | |
<?php do_action( 'woocommerce_checkout_after_order_review' ); ?> | |
</div> | |
</form> | |
<!-- move to own css file --> | |
<style type="text/css"> | |
#digthis-step-2{ | |
display: none; | |
} | |
</style> | |
<script type="text/javascript"> | |
//should be move to its own js file | |
jQuery(function($){ | |
$( document.body ).on('checkout_error', function(){ | |
var digthisError = $(document).find('#digthis-prevent-error'); | |
if( digthisError.length != 0 ){ | |
$( '.woocommerce-NoticeGroup-checkout, .woocommerce-error, .woocommerce-message' ).remove(); | |
$('.steps').hide(); | |
/*Change it so validation stops*/ | |
$('#current_step').val('step-2'); | |
$('#digthis-step-2').show(); | |
} | |
}); | |
}); | |
</script> | |
<?php do_action( 'woocommerce_after_checkout_form', $checkout ); ?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
add_action('woocommerce_after_checkout_validation', 'digthis_two_step_checkout_validate', 9999, 2); | |
function digthis_two_step_checkout_validate($data, $errors) { | |
$step = filter_input(INPUT_POST, 'current_step'); | |
if( empty( $errors->errors ) && $step == 'step-1' ){ | |
$errors->add( 'digthis', __( '<span id="digthis-prevent-error">Digthis Error</span>', 'woocommerce' ) ); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment