Car Rental System 5.0.7 (Native WordPress Plugin)


It's a high quality, native and responsive WordPress plugin to rent a car, created by experienced Silicon Valley engineers. 100% of it's code is written by using native WordPress functions, so it much faster and secure than other similar plugins. Also - we made it compatible with WordPress Multisite, WPML & Multi-language setup with native support for WordPress date, email & time settings.

Plus – we love mobile-first designs – that's why we used Bootstrap, Font Awesome icons, Slick Slider, CSS3 and HTML5 techniques with smooth image resizing to 4 different sizes to make sure that your cars would look great on all mobile devices, tablets, full-screen previews and pages with many WordPress free & Premium designs – like BeTheme or Avada Theme.

Now both – your car rental business and website can run smoothly, by accepting online reservations and managing your entire fleet, from one control panel. By offering highly-customizable reservation system, your customers will be able to see vehicles availability, and make online reservations with a few clicks.

Our plugin is scalable – it's source code is fully object-oriented, clean & logical, based on MVC architectural pattern with templates engine, compliant with strict PSR-2 coding standard and PSR-4 autoloaders, and easy to understand how to add new features on your own.
Our plugin has four security layers – all input data validation with data-patterns, output escaping, ReCaptcha anti-spam protection and API scanner to allow only legal requests. Plus it has detailed logs for individual review.
Our plugin works well with big databases – we created optimal BCNF database structure.
Our plugin is ready for high-traffic websites – we tested it on live website with 1M customers database and 500,000 active daily views.
Our plugin supports server-side accelerators and template-caching – it works well with HTTP(S) reverse proxy web application accelerators, i.e. Varnish, and supports WordPress template caching plugins, i.e. W3Total Cache or WP Super Cache.

Officially supported languages:

Our additional translations were made by our happy customers:

Please keep in mind that:

  1. Plugin will use a language selected in WordPress global settings. If desired language is not supported by the plugin, it will default to English.
  2. Plugin does support RTL (it has "Right to Left" text-ready .rtl prefix used in stylesheets).
    RTL mode stylesheet is loaded, if at the begging of LANGUAGE file there is a line $lang['LTR'] = TRUE;. Otherwise, the text and images will appear in default "Left-to-Right" way.
  3. If translation to your language not exists, you can make it on your own by creating new language file in Extensions/CarRental/Languages/ folder.

Step 1 - Open your WordPress admin dashboard - it is located at http://www.yoursite.com/wp-admin/ .

Step 2 - Click on [Add New] button under the "Plugins" menu on the left side navigation.

Step 3 - Click on [Upload Plugin] button and press the browse button.

Step 4 - Choose the Car Rental System plugin file ( CarRentalSystem.zip ).

Step 5 - Click on the activate link in the plugin list.

Step 6 - Now create a page by clicking the [Add New] button under the page menu.

Step 7 - Add [car_rental_system display="search" steps="form,list,list,table,table"] shortcode to page content and click on [Publish] button.

Step 8 - Use optional included plugins shortocodes, if needed:

Step 9 - In WordPress front-end page, where you added search shortcode, you will see reservation engine.

Step 10 - Congratulations, you're done! We wish you to have a pleasant work with our Native Car Rental System for WordPress.

To update from CRS v5.0.0 to CRS v5.0.7 follow these steps:

Step 1 - Make sure you have the latest DB backup with you before updating the plugin.

Step 2 - Make sure that your "/wp-content/uploads/" directory is writable. If server is using not apache user to write to folder, CHMOD 0755 is not enough - you need to set permissions (CHMOD) to 0777.
Note: if you have a multisite setup, you need to do the same CHMOD to 0777 to "/wp-content/uploads/sites/2/", "/wp-content/uploads/sites/3/" etc. folders.

Step 3 - Please remove old plugin's folder via FTP by using FileZilla or similar FTP client. Plugin will get disabled automatically by the WordPress, do not click disable on your own.

Step 4 - Please upload new plugin.

Step 5 - Please enable the plugin.

Step 6 - Go to WordPress admin menu -> Car Rental -> System Update. And click the 'Upgrade' button.

Step 7 - That's it! You're now ready to use the version 5.0.7 of XRental Car Rental System for WordPress.


Please keep in mind that:

Global Search

Cars price table

Cars availability calendar

