richtabor / MerlinWP

Better WordPress Theme Onboarding

Home Page:https://merlinwp.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Feature Suggestion: Server Settings check before running

contempoinc opened this issue · comments

Saw this in another importer and it would be a very welcome addition to be able to specify the required server settings in the config and have a step before running that displays the users server settings with either a check or x next to each if they meet the requirements before allowing them to run the rest of the wizard, for example:

Server Settings

Obviously, put something like that into the design language of the wizard, this would save TONS of support requests by people not reading documentation and requirements before running anything and asking "Why does my site not look like XYZ demo?"

@richtabor @primozcigler @capuderg Another thought for the guys that still want to keep things super simple if the requirements aren't filled out in the config that panel isn't even displayed and it operates per usual, but if they are it doesn't allow the user to proceed until the server meets reqs.

I'm more than willing to pay for the development as well.

While it's obviously important to display some kind of notice if the server requirements aren't filled, I would think a fallback option would be more interesting.

At the end of the day, users just want to have a site set up like the demo. Many don't care about their servers or not really about performance as well.

Currently we see quite a lot of failed imports on low-end hosting. The wizard is getting to the import step, and even showing as if the import process was successfully completed, but then no content is imported whatsoever. (Also, at times the wizard disables itself right after the import, the is not accessible again for those customers.)

The bottom line is there should be (IMHO) a solution that "just works", even with lower-end hosting. It may mean some content would not be imported, or some images would be replaced with a blank placeholder, but its a better user experience to not mess with server configurations.

@SecondLineThemes Its been a known problem on cheap shared hosting environments with large demo imports, now it would be awesome to just "make it work" on any server but such isn't the case which is why a simple solution without requiring a complete rewrite of the importer is to set an optional step of server requirements and not allow the user to move forward if they don't meet them, then direct to documentation or to their hosting provider with something they could copy/paste to their support that outlines what they need to meet.

Also the error handling has been brought up it really should throw something if the server simply times out and not just give the user the success step.

The wizard is always disabled after a user has ran it once a variable is set in the database to remove access, its not meant to run multiple times.

@contempoinc - I fully agree, just trying to pitch more of a long-run idea. (and sorry for hijacking the issue thread)

No doubt there's a problem with cheap hosting, but it'd be great to find a solution that wouldn't require a rewrite of course. Just kind of a fallback to happen if the server isn't up to standards.

We, for instance, typically use small XML files, but at times media attachments can cause a timeout on lower-end servers, so a fallback might solve many of these cases. It's true that there is no "magic" solution that can import all files on all servers without failing, but still resolving the in-between cases can be nice.

And in regards to the wizard being disabled after a time-out - it is not a good user experience to simply hide the wizard while in fact nothing was imported. No error messages are being displayed and the users remain clueless since they cannot attempt to re-run the import process.

Anyways, the bottom line is just to try and create a better user experience for more users, not just ones on higher-end hosting packages. I know it's not always possible but it'd be definitely cool to explore that at some point.

If anyone's interested I finally got around to hacking together a server check, to hopefully save on support requests — can be modified rather easily for your needs, some screenshots:

Meets requirements: https://share.getcloudapp.com/YEuyBwpR
Does not meet requirements: https://share.getcloudapp.com/8LurpNr0

Modified class-merlin.php https://gist.github.com/contempoinc/a51d97cb68ec8abdab04939eac473c64 the additions are from lines 882-919