Skip to content

Commit d9c4477

Browse files
committed
Update: add template extra vars option in ManageTransactionStepEventAction
1 parent edfbfd2 commit d9c4477

File tree

2 files changed

+29
-9
lines changed

2 files changed

+29
-9
lines changed

Resources/config/event_actions.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,4 @@ idci_step:
1616
description: {extra_form_type: "text", options: {required: false}}
1717
success_message: {extra_form_type: "text", options: {required: false}}
1818
error_message: {extra_form_type: "text", options: {required: false}}
19+
template_extra_vars: {extra_form_type: "text", options: {required: false}}

Step/Event/Action/ManageTransactionStepEventAction.php

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -140,13 +140,17 @@ private function prepareInitializeTransaction(StepEventInterface $event, array $
140140
$options['prevent_next'] = false;
141141
$options['prevent_previous'] = false;
142142
}
143+
143144
$options['transaction'] = $transaction;
144145
$options['pre_step_content'] = $this->templating->render(
145146
$this->templates[PaymentStatus::STATUS_CREATED],
146-
[
147-
'view' => $paymentContext->buildHTMLView(),
148-
'transaction' => $transaction,
149-
]
147+
array_merge(
148+
$parameters['template_extra_vars'],
149+
[
150+
'view' => $paymentContext->buildHTMLView(),
151+
'transaction' => $transaction,
152+
]
153+
)
150154
);
151155
$event->getNavigator()->getCurrentStep()->setOptions($options);
152156

@@ -176,11 +180,14 @@ private function prepareReturnTransaction(StepEventInterface $event, array $para
176180
$options['transaction'] = $transaction;
177181
$options['pre_step_content'] = $this->templating->render(
178182
$this->templates[$transaction->getStatus()],
179-
[
180-
'transaction' => $transaction,
181-
'successMessage' => $parameters['success_message'],
182-
'errorMessage' => $parameters['error_message'],
183-
]
183+
array_merge(
184+
$parameters['template_extra_vars'],
185+
[
186+
'transaction' => $transaction,
187+
'successMessage' => $parameters['success_message'],
188+
'errorMessage' => $parameters['error_message'],
189+
]
190+
)
184191
);
185192
$event->getNavigator()->getCurrentStep()->setOptions($options);
186193

@@ -220,6 +227,7 @@ protected function setDefaultParameters(OptionsResolver $resolver)
220227
'description' => null,
221228
'success_message' => 'Your transaction succeeded.',
222229
'error_message' => 'There was a problem with your transaction, please try again.',
230+
'template_extra_vars' => [],
223231
])
224232
->setAllowedTypes('allow_skip', array('bool', 'string'))
225233
->setAllowedTypes('payment_gateway_configuration_alias', ['string'])
@@ -231,12 +239,23 @@ protected function setDefaultParameters(OptionsResolver $resolver)
231239
->setAllowedTypes('description', ['null', 'string'])
232240
->setAllowedTypes('success_message', ['null', 'string'])
233241
->setAllowedTypes('error_message', ['null', 'string'])
242+
->setAllowedTypes('template_extra_vars', ['array'])
234243
->setNormalizer(
235244
'allow_skip',
236245
function (OptionsResolver $options, $value) {
237246
return (bool) $value;
238247
}
239248
)
249+
->setNormalizer(
250+
'template_extra_vars',
251+
function (OptionsResolver $options, $templateExtraVars) {
252+
array_walk_recursive($templateExtraVars, function (&$value, $key) {
253+
$value = json_decode($value, true) ?? $value;
254+
});
255+
256+
return $templateExtraVars;
257+
}
258+
)
240259
;
241260
}
242261
}

0 commit comments

Comments
 (0)