Skip to content

Commit 928112c

Browse files
committed
Accept env variables in from names and emails
1 parent ef6d3ea commit 928112c

File tree

4 files changed

+36
-10
lines changed

4 files changed

+36
-10
lines changed

CHANGELOG.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
# Release Notes for Campaign
22

3-
## 3.5.6 - Unreleased
3+
## 3.5.6 - 2024-10-31
4+
5+
### Changed
6+
7+
- The “from names and emails” setting now accepts environment variables ([#503](https://github.com/putyourlightson/craft-campaign/issues/503)).
48

59
### Fixed
610

src/Campaign.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -390,8 +390,8 @@ protected function createSettingsModel(): SettingsModel
390390
$settings->apiKey = StringHelper::randomString(16);
391391
$settings->fromNamesEmails = [
392392
[
393-
App::parseEnv($mailSettings->fromName),
394-
App::parseEnv($mailSettings->fromEmail),
393+
$mailSettings->fromName,
394+
$mailSettings->fromEmail,
395395
'',
396396
Craft::$app->getSites()->getPrimarySite()->id,
397397
],

src/helpers/SettingsHelper.php

+5-5
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public static function getFromNameEmail(int $siteId = null): array
3838
{
3939
// Get first from name and email
4040
$firstFromNameEmail = [];
41-
$fromNamesEmails = Campaign::$plugin->settings->fromNamesEmails;
41+
$fromNamesEmails = Campaign::$plugin->settings->getFromNamesEmails();
4242

4343
foreach ($fromNamesEmails as $fromNameEmail) {
4444
if ($siteId === null || empty($fromNameEmail[3]) || $fromNameEmail[3] == $siteId) {
@@ -57,9 +57,9 @@ public static function getFromNameEmail(int $siteId = null): array
5757
$mailSettings = App::mailSettings();
5858

5959
$firstFromNameEmail = [
60-
'name' => $mailSettings->fromName,
61-
'email' => $mailSettings->fromEmail,
62-
'replyTo' => '',
60+
'name' => App::parseEnv($mailSettings->fromName),
61+
'email' => App::parseEnv($mailSettings->fromEmail),
62+
'replyTo' => App::parseEnv($mailSettings->replyToEmail),
6363
];
6464
}
6565

@@ -72,7 +72,7 @@ public static function getFromNameEmail(int $siteId = null): array
7272
public static function getFromNameEmailOptions(int $siteId = null): array
7373
{
7474
$fromNameEmailOptions = [];
75-
$fromNamesEmails = Campaign::$plugin->settings->fromNamesEmails;
75+
$fromNamesEmails = Campaign::$plugin->settings->getFromNamesEmails();
7676

7777
foreach ($fromNamesEmails as $fromNameEmail) {
7878
$fromSiteId = $fromNameEmail[3] ?? null;

src/models/SettingsModel.php

+24-2
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,26 @@ public function getTurnstileErrorMessage(): string
417417
return App::parseEnv($this->turnstileErrorMessage) ?? '';
418418
}
419419

420+
/**
421+
* Returns the parsed from names and emails.
422+
*
423+
* @since 3.5.6
424+
*/
425+
public function getFromNamesEmails(): array
426+
{
427+
$fromNamesEmails = [];
428+
foreach ($this->fromNamesEmails as $fromNameEmail) {
429+
$fromNamesEmails[] = [
430+
App::parseEnv($fromNameEmail[0]) ?? '',
431+
App::parseEnv($fromNameEmail[1]) ?? '',
432+
App::parseEnv($fromNameEmail[2]) ?? '',
433+
$fromNameEmail[3] ?? null,
434+
];
435+
}
436+
437+
return $fromNamesEmails;
438+
}
439+
420440
/**
421441
* Returns the contact field layout.
422442
*/
@@ -469,12 +489,14 @@ public function getContactFields(): array
469489
*/
470490
public function validateFromNamesEmails(mixed $attribute): void
471491
{
472-
if (empty($this->fromNamesEmails)) {
492+
$fromNamesEmails = $this->getFromNamesEmails();
493+
494+
if (empty($fromNamesEmails)) {
473495
$this->addError($attribute, Craft::t('campaign', 'You must enter at least one name and email.'));
474496
return;
475497
}
476498

477-
foreach ($this->fromNamesEmails as $fromNameEmail) {
499+
foreach ($fromNamesEmails as $fromNameEmail) {
478500
if ($fromNameEmail[0] === '' || $fromNameEmail[1] === '') {
479501
$this->addError($attribute, Craft::t('campaign', 'The name and email cannot be blank.'));
480502
return;

0 commit comments

Comments
 (0)