HOWTO: Debug shortcodes displaying “No currencies are currently enabled.” message

You’ve installed the plugin and a coin adapter, and the shortcodes show the message “No currencies are currently enabled”. Here’s how to debug this.

If you have installed and correctly configured a coin adapter, and the plugin’s shortcodes display the message “No currencies are currently enabled.”, then this guide is for you!

Is the adapter correctly configured?

Go to WalletsAdapters. At least one adapter must show a status of “Responding”. If not, correct the issue until the adapter is responding.

Does the API key have all required permissions? (CoinPayments adapter only)

If you followed the video for installing the CoinPayments adapter, you may not have assigned all the required permissions. There is one permission missing from the video. Check the installation guide at step #23, and add the get_callback_address permission to your API key if you haven’t already.

Does your site’s JavaScript contain any errors?

The front-end shortcodes rely heavily on JavaScript to work. If any script in your theme or plugins causes errors, this will prevent the shortcodes from loading content.

Open the developer console in your browser (F12), and check for any JavaScript errors (NOT warnings or other info). You should be able to see which script is causing the error. Usually you will be able to guess which component (theme or plugin) causes the issue, by inspecting the script’s URL path. Disable that component to see if the error goes away. If the error comes from code that you wrote yourself, correct the error.

Is your server-side cache showing you stale output from before you configured the coin adapter?

Clear your server side caches and reload the page with the shortcodes. These caches can include (but are not limited to) WP Super Cache, W3 Total Cache, WP Fastest Cache, WP-Optimize, etc.

Is your HTML markup being optimized/minified/compressed?

The JavaScript code in the frontend shortcodes is based on the knockout.js framework, and is using containerless control flow syntax. This means that the code relies on semantic HTML comments.

Many cache plugins and other optimization plugins (e.g. WP-Optimize) offer an option to optimize the HTML output. If you are running any such plugin, please disable the feature that optimizes HTML.

Is the JSON API working as expected?

The frontend communicates with the backend using a custom-built JSON-API to retrieve data and perform transactions. It is possible that this API is not accessible. Navigate to https://www.example.com/?__wallets_apiversion=3&__wallets_action=get_coins_info (replacing www.example.com with your site’s domain name). The result should be valid JSON, and should include details for at least one coin.

If the page is not shown, check your HTTP server’s configuration (.htaccess files in Apache, .conf files in Nginx). Check your security plugins to see if any such plugin is blocking access to that URL. If this is the case, you may need to whitelist URLs that contain the GET parameter “__wallets_action“.

PRO TIP: You can also use the browser console’s Network tab to inspect calls to the JSON-API. These calls will be listed under “XHR requests“. Calls should succeed (with HTTP status 200) and should return responses in JSON format.

Do you see an alert box complaining about invalid JSON?

If you see a popup box with a message such as: “Could not contact server. Status: parsererror Error: SyntaxError: Unexpected token < in JSON at position XYZ”, then the result you get from the get_coins_info call is not valid JSON. This is usually caused by some plugin or theme causing a PHP error, which gets printed in the API output and causes it to become invalid.

You should instruct WordPress to hide any PHP errors from the front-end. Add define( 'WP_DEBUG_DISPLAY', false ); in your wp-config.php. Ideally you should aim to fix any PHP errors on your site, but this constant will at least hide them from the front-end, and from JSON-API responses.

Does the knockout observable contain any coin info?

If the JSON API works, you can then check to see if the data is loaded into the plugin’s JavaScript code. Go to the browser console and type: wp.wallets.viewModels.wallets.coins(). This must contain the same information as that returned from the get_coins_info API call. If the observable is empty, this again indicates a JavaScript issue.

This guide didn’t help? Maybe I can.

First please try to follow this guide. If you need help, post your issue at the support forum here or here. Let me know what you have checked and what you found. You can also contact me by email.

Comments:2

    1. Hello and thank you for your interest in the plugin.

      Simply saying “not working” is not very useful. Please visit the appropriate support forum and describe the issue you are encountering in as much detail as possible. If the issue is with the core plugin you can use the General Discussion. If your issue is with a coin adapter or app extension, please use the corresponding forum and start a new thread.

      Thank you.

      with regards

Leave a Reply

Your email address will not be published. Required fields are marked *