I had to debug this issue today. The actual solution may not be applicable to you, but I thought I'd share the debugging steps so that you may get more insight into what's going on, or at least provide more information for others to looks into.
Here are the steps for debugging in Google Chrome:
- Go to the login page (e.g. example.com/wp-login.php).
- Press Ctrl-Shift-C (or right-click on the page and choose "Inspect element") to open developer tools.
- Enter the credentials and hit Log In -- get the "Cookies are blocked ..." error.
- In the developer tools pane, switch to the Network tab.
- In the Network tab, click on the top most item (e.g. wp-login.php).
- Select Headers tab and scroll down all the way to see the response.
- Look at the Set-cookie headers, pay attention to
The "Cookies are blocked ..." error happens when the
wordpress_test_cookie doesn't get returned by the browser, which is likely to be caused by improperly set
Here is a screenshot that illustrates the steps and the issue.
In my case, the problem was that WordPress set domain to the internal site name, and Chrome apparently decided to reject the cookie because it thought that the internal host name is a top level domain name or something (this behavior in Chrome got broken recently, it used to work). The workaround was to add
to wp-config.php. This is not necessarily a solution, but was good enough for me to proceed with what I needed to do.
Good luck with figuring this out!