diff --git a/src/DonationForms/Actions/GetOrCreateDonor.php b/src/DonationForms/Actions/GetOrCreateDonor.php index 4f71661a24..637724c1e2 100644 --- a/src/DonationForms/Actions/GetOrCreateDonor.php +++ b/src/DonationForms/Actions/GetOrCreateDonor.php @@ -29,22 +29,23 @@ public function __invoke( // first check if donor exists as a user $donor = $userId ? Donor::whereUserId($userId) : null; - // If they exist as a donor & user then make sure they don't already own this email before adding to their additional emails list.. + // if they exist as a donor & user then make sure they don't already own this email before adding to their additional emails list.. if ($donor && !$donor->hasEmail($donorEmail) && !Donor::whereEmail($donorEmail)) { $donor->additionalEmails = array_merge($donor->additionalEmails ?? [], [$donorEmail]); $donor->save(); } - if ($donor && empty($donor->phone)) { - $donor->phone = $donorPhone; - $donor->save(); - } - // if donor is not a user than check for any donor matching this email if (!$donor) { $donor = Donor::whereEmail($donorEmail); } + // if they exist as a donor & user but don't have a phone number then add it to their profile. + if ($donor && empty($donor->phone)) { + $donor->phone = $donorPhone; + $donor->save(); + } + // if no donor exists then create a new one using their personal information from the form. if (!$donor) { $donor = Donor::create([