【发布时间】:2018-04-15 18:11:38
【问题描述】:
我在 Woocommerce 结帐中添加了 2 个自定义字段:
- 一个 jQuery-ui 日期选择器字段,
- 时间的选择字段(下拉)。
现在,我希望时间选择字段下拉选项取决于所选日期。基本上如果选择周六和周日,我希望限制时间间隔(只到 15:00)。
我尝试了很多不同的策略,但似乎没有一个是正确的方法。
这是两个自定义字段:
//Datepicker
add_action( 'woocommerce_before_order_notes', 'my_custom_checkout_field_DP' );
function my_custom_checkout_field_DP($checkout)
{
wp_enqueue_script('jquery-ui-datepicker');
wp_enqueue_style('jquery-ui', "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/smoothness/jquery-ui.css", '', '', false);
wp_enqueue_style('datepicker', plugins_url('/css/datepicker.css', __FILE__), '', '', false);
/*print(' <link rel="stylesheet" type="text/css" href="' . plugins_url() . '/order-delivery-date-for-woocommerce/datepicker.css">
<script type="text/javascript" src="' . plugins_url() . '/order-delivery-date-for-woocommerce/datepicker.js"></script>'
);
print('<script type="text/javascript" src="' . plugins_url() . '/order-delivery-date-for-woocommerce/initialize-datepicker.js"></script>');*/
echo '<script language="javascript">jQuery(document).ready
(function(){
jQuery("#e_deliverydate").width("150px");
var formats = ["MM d, yy","MM d, yy"];
jQuery("#e_deliverydate").val("").datepicker({dateFormat: formats[1], minDate:1});
jQuery("#e_deliverydate").parent().after("<div id=\'order-desc\'></div>");
}); </script>';
echo '<div id="my_custom_checkout_field_DP" style="width: 202%; float: left;">';
woocommerce_form_field('e_deliverydate', array(
'type' => 'text',
'class'=> array('my-field-class form-row-first'),
'label' => __('Your Delivery Date'),
'required' => true,
'placeholder' => __('Pick a date')
), $checkout->get_value('e_deliverydate'));
echo '</div>';
//Time selection field
add_action( 'woocommerce_before_order_notes', 'my_custom_checkout_field_TIME' );
unction my_custom_checkout_field_TIME( $checkout ) {
woocommerce_form_field( 'my_custom_field_TIME', array(
'type' => 'select',
'class' => array('my-field-class form-row-wide'),
'label' => __('Your time'),
'required' => true,
'placeholder' => __('Time to pick'),
'options' => array(
'10:00' => __( '10:00', 'wps' ),
'10:30' => __( '10:30', 'wps' ),
'11:00' => __( '11:00', 'wps' ),
'11:30' => __( '11:30', 'wps' ),
'12:00' => __( '12:00', 'wps' ),
'12:30' => __( '12:30', 'wps' ),
'13:00' => __( '13:00', 'wps' ),
'13:30' => __( '13:30', 'wps' ),
'14:00' => __( '14:00', 'wps' ),
'14:30' => __( '14:30', 'wps' ),
'15:00' => __( '15:00', 'wps' ),
'15:30' => __( '15:30', 'wps' ),
'16:00' => __( '16:00', 'wps' ),
'16:30' => __( '16:30', 'wps' ),
'17:00' => __( '17:00', 'wps' ),
'17:30' => __( '17:30', 'wps' ),
'18:00' => __( '18:00', 'wps' ),
)
), $checkout->get_value( 'my_custom_field_TIME' ));
echo '</div>';
}
感谢任何帮助。
【问题讨论】:
-
1.
$globalText是干什么用的? ... 2. 还没有定义$order_parent_id...此外,结帐时没有可用的订单 ID 或父订单 ID。 -
嗨,我想将所选日期保存在该变量 ($globalText) 中,然后根据所选日期显示时间选择下拉菜单,但它不起作用... $globalText 应该已经从代码中删除了,它现在没有做任何事情:-)
-
我现在删除了那行......时间字段(my_custom_field_TIME)如何依赖于日期选择器中的选定日期?这可能吗?
标签: php jquery woocommerce jquery-ui-datepicker checkout