Skip to content

Commit 424f6fc

Browse files
PLGMAG2V2-525: Add override order email for pay later (#530)
1 parent 02d0e27 commit 424f6fc

File tree

3 files changed

+28
-3
lines changed

3 files changed

+28
-3
lines changed

Config/Config.php

+1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ class Config
3232
public const LIVE_API_KEY = 'live_api_key';
3333
public const API_MODE = 'mode';
3434
public const DEBUG = 'debug';
35+
public const OVERRIDE_ORDER_CONFIRMATION_EMAIL = 'override_order_confirmation_email';
3536
public const ORDER_CONFIRMATION_EMAIL = 'order_confirmation_email';
3637
public const TRANSACTION_DESCRIPTION = 'transaction_custom_description';
3738
public const REFUND_DESCRIPTION = 'refund_custom_description';

Service/EmailSender.php

+14-3
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ public function __construct(
9999
}
100100

101101
/**
102+
* Send the order confirmation email
103+
*
102104
* @param OrderInterface $order
103105
* @param string $emailType
104106
* @return bool
@@ -117,10 +119,13 @@ public function sendOrderConfirmationEmail(
117119
}
118120

119121
$emailTypes = [
120-
$this->gatewayConfig->getValue(Config::ORDER_CONFIRMATION_EMAIL) ?? '',
121-
$this->config->getOrderConfirmationEmail(),
122+
$this->config->getOrderConfirmationEmail()
122123
];
123124

125+
if ($this->gatewayConfig->getValue(Config::OVERRIDE_ORDER_CONFIRMATION_EMAIL)) {
126+
$emailTypes[] = $this->gatewayConfig->getValue(Config::ORDER_CONFIRMATION_EMAIL) ?? '';
127+
}
128+
124129
if (in_array($emailType, $emailTypes, true)) {
125130
$this->orderSender->send($order);
126131

@@ -162,13 +167,19 @@ public function sendInvoiceEmail(OrderPaymentInterface $payment, Invoice $invoic
162167
}
163168

164169
/**
170+
* Check if order confirmation e-mail needs to be sent before transaction
171+
*
165172
* @param string $methodCode
166173
* @return bool
167174
*/
168175
public function checkOrderConfirmationBeforeTransaction(string $methodCode): bool
169176
{
170177
$this->gatewayConfig->setMethodCode($methodCode);
171-
178+
179+
if (!$this->gatewayConfig->getValue(Config::OVERRIDE_ORDER_CONFIRMATION_EMAIL)) {
180+
return $this->config->getOrderConfirmationEmail() === Config::BEFORE_TRANSACTION;
181+
}
182+
172183
if ($gatewaySpecificSetting = $this->gatewayConfig->getValue(Config::ORDER_CONFIRMATION_EMAIL)) {
173184
return $gatewaySpecificSetting === Config::BEFORE_TRANSACTION;
174185
}

etc/config.xml

+13
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,8 @@
139139
<can_fetch_transaction_info>1</can_fetch_transaction_info>
140140
<can_use_checkout>1</can_use_checkout>
141141
<can_use_internal>0</can_use_internal>
142+
<override_order_confirmation_email>0</override_order_confirmation_email>
143+
<order_confirmation_email/>
142144
<can_refund>1</can_refund>
143145
<can_refund_partial_per_invoice>1</can_refund_partial_per_invoice>
144146
<is_gateway>1</is_gateway>
@@ -165,6 +167,8 @@
165167
<can_fetch_transaction_info>1</can_fetch_transaction_info>
166168
<can_use_checkout>1</can_use_checkout>
167169
<can_use_internal>0</can_use_internal>
170+
<override_order_confirmation_email>0</override_order_confirmation_email>
171+
<order_confirmation_email/>
168172
<can_refund>1</can_refund>
169173
<can_refund_partial_per_invoice>1</can_refund_partial_per_invoice>
170174
<is_gateway>1</is_gateway>
@@ -191,6 +195,8 @@
191195
<can_fetch_transaction_info>1</can_fetch_transaction_info>
192196
<can_use_checkout>1</can_use_checkout>
193197
<can_use_internal>0</can_use_internal>
198+
<override_order_confirmation_email>0</override_order_confirmation_email>
199+
<order_confirmation_email/>
194200
<can_refund>1</can_refund>
195201
<can_refund_partial_per_invoice>1</can_refund_partial_per_invoice>
196202
<is_gateway>1</is_gateway>
@@ -914,6 +920,7 @@
914920
<can_fetch_transaction_info>1</can_fetch_transaction_info>
915921
<can_use_checkout>1</can_use_checkout>
916922
<can_use_internal>1</can_use_internal>
923+
<override_order_confirmation_email>1</override_order_confirmation_email>
917924
<order_confirmation_email/>
918925
<can_refund>1</can_refund>
919926
<can_refund_partial_per_invoice>1</can_refund_partial_per_invoice>
@@ -941,6 +948,8 @@
941948
<can_fetch_transaction_info>1</can_fetch_transaction_info>
942949
<can_use_checkout>1</can_use_checkout>
943950
<can_use_internal>0</can_use_internal>
951+
<override_order_confirmation_email>0</override_order_confirmation_email>
952+
<order_confirmation_email/>
944953
<can_refund>1</can_refund>
945954
<can_refund_partial_per_invoice>1</can_refund_partial_per_invoice>
946955
<is_gateway>1</is_gateway>
@@ -1057,6 +1066,8 @@
10571066
<can_fetch_transaction_info>1</can_fetch_transaction_info>
10581067
<can_use_checkout>1</can_use_checkout>
10591068
<can_use_internal>1</can_use_internal>
1069+
<override_order_confirmation_email>0</override_order_confirmation_email>
1070+
<order_confirmation_email/>
10601071
<can_refund>1</can_refund>
10611072
<can_refund_partial_per_invoice>1</can_refund_partial_per_invoice>
10621073
<is_gateway>1</is_gateway>
@@ -1187,6 +1198,8 @@
11871198
<can_fetch_transaction_info>1</can_fetch_transaction_info>
11881199
<can_use_checkout>1</can_use_checkout>
11891200
<can_use_internal>0</can_use_internal>
1201+
<override_order_confirmation_email>0</override_order_confirmation_email>
1202+
<order_confirmation_email/>
11901203
<can_refund>1</can_refund>
11911204
<can_refund_partial_per_invoice>1</can_refund_partial_per_invoice>
11921205
<is_gateway>1</is_gateway>

0 commit comments

Comments
 (0)