Things break down. It’s a fact of life. Cars, refrigerators, phones, and websites – it’s all the same. However, nobody expects you to change the oil in a vehicle without having physical access to it. But some customers do expect you to debug and fix their websites without giving you complete admin access to it including FTP details. Crazy? It is! But it’s also not an uncommon scenario if you build and support WordPress plugins and themes. Fortunately, there are ways to support such customers, if you decide to do so.
No FTP access? No support. Period!
So, you sell premium WordPress plugins and themes. And your service includes support. Most people that contact you will understand that providing FTP access to the site along with a WordPress admin account is the norm and the only way for you to fix problems without messing with a live site and debugging with
var_dump(); die;. However, some won’t. They’ll say it’s a “security issue” for them and that they “can’t give you FTP or cPanel access.” That leaves you with two choices: try fixing things from WP admin or playing hardball and probably end up refunding the purchase. If you can afford it, I’d recommend the second solution – refund! Dirty debugging is not worth the time nor the energy.
However, if you can’t afford that and are in a situation where you can’t say no, here are some tried and tested plugins that will help you in cases when you don’t have FTP access and need to debug a live site.
WordPress has a built-in file editor for theme and plugin files. It got a big update in WP v4.9, and it’s quite useful. However, compared to AceIDE it falls short in every aspect!
On most sites, built-in file editor is disabled due to security concerns. Adding new plugins in most cases isn’t – so you’ll be able to add AceIDE. Built-in editor is strictly limited to editing files in /plugins/ and /themes/ folders. Often that’s enough, but AceIDE can edit any file within the WP folder. That includes core files, and all files in /wp-content/ folder. A life-saver in numerous situations!
The name of the plugin is not misleading. It indeed isn’t far from a full-blown IDE (integrated development environment). Syntax highlighting works for PHP, JS, HTML and CSS. You can work with multiple files at the same time, in tabs. There’s also autocomplete and a function reference feature. Smaller features like a built-in color-picker and image editor are a great plus. But maybe the best feature of all is the auto-backup one. Editing live sites leads to bad situations and backups are life-saving!
The only thing that can stop AceIDE is file permissions. If it can’t write changes it’s all in vain; you’ll still need FTP access.
WP Htaccess Editor
The .htaccess file is a tricky beast! One wrong character, one second of poor focus and you have yourself the white-screen of death. Since the main WP .htaccess file affects all other WP files, there’s no way to gracefully recover so FTP can be a necessity here. However, if you know what you’re doing this little gem will get you access to .htaccess and create automatic backups as you make changes. An isolated sandbox mode for testing changes is in the works (have an eye out on wphtaccess.com for the update), so the whole white-screen of death scenario will soon be a thing of the past.
As the name implies – this plugin shows the output of
phpinfo() function. “That’s it,” you ask. Yes, that’s it. Trust me, sooner or later you’ll need it. If not for anything else then for something small like looking up the absolute path to a file. One might call this plugin trivial, but it’s so useful when you can’t easily upload a PHP file.
The biggest problem with editing live sites is the daunting possibility of killing them. A seemingly small and benign change can snowball into a dead site and hours of repairs. WP Reset mitigates that fear by letting you create Database Snapshots. Create a snapshot (it’s one click and 2 seconds of waiting), make the changes on the site, test them and if something’s not right – restore the saved snapshot. That’s it! The whole process takes no longer than a few minutes. See a detailed walkthrough on database snapshots.
It’s been a while since we’ve seen anything new in the world of WordPress debugging. Plugin Detective is a fresh take on a problem as old as WordPress – finding out which active plugin is causing a bug or an incompatibility with other plugins.
The old way of handling the problem was disabling plugins one by one and testing the affected page for changes. The new method is the same, just automated, faster and a bit more fun. Plugin Detective enables and disables plugins automatically while you only have to look at the page and say if the problem is gone or not. No changes are permanent, and everything is tested in a sandbox, so it’s reasonably safe to use it on a live site. Next time you’re on a lovely site with 50+ plugins, and something’s not right – remember this plugin.
When you’re already at the end of your whits and don’t know what to do – try Query Monitor. Despite what the name might imply it does not only show queries or monitors them. It shows an ungodly amount of information for every admin or front-end page you open. From queued JS and CSS to WP conditionals, options and transients. If this plugin doesn’t show you the info you need, no plugin will. It’s a very powerfully development and debugging tool, and I can recommend it to all developers. Preferably for use in a dev, not production environment.
Try avoiding live debugging & developing
If possible, please try avoiding debugging, fixing and coding sites live, via a PHP based editor. Not much good and a heck a lot of bad things can come out of that endeavor. Download the whole site and run it locally. Break it, kill it, make mistakes and when you fix it, upload it back. Or get decent hosting like SiteGround with built-in staging site functionality. You won’t believe how you managed live without that feature once you start using it.