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' ); ?>
-
+