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.

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