It would appear that I have not entirely fixed the problem. There is another line of code that checks to see if the modules are installed, as well as making sure the payment object exists, which it should.
Here is that original code: (around line 71)
if ( ( is_array($payment_modules->modules) && (sizeof($payment_modules->modules) > 1) && !is_object($$payment) ) || (is_object($$payment) && ($$payment->enabled == false)) ) {
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message=' . urlencode(ERROR_NO_PAYMENT_MODULE_SELECTED), 'SSL'));
}
Have not tried it yet but will be testing out this changed code:
if ( (!is_object($$payment) ) || (is_object($$payment) && ($$payment->enabled == false)) ) {
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message=' . urlencode(ERROR_NO_PAYMENT_MODULE_SELECTED), 'SSL'));
}
As for the other code that was changed in addition:
if (!tep_session_is_registered('payment')) {
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
}
What I would really like to do is to find out how to fix it so that it sees that payment modules are in fact installed. That would be the proper way to fix it I believe. I just haven't found any thing any where to help with this.
AND the weird part about all of this is that if the customer logs in before they go to paypal to use the express checkout it does not happen!
Hope that helps, let me know if you figure it out.