Hi there
Thanks for the feedback.
I do not agree that we do not follow WordPress coding standards on this (because we do what WordPress itself does when in the same situation). We do follow standards for the things they were intended to, but on places not supported by the standars you simply can not use them, which does not mean that you break them or decide not to follow them. But that is semantics 🙂
In our opinion, frontend validation is indeed a core part of the plugin. However, I can take this as a request to make it optional, and to be able to disable it easily with an easy method. But on the meantime, it is a integral part of the plugin flow, regardless backend validation. I do agree that there are tons of valid and valuable validation libraries out there, but the built-in one has several key features that those lack:
- First, we can read additional setings for a field, like whether it is required on Types, which a third party library can not do.
- Second, we can validate against the value format that Types fields do expect, which is important in several field types and third parties can not do.
- Third, it gets totally integrated with the validation messages described in the form settings, which ensure compatibility with third parties like WPML, something that a third party validation script can not do.
It would be a big usability problem if fields started to get values in formats that they can not hold, or if validation messages stopped being in the relevant language.
Of course, it is up to each developer to manage those issues by himself, but I suspect they would become tickets in our support forum 🙂 And I mentioned developers, intentionally. Users should never be entitled the right to break their site just because. Developers can do whatever they want, hence you found your way to remove the frontend validation. We wll not include a checkbox that allows end users to break things - we had this kind of request before for other plugins in the Toolset family and we are quite sure this will never happen.
Finally, general statements are generally right. Of course you should be able to deregister scripts and styles following the native and standard method. But on edge cases, like this one, where standard methods can not be applied to register and enqueue, nobody can expect that standard methods to disable will be enough.
----------------
Long story short: we will evaluate whether it is possible and wise to provide a better, simple way to remove frontend validation on CRED forms. CRED is in the middle of an ambicious refactor that will include many code changes. I am sure we will also find a way to hook third party validation libraries into the game.
Hope it helps.
Regards.