diff --git a/classes/class-wc-checkout.php b/classes/class-wc-checkout.php index 28a5207814d..b10a2d83604 100644 --- a/classes/class-wc-checkout.php +++ b/classes/class-wc-checkout.php @@ -602,22 +602,27 @@ class WC_Checkout { $reg_errors = new WP_Error(); - do_action('woocommerce_register_post', $this->posted['account_username'], $this->posted['billing_email'], $reg_errors); + do_action( 'woocommerce_register_post', $this->posted['account_username'], $this->posted['billing_email'], $reg_errors ); $errors = apply_filters( 'woocommerce_registration_errors', $reg_errors, $this->posted['account_username'], $this->posted['billing_email'] ); // if there are no errors, let's create the user account if ( ! $reg_errors->get_error_code() ) { - $user_pass = esc_attr( $this->posted['account_password'] ); - $this->customer_id = wp_create_user( $this->posted['account_username'], $user_pass, $this->posted['billing_email'] ); + $user_pass = esc_attr( $this->posted['account_password'] ); + + $new_customer_data = array( + 'user_login' => $this->posted['account_username'], + 'user_pass' => $user_pass, + 'user_email' => $this->posted['billing_email'], + 'role' => 'customer' + ); + + $this->customer_id = wp_insert_user( apply_filters( 'woocommerce_new_customer_data', $new_customer_data ) ); if ( ! $this->customer_id ) throw new MyException( '' . __( 'ERROR', 'woocommerce' ) . ': ' . __( 'Couldn’t register you… please contact us if you continue to have problems.', 'woocommerce' ) ); - // Change role - wp_update_user( array('ID' => $this->customer_id, 'role' => 'customer') ) ; - // Action do_action( 'woocommerce_created_customer', $this->customer_id ); diff --git a/woocommerce-functions.php b/woocommerce-functions.php index 7c839d07f9a..d76eab684fb 100644 --- a/woocommerce-functions.php +++ b/woocommerce-functions.php @@ -651,15 +651,15 @@ function woocommerce_process_registration() { global $woocommerce; - if (isset($_POST['register']) && $_POST['register']) : + if ( ! empty( $_POST['register'] ) ) { $woocommerce->verify_nonce('register'); // Get fields - $user_email = isset( $_POST['email'] ) ? trim( $_POST['email'] ) : ''; - $password = isset( $_POST['password'] ) ? trim( $_POST['password'] ) : ''; - $password2 = isset( $_POST['password2'] ) ? trim( $_POST['password2'] ) : ''; - $user_email = apply_filters( 'user_registration_email', $user_email ); + $user_email = isset( $_POST['email'] ) ? trim( $_POST['email'] ) : ''; + $password = isset( $_POST['password'] ) ? trim( $_POST['password'] ) : ''; + $password2 = isset( $_POST['password2'] ) ? trim( $_POST['password2'] ) : ''; + $user_email = apply_filters( 'user_registration_email', $user_email ); if ( get_option( 'woocommerce_registration_email_for_username' ) == 'no' ) { @@ -694,32 +694,37 @@ function woocommerce_process_registration() { } // Password - if ( !$password ) $woocommerce->add_error( __( 'Password is required.', 'woocommerce' ) ); - if ( !$password2 ) $woocommerce->add_error( __( 'Re-enter your password.', 'woocommerce' ) ); + if ( ! $password ) $woocommerce->add_error( __( 'Password is required.', 'woocommerce' ) ); + if ( ! $password2 ) $woocommerce->add_error( __( 'Re-enter your password.', 'woocommerce' ) ); if ( $password != $password2 ) $woocommerce->add_error( __( 'Passwords do not match.', 'woocommerce' ) ); // Spam trap - if (isset($_POST['email_2']) && $_POST['email_2']) $woocommerce->add_error( __( 'Anti-spam field was filled in.', 'woocommerce' ) ); + if ( ! empty( $_POST['email_2'] ) ) + $woocommerce->add_error( __( 'Anti-spam field was filled in.', 'woocommerce' ) ); - if ($woocommerce->error_count()==0) : + if ( $woocommerce->error_count() == 0 ) { $reg_errors = new WP_Error(); - do_action('register_post', $sanitized_user_login, $user_email, $reg_errors); + do_action( 'register_post', $sanitized_user_login, $user_email, $reg_errors ); $reg_errors = apply_filters( 'registration_errors', $reg_errors, $sanitized_user_login, $user_email ); // if there are no errors, let's create the user account - if ( !$reg_errors->get_error_code() ) : + if ( ! $reg_errors->get_error_code() ) { - $user_id = wp_create_user( $sanitized_user_login, $password, $user_email ); + $new_customer_data = array( + 'user_login' => $sanitized_user_login, + 'user_pass' => $password, + 'user_email' => $user_email, + 'role' => 'customer' + ); - if ( !$user_id ) { + $user_id = wp_insert_user( apply_filters( 'woocommerce_new_customer_data', $new_customer_data ) ); + + if ( ! $user_id ) { $woocommerce->add_error( '' . __( 'ERROR', 'woocommerce' ) . ': ' . __( 'Couldn’t register you… please contact us if you continue to have problems.', 'woocommerce' ) ); return; } - // Change role - wp_update_user( array ('ID' => $user_id, 'role' => 'customer') ) ; - // Action do_action( 'woocommerce_created_customer', $user_id ); @@ -732,21 +737,22 @@ function woocommerce_process_registration() { wp_set_auth_cookie($user_id, true, $secure_cookie); // Redirect - if ( wp_get_referer() ) : + if ( wp_get_referer() ) { wp_safe_redirect( wp_get_referer() ); exit; - endif; - wp_redirect(get_permalink(woocommerce_get_page_id('myaccount'))); - exit; + } else { + wp_redirect(get_permalink(woocommerce_get_page_id('myaccount'))); + exit; + } - else : + } else { $woocommerce->add_error( $reg_errors->get_error_message() ); return; - endif; + } - endif; + } - endif; + } }