add_filter( 'woocommerce_shipping_fields' , 'my_custom_shipping_fields' ); function my_custom_shipping_fields( $fields ) { $fields['shipping_address_type'] = array( 'type' => 'text', 'label' => __('Address Type', 'woocommerce'), 'placeholder' => _x('Address Type', 'placeholder', 'woocommerce'), 'required' => true, 'class' => array('form-row'), 'clear' => true, 'options' => array( 'select' => __('Select...', 'woocommerce' ), 'House' => __('House', 'woocommerce' ), 'Multi-Unit' => __('Apartment or Condo', 'woocommerce' ), 'Business' => __('Business', 'woocommerce' ) ) ); return $fields; } add_action( 'woocommerce_checkout_process', 'my_custom_checkout_field_process'); function my_custom_checkout_field_process() { if ($_POST['address_type'] == "text") { wc_add_notice( __( 'Please tell us the Address Type we are delivering to.' ), 'error' ); } } 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['shipping_address_type'] ) ) { update_post_meta( $order_id, 'Address Type', esc_attr( $_POST[ 'shipping_address_type' ]) ); } } add_action( 'woocommerce_admin_order_data_after_shipping_address', 'my_custom_fields_display_admin_order_meta', 10, 1 ); function my_custom_fields_display_admin_order_meta( $order ) { echo '
'.__('Address Type').': ' . get_post_meta( $order->id, 'Address Type', true ) . '
'; }