-
-
Save Surinder05/44a07a6eb0a4b104376baa6994f1d98c to your computer and use it in GitHub Desktop.
Woocommerce delivery date Picker
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
/** | |
* @snippet WooCommerce Checkout date picker | |
* @author NCY Design https://wordpress.ncy.design | |
* @compatible WooCommerce 3.7.0 | |
*/ | |
// Register main datepicker jQuery plugin script | |
add_action( 'wp_enqueue_scripts', 'enabling_date_picker' ); | |
function enabling_date_picker() { | |
// Only on front-end and checkout page | |
if( is_admin() || ! is_checkout() ) return; | |
// Load the datepicker jQuery-ui plugin script | |
wp_enqueue_script( 'jquery-ui-datepicker' ); | |
} | |
// Call datepicker functionality in your custom text field | |
add_action('woocommerce_after_order_notes', 'ncydesign_datepicker_field', 10, 1); | |
function ncydesign_datepicker_field( $checkout ) { | |
date_default_timezone_set('America/Los_Angeles'); | |
$mydateoptions = array('' => __('Select PickupDate', 'woocommerce' )); | |
echo '<div id="my_custom_checkout_field"> | |
<h3>'.__('Delivery Date').'</h3>'; | |
// YOUR SCRIPT HERE BELOW | |
echo ' | |
<script> | |
jQuery(function($){ | |
$("#datepicker").datepicker({ minDate: 0}); | |
}); | |
</script>'; | |
woocommerce_form_field( 'delivery_date', array( | |
'type' => 'text', | |
'class' => array('my-field-class form-row-wide'), | |
'id' => 'datepicker', | |
'required' => false, | |
'label' => __('Delivery Date'), | |
'placeholder' => __('Select Date'), | |
'options' => $mydateoptions | |
), | |
$checkout->get_value( 'cylinder_collect_date' )); | |
echo '</div>'; | |
} | |
/** | |
* Process the checkout | |
**/ | |
add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process'); | |
function my_custom_checkout_field_process() { | |
global $woocommerce; | |
// Check if set, if its not set add an error. | |
if (!$_POST['delivery_date']) | |
wc_add_notice( '<strong>Delivery Date</strong> ' . __( 'is a required field.', 'woocommerce' ), 'error' ); | |
} | |
/** | |
* Update the order meta with custom fields values | |
* */ | |
add_action('woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta'); | |
function my_custom_checkout_field_update_order_meta($order_id) { | |
if (!empty($_POST['delivery_date'])) { | |
update_post_meta($order_id, 'Delivery Date', sanitize_text_field($_POST['delivery_date'])); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment