Add better support for user profile fields for addresses to the Cart and the EMS.
This commit is contained in:
parent
39049e1c7c
commit
428ea58327
21 changed files with 1657 additions and 62 deletions
|
|
@ -1422,27 +1422,28 @@ sub update {
|
|||
delete $properties->{wg_privacySettings};
|
||||
|
||||
# $self->{_user} contains all fields in `users` table
|
||||
my @userFields = ();
|
||||
my @userValues = ();
|
||||
my @userFields = ();
|
||||
my @userValues = ();
|
||||
for my $key ( keys %{$self->{_user}} ) {
|
||||
if ( exists $properties->{$key} ) {
|
||||
# Delete the value because it's not a profile field
|
||||
my $value = delete $properties->{$key};
|
||||
my $value = delete $properties->{$key};
|
||||
push @userFields, $db->dbh->quote_identifier( $key ) . " = ?";
|
||||
push @userValues, $value;
|
||||
$self->{_user}->{$key} = $value;
|
||||
}
|
||||
}
|
||||
# No matter what we update properties
|
||||
my $userFields = join ", ", @userFields;
|
||||
my $userFields = join ", ", @userFields;
|
||||
$db->write(
|
||||
"UPDATE users SET $userFields WHERE userId=?",
|
||||
[@userValues, $self->{_userId}]
|
||||
);
|
||||
|
||||
# Everything else must be a profile field
|
||||
my @profileFields = ();
|
||||
my @profileValues = ();
|
||||
my @profileFields = ();
|
||||
my @profileValues = ();
|
||||
|
||||
for my $key ( keys %{$properties} ) {
|
||||
if (!exists $self->{_profile}{$key} && !WebGUI::ProfileField->exists($session,$key)) {
|
||||
$self->session->errorHandler->warn("No such profile field: $key");
|
||||
|
|
@ -1453,7 +1454,7 @@ sub update {
|
|||
$self->{_profile}->{$key} = $properties->{ $key };
|
||||
}
|
||||
if ( @profileFields ) {
|
||||
my $profileFields = join ", ", @profileFields;
|
||||
my $profileFields = join ", ", @profileFields;
|
||||
$db->write(
|
||||
"UPDATE userProfileData SET $profileFields WHERE userId=?",
|
||||
[@profileValues, $self->{_userId}]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue