TL; DR
En resumen, wp_verify_nonce()
usa ese valor porque espera ese valor como su primer argumento.
wp_verify_nonce()
argumentos
wp_verify_nonce()
recibe 2 argumentos:
-
$nonce
-
$action
El valor en el campo oculto ( 'cabfd9e42d'
en tu ejemplo) representa el $nonce
.
El primer argumento es el nonce y proviene de la solicitud
De hecho, wp_verify_nonce()
tiene que usarse así:
// here I assume that the form is submitted using 'post' as method
$verify = wp_verify_nonce($_POST['message-send']);
Por lo tanto, el primer argumento pasado a wp_verify_nonce()
es exactamente el valor que está presente en el campo oculto.
2do argumento: el método wp_create_nonce()
En cuanto al segundo argumento, depende de cómo construya el valor de nonce.
Por ejemplo, si lo hiciste:
<?php $nonce = wp_create_nonce( 'custom-action' ); ?>
<input type="hidden" name="message-send" value="<?php echo $nonce ?>" />
Entonces tienes que hacer:
$verify = wp_verify_nonce( $_POST['message-send'], 'custom-action' );
Entonces, el segundo argumento es lo que se usó como argumento para wp_create_nonce()
.
2do argumento: el método wp_nonce_field()
Si creó el nonce utilizando wp_nonce_field()
como:
wp_nonce_field( 'another_action', 'message-send' );
Entonces necesitas verificar el nonce así:
$verify = wp_verify_nonce( $_POST['message-send'], 'another_action' );
Entonces, esta vez, la acción es lo que se pasa como primer argumento a wp_nonce_field()
.
Recapitulación
Para pasar la validación de wp_verify_nonce()
necesita pasar 2 argumentos a la función, uno es el valor en el campo oculto de nonce, el otro es la acción , y depende de cómo fue el valor de nonce construido.