Car page with search for exact car:

Location page with search pick-up from & return to that location only:

Other shortcodes

DISPLAY parameter values (required, case insensitive):

LAYOUT parameter values (optional, case insensitive):

Specific parameters when DISPLAY="SEARCH" or DISPLAY="EDIT" (case insensitive):

Specific required parameter when DISPLAY="LOCATION":

Additional parameters (optional, case insensitive):

Examples:

        [car_rental_system display="search" steps="form,list,list,table,table"]
        [car_rental_system display="search" manufacturer="2" pickup_location="1" action_page="255" steps="form,list,list,table,table"]

        [car_rental_system display="cars" layout="list"]
        [car_rental_system display="cars" partner="4" body_type="10" layout="list"]

For some particular situations, instead of using shortcodes and creating a different WordPress page to make a car list, or price table for each body type id, or create i.e.:

For these situation you may want to use a specific dynamic URL parameters instead of shortcode parameters.

All supported URL parameters:

Please keep in mind that:

  1. If you will use a JS redirect drop-down, Google bot may not be able to index that kind of content, unless you make a separate section in "sitemap.xml" (if you use it) with the list of all possible URL combinations for these body types.
  2. "car_rental_partner" parameter will work ONLY (!) if "Reveal Partners" setting is set to "Yes" in Car Rental -> Settings -> Tab: Global Settings.
  3. URL parameters can be send via $_POST, $_GET or $_COOKIE.
  4. Shortcode attributes has higher priority over URL parameters, so URL parameter will only work if that specific shortcode attribute is not used for that shortcode, or that specific shortcode attribute is set to '-1' (all).

Example:

Copy the code bellow to your website template, replace "your-site.com" with your domain name, and try it:

<select name="filter_by_type" class="filter-by-type" title="Filter by type">
    <option value="">Filter by type</option>
    <option value="https://your-site.com/cars/?car_rental_body_type=1">Compact</option>
    <option value="https://your-site.com/cars/?car_rental_body_type=2">Intermediate</option>
    <option value="https://your-site.com/cars/?car_rental_body_type=3">Full Size</option>
</select>
<script type="text/javascript">
jQuery(document).ready(function()
{
    jQuery('.filter-by-type').change(function ()
    {
        var newURL = jQuery(this).val();
        if(newURL !== '')
        {
            location.href = jQuery(this).val();
        }
    })
});
</script>
  1. Select pick-up location, date & time and return location, date & time.
  2. In search results, select a available car (or multiple cars in multi-mode) by clicking "Continue" button.
  3. In rental options, select optional extras if needed and click on "Continue" button.
  4. Enter customer details, select payment method and click on "Complete Reservation" button.
  5. In the new page you will see your reservation code. You can use it to modify or cancel your reservation later. That's it.

First - login to your WordPress admin dashboard. You will find the following options in "Car Rental -> Car Manager" menu item.

First - login to your WordPress admin dashboard. You will find the following options in "Car Rental -> Car Prices" menu item.

First - login to your WordPress admin dashboard. You will find the following options in "Car Rental -> Extras Manager" menu item.

First - login to your WordPress admin dashboard. You will find the following options in "Car Rental -> Location Manager" menu item.

First - login to your WordPress admin dashboard. You will find the following options in "Car Rental -> Customer Manager" menu item.

First - login to your WordPress admin dashboard. You will find the following options in "Car Rental -> Reservation Manager" menu item.

First - login to your WordPress admin dashboard. You will find the following options in "Car Rental -> Payments & Taxes" menu item.

Please keep in mind that:

  1. If you uncheck all payment methods, the system will still work, just do not show payment options at all.
  2. If you will select only 1 payment method available, system won't allow the customer to mark payment method radio box on step 4 (reservation summary), but will just show the information about which payment method will be used and it's description bellow.
  3. In reservation process, the payment description are shown bellow the payment method name.

First - login to your WordPress admin dashboard. You will find the following options in "Car Rental -> Settings" menu item.

Note for mixed price model:

If you want to use mixed price calculation type, then you must enter both - daily and hourly - prices in for each price plan in "Car Prices" menu item.

Wondering, how different price calculation models work?

Here's an example for you. Let's say that you've chosen these pick-up & return dates and times:

Pick-up date & time - 11/10/2021 9:00 AM
Return date & time - 11/28/2021 3:00 PM

