Assuming you cleared cache, flushed apc/OPcache (if in use), ran compilation process (if in use), here is a small list of things to check:
- Check if all 1.9.1 files have been copies over
- Open
app/code/core/Mage/Sales/Model/Order.php
and look for
queueNewOrderEmail
method
- If the method does not exist you don't have latest file
- If the method exists check if some third party module is rewriting
the class and check your local code pool for override of the given
class
Source: Here
The issue is with how
skin/frontend/base/default/js/checkout/review.js
interacts with
design/frontend/base/default/template/paypal/express/review.phtml
review.js has not been updated since 1.7 (or maybe before)
review.phtml has been updated with 1.9
When a virtual order happens, there is no shipping section on the review page, and the logic of the "OrderReviewController" tells it to observe all the inputs of the form 'order_review_form', and if they change, to disable the "Place Order" button.
This seems to be a legacy behaviour, because the only remaining input in the 'order_review_form' is the checkbox to agree with Terms and Conditions - and you actually want precisely the opposite behaviour with that checkbox.
The solution:
Create a copy of review.js in your theme's "skin" area, eg:
skin/frontend/default/modern/js/checkout/review.js
Edit this review.js, and replace line 358
Event.observe(input, 'change', this._onElementChange.bindAsEventListener(this));
with
if (typeof input.id !== 'string' || input.id.substr(0,9) !== 'agreement') {
Event.observe(input, 'change', this._onElementChange.bindAsEventListener(this));
}
A proper solution would require review.js being rewritten to be compatible with review.phtml...
Best Answer
May be it is useful for you
skin/frontend/base/default/js/checkout/review.js
change to: