Torro Forms

Description

Torro Forms is a Drag & Drop form builder plugin that is easy to use for administrators, yet flexible to extend for developers. The plugin was made with both user groups in mind to ensure that you can do exactly what you want without getting stuck in complicated setups. In addition, our plugin looks and behaves in the same way that the rest of WordPress does. If you’re tired of seeing bloated, “all-fancy” user interfaces that distract you from what you actually want to achieve – be relieved, we are too.

Torro Forms can serve several purposes. Its functionality goes beyond simple contact forms (although you could of course technically create one if you wanted to). Whether you’re interested in a survey solution or whether you need internal forms that you can restrict to a specific group of users – Torro Forms is the way to go. And if you don’t find what you’ve been looking for, be aware that our plugin is extendable via several APIs – we encourage you to do it yourself instead of locking you with what we already provide.

Torro Forms was made with a specific attention to polls and surveys. Form submissions are permanently stored in the database so that they can be browsed, exported and evaluated.

Key Features

  • Multi-Page Forms,
  • Shortcodes to embed forms and live results,
  • Excel, CSV export,
  • Actions like unlimited email-notifications and redirections,
  • Protectors like Google reCaptcha and honeypot and link counting,
  • Access Controls for visitors, users or by timerange or number of submissions,
  • Evaluators for displaying results with bar, pie or donut charts,
  • WP-CLI commands,
  • REST-API endpoints,
  • Templating of elements,
  • PHP API for developers,
  • and much more.

Links

Screenshots

  • Overview of the form builder
  • Modal to add a new element to a form
  • Submissions list overview
  • Plugin settings screen

Installation

  1. Upload the entire torro-forms folder to the /wp-content/plugins/ directory or download it through the WordPress backend.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress.

FAQ

Installation Instructions
  1. Upload the entire torro-forms folder to the /wp-content/plugins/ directory or download it through the WordPress backend.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress.
How do I use the plugin?

You can find instructions on what you can do with Torro Forms and how to use it in our User Guide.

How can I, as a developer, extend the plugin?

Torro Forms supports the concept of extensions and provides flexible APIs for several areas of it. A good point to start are our tutorials, and we also provide a full code reference. The plugin itself can also be found on GitHub if you wanna have a look at the code itself.

Where should I submit my support request?

We preferably take support requests as issues on Github, so I would appreciate if you created an issue for your request there. However, if you don’t have an account there and do not want to sign up, you can of course use the wordpress.org support forums as well.

How can I contribute to the plugin?

If you’re a developer and you have some ideas to improve the plugin or to solve a bug, feel free to raise an issue or submit a pull request in the Github repository for the plugin.

You can also contribute to the plugin by translating it. Simply visit translate.wordpress.org to get started.

Reviews

Super für Mehrstufige Formulare

Wir hatten eine Kundenanforderung für eine mehrstufiges Bewerbungsformular auf dem Tisch und konnten dank Torro Forms ein Lösung erstellen, ohne eine eigene Zeile PHP-Code zu schreiben.
Für das Styling haben ebenfalls wenige CSS Klassen ausgereicht, da man auch jedem Element selber eigene Klassen mitgeben kann.

Ein paar Ideen für die Weiterentwicklung:
– Die Möglichkeit dem gesamten Formular ein CSS Klasse geben zu können.
– Beim Kopieren von Formularen geht die Zuordnung von Elementen in E-Mails verloren, da diese über IDs erfolgt. Da wäre ein Hinweis gut oder direkt ein parser der die neuen Element-IDs ersetzt 😉
– Beim Export von Mehrzeiligen Texteingaben als Excel ist HTML enthalten (<p> & <br>)

Very powerul

I used torro forms to implement a survey in my website and with the plugin it was quick and easy. Nice and clean backend for all necessary functions even statistics.

Thank you so much!

Excellent Plugin and Support

This form builder has thus far served as the perfect solution for my client’s requirement to build user surveys and issue points to users on submission. Via the extensible form actions my modifications appear entirely native to the plugin, allowing the client to specify a number of points and issuing them via the myCred_add() function on submission.

Having investigated a lot of survey builder plugins I had anticipated compromising any data visualisation by switching to a form builder but this plugin even does that. It’s truly useful and easy to use. I look forward to future development of what is still a relatively new plugin.

Read all 13 reviews

Contributors & Developers

“Torro Forms” is open source software. The following people have contributed to this plugin.

Contributors

“Torro Forms” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “Torro Forms” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.0.3

  • Fixed: Submissions list table filtering by status or search works correctly again.
  • Fixed: Containers, elements, element choices and element settings are deleted correctly in form builder.

1.0.2

  • Fixed: Undefined index in element type

1.0.1

  • Enhanced: Handle form validation and save errors properly and display according feedback to the user
  • Enhanced: Ensure metadata is not updated if it has not changed
  • Tweaked: Adjust PHPCS arguments on Travis-CI
  • Tweaked: Updated to Plugin lib 1.0.3
  • Tweaked: Updated WP Coding Standards to use latest stable version
  • Tweaked: Fix PHPCS failure
  • Tweaked: Coding standards violations
  • Fixed: Don’t throw PHP fatal errors on failures in actions
  • Fixed: Incorrect user form submission counts
  • Fixed: Ensure array values are inserted as individual form submission values
  • Fixed: Show settings screen subtab labels as necessary to have context for the available settings sections
  • Fixed: Problems with 0 values in elements with choices

