Please bear with me if I am not asking this question correctly. I am trying to modify a WooCommerce custom field to make it required.
The function is below:
public function delivery_checkout_field( $checkout )
{
echo '<div class="checkout-delivery" id="delivery_checkout_field">';
echo '<input class="js-picker-object" type="hidden" value="' . esc_attr( json_encode( $this->delivery_get_picker_object() ) ) . '" />';
echo '<h3 class="with-description">' . __( 'Delivery Schedule', 'gastro-core' ) . '</h3>';
echo '<p class="description">Enter your desired delivery time or leave blank, if you don\'t have one.</p>';
woocommerce_form_field( 'delivery_date', array(
'type' => 'text',
'class' => array( 'delivery-field form-row-first' ),
'label' => __( 'Delivery Date' ),
'placeholder' => __( 'Enter delivery date.' ),
), $checkout->get_value( 'delivery_date' ) );
woocommerce_form_field( 'delivery_time', array(
'type' => 'text',
'class' => array( 'delivery-field form-row-last' ),
'label' => __( 'Delivery Time' ),
'placeholder' => __( 'Enter delivery time.' ),
), $checkout->get_value( 'delivery_time' ) );
echo '</div>';
}
This section saves the fields.
// Save delivery data
public function delivery_checkout_field_update( $order_id )
{
if ( !empty( $_POST['delivery_date'] ) ) {
update_post_meta(
$order_id,
'Delivery Date',
sanitize_text_field( $_POST['delivery_date'] )
);
}
if ( !empty( $_POST['delivery_time'] ) ) {
update_post_meta(
$order_id,
'Delivery Time',
sanitize_text_field( $_POST['delivery_time'] )
);
}
}