diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index efc3eb215..f72ae9202 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -11,6 +11,7 @@ - fixed #11428: Dataform Date Field Problem - fixed #11434: Inbox invitation adds text to email instead of html - fixed #11436: Inbox invitation use mail send instead of mail queue + - fixed #11385: Wrong user in onCompletePurchase 7.8.12 - fixed #11285: Pasting HTML into Code Editor in IE diff --git a/lib/WebGUI/Asset/Sku/Ad.pm b/lib/WebGUI/Asset/Sku/Ad.pm index f0e9a2c1d..52713d21c 100644 --- a/lib/WebGUI/Asset/Sku/Ad.pm +++ b/lib/WebGUI/Asset/Sku/Ad.pm @@ -315,49 +315,51 @@ inserts the ad into the adspace... =cut sub onCompletePurchase { - my $self = shift; - my $item = shift; + my $self = shift; + my $session = $self->session; + my $item = shift; my $options = $self->getOptions; my $ad; # LATER: if we use Temp Storage for the image we need to move it to perm storage + my $userId = $item->transaction->get('userId'); if( $options->{adId} ne '' ) { - $ad = WebGUI::AdSpace::Ad->new($self->session,$options->{adId}); - my $clicks = $options->{clicks} + $ad->get('clicksBought'); + $ad = WebGUI::AdSpace::Ad->new($session, $options->{adId}); + my $clicks = $options->{clicks} + $ad->get('clicksBought'); my $impressions = $options->{impressions} + $ad->get('impressionsBought'); $ad->set({ - title => $options->{'adtitle'}, - clicksBought => $clicks, - impressionsBought => $impressions, - url => $options->{'link'}, - storageId => $options->{'image'}, + title => $options->{'adtitle'}, + clicksBought => $clicks, + impressionsBought => $impressions, + url => $options->{'link'}, + storageId => $options->{'image'}, }); } else { - $ad = WebGUI::AdSpace::Ad->create($self->session,$self->get('adSpace'),{ - title => $options->{'adtitle'}, - clicksBought => $options->{'clicks'}, - impressionsBought => $options->{'impressions'}, - url => $options->{'link'}, - storageId => $options->{'image'}, - ownerUserId => $self->session->user->userId, - isActive => 1, - type => 'image', - priority => $self->get('priority'), - adSpace => $self->get('adSpace'), + $ad = WebGUI::AdSpace::Ad->create($session, $self->get('adSpace'), { + title => $options->{'adtitle'}, + clicksBought => $options->{'clicks'}, + impressionsBought => $options->{'impressions'}, + url => $options->{'link'}, + storageId => $options->{'image'}, + ownerUserId => $userId, + isActive => 1, + type => 'image', + priority => $self->get('priority'), + adSpace => $self->get('adSpace'), }); } - WebGUI::AssetCollateral::Sku::Ad::Ad->create($self->session,{ - userId => $item->transaction->get('userId'), - transactionItemId => $item->getId, - adId => $ad->getId, - clicksPurchased => $options->{'clicks'}, - impressionsPurchased => $options->{'impressions'}, - dateOfPurchase => $item->transaction->get('dateOfPurchase'), - storedImage => $options->{'image'}, - isDeleted => 0, + WebGUI::AssetCollateral::Sku::Ad::Ad->create($session, { + userId => $userId, + transactionItemId => $item->getId, + adId => $ad->getId, + clicksPurchased => $options->{'clicks'}, + impressionsPurchased => $options->{'impressions'}, + dateOfPurchase => $item->transaction->get('dateOfPurchase'), + storedImage => $options->{'image'}, + isDeleted => 0, }); } diff --git a/lib/WebGUI/Asset/Sku/EMSBadge.pm b/lib/WebGUI/Asset/Sku/EMSBadge.pm index bb196c730..21adf7063 100644 --- a/lib/WebGUI/Asset/Sku/EMSBadge.pm +++ b/lib/WebGUI/Asset/Sku/EMSBadge.pm @@ -257,7 +257,7 @@ sub onCompletePurchase { my ($self, $item) = @_; my $badgeInfo = $self->getOptions; $badgeInfo->{purchaseComplete} = 1; - $badgeInfo->{userId} = $self->session->user->userId; # they have to be logged in at this point + $badgeInfo->{userId} = $item->transaction->get('userId'); # they have to be logged in at this point $badgeInfo->{transactionItemId} = $item->getId; $self->session->db->setRow("EMSRegistrant","badgeId", $badgeInfo); return undef;