add_action( 'woocommerce_after_checkout_form', function() {
$page = get_page_by_title( 'Terms and Conditions' );
$content = apply_filters( 'the_content', $page->post_content );
printf( '<div id="customModal" style="display: none;">%s</div>', $content );
} );
add_action( 'wp_enqueue_scripts', function() {
if( ! is_checkout() ) {
return;
}
wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'jquery-ui-core' );
wp_enqueue_script( 'jquery-ui-dialog' );
wp_enqueue_style( 'wp-jquery-ui-dialog' );
wp_add_inline_script( 'jquery', "
jQuery( document ).ready( function( $ ) {
var checkout_form = $( 'form.checkout' );
checkout_form.on( 'checkout_place_order', function( event ) {
if( $( 'input#terms' ).is( ':checked' ) ) { return true; }
$( '#customModal' ).dialog( {
resizable: true, height: 600, width: 600, modal: true,
buttons: {
'I Agree to the Terms and Conditions': function() {
$( 'input#terms' ).prop( 'checked', true );
$( this ).dialog( 'close' );
checkout_form.submit();
},
Cancel: function() {
$( this ).dialog( 'close' );
}
}
} );
return false;
} );
} );
" );
} );
Checkout custom terms/conditions modal
Checkout custom terms/conditions modal window with buttons.
How to use
- Log into a staging, development, or locally hosted clone of your site
- Install and activate Code Snippets
- WP Admin > Snippets > Add New
- Copy and paste the code from the Description tab above
- Check to ensure formatting came over properly and no syntax errors show up in the editor
- Customize the code as desired
- Add a meaningful title
- Select whether to run on front-end or back-end (or both)
- Click “Save and Activate”
- Test your site to ensure it works
- Disable if any problems, or recover
- Repeat for live environment
License
All code snippets are licensed GPLv2 (or later) matching WordPress licensing.
Disclaimer of warranty:
Except when otherwise stated in writing the copyright holders and/or other parties provide the program as-is without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose.
Support
- Describe the issue and what you’ve observed.
- Describe your expected outcome(s).
- List steps to reproduce the issue.
- Optionally provide screen-shot or video URLs.
