Blog

Handige uitbreidingen voor Gravity Forms

Gravity Forms is een veel gebruikte formulieren plugin in WordPress. Ook ik gebruik deze plugin regelmatig in WordPress websites. De formulieren zijn makkelijk samen te stellen en uit te breiden met verschillende Add-ons. Uiteraard kun je de formulieren ook beïnvloeden via filters en hooks. Op docs.gravityforms.com kun je hier alles over vinden. In dit artikel deel ik mijn favoriete hooks/filters die ik in verschillende websites gebruik.

1. Input Masks

Door middel van “input masks” kun je aan een gebruiker duidelijk maken in welke formaat je de invoer wenst te hebben. Denk bijvoorbeeld aan datums, postcodes of IBAN nummers. Vink in de veld eigenschappen de “maks input” aan en selecteer de gewenste mask. Nu zijn de meeste standaard masks niet nuttig omdat ze vooral voor de Amerikaanse markt zijn maar je kunt ze ook zelf maken. Hieronder een klein voorbeeld van hoe je een Nederlandse Postcode mask maakt en deze kunt toevoegen in het mask lijst van je formulieren. Zie https://docs.gravityforms.com/gform_input_masks/ voor meer info hierover.

				
					/* Roep eerst het filter  'gform_input_masks' aan in je code. */ 
add_filter('gform_input_masks', 'addFormMasks');
/* Geef hier je masks op */
function addFormMasks($masks)
{
    $masks ['Postcode (NL)'] = '9999 aa';
    return $masks;
}
				
			

2. Prijzen en valuta

Om een nette en goede invoer van geldbedragen in je formulieren te krijgen dan dien je het filter ‘gform_currencies‘ aan te roepen. Via dit filter zet je de geldsymbolen, punten en komma’s precies neer zoals jij het wilt. Hieronder een voorbeeld van de Euro.

				
					/* Roep eerst het filter  'gform_currencies' aan in je code. */ 
add_filter( 'gform_currencies', 'setFilterCurrencies' );

/* Wijzig hier de euro zoals jij het wilt. 
In dit geval zien de prijzen in euro er als volgt uit: € 1.000,00 */
function setFilterCurrencies($currencies)
{
	$currencies['EUR']['symbol_left'] = '€';
	$currencies['EUR']['symbol_right'] = '';
	$currencies['EUR']['symbol_padding'] = ' ';
	$currencies['EUR']['thousand_separator'] = '.';
	$currencies['EUR']['decimal_separator'] = ',';
	$currencies['EUR']['decimals'] = 2;
	return $currencies;
}
				
			

3. Verwijder inzendingen

Standaard worden de gegevens van alle ingevulde formulieren opgeslagen. Wil je dit echter niet, gebruik dan het filter ‘gform_after_submission‘.

				
					/* Roep eerst het filter  'gform_after_submission' aan in je code. */ 
add_filter('gform_after_submission', 'disableEntryCreation');

/* Verwijder de inzending van een bepaald formulier id */
function disableEntryCreation($entry, $form)
{
	if ($form['id'] == 9999 ) {
		\GFAPI::delete_entry($entry['id']);
	}
}
				
			

4. Maak velden read-only in het formulier

Soms wil je dat er gegevens in een formulier zichtbaar moeten zijn maar die niet door een gebruiker gewijzigd mogen worden (Denk bijv. aan een productprijs). Gebruik hiervoor het filter ‘gform_pre_render‘. TIP: Als het filter ‘gform_pre_render_[formid]’ aanroept dan geldt het filter alleen voor het desbetreffende formulier.

				
					<?php
/* Roep eerst het filter  'gform_after_submission' aan in je code. */ 
add_filter('gform_pre_render_9999', 'setReadOnlyFields');

function setReadOnlyFields($form)
{
    foreach ($form['fields'] as &$field) {
    	switch ($field->id) {
    		case 10:
    			$field->cssClass .= ' gf_readonly';
    			break;
    	}
    
    }
?>
<script type="text/javascript">
jQuery(document).ready(function () {
    /* apply only to a input with a class of gf_readonly */
    jQuery(".gf_readonly input").attr("readonly", "readonly");
});
</script><?php
	return $form;
}
				
			

Tot slot

Deze 4 stukjes code (her)gebruik ik regelmatig voor Gravity Forms. Mocht je vragen/hulp hierover nodig hebben laat het me gerust weten.

Gerelateerde artikelen