Un cliente del norte de Europa me dijo que son realmente estrictos sobre la facturación y las direcciones de envío allí. Los correos generalmente requieren un «número de casa» separado para enviar paquetes dentro de esos países.
Por lo tanto, esto debe colocarse en el pago, junto al campo «Dirección_1» y requerido. Además, es una buena idea hacer este programa en la orden de administración, la página de agradecimiento y los correos electrónicos de notificación.
Antes de codificar …
Si no usa el campo «Dirección_2», no necesita ninguna personalización! Simplemente habilite y haga que el campo sea requerido a través de WordPress> Personalizar> WooCommerce> Checkout> Campo de dirección 2.
Todo lo que necesitabas ahora está disponible para ti. Si realmente necesita un poco de personalización, eso podría estar relacionado con el marcador de posición «Dirección 1» y «Dirección 2». Para editarlos y cambiarles el nombre de usar este código:
/** * @snippet Rename Address 1 & Address 2 Placeholder @ Checkout * @how-to businessbloomer.com/woocommerce-customization * @author Rodolfo Melogli, Business Bloomer * @testedwith WooCommerce 7 * @community https://businessbloomer.com/club/ */ 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: Agregar número de casa @ WooCommerce facturación/envío
Si, en el otro extremo, necesita un campo nuevo y separado (porque ya usa «Dirección 1» y «Dirección 2» y necesita un nuevo campo «Número de casa»), entonces debe analizar esta personalización.
/** * @snippet Add House Number to WooCommerce Checkout * @how-to businessbloomer.com/woocommerce-customization * @author Rodolfo Melogli, Business Bloomer * @compatible WooCommerce 7 * @community https://businessbloomer.com/club/ */ 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; }