WooCommerce: Can't read property "reload" null checkout.min.js?
Running Wordpress 4.1.5 and WooCommerce 2.3.8 using WooPress theme - 8theme WordPress. On the checkout page, when I click on "Place order", it stops and on the console I get:
Uncaught TypeError: Cannot read property 'reload' of null
from checkout.min.js. I replaced it with the unminified version and subtracted that from here:
$.ajax({
type: 'POST',
url: wc_checkout_params.checkout_url,
data: $form.serialize(),
success: function( code ) {
It turns out to code
be null. The requested action was wp-admin/admin-ajax.php?action=woocommerce_checkout
. Why does it have to be null?
Note. For the payment provider, I am using the AuthorizeNetAIM plugin (from codecanyon) and using test mode + sandbox login.
Update # 1 . Trying this fix: http://www.tech.theplayhub.com/woocommerce_js_issue_on_checkout/
disabling email notifications. Bad luck.
Update # 2 . Trying this fix: https://github.com/woothemes/woocommerce/issues/5332
In this case, the user had the FB plugin and had to disable it.
The only plugins I have installed are:
- RevolutionSlider 4.6.5
- WC Authorize.Net AIM 1.2.1
- WooCommerce 2.3.8
- WPBakery Visual Composer 4.4.3
Update # 3: . Downgraded WooCommerce 2.3.8 to 2.3.0 as the theme I'm using (8theme / woopress) contains woocommerce 2.3.0 files. Same. Also tried changing theme to naked (TwelveFourteen, etc.) theme. Same.
I suspect it might be the AuthorizeNet AIM plugin with an error / throwing exception, except that the code doesn't pick it up in any way.
source to share
It turned out like this: cURL requires CURLOPT_SSL_VERIFYPEER = FALSE )
Basically, the plugin I was using was using the legacy cert.pem file.
The module in question: http://codecanyon.net/item/authorizenet-aim-payment-module-for-woocommerce/1991981
File used: wp-content / plugins / wc-authorize-aim / includes / lib / ssl / cert.pem.
While possible, error handling plugins/woocommerce/assets/js/frontend/checkout.min.js
could be improved to determine if there is any actual answer.
source to share