What Makes Caldera Forms A Great Developer’s Tool

Caldera Forms Banner - A different kind of WordPress form builder.

By

Posted On:

Caldera Forms is designed to be simple and easy to use. It’s user interface is powerful and intuitive, so anyone can create complex forms including multiple pages, powerful processors that can be chained together and easy to use conditional logic for fields and processors.

Most of the time when I use Caldera Forms, I create the forms I need using the user interface, and it works really well. That said, as a developer I often need to  do things that I can’t do from the UI, or with the UI alone. I want more control over form processing, and form creation then the UI can provide.

Also, when I’m working on a site with several developers, storing form settings in the database is not always ideal. Both to give me even more control over my forms and to make sharing their settings across production, testing and development environments, is why I love that forms can be stored in files, using filters or in the database.

I should also mention that since Caldera Forms settings are stored in the options table, migrating forms saved in the database, without affection post content is very easy. The plugin WP-CFM makes migrating form settings very easy. Form entries are tracked in a separate table making them easy to migrate with WP Migrate DB Pro or phpMyAdmin.

There are more developer-friendly friendly features coming to Caldera Forms, like the ability to bind a JavaScript function to a field’s change event, and to create forms that embed other forms. Caldera Forms is a different kind of form builder, and its exciting to be a part of its evolution, and seeing what other cool stuff David comes up with.

I’d like to highlight three cool parts of what the plugin can do today that make me very happy as a developer.

Creating Your Own Custom Processor Is Really Easy

Caldera Forms has a very simple system for creating custom processors. If you need to create one for a specific project it is not hard to do. The architecture is fairly simple, and modular. There is an introduction to this process here, though the best way to learn is probably to download one of our existing add-ons and read its code.

Forms Can Be Totally Independent Of The Database

By default, forms are stored in the options table. But, you can also use filters to load a form from the file system. On several recent projects, I used the Caldera Forms UI to make forms and then outputted their settings to a PHP file.

I actually get the form’s settings by loading the form and adding a simple filter to print the from’s settings to my screen, like this:

add_filter( 'caldera_forms_get_form', function( $form ) {
echo '<pre>'; var_export( $form ); echo '</pre>';
});

Then I copy the settings into a plugin, and use the same hook to load the form. To learn more on how this is done, see this article.

Lots Of Options To Process Your Data

There is a very simple simple add-on for Caldera Forms called Call Action which passes your form submission data to a WordPress hook. This allows you to use Caldera Forms to create your front-end, while integrating the data into your existing system for saving data.

I love this and the various other ways for processing data with custom PHP and JavaScript callbacks as it means that I can have one class for saving data, that I use no matter how the data is saved. When I make a change to where the data is stored, validated, sanitized, or structured, I only make that change in one place, whether the update comes from a form, the backend, or some other event.

A Different Kind of Form Builder

Caldera Forms has been around longer than CalderaWP, but it is relatively new compared to other, more established form builder plugins. Many of those plugins are really great.

We hope that if you’re a developer, you will see some of this flexibility, and how easy it is to implement as a reason to give Caldera Forms a shot. For developers and non-developers alike its a great tool that delivers an awesome, AJAX-powered and totally responsive end user experience.