How would you approach this site?

https://preview.redd.it/udsa27knw25d1.png?width=873&format=png&auto=webp&s=c4e912accb4dae1cecbe15cda8c3e037fd5f2401

Take a bathroom break and grab a snack, this is gonna be a long one. Although I ask specifically about Elementor here, that is only because I am most familiar with it. I am perfectly happy to use Gutenberg and blocks or Bricks or anything that accomplishes the task at hand – so don’t let the mentioning of Elementor throw you off. I’ll use any (or no) page editor. I’m flexible like that…..

I have a client with a vacation rental website. She manages vacation homes for homeowners and takes a % as her fee.

She enters the data for the properties through a property management system (PMS) that kicks out her rentals to Airbnb, VRBO, etc., sends instructions to cleaning crews, sends statements to the homeowners, facilitates communications with the renters via a phone app and helps her to dynamically adjust pricing according to demand.

The PMS exposes an API that you can use to check availability, get pricing and make reservations – complete with billing. Now their API is not great. It has no single API call with all of the data that you need to do this properly for a single unit or single search, which results in more calls to their API, which would not be an issue except that the PMS restricts you to 100 API calls per minute.

The client also wants features seen only on Airbnb (AFAIK) like “flex days” where a potential renter can enter a start and end date for their stay and then choose 1, 2, or 3 “flex days” and get back all properties that have either their exact date range or date ranges that start 1, 2, or 3 days before OR AFTER their desired start date. That little feature there costs up to 7 calls for every search done by a visitor.

If she has 20 people on her vacation rental site and they each do only one search with “flex days” selected that’s up to 140 API calls and the site stops responding because it hits the 100 calls per minute limit and the PMS server stops responding to API calls until that minute expires and she gets 100 API calls the next minute. Obviously this is not good.

She had a company create her website (that was the 4th company that she hired to try and do a website correctly I think) and they just could not get it right. Their solution to the API limit was to put up their own API server and have her website just hit their server. The problem with it was that it only updated the info for her website once every 24 hours. Well, that and it had a ton of little issues and things that should have been implemented but never were.

This is where I come in. I am not a web developer. I am a network admin. I was working as her network admin and she asked if I could help get her away from this company because they were charging her a tone of money ($25k per year I think) and the site still did not work as planned.

I did not have access to the code for their API server, but I am a programmer with some experience in figuring out black boxes so I told her I cold get her away from that company but that the final solution would be a new website.

She set me to work for the next 3 months replicating the calls to the web-dev company’s API server (not the API server of the PMS). I successfully created some PHP code that replicated the output from the web-developer’s API server. But I had to do so using the APIs from the PMS.

One such feature (the flex days feature described above) really puts a load on her website because of all of the API calls needed. When she gets a flurry of traffic around a holiday, the website crashes under the load with a “There has been a critical error on this website” message that you see at the top of this page.

Not being a full stack developer (despite my fledgling skills with PHP and replicating the API server) I set out to find a theme that would allow her to do what she does with fewer errors. The problem is that I cannot find a single vacation rental theme that does everything that she wants – like automating the import of each vacation rental’s info (description, availability, pricing, gallery, etc.) from the PMS, the flex days, promo codes (coupons) and having 3 different taxes to apply to each rental (state, county and a special Hotel/Motel fee).

So I am down to (a) telling her she just isn’t going to get what she wants which will lead to her trying yet another web-dev company that will rip her off for thousands and waste another year or (b) trying to create the site myself.

Not being a proper, full-stack developer, I am looking at using ACF Pro and either Elementor to design the site. But I am not sure that I can get the search functions to work with ACF Pro and Elementor Pro such that people can select multiple options from a search form (home type, # of bedrooms, # of bathrooms, # of guests, # of pets, amenity checkboxes, and the start and end dates) and do a search in the ACF Pro data to return a loop of acceptable choices.

I have no idea how I’d implement the flex days feature just using ACF Pro and Elementor Pro either. While there is a plethora of simple videos on both of them, nobody dives into difficult topics like these. I don’t know if that’s because there is little interest in replicating features on a site like Airbnb or if it just cannot be done.

I am perfectly happy to implement the searches in my own middle API server (using tools I am familiar with like PHP and SQL) and then use ACF and Elementor to just show a loop of the rental homes (either by passing back IDs or full info) if that’s possible to do in ACF and Elementor. Then I’d hope to be able to show the unit page of any loop selection made by the visitor and possibly pass the info to a booking page that calls a booking API exposed by my API server.

The things I do not know are….

* Is it possible to automate the update of rental data in ACF with a cron job and a little PHP? I need to automate the import and update of the rental units from the PMS to her site and that would seem to be updating ACF post type info. I’d do this so that I could use Elementor’s dynamic data in the widgets used to build the loop and unit info pages.
* Is it possible to have submit buttons in Elementor submit form info to my API, get back the data from my API and then send that info to another Elementor page for display using $\_POST, $\_GET or $\_SESSION data? Can Elementor even use $\_POST, $\_GET or $\_SESSION data as input to a widget or would I have to somehow save the data to a database table and use dynamic data from that table in the new page? If so, how what would that look like?
* Are there any rally in-depth Elementor tutorials that touch on heavy stuff like this or is Elementor strictly for light development? Is there any page builder that can do it, if Elementor cannot?

How would you approach this project? What would you do to solve these issues? I am not married to ACF or Elementor. With no restrictions, what tools would you use to get this site off the ground?

I welcome all suggestions and comments. Thanks for reading this long post!

1 Comment
  1. I don’t think you will find a ready-made theme that provides everything you listed. You need custom code to develop such things, and it will cost $$$

    About failing the site due to lots of API calls, does your requirement need API calling from your server, or client-side is okay? If the client side is okay, then you should offload some of the work to the client so it makes an API call from the user’s browser in JavaScript instead of using your server to do that.

    If you have good server already make sure WordPress is allowed to use max memory your server can provide (leave some memory for OS stuff, ideally if your server have 8 GB memory, I would assign 6 to WP)

 

This site will teach you how to build a WordPress website for beginners. We will cover everything from installing WordPress to adding pages, posts, and images to your site. You will learn how to customize your site with themes and plugins, as well as how to market your site online.

Buy WordPress Transfer