@@ -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