Car Demon 1.7.0 Released

Car Demon Wicked PowersWe’re proud to announce the release of Car Demon version 1.7.0!

We’ve packed lots of enhancements into this version.

One of the most exciting features are Vehicle Tags. You now have the ability to create tags for your vehicles and then use the new “vehicle_tag” parameter in the [cd_inventory] shortcode to display only vehicles with that tag.

We’ve also added multiple taxonomy support for the shortcode and search query! This means it is now possible to add multiple values to the following fields in the shortcode: year, make, model, condition, body_style, location & vehicle_tag.

For example, let’s say you wanted to show vans and minivans all on the same page using the shortcode. You can now use the following shortcode to do exactly that!

[cd_inventory body_style="van|minivan"]

We’ve also released a new developer’s documentation area with information on all the filters, actions & constants that are currently available. Be sure to check it out: Car Demon Documentation.

Here’s a complete list of all the changes we’ve made since the last public update:

= 1.7.0 =
* Public release version
= 1.6.992 =
* Modified flush rewrite code on activation
* Added CSS classes to the different vehicle options when tabs are used
* Deprecated old filters starting with car_demon_
* All new filters will start with cd_
= 1.6.991 =
* Added patch to resolve Yoast SEO issue
= 1.6.99 =
* Added multiple taxonomy search support for make, model, condition, body style & vehicle tag.
* Multiple taxonomies of the same type can now be added to the shortcode using a pipe | between them.
* Example [cd_inventory make=”ford|gmc”] – this will list all Ford and GMC vehicles
* If year range is searched and the min and max year are the same it will now search the single year and not a false range.
* Added do_actions ‘cd_before_content_srp_action’ & ‘cd_after_content_srp_action’ with parameter $atts
= 1.6.98 =
* Added filter for vehicle title: car_title_filter
= 1.6.97 =
* Added constant CD_DEFAULT_CONDITION. If defined Car Demon will set the defined condition to any vehicle that doesn’t have a condition added.
* By default Car Demon will assign preowned to any vehicle that does not have a condition, unless set by the above constant.
* Fixes Issue #25
* Corrected issue preventing 0 price and 0 mileage from saving by default
* If no stock number is saved then post id is added as stock number.
* If sort by price is disabled the initial sort now defaults to mileage. Fixes Issue #26.
* Added vehicle_tag to cars_for_sale custom post type and query. Fixes Issue #17.
= 1.6.96 =
* Corrected issue with apostrophes in about us tab. Fixes Issue #2.
* Added constant CD_LEGEND_ON_BOTTOM, if defined the option legend will appear on the bottom. Fixes issue #6.
* Added stripslashes_deep to searched by items. Fixes Issue #16
* Added div with clear float to end of VDP. Fixes Issue #23
= 1.6.95 =
* Added filter cd_price_format_filter to allow filtering number format before display
* Added filter cd_nav_filter to allow filtering the vehicle navigation
* Localized sold yes / no field
= 1.6.94 =
* Minor change to finance form handler
* Added cd_single_car_content_filter to allow filtering of vehicle description
* Added cd_pre_specs_filter to allow filtering right before the specs are listed


New – Developer Documentation

Car Demon Developer DocumentationWe’ve worked hard to put together a comprehensive list of all the available filters, actions & constants you can use to extend Car Demon.

Like all good documentation it’s a work in progress that will grow, evolve and change to match our core plugin.

Click here to view the new Car Demon Developer Documentation!

If you’re a developer or a designer and need additional information or have suggestions to improve the documentation then please feel free to contact us and let us know.

Don’t forget, Car Demon is now available on Car Demon on BitBucket. Feel free to get involved! Write up an issue, post a comment, send a pull request or just pop by to see what’s going on.


Car Demon is now on BitBucket

BitBucketCar Demon is now on


  • Are you a developer?
  • Would you like to help contribute to Car Demon?
  • Did you find a bug or have a feature request?
  • Have a great idea you’d like to share?
  • Curious about what changes are coming up?
  • Ready to get involved?

If you said yes to any of those then swing by our page on BitBucket and get involved!

Create an issue, send a pull request or add a comment.

Help keep Car Demon the most advanced vehicle inventory sales tool available for WordPress and have some fun doing it 😉


Car Demon 1.5.0 released!

car-demon-1.5.0We’re excited to announce the release of Car Demon 1.5.0 and want to thank everyone who beta tested and provided feedback.

The most exciting new feature is an inventory shortcode you can drop in a page, [cd_inventory].

This new shortcode accepts year, make, model, condition, body_style, transmission, location, stock, criteria (keyword search), min_price, max_price, miles (searches vehicles with less than the mileage entered) & show_sold

You can also use the title parameter to add a title to the top of the listings.

You now have the ability to create a page that lists, for example, ford trucks;

