The month has been full of new releases across the board. We have had so much going on, and have a ton to tell you about.
Form Action Automation
Since we released the Form Action Automation add-on last month, we've had lots of feedback and have expanded it to cover more and more ground. It can now be used to send birthday or holiday messages and schedule API actions. This opens up a whole wide world of possibilities. Schedule entries to be deleted or updated, for starters. Stay tuned for another blog post all about the API and a ton of amazing ways it can be used.
The Form Action Automation add-on has also been updated to account for timezones and update the queue times when an entry is updated. By default, date fields will trigger the actions at 12:00 am, but we've added the frm_autoresponder_time hook to allow the time to be adjusted. So far we've seen this hook used for setting a time based on a time field.
Formerly known as Autoresponder
With all of this power, the 'Autoresponder' name just wouldn't cut it. We have renamed it to more accurately reflect the power under the hood: Form Action Automation.
Help Desk goes nuclear
Yeah, yeah. I know this isn't a Formidable Forms add-on, or even officially available for purchase yet. But there are still a few things you may want to know.
This past weekend turned into a battle zone between us and an army of human spammers. As humans, they were able to get past a ton of the spam blocks. They sailed right through the reCaptcha, Honeypot, and even Akismet. We filled our comment blacklist with Walking Dead terms to curb the cascade of help desk spam. (Why Walking Dead? Spammers were linking to an illegal streaming of Walking Dead shows.)
By Sunday evening, the war reached its peak. And we were losing. They created new user accounts faster than we could delete them. The battle nuked our server. Pagely was amazing. Their immediate responses and action with an emergency server upgrade brought our server back up so we could return to our battle. It went down again. Pagely bumped us up once more to assist with resources for our combat.
But those pesky spammers just wouldn't quit. We shut down ticket creation and registration to give us time to fight back. With the registration form still off the page, we added the new ticket form back in. The spam started right back up again with new user accounts. They had found another spot to register. We then locked down the registration form to logged in users. Hmm... Helpful.
Of course we couldn't leave it at that. What about forcing presale questions to be private? That would kill their morale pretty quick. But no. It didn't take them long to find that they could create a dummy ticket, and then edit it to switch it to public and fill it with everything the blacklist wouldn't allow during creation. You see, we use a custom form when editing, and a Formidable form when creating the new ticket.
Finally, we brought the war to an end. Once a ticket is private, only moderators can make it public. The spammers soon subsided—defeated.
A few of you have mentioned in your help desk tickets that you can't find the checkbox to make your ticket public again. It's true. It's gone and nowhere to be found. And it won't be coming back. If you'd like a private ticket made public, just ask.
Formidable news
Google reCaptcha: urgent update
In other news, you may have noticed the Google reCaptcha went bad in all your forms. It turns out, we were using the word "default" instead of "normal" for our reCaptcha style. It worked fine this way for months. And then Google threw a wrench, and instantly, "default" was no longer acceptable on thousands of sites. We rushed a release within a couple of hours to account for this change in v2.02.09. If you are running an older version and using reCaptcha, update immediately or no one will be able to submit your forms.
Pretty URLs for views make Google indexing a snap
The good news is that this release had been waiting with a handful of gems. All views now use pretty URLs. So instead of ?entry=25, you'll see /entry/25/ in your links. This makes indexing much simpler for Google, without telling Google how to handle it.
Limited options when editing entries with Dynamic Fields
Editing entries with dynamic fields works more smoothly. Dynamic fields include an option to limit the choices to those submitted by the logged-in user. But when an admin edits someone else's entry, the options changed to those belonging to the admin. This is all ironed out. The options displayed now will be the options for the user assigned to that entry.
WordPress translations updated
WordPress made some changes with translations. The translations are now loaded from translate.wordpress.org instead of from within the plugin files. In most cases, this change is awesome. But in our case, the pro translations all get zapped. We added in a change to remedy this, so the older behavior will continue for the Pro version.
New hooks
A slew of new hooks can be found throughout the plugin.
- frm_send_email can be used to stop a specific email based on the prepared email message.
- frm_load_dropzone hook will disable the Dropzone file uploader, and revert to the normal HTML file uploader.
- I mentioned the limiting options setting on dynamic fields. The frm_dynamic_field_user hook takes that further and allows you to return the user IDs who the options belong to. So if you have some options added by an admin, and others from each user, you can add in the admin options as well.
add_filter( 'frm_dynamic_field_user', 'frm_use_default_options', 10, 2 ); function frm_use_default_options( $user_ids, $atts ) { if ( $atts['field']->id == 25 ) { // set your field id here $user_ids = (array) $user_ids; $user_ids[] = 1; // the user id the default entries belong to } return $user_ids; }
- The frm_form_error_class allows you to add your custom classes into the error message shown at the top of your form.
add_filter( 'frm_form_error_class', 'frm_form_error_class', 20, 3 ); function frm_form_error_class( $class ) { $class .= ' uk-alert uk-alert-danger'; return $class; }
Next up in v2.03
Alpha version sneak peek
If you keep a close eye on your downloads page, you may have noticed an alpha version snuck in today. We are still working on this version, and will be adding more to it, but we'd love to get a few people using it now.
The highlights of this work-in-progress include:
- rootlines,
- progress bars,
- page jumping,
- auto-saving drafts on page turn, and
- saving from any page in your form while in the back-end.
New options in default message and single entry shortcodes
The default-message and frm-single-entry shortcodes have new options to allow page breaks, section headings, and HTML fields to be included with include_extras="section,page,html". You can also easily exclude fields or only include a few specific fields with include_fields="10,15" and exclude_fields="10,15". These changes also cover repeating sections, and replace the comma-separated lists with repeated sections of information.
Custom field options targeted to post type
One other tidbit that may save you a lot of time and questions. When you setup your WordPress post or page settings, the custom field drop down is now more helpful. The options shown in the dropdown are targeted to the post type you have selected. This is especially helpful when creating WooCommerce products with your forms.
API power and a great new UI
You may have heard about the drama surrounding the WordPress API, and when to expect it in core. Our API is built on top of it, and has been waiting for official v1.0 status. Great news! This will be "officially official" for WordPress 4.7. And v4.7 will include a fix to allow you to use field IDs with the API instead of being limited to field keys.
With this WordPress victory comes a great new UI in our API. We have redone the settings for easier webhook sending.
The new settings also include custom methods instead of always using POST. This makes deleting possible with more APIs. You can also select whether to send the data formatted with JSON or posted directly to another HTML form. Any API action can now be triggered when a draft is saved or an entry imported.
Other add-on updates
The WPML and WooCommerce add-ons also got a little love this month. The Add/Remove buttons are now translatable with WPML. Woocommerce includes a new hook to allow you to specify which fields show in the cart and in the email.
Want it all?
We don't always get changes detailed in blog posts, but you can always read the full changelog. Thanks for all your support and feedback to help make this month a power month.
Luke Cavanagh says
The new UI looks very clean.
robert clapp says
You guys really do well with this new stuff and the stuff you plan for the future. Well done!
Marius says
Good news!
I hope that release of v2.03 to be as well documented as this article.
I am sure that v2.03 will have many more features that will open new horizons.
When you add news please explain them with examples/scenarios(you can do this -> see example).
For example I wait v2.03 because Jamie told me that will be possible: to allow users to see and update just one field(not the entire form).
I recommend to FP staff -> when presenting a new version besides technical "changelog" to present the possible scenarios too( you can update them as you learn from your users - that scenario can be made made with FP v2.03).
Example scenarios:
- Shows all applications in a table(filtered by desired criteria).
- You can show and allow to update just the desired field.
- You can limit form submission to X desired entries, etc.
Example from changelog: Add frm_after_import_form action hook -> OK! -> What is the new scenario? ...this improvement will let me do something new, which till now I could't?...What scenarios brings to us this new improvement?
You are the best WordPress plugin I ever meet...but please explain new possibilities/scenarios!
Steph Wells says
Thanks for the feedback. We are working on getting the 2.03 documentation in place now, rather than waiting for the release. We'll work on making the changelogs more helpful too. A lot of the tickets we add are spurred by help desk requests. Others are put in place for more heavy or specific development in Pro or add-ons. The frm_after_import_form hook is one of these, put in place for our add-ons to use for migrating form settings to the current format after a form is imported. But technical hook or user hook, it should be more clear in the changelog.
Can you open a ticket in the help desk about your single-field editing question?
Jane says
Thanks for the reCaptcha update. I was wondering what went wrong there. I had some very frustrated customers and had to remove it from my forms.