I noticed that when I update Gravity forms to 3.0, the submit button label is empty. Gravity Forms 3.0+ renders submit as a <button> with the label as text content. I found out our filter still read <input value="..."> attribute, so the label came back empty.
We use a custom Wordpress theme with the gform_submit_button hook to render custom buttons. I updated the theme code to fix the button and it works.
However, we have over 100 sites using our custom theme and changing the code for each one would take forever. Is there a faster way to fix the problem?
Gravity Forms 3.0 switched the submit from an <input> element to a <button> element for accessibility reasons. We mention that in the Changelog here:
And the pre-release summary:
Updated form buttons to use <button> elements instead of <input> elements, for better accessibility and styling flexibility. It is no longer necessary to use the gform_submit_button filter to change the submit input into a button, and use of that filter might cause unexpected issues.
I don’t know of a quick way to update the code for 100 sites.
It has happened twice that we need to manually change the button structure because of an update. Should we assume that using the custom hook is not a safe way to display the button since it can be changed on any major update?
This is a frustrating situation where we have to put a lot of time and effort into something that was already working fine.
When you use a WordPress, theme, or plugin filter or action hook, you do take on the risk that your code will need to be updated in the future. That’s one of the reasons major version updates should be tested in a staging or development environment before the live/production site is updated.
However, when a company like yours makes a big change on the structure like this without thinking of an alternative for the hundreds, even thousands of customers being affected by this change is really what troubles me. You should’ve thought about a solution for those customers but your only one your give us is for us to go manually update each website. You could’ve added an option to keep the old way, it would make things much easier on our end.
We’ve been using your product for every websites we make for years now but with the answers you are giving us today, I feel like we are not that important to you and this change has become our problem. Really disappointing.