1.0.0

  • Initial release

1.0.0-rc.1

  • Fixed: Element headers in the form builder may no longer contain HTML tags, and in addition now have their maximum length limited.
  • Fixed: You no longer get a PHP notice triggered when visiting the submissions list page with active filters.

1.0.0-beta.11

  • Enhanced: New set_props() and get_props() methods available on all model classes
  • Enhanced: When editing a submission, the currently active tab is now maintained across pageviews
  • Enhanced: Performance of template tag handler processing content has been significantly improved
  • Tweaked: An unnecessary database query in the frontend has been removed
  • Tweaked: The PhpSpreadsheet project is now used instead of the deprecated PHPExcel project
  • Fixed: Forms now store data of all their pages correctly
  • Fixed: Email notifications now display correct output for all element types
  • Fixed: Email notifications are now sent using fully valid HTML
  • Fixed: Form uploads are now correctly tagged with the specified taxonomy term
  • Fixed: It is now possible to freely navigate back to a previous form page if values for required fields have not been provided yet
  • Fixed: Ensure modifying a submission now correctly clears the respective caches
  • Fixed: Ensure deleting a submission does not lead to a non-existing admin screen
  • Fixed: Increase the query limit so that all element choices are displayed in the backend
  • Fixed: Empty values are no longer validated against the available choices
  • Fixed: Empty values are now allowed when they are actually available as a choice
  • Fixed: Ensure user columns are correctly offset in form submission exports
  • Fixed: Cron task to delete submissions is now correctly clear when deactivating the plugin
  • Fixed: Ensure old element choices data is displayed in both frontend and backend

1.0.0-beta.10

  • Enhanced: Field-specific errors in frontend are now highlighted more obviously
  • Fixed: Email notification template tag buttons now work correctly
  • Fixed: Dynamic element template tags for email notifications are now applied correctly
  • Fixed: Template tags in email notifications are now correctly replaced
  • Fixed: Non-required media elements no longer throw an error in the frontend when no file is uploaded
  • Fixed: Pages in the form builder can now be deleted properly
  • Fixed: Datetime fields now show the currently selected date on opening as expected
  • Fixed: Datetime fields no longer have issues with certain locales
  • Fixed: Fatal error no longer occurs that could happen when accessing the settings page under certain conditions
  • Fixed: Plugin can now be properly deleted through the admin interface

1.0.0-beta.9

This pre-release is a major rewrite that fully breaks backward-compatibility development-wise. Only user-generated content remains intact. The plugin now requires at least PHP 5.6 and WordPress 4.8. If you have already created extensions for Torro Forms, you need to adjust them in order for them to work with the refactored version. Rest assured that none of this will happen again, but we are still in Beta and the previous versions had some severe architectural issues. Please read more about it in our blog post if you’re interested!

  • Added: REST API endpoints for managing forms, their content and submissions
  • Added: WP-CLI commands for managing forms, their content and submissions
  • Added: cache layer for all database requests
  • Added: form submissions now live under their own admin submenu
  • Added: form submissions can now be edited and created through the backend
  • Added: form edit page now uses Backbone for the form builder
  • Added: new “Submission Count” access control to limit total form submissions
  • Added: new “checkbox” element type
  • Added: all settings are exposed via the REST API settings endpoint
  • Enhanced: element types can now contain multiple fields
  • Enhanced: form stats now scale by storing aggregate results persistently
  • Enhanced: form submissions now have a status
  • Enhanced: form submissions are now stored in the database immediately which prevents leakage due to cookie or session issues
  • Enhanced: form access can now be restricted based on the total submission count
  • Enhanced: form access can now be restricted based on a logged-in user’s role
  • Enhanced: Entries are no longer a submodule, instead their functionality is now located in the submissions list
  • Enhanced: Modules API now follows a clean structure throughout all modules
  • Enhanced: access controls are a separate module instead of a group of form settings
  • Enhanced: spam protection submodules are now part of a new protectors module
  • Enhanced: indexes have been added to database tables to speed up queries
  • Enhanced: a consistent fields API is used throughout the entire plugin
  • Enhanced: meta and settings fields can now have dependencies
  • Enhanced: more modern look and feel
  • Enhanced: dedicated PSR-3 compatible logger class
  • Fixed: installation routine works now properly on multisite setups of any size
  • Fixed: it is now possible to properly register any kind of modules and submodules
  • Fixed: dynamically loaded editor now works correctly
  • Tweaked: ‘form’ shortcode is now deprecated in favor of ‘torro_form’
  • Tweaked: ‘form_charts’ shortcode is now deprecated in favor of ‘torro_form_charts’
  • Tweaked: ‘element_chart’ shortcode is now deprecated in favor of ‘torro_form_charts’
  • Tweaked: form results are now relabelled as form submissions
  • Tweaked: element answers are now relabelled as element choices
  • Tweaked: result handlers are now relabelled as evaluators
  • Tweaked: components are now called modules
  • Tweaked: namespaces are used throughout the plugin code
  • Tweaked: uses external felixarntz/plugin-lib library for standard plugin functionality
  • Plus: a lot more improvements and tweaks here or there… It’s an entire rewrite, you know.

