The Plugin Logic & Early Concept

How Can We Help?

You are here:
< Back

Ah, the MyListing Bookings plugin. A long awaited feature that seemed to have never arrived by the MyListing theme developers… But wait no more, because the time has come.

We feel it’s important to share our early thought process in conceptualizing this plugin – in an effort to walk you through the journey of why we designed the plugin the way that we did. By taking this journey with us, you too will understand how it’s coming together.

There are so many ways to design and develop every idea. From UI choices, to where the settings go; every minute detail has thought and sweat poured into it. We’d like to share our approach with you.

We’ve decided that the absolute best way to design the MyListing Bookings plugin, is to use the theme’s logic.

Many can argue that the MyListing theme logic is horrendous, but I think most of us have made peace with it and over time learned how to navigate its ins and outs. Being that as it may, how does Ohkie approach the notion of implementing a comprehensive booking plugin directly into the theme?

That’s what we are going to share with you right now.

  1. First we defined user roles. We did so for the sake of our own communication! I mean, how would we effectively communicate with the developers if they had no idea what we are talking about? And so, we have defined three roles to be exact: 1. admin (this refers to the website owner who purchases the plugin), 2. listing owner (this refers to the website user who creates a listing using the MyListing theme on the frontend) 3. customer (this is the website visitor who books your listing).   By understanding these roles, you now understand how Ohkie will provide documentation for this plugin. Because we plan to separate the documentation according to each role. But you now also understand exactly what we are talking about when we use those terms. Bingo! (Did you just hit the lotto?)
  2. Once user roles were defined and terminology squared away, we began to conceptualize each user’s journey and the basic functionality that would be required therein. As well as, where on the site the configurations should take place. Let’s begin with the first and foremost: the admin journey.
  3. The admin purchases our premium booking plugin – either on our website or on Envato. We’ll figure that out when we get closer to launching. Downloads it, then uploads it to WordPress. Activates it by inputting their license code. Good? Great. Now the admin has some basic settings to configure: payment gateway settings (like Stripe) so he can earn his commissions and most importantly; a toggle to enable or disable the bookings feature globally. All of this takes place within our plugin and has nothing to do with the theme pages or settings. Yet.
  4. Once the admin enables the global bookings toggle. This would then activate the ability for a ‘listing type’ (as the theme developers call it) to become bookable. How so? Well, as soon as the admin enables the toggle, a new tab is added to the listing type>listing>configuration pane – called: BookingsMaybe now you are starting to understand what we mean when we say ‘we are using the theme’s logic’… And we are just getting started. Although we are developing our own booking plugin, if it’s going to work well with the MyListing theme, we must create it in a way that bonds a very close relationship between ‘listing types’ and our booking configuration/functionality. It cannot be generic by any means. The MyListing theme is all about giving its owners the ability to create completely distinct listing types and so our booking plugin must share those same attributes. We accomplish this by putting as much configuration as we possibly can on the: listing type>listing>configuration pane. And NOT in the plugin settings. This way the plugin and its setting are reserved for high-level global configuration only. Whereas all configuration pertaining to specific listing types, will be added to: listing type>listing>configuration pane. (As mentioned above, like what, 5 seconds ago?)…
  5. In the newly added ‘Bookings’ tab, the admin will have the ability to enable/disable bookings for that particular listing type and determine its commission structure. Pretty straightforward, right? The admin can have different commission settings for different listing types. For example, one listing type may be set to: Fixed Price @ $10 per sale, while another might be set to: Percentage @ 20%… Here’s a screenshot of the wireframe and concept: ( forgive the dev typos, we’ll get to that 😉
  6. Now, let’s keep moving along. Hopefully you follow. If the global bookings toggle is enabled AND the local booking toggle is enabled (as pictured above), then the admin will see a ‘Bookings’ field under the Fields section > Preset Fields: Starting to to look familiar, huh? It is from this point forward that we simply use the theme’s logic to include our booking fields and configuration. The same applies to the Single Page>Content & Tabs>Tabs>Booking: And there you have it! You just went from buying the bookings plugin, enabling it globally and locally, setting your commissions, adding the field and adding it to your page. What else can you possibly need?… We know, we know, we are jumping the gun here. But of course, there’s a lot to be discussed in terms of configuring the actual fields pictured above, but that we’ll leave for our extensive documentation that we are going to write up. But we hope you understand from the above, the overall picture of how we begin to add the booking functionality into the ML theme. (If you don’t and you still have questions, reach out! You see that live chat bubble on the bottom of this page? Don’t be shy. We don’t bite.)
  7. Finally, the admin will need to see bookings, sales and earnings, etc. I mean, this is a booking plugin after all, so all that basic common-sense stuff will need to exist. And it certainly will. That stuff will be located in the plugin pages and tabs itself. Here’s a UI glimpse:
  8. Now let’s talk Listing Owners! The listing owner’s journey begins where it always has; by creating a listing. Duh! *rolls eyes* The only difference being, that they will have a ‘Bookings’ field that they can filled in. Just like they fill in all other fields. Each booking type will have a set of unique fields that the listing owner can configure. For example, on the ‘Reservation’ booking type, the listing owner will need to select the increment by which to charge: minute, hour, day, week, month or year. But if the ‘Standard Purchase’ booking type is enabled, then the listing owner will not have to fill in said field. As you can see, all the configuration requirements depends on previous configuration by admin. But that’s pretty self-explanatory. Or so we think.
  9. Once the listing owner finishes creating the bookable listing, they will need to add in their payment details so that they can get paid. This setting will either be in the profile area or the bookings area. The listing owner is now ready to start accepting bookings. All theme users will have a ‘Bookings’ button added to their: /my-account/my-listings/ area and in that page will be a list of all bookings – along with anything else related to the MyListing Bookings plugin. Example: There’s more to be said on this topic, like where the listing owner configures the availability calendar, etc. But since those fine details haven’t been sorted 100%, we’d rather leave that for later documentation. However, it will probably be in the form of a modal that can be accessed via each listing here: In any case, that pretty much sums up the birds-eye-view of what the listing owner’s journey entails and you’ll just have to hang in there until the finer details are ironed out and documented.
  10. Finally, we have the customer. What’s it all worth without a customer? (yeah, we didn’t think so). The customer visits your listing page and sees a field that allows for a booking to take place. Again, the exact data for that field is determined by A. the admin and B. the listing owner, but regardless of semantics, the field will show whatever data was configured by the former two roles. When the customer hits the “buy button” there will probably be a modal checkout, but we’ve yet to iron out those exact details. Stay tuned! In the meantime, here’s a wireframe/UI example for the ‘Contracting’ booking type:
  11. It’s important to note that while we differentiate between ‘listing owner’ and ‘customer’ – the theme’s logic and developers don’t. A ‘customer’ according to the ML theme can create a listing and book a listing. This means that ‘listing owners’ and ‘customers’ as per our terminology; will both have an Incoming and Outgoing bookings tab. One to reflect bookings the user may have placed themselves, one for bookings that have been purchased from them. Granted most customers may not use it, but we still need to develop it that way to support the theme’s logic. Take a peak:

And that my friends, pretty much sums up our initial vision for the MyListing Bookings plugin!

Of course, all creative pursuits start out simple at first and quickly transpire into complex infrastructures. But can we just take a moment to enjoy this phase while it’s still immature, frictionless and sweet? (Shhh, *breathe in, breathe out*… ooosaaahh) Okay, now back to reality. Because of how complicated things get, we’ve created a dedicated page for the MyListing Bookings plugin that you can access here: 

This page will be updated regularly with everything you can possibly want or need to know – regarding the plugin. While all the information might not ‘physically’ be on that page, the links to everything will be. Like: support, documentation, licensing, where to buy, faq, roadmap, features, etc.

This is an exciting project backed by a fun and interactive community. We are proud to be part of it. The potential for this plugin to scale into something very large is big. And it will only be possible with everyone’s help and interest.

Please, PLEASE! share your ideas, feature requests, bugs, compliments, complaints, or WHATEVER about this plugin with us. We take every inquiry seriously and aim to provide top-of-the-line support. We really mean that. We’ve been on the receiving end of horrible customer service one too many times  during the decade that we’ve been in the development and Saas sector,  so we know first-hand how frustrating it can be. Ohkie (The owner and development company of the MyListing Bookings WordPress Plugin) can be reached via our live chat or contact form anytime. And you can expect a response within hours! Not days. You are also welcome to email us directly via:

As for our main source of income, Ohkie is a tech startup on a mission to revolutionize the web development industry. And we are accomplishing that through our free website initiative. To learn more about getting a custom website for free just visit the homepage of this website. The bottom line is that we specialize in managed hosting for WordPress. We only deploy on Virtual Private Servers and our plans start as low as $30/Month. So if you are looking for an affordable but luxurious hosting experience and never want to spend a dollar on IT, consider giving us a try.

Thank you so much for your interest in this plugin and/or Ohkie. We feel blessed to be able to create fantastic ‘stuff’ and to have you as part of our community.