Ich versuche, ein Sicherheitsfragenfeld für meine Anmeldeseite zu erstellen

In den letzten 2 Stunden habe ich versucht, ein mu-Plugin zu erstellen, bei dem der Benutzer zuerst eine Frage beantworten muss, damit er sich auf der Website einloggen kann.

Es ist “Was ist der Name des weißen Pferdes von Napoleon?”, So der Benutzer antwortet “weiß” und es sollte funktionieren, durch die Theorie. Das Problem ist, dass es scheint, dass es während der Anmeldung nicht validiert wird. Das ist mein Code:

 

add( 'proofempty', 'ERROR: You did not answer the proof-of-humanship question.' ); } elseif ( strtolower( $_POST[ 'user_proof' ] ) != 'white' ) { return $errors->add( 'prooffail', 'ERROR: You did not answer the proof-of-humanship question correctly.' ); } } ?>

Ich glaube, das Problem ist mit dem Teil:

 add_action( 'login_post', 'add_login_field_validate', 10, 3 ); 

Kann mir jemand hier helfen?

Solutions Collecting From Web of "Ich versuche, ein Sicherheitsfragenfeld für meine Anmeldeseite zu erstellen"

Es gibt keine ” login_post -Aktion, die ich kenne – benutze stattdessen den authenticate Filter innerhalb von wp_authenticate() , der von wp_signon() aufgerufen wird:

 function wpse_185339_check_user_answer( $user ) { if ( $_SERVER['REQUEST_METHOD'] === 'POST' ) { if ( empty( $_POST[ 'user_proof' ] ) ) { $user = new WP_Error( 'proofempty', 'ERROR: You did not answer the proof-of-humanship question.' ); } elseif ( strtolower( $_POST[ 'user_proof' ] ) !== 'white' ) { $user = new WP_Error( 'prooffail', 'ERROR: You did not answer the proof-of-humanship question correctly.' ); } } return $user; } add_filter( 'authenticate', 'wpse_185339_check_user_answer', 100 );