1.0.0-beta.8

  • Enhanced: Added password option to textfield element
  • Enhanced: Added ‘torro_form_action_url’ filter
  • Enhanced: Added ‘torro_element_type_validate_input’ filter for additional validations
  • Enhanced: Enhanced code
  • Enhanced: Added honeypot spam filter
  • Enhanced: Added timetrap spam filter
  • Enhanced: Added linkcount spam filter
  • Enhanced: Added filter ‘torro_form_show_saving_error’ on whats happening after data could not be saved
  • Fixed: Fixed incompatibility on ACF Calendar CSS on Torro Forms Formbuilder
  • Fixed: Element PHP Notices on not existing variable $element_id
  • Fixed: Element settings fields have now unique element ids
  • Fixed: Page 1 couldn’t be deleted
  • Fixed: Warning if there is no element with an input.

1.0.0-beta.7

  • Enhanced: Added a new filter for the element data sent to the template
  • Enhanced: Introduce element tab slugs for more meaningful hook usage
  • Enhanced: Added CSS settings field to elements
  • Enhanced: Added placeholder field to text and textarea element
  • Enhanced: Removed separator element (can be done by content element)
  • Enhanced: Added Referer URL Templatetag
  • Enhanced: Added Reply-To field in email notifications
  • Enhanced: Changed appearance of multiple answers in Email notifications
  • Enhanced: Scripts will only be loaded if there is a torro form
  • Enhanced: Added column for form shortcode into form overview
  • Enhanced: Allowing setting form element values by $_GET param
  • Fixed: Forms are now created and copied as intended (with post status publish) by default
  • Fixed: Added line breaks between admin settings inputs and description
  • Fixed: Label semantic in settings of elements was wrong
  • Fixed: JS Error on multiple same answes or if there have been only one answer
  • Fixed: Shortcodes in redirection messages working now
  • Fixed: Shortcodes didn’t worked in pages and posts
  • Fixed: Results have not been sent if multiple pages are used
  • Fixed: Discription of elements don’t have been shown
  • Fixed: PHP Error message on empty label key
  • Fixed: Recaptcha has not performed
  • Fixed: Password-protected form content is not displayed unconditionally
  • Tweaked: Removed the method Torro_Forms_Manager::get_content() which made no sense in that class
  • Tweaked: Added filter for form names and ids
  • Tweaked: Changed form element id names
  • Tweaked: Excluded content field from element list in email notifications

1.0.0-beta.6

  • Enhanced: Added unit test framework
  • Enhanced: Added fields for changing texts on access control
  • Enhanced: Added aria-invalid for elements with error
  • Enhanced: Using proper escaping for textareas
  • Fixed: Chart errors on removing and adding elements
  • Fixed: Not working shortcodes in content elements and on result text message
  • Fixed: Email notifications component had to be loaded before redirections
  • Fixed: Not required fields do not perform further checks on empty fields anymore
  • Fixed: Removed “After Submit” section in charts because it’s not needed anymore
  • Fixed: Added wpautop in text content elements

1.0.0-beta.5

  • Enhanced: Now possible to have multiple forms on one page
  • Enhanced: form detection now happens on wp hook to prevent an extra query
  • Fixed: Form shortcodes work properly now and do not override content
  • Fixed: reCAPTCHA now works in form shortcodes as well
  • Fixed: if multiple choice is required, make sure at least one input is selected
  • Fixed: description is now shown again after being broken in 1.0.0-beta.4
  • Fixed: element results warning in form builder backend
  • Tweaked: removed unnecessary Options metabox in backend

1.0.0-beta.4

  • Added a template hierarchy for all frontend visuals
  • Added a new filter torro_template_locations
  • Added new filters torro_form_classes, torro_element_classes, torro_input_classes
  • Elements and their types are now separate models
  • Reworked Form Settings CSS
  • Adjusted default values for min/max limits on element types to be empty
  • Fixed problems with functions not existing in PHP 5.2
  • Fixed problems with shortcodes on start pages
  • Fixed problems with shortcodes, embedded in forms which have been included by shortcodes
  • Fixed bug with date field on export

1.0.0-beta.3

  • Added option to switch page title on/off
  • Showing limitations (min/max) of elements now in frontend
  • Moved inline Javascript into Charts JS File
  • Remove bundled translations (Getting translations now from WordPress.org)
  • Fixed problems on embedding forms for error handling and multiple choice or one choice fields

1.0.0-beta.2

  • Added general settings tab with possibility to change button texts
  • Added filters ‘torro_form_container_title’, ‘torro_form_button_previous_step_text’, ‘torro_form_button_next_step_text’ and ‘torro_form_button_send_text’
  • Fixed not shown container title
  • Fixed not deleted results

1.0.0-beta.1

  • First official beta release