WordPress - Contact Form 7


De volgende twee tips zijn specifiek voor de plugin Contact Form 7 waarmee formulieren kunnen worden toegevoegd aan WordPress. Na het installeren van de plugin kun je zelf relatief eenvoudig formulieren aanmaken en deze plaatsen in berichten en op pagina's. De formulieren kunnen bestaan uit onder andere tekstvelden, keuzerondjes en meer.

Bedanktpagina

Standaard is het zo dat na het versturen van een formulier er een melding in beeld verschijnt om te melden dat het formulier is verzonden. Er wordt in dat geval dus geen aparte bedanktpagina gebruikt. Wil je echter wel graag een aparte bedanktpagina met een eigen tekst instellen voor een formulier dan kan dit eenvoudig worden uitgevoerd.

Maak als eerste een nieuwe pagina aan in WordPress en geef deze een naam zoals bijvoorbeeld Bedankt. Ga daarna naar het toegevoegde formulier van Contact Form 7 onder 'Contact' en scroll op de pagina naar beneden. Onderaan het scherm staat dan een blok met als titel Aanvullende instellingen. Vul hier de onderstaande code in en plaats op de plek van de URL uiteraard de correcte URL van de net toegevoegde bedanktpagina.

on_sent_ok: "location = 'http://www.websonic.nl/bedankt';"

Javascript en CSS

Indien Contact Form 7 is geinstalleerd dan zal worden de bijbehorende Javascript bestanden en het stylesheet op elke pagina geladen. Dit kan bijvoorbeeld voor conflicten zorgen met eigen scripts of andere plugins en daarom kan het zijn dat je het automatisch laden van deze bestanden uit wilt schakelen. Je kunt hierbij instellen dat de bestanden helemaal niet meer geladen worden middels de onderstaande codes. Tevens kan door een code toe te voegen aan een specifieke template, bijvoorbeeld voor een contactpagina, ingesteld worden dat juist dan wel de bestanden geladen worden.

Automatisch laden uitschakelen via wp-config.php

Voeg de onderstaande code toe aan het wp-config.php bestand om het automatisch laden voor de volledige installatie en dus alle pagina's uit te schakelen.

define('WPCF7_LOAD_JS', false); // Javascript
define('WPCF7_LOAD_JS', false); // CSS


Automatisch laden uitschakelen via functions.php

Voeg de onderstaande code toe aan het functions.php van het gebruikte thema om het automatisch laden van de bestanden uit te schakelen.

add_filter( 'wpcf7_load_js', '__return_false' ); // Javascript
add_filter( 'wpcf7_load_css', '__return_false' ); // CSS


Laden bestanden in template

Door de onderstaande code toe te voegen aan een template worden op pagina's gebaseerd op het template de bestanden wel geladen. Om dit te laten werken moet de onderstaande code wel worden geplaatst voor wp_head().

<?php
        if ( function_exists( 'wpcf7_enqueue_scripts' ) ) { // Javascript
                wpcf7_enqueue_scripts();
        }
        if ( function_exists( 'wpcf7_enqueue_styles' ) ) { // CSS
                wpcf7_enqueue_styles();
        }
?>

Placeholder

Velden in Contact Form 7 kunnen worden voorzien van een placeholder en zodoende kun je dan eventueel labels achterwege laten. Dit kan op de onderstaande manier.

[text veld-naam placeholder "Tekst placeholder"]

Aanvullende informatie in mail

Indien je graag meer informatie wilt zien over degene die een formulier invult, dan zijn er aanvullende tags die opgenomen kunnen worden in de mail. Deze plaats je dan in het veld 'Beerichttekst' van het formulier. Het gaat dan om bijvoorbeeld het IP-adres, het tijdstip van invullen en de URL van de betreffende pagina. Hieronder een overzicht met tags.

[_remote_ip] // IP-adres van bezoeker.
[_user_agent] // User-agent van bezoeker.
[_url] // URL van het formulier.
[_date] // Datum van invullen.
[_time] // Tijdstip van invullen.
[_post_id] // ID van pagina / bericht met het formulier.
[_post_name] // Slug van pagina / bericht met het formulier.
[_post_title] // Titel van pagina / bericht met het formulier.
[_post_url] // URL van pagina / bericht met het formulier.
[_post_author] // Auteur van bericht waar het formulier onder is geplaatst.

Toegang beperken

Standaard zijn formulieren voor alle gebruikers in WordPress beschikbaar met uitzondering van subscribers. Gebruikers met de rollen contributor en author kunnen shortcodes van formulieren bekijken maar formulieren zelf niet aanpassen, gebruikers met de rol editor kunnen dit wel. Door de onderstaande code toe te voegen aan wp-config.php wordt de toegang tot de formulieren beperkt tot alleen gebruikers die de rol administrator hebben.

define('WPCF7_ADMIN_READ_CAPABILITY', 'manage_options');
define('WPCF7_ADMIN_READ_WRITE_CAPABILITY', 'manage_options');

Informatie in database

Standaard worden ingevulde formulieren van Contact Form 7 niet opgeslagen in de database van WordPress. De informatie wordt alleen per mail verzonden. Er is echter wel een mogelijkheid om gegevens op te slaan in de database en zodoende worden de gegevens dan toegankelijk in WordPress zelf. Je hebt hier wel een aanvullende plugin voor nodig en dat is de plugin Contact Form DB. Na het activeren zal er in het menu aan de linkerkant een menu item Contact Form DB bedchikbaar komen. Hier kunnen dan de gegevens van formulieren worden opgevraagd en eventueel worden gedownload.

Advanced Custom Fields

Indien je gebruik maakt van de extensie Advanced Custom Fields dan kan deze aanvulling mogelijk nog van pas komen. Het gaat om een extensie die binnen Advanced Custom Fields velden voor Contact Form 7 beschikbaar maakt. De extensie kan hier worden gedownload.