Möchten Sie die Captcha-Methode für Ihre Besucher mit dem benutzerdefinierten Captcha-Feld ändern? Wenn Sie die verwendete Mathematik ändern oder den in der Gleichung verwendeten Zahlenbereich oder die Berechnungsmethode selbst einschränken möchten, können Sie dies ganz einfach mit einem benutzerdefinierten Codeschnipsel tun.
Standardmäßig verwendet das benutzerdefinierte Captcha-Feld Addition und Multiplikation für seine Mathematik mit Zahlen von 1 bis 15.
In diesem Tutorial zeigen wir Ihnen, wie Sie mit PHP die verwendeten Mindest- und Höchstzahlen sowie die Berechnungsmethode ändern können.
Erstellen des Formulars
Zunächst müssen Sie ein neues Formular erstellen und Ihr benutzerdefiniertes Captcha-Formularfeld zum Formular hinzufügen.
Wenn Sie Hilfe beim Einrichten eines Formulars mit dem benutzerdefinierten Captcha-Formularfeld benötigen, lesen Sie bitte diese Dokumentation.
Hinzufügen des Snippets
Im Folgenden zeigen wir Ihnen zwei verschiedene Schnipsel. Mit dem einen wird nur die Höchstzahl geändert, die in der Gleichung verwendet wird, und mit dem anderen wird die Berechnung nur auf zusätzliche Werte umgestellt.
Wählen Sie einfach eine der unten aufgeführten Optionen aus und fügen Sie sie Ihrer Website hinzu.
Wenn Sie Hilfe beim Hinzufügen von Snippets zu Ihrer Website benötigen, lesen Sie bitte diesen Leitfaden.
Ändern der Mindestanzahl
Im folgenden Beispiel wird die Mindestanzahl für die Gleichung auf 2 gesetzt.
/** * Adjust math captcha settings. * * @link https://wpforms.com/developers/change-the-captcha-math-for-the-custom-captcha-addon/ */ function wpf_dev_math_captcha_settings( $settings ) { /* Default settings array( 'min' => 1, 'max' => 15, 'cal' => array( '+', '*', '-' ), ); */ // Change min number 2 for easier math $settings[ 'min' ] = 2; return $settings; } add_filter( 'wpforms_math_captcha', 'wpf_dev_math_captcha_settings', 30, 1 );
Ändern der maximalen Anzahl
Im folgenden Beispiel wird die Höchstzahl für die Gleichung auf 4 gesetzt.
/** * Adjust math captcha settings. * * @link https://wpforms.com/developers/change-the-captcha-math-for-the-custom-captcha-addon/ */ function wpf_dev_math_captcha_settings( $settings ) { /* Default settings array( 'min' => 1, 'max' => 15, 'cal' => array( '+', '*', '-' ), ); */ // Change max number 4 for easier math $settings[ 'max' ] = 4; return $settings; } add_filter( 'wpforms_math_captcha', 'wpf_dev_math_captcha_settings', 30, 1 );
Nur Multiplikation verwenden
Sie können das Captcha auch so ändern, dass nur die Multiplikation anstelle von Addition und Subtraktion verwendet wird.
In diesem Beispiel ändern wir die Berechnung so, dass nur die Multiplikation verwendet wird.
/** * Adjust math captcha settings. * * @link https://wpforms.com/developers/change-the-captcha-math-for-the-custom-captcha-addon/ */ function wpf_dev_math_captcha_settings( $settings ) { /* Default settings array( 'min' => 1, 'max' => 15, 'cal' => [ '+', '*', '-' ], ); */ // Use multiplication only for calculations $settings[ 'cal' ] = [ '*' ]; return $settings; } add_filter( 'wpforms_math_captcha', 'wpf_dev_math_captcha_settings', 30, 1 );
Und das war's! Mit diesem Codeschnipsel können Sie nun die Zahlen oder die Berechnung ändern, die im benutzerdefinierten Captcha-Feld verwendet werden. Möchten Sie die Anzahl der Zeichen begrenzen, die ein Benutzer in Ihr Formularfeld eingeben kann? Schauen Sie sich unseren Artikel How to Limit the Number of Characters for a Text Field an.
Referenzfilter
FAQ
F: Wie kann ich sie alle in derselben Funktion ändern?
A: Sie können auf jeden Fall das Minimum, das Maximum und die Berechnung in einer Funktion einschließen, indem Sie dieses Snippet verwenden.
function wpf_dev_math_captcha_settings( $settings ) { /* Default settings array( 'min' => 1, 'max' => 15, 'cal' => [ '+', '*' ], ); */ // Use addition only for easier math // Use the minimum number of 1 // Use the maximum number of 10 $settings[ 'cal' ] = [ '+' ]; $settings[ 'min' ] = [ '1' ]; $settings[ 'max' ] = [ '10' ]; return $settings; } add_filter( 'wpforms_math_captcha', 'wpf_dev_math_captcha_settings', 30, 1 );