[cd_inventory title="Ford Trucks" make="ford" body_style="truck"]

To give you even more power you can assign search forms to the page your shortcode is on and search just those items.

To make sure your search forms point to the correct result page you can set the result_page parameter for the search form widget or use it in the search form shortcode;

[search_form size=1 result_page="the url to your inventory shortcode page"]

In fact we’ve now made this the default on installation. New installs will create a page called ‘Inventory’ and drop both the search form and inventory shortcodes into it.

The default style is fairly plain, but if you’ve created a filter for your inventory items it will be applied here.


If you’d like a professional style we also offer the “Car Demon Pro Shortcode” plugin. Now you can quickly and easily add a professional  responsive inventory layout that you can color match to your theme.


Other changes include minor style changes, admin UI updates, performance tweaks and misc clean up and structuring.

We’ve tried to test it out as fully as possible, but with so many people using Car Demon in so many different ways there’s bound to be an issue or two. If you’ve recently updated and are having an issue please accept our apology and post a comment here so we can investigate the issue and issue patches as needed.

In closing we want to thank everyone for their continued support and look forward to many more updates!

Version 1.4.0 has been released

We’ve now released version 1.4.0 of the Car Demon PlugIn.

This version has a couple long awaited features, including the ability to change the default URL of your vehicle listings! That’s right, you can now change to something something else like or

Car Demon Custom URL Option

We’ve also added a few new filters for all you designers and developers out there.

car_demon_single_car_filter – Filter the default single car page
car_demon_display_car_list_filter – Filter the vehicle results loop

These two filters will let you use the default templates and customize their display any way you want.

Here’s a quick example on how to use them:

add_filter('car_demon_single_car_filter', 'my_car_demon_single_car',10,2);
function my_car_demon_single_car($content,$post_id) {
     //= $content contains the default listing, you can add content, replace parts of it or build it completely new!
     //= $post_id is the vehicle's Post ID
     $content = '<h1>This is my new single car page!</h1>';
     $car = car_demon_get_car($post_id);
     // use print_r() to see everything car_demon_get_car returns
     // print_r($car);
     $car_title = $car['title'];
     $content .= $car_title;
     return $content;

The car_demon_display_car_list_filter works the same way as car_demon_single_car_filter and uses the same 2 arguments. Now you have the ability to custom tailor the default templates to make them exactly the way you want without needing to create an entire template page for your theme.

We also made several smaller changes to help improve the code base and make Car Demon more efficient. A full list of all changes for 1.4.0 is below.

Change Log for Version 1.4.0

* The cars-for-sale url slug can now be changed on settings page;
* This means your inventory can now be;
* It also means you can do or something similar
* Added car_demon_single_car_filter so developers can filter default single car pages
* add_filter(‘car_demon_single_car_filter’, ‘my_car_demon_single_car’,10,2);
* add_filter(‘car_demon_display_car_list_filter’, ‘my_car_demon_car_list’,10,2);
* Then to filter add function my_car_demon_single_car($content, $post_id) etc.
* Added Top mobile menu option
* Added snippet to make sure form css and js don’t load on Admin pages
* Replace time and date code on contact form widget to match other forms
* Moved Custom sales affiliate code to only run on front side of site
* Updated days and years variable in finance form
* Changed search form url to get_bloginfo(‘wpurl’);
* Added css class similar_cars_box_title

Changing Vehicle Options and Labels

Let’s say you want to change some of the default vehicle options. Instead of Stock # you want it called just stock and instead of mileage you want it to say miles and since you only sell Buick’s you want to hide the made.

Car Demon has several robust features that let you customize vehicle options and labels.

First go to your Car Demon’s settings page and find the Tab Options. Now click on the “Edit Vehicle Option Tabs” button.

Tab options button

You’ll see a section for each of the tabs. Expand the Specs Tab and you’ll find options for renaming standard fields or even hiding them.

You’ll also see a section where you can add or remove non-standard options.

Edit Car Demon Tabs

You can add or remove additional groups for each tab. If you open the Safety Tab you’ll see it has several groups of options.

You can add or remove groups as needed. If you remove a group or option from a group it doesn’t remove that information for the vehicle if it’s been set. If you recreate a group with the same name and add the same list of options then Car Demon will show the data on the vehicle again.

Car Demon Tabs

After you update your information your options should appear on the vehicle edit screen and be reflected on the vehicles.

We hope this post gives you a little more information on how you can customize Car Demon to fit your needs.

Car Demon Shortcodes

The Car Demon PlugIn comes with several shortcodes that you can use to add Car Demon content to your pages.

The code for them can be found in plugins/car-demon/includes/car-demon-shortcodes.php

The first set of shortcodes are for the forms that come with Car Demon.

If you look on the bottom of the Car Demon settings page you’ll see a list of them along with some buttons you can use to create a page with the basic shortcode dropped in.


The shortcodes for the forms have several arguments you can use with them to control how they’re displayed.

send_to – set this to the location name in Car Demon Settings
popup_id – if you set this to a number or a single word name it will hide the form and replace it with a button that pops opens the form into a lightbox. If you want to include multiple forms in a page then just make sure you give each of them a unique popup_id.
popup_button – this will change the text of the popup button if you have set a popup_id for the form.

So if you used [contact_us popup_id=”1″ popup_button=”Email Us Now”] it will add a button to your page that says “Email Us Now” and will pop open the contact form when clicked.

If you had a location named “Bill’s Cars” and a location named “Sam’s Cars” and you wanted to create a popup service form for each of them on the same page you’d add the following shortcodes

[service_quote send_to=”Bill’s Cars” popup_id=”1″ popup_button=”Get a Service Quote from Bill”]
[service_quote send_to=”Sam’s Cars” popup_id=”2″ popup_button=”Get a Service Quote from Sam”]

Other Shortcodes

People often ask if there is a shortcode to insert inventory into any page. You can do this with our Advanced Search PlugIn – it lets you put a dynamic json driven inventory into any page.

There are a few other shortcodes that come with the Free Car Demon PlugIn that you might find handy.




[search_form] – comes with one argument, “size”. If you set it to “0” it will return the small narrow search form, set it to “1” it will give you the small wide search form and if you set it to “2” it will give you the full search form.

So to add a full sized search form to a page you’d add [search_form size=”2″].

[search_box] – adds a keyword vehicle search box to your page. Setting the argument “button” you can control what the buttons says. Setting the argument “message” will change the text that appears in front of the search form.

This [search_box button=”Search Cars” message=”Search by Keyword”] would create a search box that says “Search by Keyword” right before it and a button that says “Search Cars”.


The [highlight_staff staff_id=”1″] shortcode must be used with the staff_id argument. You must create a user for each staff person, make them subscribers. After you create them visit their edit user page and fill in all of the Car Demon settings, including their staff position and contact information. You can also use the argument ‘contact_button’ to change what the contact form button says.

The last shortcode is [staff_page] this will display the entire staff in their corporate order. ie. General Manager first, Sales Staff below. It follows the order of the staff positions given on the user profile pages.

We hope this helps you understand the shortcodes native to the Car Demon PlugIn and will give you a few ideas on how you can structure your pages and content.

You can check out our commercial PlugIns for Car Demon to learn about other shortcodes and features they can give you.

Car Demon in Your Language

Thanks to some wonderful people from around the world Car demon has been translated into several languages.

French, Spanish, British English, Italian, Dutch, Romanian & Brazilian Portuguese. We’ve seen Car Demon running in lots of other languages like German, Thai and several Middle Eastern languages.

If you’ve created a translation please let us know, we’d love to share it with the world.

The community is very grateful to the efforts of our translators and want them to know how important their work is and how much it is appreciated.


All About Car Demon

The CarDemon PlugIn was a labor of love created by a workaholic IT Administrator and a community of hundreds of volunteers.

It would be impossible to list the number of people who write code, beta test features, provide support, write themes, write plugins, sell services and more. This community of people knows who they are and for each one we give thanks and hope they take pride in what they helped to create.

A few notes for developers

You can view all of the articles for Developer’s here;

This page list serves as a basic foundation and introduction for developers. I’m not sure what information might come in handy, so I’ll briefly touch on a few items I think might be of initial interest. You can learn more details by following the link above or by clicking News on our menu.

If you think something needs to be added or expanded upon please let us know.

I highly suggest checking out the Developer’s page at;

From there you have access to all the current updates. You can even download the most current development copy from;

1. List of Shortcodes and their arguments
2. List of Taxonomies
3. List of Hooks and Filters
4. List of useful functions
5. Remove default .css or .js
6. Custom styles
7. Queries

1. List of Shortcodes and their arguments

  • contact_us – send_to, popup_id, popup_button
  • part_request – send_to, popup_id, popup_button
  • service_form – send_to, popup_id, popup_button
  • service_quote – send_to, popup_id, popup_button
  • trade – location
  • finance_form – location
  • qualify – location, popup_id, popup_button
  • highlight_staff – staff_id, contact_id, contact_button
  • vehicle_cloud – taxonomy, max_num, max_font, min_font
  • vehicle_search_box – button, message

send_to should equal an email address
popup_id should be a unique value that you create to identify this particular form, it also signals the shortcode to create a popup form, rather than embedding the form in the page.
popup_button is the custom text you’d like to display on the button to create the popup form.
location refers to the name given to that form under Car Demon Settings. If you have a location called “My first location” and entered “My Trade Department” into the name field for trade then you would enter “My Trade Department”
staff_id is the user_id of any staff member you would like to highlight, it can also be used to create a highlight for a sales person if their affiliate cookie has been dropped.

Shortcode In progress – show_inventory, this shortcode, once completed, will allow you to insert your inventory into any page, including the homepage. Currently there is not an estimated time frame for inclusion, but it is on the list.

2. Taxonomies

Car Demon uses several taxonomies to provide easy access to some of the most commonly searched items. Here’s the current list of taxonomies;

location, condition, year, make, model, body_style

All other information for each vehicle is stored in meta fields. In the case of vin decode information it is stored in a single field (vehicle_decode) as an array.

3. Hooks and Filters

do_action( ‘car_demon_before_main_content’ );
do_action( ‘car_demon_after_main_content’ );
do_action( ‘car_demon_vehicle_sidebar’ );
apply_filters(‘car_demon_mail_hook_complete’, $holder, ‘contact_us’, $to, $subject, $email_body, $headers, $_POST[’email’], $post_id, $_POST[‘send_to_name’]);
apply_filters(‘car_demon_mail_hook_subscribe’, $html, ‘contact_us’, ‘unk’, ‘0’);
$html = apply_filters(‘car_demon_display_car_list_filter’, car_demon_display_car_list($post_id), $post_id );
add_filter(‘car_demon_settings_hook’, ‘function_to_add_a_setting’,10,2);
add_filter(‘car_demon_settings_update_hook’, ‘function_to_save_setting’,10,2);
$html = apply_filters( ‘car_demon_photo_hook’, $html, $post_id, $details, $vehicle_condition, ‘desktop’ );

4. Useful functions

$car_contact = get_car_contact($post_id);
returns an array containing all of the contact information for the vehicle.

car_photos($post_id, $detail_output, $vehicle_condition);

$car = car_demon_get_car($post_id);
returns an array containing the most common information for the vehicle.

car_demon_display_similar_cars($body_style, $post_id); //displays similar vehicle

5. Remove default css and js

Car Demon Settings, in your Dashboard, lets you turn off several of the CSS files that it loads by default.

If you need more control then you can use wp_dequeue_script & wp_dequeue_style to unload the css and js that car demon loads.

Here are a few of the scripts and styles and how they’re currently loaded;

wp_enqueue_script(‘cd-jquery-lightbox-js’, $car_demon_pluginpath.’theme-files/js/jquery.lightbox_me.js’);
wp_enqueue_script(‘cd-jquery-autocomplete-js’, $car_demon_pluginpath.’theme-files/js/jquery.autocomplete.js’);
wp_enqueue_script(‘cd-compare-js’, $car_demon_pluginpath.’theme-files/js/car-demon-compare.js.php’);
wp_enqueue_style(‘cd-jquery-autocomplete-css’, $car_demon_pluginpath.’theme-files/css/jquery.autocomplete.css’);
wp_enqueue_style(‘car-demon-css’, $car_demon_pluginpath.’theme-files/css/car-demon.css.php’);
wp_enqueue_style(‘car-demon-style-css’, $car_demon_pluginpath.’theme-files/css/car-demon-style.css’);

Each of the forms also load their own css and js when their shortcodes are called. These are the files for the contact form.

wp_enqueue_script(‘car-demon-jquery-lightbox’, WP_CONTENT_URL . ‘/plugins/car-demon/theme-files/js/jquery.lightbox_me.js’, array(‘jquery’));
wp_enqueue_script(‘car-demon-contact-us-form-js’, WP_CONTENT_URL . ‘/plugins/car-demon/forms/js/car-demon-contact-us.js.php’);
wp_enqueue_script(‘car-demon-common-js’, WP_CONTENT_URL . ‘/plugins/car-demon/forms/js/car-demon-common.js.php’);
wp_enqueue_style(‘car-demon-contact-us-css’, WP_CONTENT_URL . ‘/plugins/car-demon/forms/css/car-demon-contact-us.css’);
wp_enqueue_script(‘car-demon-contact-us-popup-js’, WP_CONTENT_URL . ‘/plugins/car-demon/forms/js/car-demon-contact-us-popup.js.php’);
wp_enqueue_style(‘car-demon-contact-us-popup-css’, WP_CONTENT_URL . ‘/plugins/car-demon/forms/css/car-demon-contact-us-popup.css’);

6. Custom Styles

Car Demon works by switching out the theme’s default template files with files designed to work with the cars-for-sale post type. You can download the Car Demon Styles PlugIn and look at the different methods we used to create several different vehicle list and details pages. Use those as templates to create your own child theme.

You can also choose to turn off the css in the backend and style it yourself.

7. Queries

Archive and taxonomy pages call;
$car_demon_query = car_demon_query_archive();

Search Pages call;
$car_demon_query = car_demon_query_search();