Contact Form 7: Auswahl bei Checkboxen begrenzen

Wenn du eine Checkbox zu deinem Contact Form 7 hinzufügst, kannst du standardmäßig alle Optionen auswählen, aber in gewissen Situationen ist es manchmal notwendig, die Auswahl bei Checkboxen zu begrenzen. Der Code basiert auf dem Artikel Contact Form 7: Eigene Fehlermeldungen hinzufügen.

Checkboxen hinzufügen

Im Backend deiner WordPress-Installation kannst du sehr leicht bei deinen Formularen einen Tag für Checkboxen generieren. Der Könnte ähnlich wie diesem aussehen.

[checkbox checkbox-12 "Bananen" "Äpfel" "Birnen" "Melonen" "Kirschen" "Erdbeeren"]

Nun hast du 6 Checkboxen, die du alle auswählen kannst.

Auswahl bei Checkboxen
Quelle: WordPress Bibel

Auswahl bei Checkboxen begrenzen

Wenn du möchtest, dass man zB. maximal drei Optionen auswählen kann, musst du ein paar Zeilen Code in deiner functions.php hinzufügen. Wenn du am Ende deiner functions.php den Code einfügst, kannst du mindestens eine, aber maximal drei Optionen auswählen.

checkbox-12 kannst du mit deiner entsprechenden Checkbox ersetzen.

/**
 * Contact Form 7: Auswahl bei Checkboxen begrenzen
 * https://wp-bibel.de/snippet/auswahl-bei-checkboxen-begrenzen
 */

add_filter('wpcf7_validate_checkbox', 'wp_bibel_de_custom_wpcf7_validate_checkbox', 20, 2);

function wp_bibel_de_custom_wpcf7_validate_checkbox($result, $tag) {
    $tag = new WPCF7_Shortcode($tag);

    if("checkbox-12" == $tag->name) :
        $count = count($_POST["checkbox-12"]);

        if($count < 1) : $result->invalidate($tag, "Mindestens 1 auswählen.");
        elseif($count > 3) : 
             $result->invalidate($tag, "Höchstens 3 auswählen.");
         endif; 
     endif;

     return $result;
}

Möchtest du danach dein Formular abschicken und hast zB. 4 Checkboxen ausgewählt, erfolgt die entsprechende Fehlermeldung.

Auswahl bei Checkboxen
Quelle: WordPress Bibel

 

Hier findest du weitere Beiträge von uns zum Thema Contact Form 7:

2 Kommentare zu “Contact Form 7: Auswahl bei Checkboxen begrenzen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.