Error:
Fatal error: Class 'ps_icepayclass' not found in
\components\com_virtuemart\themes\default\templates\pages\account.order_details.tpl.php(56) : eval()'d code on line
1
Happens in:
ICEPAY Virtuemart plugin modules up to 2.1.1
On page:
User account order details if ICEPAY default status settings are altered.
Reason:
The order_details page shows the "extra information" of the payment module if the payment status is "P", de standard Virtuemar "Pending" status. ICEPAY uses the "extra information" to start a payment, therefore this creates an error.
Fix:
It is recommended to use the default ICEPAY status codes, because there is no "P" status code, this error will not occur.
Otherwise there are 2 possible fixes:
1) Change the Pending "P" status to a different letter. Ensure all the status codes are unique and don't forget to set the new status code in the ICEPAY module configuration. You can change the status codes in: Administrator > Components > Virtuemart > Orders > List Order Status Types
OR
2) Change the code in \components\com_virtuemart\themes\
default\templates\pages\account.order_details.tpl.php, make sure to change the "default" theme in the correct theme folder.
Line 55-58
Find:
| if( eval('?>' . $dbpm->f("payment_extrainfo") . '<?php ') === false ) { |
| echo vmCommonHTML::getErrorField( "Error: The code of the payment method ".$dbpm->f( 'payment_method_name').' ('.$dbpm->f('payment_method_code').') ' |
| .'contains a Parse Error!<br />Please correct that first' ); |
| } |
Change into:
| /*if( eval('?>' . $dbpm->f("payment_extrainfo") . '<?php ') === false ) { |
| echo vmCommonHTML::getErrorField( "Error: The code of the payment method ".$dbpm->f( 'payment_method_name').' ('.$dbpm->f('payment_method_code').') ' |
| .'contains a Parse Error!<br />Please correct that first' ); |
| }*/ |