The ‘review order’ page loads the payment methods/totals via ajax – this display a loading spinner briefly. If there are problems, this section may fail to load or the spinner may remain.
First you should check WooCommerce > System Status for errors – often errors will be highlighted.
Still having problems? Common causes and resolutions are listed below.
AJAX error due to WordPress settings.
The URL’s in Settings > General need to match – this is because AJAX requests don’t work across different domains:
Other JavaScript errors and conflicts
Themes and plugins can often cause problems (especially poorly coded ones!) with JavaScript. To check for errors use your browser’s error console.
Invalid Response from an AJAX Call
View the XHR tab on your browser’s developer console and look at the response. The expected response would be JSON. If the response is HTML this can be caused by a couple of different things. Oftentimes this is caused by an index.html file in the root directory of the WordPress installation
This can be resolved by either removing the index.html file or by adjusting the indexes directive on the server configuration and prioritizing index.php over index.html. Some caching plugins will also prepend HTML to the JSON response.
You may also see a response of -1, This is a security failure and is caused by a cached nonce.
You can also check for conflicts by turning off other plugins and switching to the default WordPress theme – this will often reveal the problem.