Add required billing address on registration
-
Hello,
I want the billing address information when with a new customer registration.
At this moment it works, but when a new customer a required billing-field leave empty thenn it gives no error.Found a code-snippet here: https://stackoverflow.com/questions/39964783/add-billing-address-to-woocommerce-registration-page
And that’s the code i’m use it:
<?php // Function to check starting char of a string function startsWith($haystack, $needle){ return $needle === '' || strpos($haystack, $needle) === 0; } // Custom function to display the Billing Address form to registration page function zk_add_billing_form_to_registration(){ global $woocommerce; $checkout = $woocommerce->checkout(); ?> <?php foreach ( $checkout->get_checkout_fields( 'billing' ) as $key => $field ) : ?> <?php if($key!='billing_email'){ woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); } ?> <?php endforeach; } add_action('woocommerce_register_form_start','zk_add_billing_form_to_registration'); // Custom function to save Usermeta or Billing Address of registered user function zk_save_billing_address($user_id){ global $woocommerce; $address = $_POST; foreach ($address as $key => $field){ if(startsWith($key,'billing_')){ // Condition to add firstname and last name to user meta table if($key == 'billing_first_name' || $key == 'billing_last_name'){ $new_key = explode('billing_',$key); update_user_meta( $user_id, $new_key[1], $_POST[$key] ); } update_user_meta( $user_id, $key, $_POST[$key] ); } } } add_action('woocommerce_created_customer','zk_save_billing_address'); // Registration page billing address form Validation function zk_validation_billing_address(){ global $woocommerce; $address = $_POST; foreach ($address as $key => $field) : // Validation: Required fields if(startsWith($key,'billing_')){ if($key == 'billing_country' && $field == ''){ $woocommerce->add_error( '<strong>' . __( 'ERROR', 'woocommerce' ) . '</strong>: ' . __( 'Please select a country.', 'woocommerce' ) ); } if($key == 'billing_first_name' && $field == ''){ $woocommerce->add_error( '<strong>' . __( 'ERROR', 'woocommerce' ) . '</strong>: ' . __( 'Please enter first name.', 'woocommerce' ) ); } if($key == 'billing_last_name' && $field == ''){ $woocommerce->add_error( '<strong>' . __( 'ERROR', 'woocommerce' ) . '</strong>: ' . __( 'Please enter last name.', 'woocommerce' ) ); } if($key == 'billing_address_1' && $field == ''){ $woocommerce->add_error( '<strong>' . __( 'ERROR', 'woocommerce' ) . '</strong>: ' . __( 'Please enter address.', 'woocommerce' ) ); } if($key == 'billing_city' && $field == ''){ $woocommerce->add_error( '<strong>' . __( 'ERROR', 'woocommerce' ) . '</strong>: ' . __( 'Please enter city.', 'woocommerce' ) ); } if($key == 'billing_state' && $field == ''){ $woocommerce->add_error( '<strong>' . __( 'ERROR', 'woocommerce' ) . '</strong>: ' . __( 'Please enter state.', 'woocommerce' ) ); } if($key == 'billing_postcode' && $field == ''){ $woocommerce->add_error( '<strong>' . __( 'ERROR', 'woocommerce' ) . '</strong>: ' . __( 'Please enter a postcode.', 'woocommerce' ) ); } /* if($key == 'billing_email' && $field == ''){ $woocommerce->add_error( '<strong>' . __( 'ERROR', 'woocommerce' ) . '</strong>: ' . __( 'Please enter billing email address.', 'woocommerce' ) ); } */ if($key == 'billing_phone' && $field == ''){ $woocommerce->add_error( '<strong>' . __( 'ERROR', 'woocommerce' ) . '</strong>: ' . __( 'Please enter phone number.', 'woocommerce' ) ); } } endforeach; } add_action('register_post','zk_validation_billing_address');
Viewing 6 replies - 1 through 6 (of 6 total)
Viewing 6 replies - 1 through 6 (of 6 total)
- The topic ‘Add required billing address on registration’ is closed to new replies.