From 0f797714f1c42521672d720e97f661ad484e7427 Mon Sep 17 00:00:00 2001 From: Claudio Sanches Date: Wed, 21 Feb 2018 21:52:45 -0300 Subject: [PATCH] Tweaks on account display name --- includes/class-wc-customer.php | 4 ++-- includes/class-wc-form-handler.php | 29 +++++++++++++---------- templates/myaccount/form-edit-account.php | 2 +- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/includes/class-wc-customer.php b/includes/class-wc-customer.php index ab38f79eb67..a5e205db07c 100644 --- a/includes/class-wc-customer.php +++ b/includes/class-wc-customer.php @@ -749,10 +749,10 @@ class WC_Customer extends WC_Legacy_Customer { * Set customer's display name. * * @since 3.1.0 - * @param string $display_name - * @throws WC_Data_Exception + * @param string $display_name Display name. */ public function set_display_name( $display_name ) { + /* translators: 1: first name 2: last name */ $this->set_prop( 'display_name', is_email( $display_name ) ? sprintf( __( '%1$s %2$s', 'display name', 'woocommerce' ), $this->get_first_name(), $this->get_last_name() ) : $display_name ); } diff --git a/includes/class-wc-form-handler.php b/includes/class-wc-form-handler.php index 2ca840198c1..785b57e4df4 100644 --- a/includes/class-wc-form-handler.php +++ b/includes/class-wc-form-handler.php @@ -188,30 +188,33 @@ class WC_Form_Handler { return; } - $current_user = get_user_by( 'id', $user_id ); - $current_first_name = $current_user->first_name; - $current_last_name = $current_user->last_name; - $current_email = $current_user->user_email; - $account_first_name = ! empty( $_POST['account_first_name'] ) ? wc_clean( $_POST['account_first_name'] ): ''; $account_last_name = ! empty( $_POST['account_last_name'] ) ? wc_clean( $_POST['account_last_name'] ) : ''; - $account_display_name = ! empty( $_POST['account_display_name'] ) ? wc_clean( $_POST['account_display_name'] ) : ''; + $account_display_name = ! empty( $_POST['account_display_name'] ) ? wc_clean( $_POST['account_display_name'] ) : ''; $account_email = ! empty( $_POST['account_email'] ) ? wc_clean( $_POST['account_email'] ) : ''; $pass_cur = ! empty( $_POST['password_current'] ) ? $_POST['password_current'] : ''; $pass1 = ! empty( $_POST['password_1'] ) ? $_POST['password_1'] : ''; $pass2 = ! empty( $_POST['password_2'] ) ? $_POST['password_2'] : ''; $save_pass = true; - $user = new stdClass(); - $user->ID = $user_id; - $user->first_name = $account_first_name; - $user->last_name = $account_last_name; - - // Prevent display name to be changed to email + // Current user data. + $current_user = get_user_by( 'id', $user_id ); + $current_first_name = $current_user->first_name; + $current_last_name = $current_user->last_name; + $current_email = $current_user->user_email; + + // New user data. + $user = new stdClass(); + $user->ID = $user_id; + $user->first_name = $account_first_name; + $user->last_name = $account_last_name; + $user->display_name = $account_display_name; + + // Prevent display name to be changed to email. if ( is_email( $account_display_name ) ) { wc_add_notice( __( 'Display name cannot be changed to email address due to privacy concern.', 'woocommerce' ), 'error' ); } - + // Handle required fields. $required_fields = apply_filters( 'woocommerce_save_account_details_required_fields', array( 'account_first_name' => __( 'First name', 'woocommerce' ), diff --git a/templates/myaccount/form-edit-account.php b/templates/myaccount/form-edit-account.php index 6e7b1526f21..cea11aa5b1b 100644 --- a/templates/myaccount/form-edit-account.php +++ b/templates/myaccount/form-edit-account.php @@ -35,7 +35,7 @@ do_action( 'woocommerce_before_edit_account_form' ); ?>

- +