Plugin version: 1.8.0
CS-Cart version: 4.8.1
Files:
design/themes/responsive/templates/addons/my_changes/overrides/views/checkout/components/payments/payments_list.tpl
design/themes/basic/templates/addons/my_changes/overrides/views/checkout/components/payments/payments_list.tpl
Problem
The shipped payments_list.tpl override indexes
$payment_data.processor_params.minamount / .maxamount / .gateway / .ipvalidator
for every payment method in checkout. For non-MultiSafepay or offline methods,
processor_params is an empty string, not an array.
- On PHP 7.x this logs "Illegal string offset 'minamount'" and "Illegal string
offset 'gateway'" and the min/max gating returns garbage.
- On PHP 8.x this is a fatal TypeError ("Cannot access offset of type string on
string"), which breaks the checkout payment step whenever a non-MSP method is
present.
Secondary issues in the same file
- It is shipped into the
my_changes namespace, which is the merchant's own
customization namespace. Installing the plugin overwrites a merchant's existing
my_changes/payments_list.tpl override.
- The template contains a stray
} (in the BNPL_MF NL branch) and references
$payment_data.params.* where it should be $payment_data.processor_params.*.
Possible fix
Guard processor_params with an is_array check before indexing it, so the MSP-
specific filtering only applies to MSP methods and other methods render normally.
Ship plugin overrides under the plugin's own addon namespace rather than
my_changes.
Plugin version: 1.8.0
CS-Cart version: 4.8.1
Files:
design/themes/responsive/templates/addons/my_changes/overrides/views/checkout/components/payments/payments_list.tpl
design/themes/basic/templates/addons/my_changes/overrides/views/checkout/components/payments/payments_list.tpl
Problem
The shipped payments_list.tpl override indexes
$payment_data.processor_params.minamount / .maxamount / .gateway / .ipvalidator
for every payment method in checkout. For non-MultiSafepay or offline methods,
processor_params is an empty string, not an array.
offset 'gateway'" and the min/max gating returns garbage.
string"), which breaks the checkout payment step whenever a non-MSP method is
present.
Secondary issues in the same file
my_changesnamespace, which is the merchant's owncustomization namespace. Installing the plugin overwrites a merchant's existing
my_changes/payments_list.tpl override.
}(in the BNPL_MF NL branch) and references$payment_data.params.*where it should be$payment_data.processor_params.*.Possible fix
Guard processor_params with an is_array check before indexing it, so the MSP-
specific filtering only applies to MSP methods and other methods render normally.
Ship plugin overrides under the plugin's own addon namespace rather than
my_changes.