Then the final car & extra prices for that period of time will be calculated in this way:

If Price calculation mode is set to daily, then price will be calculated for 3 days by using car's & extra's daily price field data.

If Price calculation mode is set to hourly, then price will be calculated for 54 hours by using car's & extra's hourly price field data.

If Price calculation mode is set to combined - daily & hourly, then price will be calculated for 2 day(s) and 6 hour(s) by using car's & extra's daily price field data for 2 days + 6 hours by using car's & extra's hourly price field data.

What to do if e-mail sending is not working?

Probably your server is not configured for SMTP email sending. This means that your need to use your own separate SMTP mail server or 3rd party SMTP mail server (i.e. Zoho.com, GMail.com). Also, in this scenario, to send emails, you will need to install additional "Easy WP SMTP" WordPress plugin, which is included in the package and located in "/2. Optional Plugins/" directory ( easy-wp-smtp.zip )


What to do if I can't upload / see car images?

  1. Make sure that your "/wp-content/uploads/" directory is writable.
  2. If server is using not apache user to write to folder, CHMOD 0755 is not enough - you need to set permissions (CHMOD) to 0777.
  3. If you have a multisite setup, you need to do the same CHMOD to 0777 to "/wp-content/uploads/sites/2/", "/wp-content/uploads/sites/3/" etc. folders.
  4. Please note, that if you see that after update or after uploading the first car image the "/wp-content/uploads/CarRentalGallery/" directory is not created (or "/wp-content/uploads/sites/2/CarRentalGallery/" etc. for multisite setup), you will have to create that directory manually via FTP client like FileZilla and set it's permission to 0777.

My server does not support $_SESSION, how can I still use the plugin?

In case if your server does not support PHP sessions, there is a 3rd party plugin - "WordPress Native PHP Sessions", which included in the package and located in "/2. Optional Plugins/" directory ( wp-native-php-sessions.zip ).
This plugin implements PHP's native session handlers, backed by the WordPress database. This allows plugins, themes, and custom code to safely use PHP $_SESSIONs in a distributed environment where PHP's default tempfile storage just won't work.


Where can I get a great free design which works well with this plugin?

WordPress default "Twenty Twenty-One" theme is already in the WordPress default package. That theme is fully compatible with newest coding, W3C, HTML5, CSS3 and WordPress standards.
We recommend using "Full width" page template, but it can be any other great WordPress free theme, or any page template.


Where can I get a great premium design which works well with this plugin?

We recommend "BeCarRental" design from "BeTheme" 250+ themes pack, which incorporates bunch of hi-end features (visual content editor, Google Fonts, Twitter Bootstrap etc.).
"BeTheme" uses their own icon set, so to have support for FontAwesome icons, you will also need to be sure that you enabled "Font Awesome" in Car Rental System Settings.
We recommend using "Full width" page template, but it can be any other great WordPress Premium theme, or any page template.
Also, make sure that you have set the "Steel Blue" style in Car Rental System Settings.


What to choose for multiple languages - WordPress Multisite or WPML?

Short answer - if you can choose, choose WordPress multisite.
Long answer - if you‘re thinking that your business will scale or will face a heavy traffic in the future and you want to run it in multiple language, we highly recommend you to go with official WordPress multisite setup and "network-enable" the plugin and do not use WPML.


How to copy all plugin data from demo website to my website?

For people, who would like to replicate demo content, we made a copy of our English Car Rental Agency website.
To import a demo you need to go to WordPress admin, click on "Car Rental" section in left navigation menu and choose "Settings" element.
Then go to tab "Import Demo", select "Car Rental Agency" demo item from drop-down in that tab, and click "[Import]" button.

Please keep in mind that:

  1. By importing demo you will flush all your existing car rental data.
  2. Other website content, including pages content, won't be affected, so you still have to add the shortcodes by yourself.
  3. Make sure you have a latest DB backup with you before performing this action.

Q: How can I set discounts that my daily rate would be $50, weekly rate would be $330, and for each extra day it would cost additional $50?

You need to add discount periods for that:
0-6 days: 0%
7-7 days - A % (so that it would be 330/7= $47.14/day)
8-8 days - B % (so that it would be 330/8= $47.50/day)
9-9 days - B % (so that it would be 430/9= $47.78/day)
And so on.


