View Issue Details

IDProjectCategoryView StatusLast Update
0007235module PayPal Plusmodule PayPal Plus - subpublic2023-06-29 09:16
ReporterStefanBerger Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
Status acknowledgedResolutionopen 
Summary0007235: The wrong use of oxmultilangassign leads to an error when submitting an order
DescriptionHi,

using the paypal plus module in OXID Version 6.3.0 with the PHP Version 8.0.3 a fatal error occurs in the order confirmation email.

[2021-04-26 17:02:36] OXID Logger.ERROR: 3 arguments are required, 2 given ["[object] (ArgumentCountError(code: 0): 3 arguments are required, 2 given at .../httpdocs_oxid_project_ce/vendor/oxid-esales/oxideshop-ce/source/Core/Smarty/Plugin/mod$
fier.oxmultilangassign.php:48)\n[stacktrace]\n
0 .../httpdocs_oxid_project_ce/vendor/oxid-esales/oxideshop-ce/source/Core/Smarty/Plugin/modifier.oxmultilangassign.php(48): sprintf()\n
1 .../httpdocs_oxid_project_ce/source/tmp/smarty/21d7b5fe19872adcb3bf183f0884d58a^%%D3^D37^D37E7128%%order_cust.tpl.php(789): smarty_modifier_oxmultilangassign()\n
...

The problem is that the smarty modifier oxmultilangassign is called with one variable, although the text contains 2 placeholders.

The following source solves the problem:
httpdocs_oxid_project_ce/vendor/oxid-professional-services/paypalplus-module/views/blocks/payppaypalplus_email_html_order_cust_orderemailend.tpl
httpdocs_oxid_project_ce/vendor/oxid-professional-services/paypalplus-module/views/blocks/payppaypalplus_email_plain_order_cust_orderemailend.tpl
...
[{*}]
[{assign var="sDueDate" value=$oPaymentInstructions->getDueDate()|replace:" 00:00:00":""}]
[{assign var="sTerm" value="PAYP_PAYPALPLUS_PUI_SUCCESS_TERM"|oxmultilangassign:$sDueDate}]
[{*}]

[{capture name="pptotalprice"}][{oxprice price=$oPaymentInstructions->getTotal()}][{/capture}]
[{assign var="sPPTermsArg0" value=$smarty.capture.pptotalprice }]
[{assign var="sPPTermsArg1" value=$oPaymentInstructions->getDueDate()|date_format:"%d.%m.%Y" }]
[{assign_adv var="aPPTermsArgs" value="array('$sPPTermsArg0', '$sPPTermsArg1')" }]
[{assign var="sTerm" value="PAYP_PAYPALPLUS_PUI_SUCCESS_TERM"|oxmultilangassign:$aPPTermsArgs}]
...
Steps To ReproduceSubmit an order using paypal plus invoice payment.
TagsPaypal Plus

Activities

QA

2021-04-29 15:44

administrator   ~0013434

Hi StefanBerger,

officially paypal plus is not yet compatible to 6.3.

But according to composer.json it is. I have also reproduced the issue in php 8.

Best Regards
QA -SG-