First and foremost, I'd like to express my appreciation to the developers for all of their hard work so far on this promising plugin.
That being said, this plugin has issues and is not quite ready to be used on a production-level website.
Here's some of what I've noticed so far...
echoinstead of being stored into a variable and returned to WordPress for rendering within the WP's
The issue of the HTML code getting directly outputted can be fixed by using PHP Output Buffering:
ob_start();at the beginning of the
appointment_calendar_shortcodefunction (within the appointment-calendar-shortcode.php file), and then putting
$htmlOut = ob_get_clean(); ob_end_clean(); return $htmlOut;right before the end of the function. This way, all HTML output is returned for WordPress to use in
wp_enqueue_style()would fix those in a heartbeat.
- Upon submitting an appointment, 2 appointments get created instead of just 1. I'm not sure why this is yet, but I'll post an update later as soon as I figure out a fix.
- The notification/confirmation e-mail messages can't be edited from the WordPress back-end. The plugin developers have really tried do a good job of writing them, but the language isn't entirely correct. It would be nice if admins could write their own, using the TinyMCE editor and
%variable_placeholders%for things like name, date, start time, etc.
This was a breeze for me to do with the client site I'm working on now, especially since
strip_tags()can be used to derive a plain-text version from the HTML version, and then both the HTML & plain-text versions can be sent in the same message (using the
Content-Type: multipart/alternative; boundary=whatevere-mail header) which lets the recipient's client software pick which should be displayed.
- Under "Manage Appointments", there's no one-click Approve or Cancel buttons. Not having these adds an extra step to the process of approving an appointment: The admin has to click "Update Appointment", then select "Approved", then save it. This works just fine, but it makes approving the appointments more tedious.
- A lot of the settings are stored to the
wp_optionstable in serialized array format. I'd prefer to see them stored using JSON format (using
json_encode() andjson_decode()`) simply because it makes them more searchable by MySQL and less prone to breakage, but I suppose it's up to the developers.
Some of these seem critical in my mind, while others would just be nice to have. All in all, this is a very promising plugin that's off to great start.
I'd happily contribute if the developers have a git repository :-) Keep up the good work, guys - You've almost got it!