问题描述
我使用了Rodolfo Melogli的这段代码,并根据自己的需要对其进行了一些更改。
function bbloomer_echo_acf_date_picker( $checkout ) {
echo '<div id="show-if-shipping" style="display:none"><h3>Wanneer wil je de bestelling afhalen?</h3>';
woocommerce_form_field( 'delivery_date',array(
'type' => 'text','class' => array('form-row-wide'),'id' => 'datepicker','required' => true,'label' => __('Ik wil mijn bestelling afhalen op'),'placeholder' => __('Klik hier om de kalender te openen of begin gelijk met typen'),));
echo '</div>';
}
add_action( 'woocommerce_after_checkout_form','bbloomer_show_hide_calendar' );
function bbloomer_show_hide_calendar( $available_gateways ) {
?>
<script type="text/javascript">
function show_calendar( val ) {
if ( val.match("^local_pickup") ) {
jQuery('#show-if-shipping').fadeIn();
} else {
jQuery('#show-if-shipping').fadeOut();
}
}
jQuery(document).ajaxComplete(function() {
var val = jQuery('input[name^="shipping_method"]:checked').val();
show_calendar( val );
});
</script>
<?PHP
}
add_action( 'woocommerce_checkout_process','bbloomer_validate_new_checkout_fields' );
function bbloomer_validate_new_checkout_fields() {
if ( isset( $_POST['delivery_date'] ) && empty( $_POST['delivery_date'] ) ) wc_add_notice( __( 'Kies alsjeblieft een afhaaldatum' ),'error' );
}
// -------------------------------
// 2. Load JQuery Datepicker
add_action( 'woocommerce_after_checkout_form','bbloomer_enable_datepicker',10 );
function bbloomer_enable_datepicker() {
?>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<?PHP
}
// -------------------------------
// 3. Load Calendar Dates
add_action( 'woocommerce_after_checkout_form','bbloomer_load_calendar_dates',20 );
function bbloomer_load_calendar_dates( $available_gateways ) {
?>
<script type="text/javascript">
jQuery(document).ready(function($) {
$('#datepicker').click(function() {
$('#datepicker').datepicker({
dateFormat: 'dd-mm-yy',beforeShowDay: $.datepicker.Noweekends,maxDate: "+16d",minDate: 2,}).datepicker( "show" );
});
});
</script>
<?PHP
}
// -------------------------------
// 4. Save & show date as order Meta
add_action( 'woocommerce_checkout_update_order_Meta','bbloomer_save_date_weight_order' );
function bbloomer_save_date_weight_order( $order_id ) {
global $woocommerce;
if ( $_POST['delivery_date'] ) update_post_Meta( $order_id,'_delivery_date',esc_attr( $_POST['delivery_date'] ) );
}
add_action( 'woocommerce_admin_order_data_after_billing_address','bbloomer_delivery_weight_display_admin_order_Meta' );
function bbloomer_delivery_weight_display_admin_order_Meta( $order ) {
echo '<p><strong>Bezorgdatum:</strong> ' . get_post_meta( $order->get_id(),true ) . '</p>';
}
我想更改一件事,但是我无法正确地做到这一点。 从下订单之日起,我需要一天准备提货订单。我可以使用Datepicker日历进行操作,但是如果客户在输入字段中输入了他们喜欢的任何日期(即使是过去的日期),系统也将接受它。我需要更改什么才能使其正常工作?
我将不胜感激!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)