| @@ -33,8 +33,9 @@ | ||
| 33 | 33 | |
| 34 | 34 | /** |
| 35 | 35 | * Handles updating relevant profile fields in donor database and meta database |
| 36 | 36 | * |
| 37 | + * @since 4.17.0 Logged-in donors can no longer add unverified email addresses. | |
| 37 | 38 | * @since 2.27.3 Use Donor model to update data used by webhooks addon to prevent multiple events creation |
| 38 | 39 | * @since 2.10.0 |
| 39 | 40 | * |
| 40 | 41 | * @param object $data Object representing profile data to update |
| @@ -46,10 +47,12 @@ | ||
| 46 | 47 | public function update($data) |
| 47 | 48 | { |
| 48 | 49 | $donor = Donor::find($this->donor->id); |
| 49 | 50 | |
| 51 | + $allowed = array_merge($donor->additionalEmails ?? [], [$donor->email]); | |
| 52 | + $donor->additionalEmails = array_values(array_intersect($data['additionalEmails'] ?: [], $allowed)); | |
| 53 | + | |
| 50 | 54 | $donor->email = $data['primaryEmail']; |
| 51 | - $donor->additionalEmails = $data['additionalEmails'] ?: []; | |
| 52 | 55 | |
| 53 | 56 | if ( ! empty($data['firstName']) && ! empty($data['lastName'])) { |
| 54 | 57 | $firstName = $data['firstName']; |
| 55 | 58 | $lastName = $data['lastName']; |