I am in the process of making my own implementation of hook_taxonomy_term_insert($term) using a module. This works fine because I can add the following:
drupal_set_message( 'todo', 'status' );
which will show up fine. However, how can I debug my hook? For example I would like to var_dump the $term and start coding from there. But how do I stop the redirect, so that I am able to print out messages?
Thanks in advance.
Take a look at the Devel (development) module. It is extremely helpful in debugging. There is also an option to stop redirects so you can debug from there.
Related
A PHP session was created by a session_start() function call. This interferes with REST API and loopback requests. The session should be closed by session_write_close() before making any HTTP requests.
In most cases, the real reason of the above errors is the incorrect mechanism for using PHP sessions within plugins or themes when they are using the session_start() function.
Now you need to identify what plugin cause this issue by deactive your plugin one by one.
Then in that plugin, you need to find a piece of code similar to this:
if ( !session_id() ) {
session_start();
}
then change it to:
if ( !session_id() ) {
session_start( [
'read_and_close' => true,
] );
}
Then you are done. In most cases, this will fix the issue. Good luck!
Had the same issue due to WP Hotel Booking plugin use. I fixed it! Took me a while to find a plugin it caused and editing the plugin .php didn’t help. But I fixed it adding a snippet of code to functions.php of the CHILD theme:
function mymodule_curl_before_request($curlhandle){
session_write_close();
}
add_action( ‘requests-curl.before_request’,’mymodule_curl_before_request’, 9999 );
There's a background to this solution at: Make WordPress Core, Loopback request fails if headers set in curl
(Original link in German doesn't exist anymore and was referring to this other related discussion.)
Often this critical issue is caused by conflict in SESSION when using the PHP session_start() function.
For example I have used a Calculation plugin in Wordpress and after Wordpress version update this error occured.
So I detected the plugin which causes this issue as activated/deactivated plugins one by one.
SOLVING these errors: In File manager of my site I got the .php files of the plugin and searched for session_start() function. Where it was used after it I used this function in a row session_write_close();
Source of the function
Regards!
To chime in with my own experience here, this very issue was resolved by turning off the “cross sell pop up” module of Shopengine Pro. Indeed there’s a session start in the php. I have notified them about this today. Maybe it’ll help someone else meantime!
I found out that you get these critical health warnings when you install a plugin or a plugin Adon and fail to complete its setup to the end. So the simplest solution is to deactivate the plugin or complete the plugin set-up. My errors were caused by a Woocommerce Adon which I deactivated and when I refreshed the health status the two issues were gone. I hope this helps.
#David M., If the issue is specifically happening with the Cross-Sell Popup Module of the ShopEngine PRO plugin, then it can be fixed by adding a small piece of code on the cross-sell-popup.php file that will read and close the session of the Cross Sale Popup module immediately.
Big Thanks to #thống nguyễn for the solution.
On the line 18th, from where the session starts, replace the session_start() with the following code:
session_start([
'read_and_close' => true
]);
Hope it will help.
If you tried the above and it's not working try to change the php version from your hosting's CPanel
I had the same error ande i changed the php version from 7.4 to 7.3 and it all went well
In my Wordpress site, this issue appears when adding or editing posts.
Notice: register_rest_route was called incorrectly. REST API routes must be registered on the rest_api_init action. Please see Debugging in WordPress for more information. (This message was added in version 5.1.0.) in /project/wp/wp-includes/functions.php on line 5167
Note: I didn't make any WP update or any plugin update on the site.
Any idea to fix this issue? Thank you.
In WordPress 5.5, a change was made to how REST routes are registered and now required a permission_callback.
The reason you may see it the notice on one site and not all is that notices only appear when WordPress is run in DEBUG mode, confirm by checking the value of wp-config.php for
define( 'WP_DEBUG', true );
If the site showing the notices should not be in debug mode, simply change the value of WP_DEBUG to false.
A plugin or your theme are creating a REST-Api route in a wrong hook.
This is correctly done by using add_action('rest_api_init', 'function_to_create_end_endpoint');
function_to_create_endpoint contains the function register_rest_route().
In your case it's something else ('init' or 'plugins_loaded' instead of 'rest_api_init')
Some solutions:
Update all Plugins/your Theme to a current Version
If this doesn't help you can: Deactivate Plugins one by one, to see which one causes the issue, than maybe replace it or check if is abandoned
Search for "register_rest_route" in your wp-content folder and find the plugin that calls it in a hook something other than "rest_api_init".
Lastly Notices only show up when you turn on full debugging in your wp-config, this isn't meant for sites running in production. You could turn it off.
The plugin generated 1 characters of unexpected output during
activation. If you notice “headers already sent” messages, problems
with syndication feeds or other issues, try deactivating or removing
this plugin.
While activating the plugin in wordpress i got the above error.
Don't know why it's happening.
Kindly suggest some ideas.
Thanks
Your plugin is outputing something on activation. Validate that the included PHP files have no extra whitespace outside the <?php ?> tags and make sure there's no printing happening anywhere.
A hacky solution is to use ob_start() and ob_end_clean() during the activation. It might hide it but it really doesn't fix the problem.
Plugin activation and deactivation processes should not print anything from PHP. If you need to get some info out of the process consider logging.
If the plugin is not yours, try to contact the original developer about the issue.
Every time I use a redirect from an URL alias i receive the foloowing report of:
Oops, looks like this request tried to create an infinite loop. We do not allow such things here. We are a professional website!
Ive tried clearing all the cache and ran cron.
I've tried searching everywhere and can't seem to fix it. Thank you kindly for your support.
It seems to be you have an issue with your Redirect module.
If you edit a node you will see that it somehow creates a redirect which is the same as the pages existing URL alias.
Seems to be related to this post.
Try to delete redirections and clear the cache again.
I automatically updated my wordpress installation to the latest version. Everything looked normal unit "updating database..." where it got stuck. I waited for a long while and then closed the page, since nothing was happening.
Then I got a error message saying something about maintenance, which I got rid of after deleting the maintenance file.
Wordpress displays that it runs the latest version, but when I try to reinstall I get the same errror. I've tried disabling all plugins and switch to the default theme, but no luck.
I set the debug to true and I got this message:
Notice: register_uninstall_hook was called incorrectly. Only a static class method or function can be used in an uninstall hook. Please see Debugging in WordPress for more information.
Everything looks normal except a image on the front page is breaking the layout.
Any tips?
The way I fixed this type of problem, was to do a global search in my project for the function call.
Some plugins had been installed which had calls such as this:
register_uninstall_hook(__FILE__, array($this,'uninstall_removedata'));
but it should be this:
register_uninstall_hook( __FILE__, 'uninstall_removedata');
If you see a message that something is called incorrectly, the Codex can be very helpful to make sure you use the correct syntax.
In this case it is here:
http://codex.wordpress.org/Function_Reference/register_uninstall_hook
Some WordPress Plugin which you have installed is firing the uninstall hook and is not setup properly.
Can you find the path to the file from the error message?