Q: How can I make search in new page?

Please create a new WordPress page, put a [car_rental_system display="search" steps="form,list,list,table,table"] shortcode to it and get that page id. Then use that page id for 'action_page' attribute value for your main page search form, where you have you have your primary search shortcode.


Q: How to change visual style (HTML and CSS) of search form?

The easiest to do without template overriding, is just to edit HTML of '/Extensions/CarRental/Templates/Front/Booking/template.Step1SearchForm.php' and CSS at '/Extensions/CarRental/Assets/Front/CSS/style.CrimsonRed.css'.
The exact location of each CSS class line in CSS file can be seen with Firefox Developer Edition browser and it's 'Developer Tools' with 'Inspector' tool.
If this seem hard to do for yourself, please contact our partners for custom work (see 'Support' section in this documentation).


Q: How can I create another cars front-end listing template?

You need to a new shortcode attribute handler with it's controller and template file:
1. Create a template file, i.e. 'template.ModernList.php' in the '/Extension/CarRental/Templates/Front/' folder (at first it can be just a copy of 'template.ItemsList.php')
2. Create a 'ModernController' controller class file, i.e. 'class.Modern.php' in '/Controllers/Front/Shortcodes/' folder (at first it can be just a copy of 'class.Items.php' with a class rename to 'ModernController').
3. Add a new resource handler in shortcode parser - you need to add a new CASE for switch statement for parseShortcode($attributes) method in \Controllers\Front\LoadController final class, i.e.:

case "modern":
    // Create instance and render modern list or modern slider
    $objModernController = new \NativeSystem\Controllers\Front\Shortcode\ModernController($this->conf, $this->lang, $arrLimitations);
    $retContent = $objModernController->getContent($sanitizedLayout);
    break;

4. Use the newly added shortcode in a WordPress page, where you want to display a new listing content:

[car_rental_system display="modern" layout="list"]

Q: How to make changes the the templates that uses for car ("car_rental_item"), page ('car_rental_page') and location ('car_rental_location') WordPress post types?

You can create 'single-car_rental_page.php', 'single-car_rental_item.php', 'single-car_rental_location.php' files in in your theme folder. WordPress core should pickup these template files. At the begging these templates can be a copy of single page template or default theme page template.


Q: I need the script for motorbikes and bicycles, how to change the language text for that?

You need to modify the text in '/Extension/CarRental/Languages/en_US.php' language file, and replace all words in file from 'car' to 'bike' and from 'Car' to 'Bike'.


Q: Plugin does not have a translation to my language. How can I translate it?

If your language, if it is not yet listed in existing translations, then you need to make a copy of 'Extensions/CarRental/Languages/en_US.php' language file as '[YOUR-LANG-CODE].php' (for exact language code of your language, please download see 'Language Kit for Translators' folder in the package), and translate the text next to language keywords.
Also, if you want to be sure that your language file will be always up-to-date with the newest plugin versions, please add it to ZIP file and send it to us via contact email.


Q: How can i transtale cars, locations and rental pages with Polylang?

First of all you need to activate languages and translations for custom post types. You can do this in Languages -> Settings -> Custom post types and Taxonomies -> Settings. Active 'Rental Page', 'Car Page' and 'Car Location', and save changes. XRental polylang translation Now you can translate rental pages, car pages and car locations pages.

If you need any help regarding this plugin installation & usage, please write to our support e-mail with "CodeCanyon Support" in e-mail title and mention your purchase code in your e-mail body.
Our contact details:
Contact Us

If you need customizations for the plugin, new UX/UI interactions, different templates, a new payment method added, premium support services (24/7 support, Skype support, phone support, on-location support), individual patches and other premium services, feel free to contact one of our premium support partners for custom works. To do that, please send an e-mail to one of our partners with "SolidMVC Custom Works" in e-mail title and mention your purchase code in in your e-mail body.

Our partners for custom work:

(#1 PARTNER) EWP.com
Experience: experienced
Rate: 75 USD / hr (incl. taxes)
Minimum budget: 500+ USD (incl. taxes) / client / 50 days
Payment model: Per project or per hour (client decides)
Skills: advanced, complex modifications
Location: Vilnius, Lithuania (EU) / Sausalito, CA (US)
Website: https://ewp.com
Contact e-mail:
EWP.com -> Contact