WooCommerce: Add House Number Field @ Checkout

 A North European client told me they’re really strict about billing and shipping addresses over there. Couriers usually require a separate “House Number” in order to dispatch packages within those countries.

This must be therefore placed on the checkout, BESIDE the “Address_1” field and made required. Also, it’s a good idea to make this show in the Admin Order, thank you page and notification Emails.

Add House Number in the WooCommerce Checkout
Add House Number in the WooCommerce Checkout

Before coding…

If you don’t use the “Address_2” field you don’t need any customization! Just enable and make that field required via WordPress > Customize > WooCommerce > Checkout > Address 2 Field.

All you needed is now available to you. If you really require a little customization, that could be related to the “Address 1” and “Address 2” field placeholders. To edit and rename them use this snippet.

PHP Snippet 1: Edit Address Fields Placeholder @ WooCommerce Checkout Billing/Shipping

/**
 * @snippet       Rename Address 1 & 2 Placeholder | WooCommerce Checkout
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @testedwith    WooCommerce 3.8
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */
 
add_filter( 'woocommerce_default_address_fields' , 'bbloomer_rename_address_placeholders_checkout', 9999 );
 
function bbloomer_rename_address_placeholders_checkout( $address_fields ) {
   $address_fields['address_1']['placeholder'] = 'House Number';
   $address_fields['address_2']['placeholder'] = 'Street Name';
   return $address_fields;
}

PHP Snippet: Add House Number @ WooCommerce Checkout Billing/Shipping

If, on the other end, you need a separate, new field (because you already use “Address 1” and “Address 2” and need a new “House Number” field), then you should look into this customization.

/**
 * @snippet       Add House Number to WooCommerce Checkout
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 3.8
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */
  
add_filter( 'woocommerce_checkout_fields' , 'bbloomer_add_field_and_reorder_fields' );
   
function bbloomer_add_field_and_reorder_fields( $fields ) {
   
    // Add New Fields
        
    $fields['billing']['billing_houseno'] = array(
    'label'     => 'House Number',
    'placeholder'   => 'House Number',
    'priority' => 51,
    'required'  => true,
    'clear'     => true
     );
   
    $fields['shipping']['shipping_houseno'] = array(
    'label'     => 'House Number',
    'placeholder'   => 'House Number',
    'priority' => 51,
    'required'  => true,
    'clear'     => true
     );    
      
    return $fields;
}
  
// ------------------------------------
// Add Billing House # to Address Fields
  
add_filter( 'woocommerce_order_formatted_billing_address' , 'bbloomer_default_billing_address_fields', 10, 2 );
  
function bbloomer_default_billing_address_fields( $fields, $order ) {
    $fields['billing_houseno'] = get_post_meta( $order->get_id(), '_billing_houseno', true );
    return $fields;
}
  
// ------------------------------------
// Add Shipping House # to Address Fields
  
add_filter( 'woocommerce_order_formatted_shipping_address' , 'bbloomer_default_shipping_address_fields', 10, 2 );
  
function bbloomer_default_shipping_address_fields( $fields, $order ) {
    $fields['shipping_houseno'] = get_post_meta( $order->get_id(), '_shipping_houseno', true );
    return $fields;
}
  
// ------------------------------------
// Create 'replacements' for new Address Fields
  
add_filter( 'woocommerce_formatted_address_replacements', 'add_new_replacement_fields',10,2 );
  
function add_new_replacement_fields( $replacements, $address ) {
    $replacements['{billing_houseno}'] = isset($address['billing_houseno']) ? $address['billing_houseno'] : '';
    $replacements['{shipping_houseno}'] = isset($address['shipping_houseno']) ? $address['shipping_houseno'] : '';
    return $replacements;
}
  
// ------------------------------------
// Show Shipping & Billing House # for different countries
  
add_filter( 'woocommerce_localisation_address_formats', 'bbloomer_new_address_formats' );
  
function bbloomer_new_address_formats( $formats ) {
    $formats['IE'] = "{name}\n{company}\n{address_1}\n{billing_houseno}\n{shipping_houseno}\n{city}\n{state}\n{postcode}\n{country}";
    $formats['UK'] = "{name}\n{company}\n{address_1}\n{billing_houseno}\n{shipping_houseno}\n{city}\n{state}\n{postcode}\n{country}";
    // and so on...
    return $formats;
}

No comments:

Post a Comment

Free Shipping Threshold @ Cart Page