Robuuste vormen met zwaartekracht-formulieren

Gravity Forms, een product van Rocketgenius, is een uitgebreide vormoplossing voor WordPress. Elke ontwikkelaar zal u vertellen dat het bouwen van een formulier soms erg tijdrovend kan zijn, vooral als het meer moet doen dan alleen een bericht behandelen.

Wat als u een formulier nodig heeft dat gebruikers op uw website registreert op basis van bepaalde criteria? Of wat als u een formulier nodig heeft waarmee een gebruiker inhoud naar uw website kan verzenden, vanuit een front-end perspectief? Gravity Forms kunnen dit allemaal, en wat het niet out-of-the-box kan doen, kunt u zelf bouwen, met behulp van de ingebouwde haken en filters.

Voordat ik bespreekt hoe Gravity Forms uw WordPress-installatie kan uitbreiden, is het belangrijk op te merken dat Gravity Forms een premium-plug-in is. Om een ​​aantal van de goodies te krijgen die in dit bericht worden besproken, hebt u ten minste een bedrijfslicentie voor zwaartekrachtformulieren nodig, maar ik raad u ten zeerste aan de ontwikkelaarslicentie aan te schaffen omdat deze de meeste waar voor uw geld biedt. Nu we dat hebben opgelost, laten we een paar manieren bekijken waarop Gravity Forms een WordPress-site kan uitbreiden.


Gebruikersregistratieformulieren uitbreiden

Het is mogelijk om extra velden toe te voegen aan uw registratieformulier door code toe te voegen aan uw functions.php bestand, maar u kunt voorkomen dat u te veel tijd onder de motorkap doorbrengt door Gravity Forms het zware werk te laten doen. Het maken van gebruikers en het toewijzen van gebruikersrollen met Gravity Forms is eenvoudig, u maakt eenvoudig een formulier, koppelt uw velden aan de standaard WordPress-velden en kiest de gebruikersrol die bij indiening moet worden toegewezen. U kunt ook meerdere "registraties" voor hetzelfde formulier hebben.

Een voorbeeld van hoe Gravity Forms het gebruikersregistratieproces kan verlengen, is met voorwaardelijke registratie. Bijvoorbeeld, als u een lidmaatschapssite heeft die alleen mensen met '@ xyz.com'en'@ abc.com'e-mailadressen om te registreren, u zou registratiefeeds kunnen toevoegen die gebruikers alleen aan rollen toevoegen en toewijzen op basis van of ze aan die criteria voldoen, terwijl anderen niet mogen registreren.

Deze voorwaardelijke logica gaat veel verder dan gebruikersregistratie, u kunt voorwaardelijke velden maken binnen elk type formulier. Als u bijvoorbeeld extra velden voor een gebruiker wilt weergeven op basis van hun leeftijdsgroep, kunt u het veld aanpassen door te selecteren om andere velden weer te geven (of optioneel te verbergen) op basis van hun reactie..


Gravity-formulieren gebruiken voor de verzending van inhoud aan de voorzijde

Als u een robuustere front-end voor uw gebruikers wilt, kan Gravity Forms een geweldige oplossing zijn door gebruikers toe te staan ​​rechtstreeks inhoud in te dienen bij berichten. Het enige wat u hoeft te doen is een formulier maken dat de ingebouwde functie voor berichtvelden gebruikt. Deze postvelden verwijzen naar de standaard posttitel, body-inhoud, uittreksel, feature-afbeelding, categorie en tag. Gravity Forms koppelt ook formuliergegevens in aangepaste velden. Om uw inhoud toe te wijzen aan een aangepast veld:

Wordt uw aangepaste veld niet weergegeven in de vervolgkeuzelijst? Ga terug naar je berichten en maak een "concept" met inhoud in het aangepaste veld en sla het op. Ga dan terug naar je Gravity-formulier en controleer opnieuw.

Wanneer Gravity Forms wordt gebruikt in combinatie met de plug-in, Gravity Forms + Aangepaste berichttypen, biedt de combinatie nog meer functionaliteit doordat formuliergegevens kunnen worden toegewezen aan aangepaste berichttypen, vandaar de naam van de plug-in. Als u zich zorgen maakt over het installeren van te veel plug-ins en alleen ondersteuning voor aangepaste taxonomieën nodig hebt, kunt u altijd handmatig ondersteuning toevoegen door in Gravity Forms te klikken via uw functions.php het dossier.


Over haken en filters gesproken

Gravity Forms wordt geleverd met uitgebreide documentatie. Als je het kunt dromen, kun je het waarschijnlijk bereiken. Er zijn verschillende haken en filters waar u gebruik van kunt maken, en het beste deel is dat u ze aan afzonderlijke formulieren kunt toewijzen. Stel dat u gebruikers toestond om berichten op uw site in te dienen, maar dat u hun titellengte wilde beheren, u kon aangepaste validatielogica maken om de lengte van de invoer te beperken. Zie voorbeeld.

 add_filter ('gform_validation_7', 'title_size'); functie title_size ($ validation_result) $ form = $ validation_result ["form"]; // ervan uitgaande dat we niet willen dat input_3 langer is dan 75 tekens. if (strlen ($ _POST ['input_3'])> 75) // stel de formuliervalidatie in op false $ validation_result ["is_valid"] = false; // vind veld met ID waarnaar we op zoek zijn en markeer het als mislukte validatie voor elk ($ formulier ["velden"] als $ veld) // vervang 3 door het veld-id-nummer dat u valideert als ($ veld [ "id"] == "3") $ field ["failed_validation"] = true; $ field ["validation_message"] = "Titel is te lang."; breken;  // object terugzetten naar het resultaat $ validation_result ["form"] = $ form; return $ validation_result; ?>

Het eerste deel van de code gebruikt het filter voor validatie van zwaartekrachtformulieren en maakt een functie die de lengte van het betreffende veld test. Let op de cijfers 7 en 3 in dit fragment. 7 geeft de vorm ID aan en 3 geeft de werkelijke invoer ID aan die getest wordt.

De documentatie over de Gravity Forms bevat een lijst met beschikbare hooks en filters, evenals gedetailleerde voorbeelden voor elk - zo nu en dan kunt u zelfs zien wanneer / waarom u ze nodig zou kunnen hebben.


Conclusie

Als u op zoek bent naar een out-of-the-box formulieroplossing die meer doet dan alleen een e-mail verzenden, is Gravity Forms een geweldige optie - en tijdbesparend. De mogelijkheden zijn onbeperkt. Voor degenen die discussiëren of op het hek zitten over het gebruik van Gravity Forms vanwege de aanschafprijs, lijkt dit misschien hoog, maar de voordelen en ontwikkeling die door het gebruik van Gravity Forms worden bespaard, betalen zichzelf.