Field custom

<?php

// sanders

/**
 * Prints radio buttons on checkout page with delivery date
 * @param $checkout
 */
add_action('woocommerce_after_checkout_billing_form', 'checkout_delivery_date', 20);
function checkout_delivery_date() {
   $args = array(
     'type'          => 'text',
     'class'         => array('form-row-wide'),
     'id'            => 'delivery_date',
     'required'      => false,
     'label'         => __('Leverdatum'),
     'placeholder'   => __('dd-mm-yy'),
   );

   echo '<div id="checkout_delivery_date">';
   echo '<h4>' . __('Kies een gewenste leverdatum', 'sandersgifts') . '</h4>';
   echo '<style>#checkout_delivery_date{margin-top:15px;}</style>';
   woocommerce_form_field( 'delivery_date', $args );
   echo '</div>';
}

/**
* Adds note with delivery date
* @param $order_id
*/
add_action('woocommerce_checkout_update_order_meta', 'woocommerce_checkout_update_order_meta', 20);
function woocommerce_checkout_update_order_meta($order_id) {
 if( isset( $_POST['delivery_date'] ) ) {
       $order = wc_get_order(  $order_id );
       $note = __('Gewenste leverdatum - ') . trim( $_POST['delivery_date'] );
       $order->add_order_note( $note );

       update_post_meta($order_id, 'delivery_date', trim( $_POST['delivery_date'] ));
   }
}

/**
* Prints delivery date on order details table in my account and thank you pages
* @param $order
*/
add_action('woocommerce_email_after_order_table', 'order_details_delivery_date', 20);
function order_details_delivery_date($order) {
   $meta = get_order_meta($order);
   if( $meta !== '' ) {
       echo '<tr>
               <th scope="row">' . __('Gewenste leverdatum', 'sandersgifts') . '</th>
               <td>'.$meta.'</td>
           </tr>';
   }
}

/**
* Prints delivery date on email template
* @param $order
*/
add_action('woocommerce_order_details_after_order_table_items', 'email_order_delivery_date', 20);
function email_order_delivery_date($order) {
   $meta = get_order_meta($order);
   if( $meta !== '' ) {
       echo '<div style="margin-bottom:40px">';
       echo '<strong>'.__( 'Gewenste leverdatum:', 'sandersgifts' ).'</strong>';
       echo '<p>' . $meta . '</p>';
       echo '</div>';
   }
}

/**
* Returns order delivery date meta in wp-admin
* @param $order
* @return mixed
*/
add_action('woocommerce_admin_order_data_after_shipping_address', 'print_order_delivery_date', 20);
function print_order_delivery_date($order) {
 $meta = get_order_meta($order);
 if( $meta !== '' ) {
     echo '<h3>' . __('Gewenste leverdatum', 'sandersgifts') . '</h3>';
     echo '<p>' . $meta . '</p>';
   }
}

/**
* Returns order delivery date meta
* @param $order
* @return mixed
*/
function get_order_meta($order) {
   if( is_object($order) ) {
       $order_id = $order->get_ID();
   } else {
       $order_id = $order;
   }

   return get_post_meta($order_id, 'delivery_date', true);
}
Last Updated:
Contributors: Niek Vlam, Suite Seven