In dit artikel komt aan bod hoe gebruik gemaakt kan worden van variabelen binnen WordPress om vervolgens toe te passen in een post, pagina en/of contactformulier (zowel post als e-mail).
Alle informatie moet worden opgeslagen in een CSV-bestand in de root van de website. In dit voorbeeld zullen trainingscodes en -datums worden gebruikt. Het CSV-bestand ziet er als volgt uit:
code;datum
code1;datum1
code2;datum2
code3;datum3
Wanneer de onderstaande codes susscesvol zijn toegepast kan bijvoorbeeld de shortcode [ training code="code1" ] worden gebruikt, verwijder hiervoor de spaties aan het begin en eind.
Vervolgens dienen de onderstaande codes te worden toegevoegd aan de functions.php.
Doe dit bij voorkeur in het child-theme om bij updates te voorkomen dat alle informatie verloren gaat.
01 | function training_datum( $atts ) { |
02 | $csv_file = 'bestand.csv' ; |
04 | if (( $handle = fopen ( $csv_file , "r" )) !== false) { |
05 | $datum_codes = array (); |
06 | while (( $data = fgetcsv ( $handle , 1000, ";" )) !== false) { |
07 | $datum_codes [ $data [0]] = $data [1]; |
11 | return 'Fout bij het inlezen van het CSV-bestand: ' ; |
14 | $datum = $datum_codes [ $atts [ 'code' ]] ?? '' ; |
19 | add_shortcode( 'training' , 'training_datum' ); |
Deze bovenstaande functie verzorgt het inlezen van het CSV-bestand en haalt de juiste datum a.d.h.v. de code uit het bestand.
01 | add_filter( 'wpcf7_form_elements' , 'dacrosby_do_shortcodes_wpcf7_form' ); |
02 | function dacrosby_do_shortcodes_wpcf7_form( $form ) { |
03 | $form = do_shortcode( $form ); |
07 | add_filter( 'wpcf7_mail_components' , 'dacrosby_do_shortcodes_wpcf7_mail_body' , 10, 2 ); |
08 | function dacrosby_do_shortcodes_wpcf7_mail_body( $components , $number ) { |
09 | $components [ 'body' ] = do_shortcode( $components [ 'body' ] ); |
10 | $components [ 'subject' ] = do_shortcode( $components [ 'subject' ] ); |
Bron: https://snippets.cacher.io/snippet/1d3090c8dfedb67b8b4f
De bovenstaande functies dienen voor het functioneren binnen de contacts forms 7.