TL; DR
Коротше кажучи, він wp_verify_nonce()
використовує це значення, оскільки очікує, що це значення є його першим аргументом.
wp_verify_nonce()
аргументи
wp_verify_nonce()
отримує 2 аргументи:
$nonce
$action
Значення в прихованому полі ( 'cabfd9e42d'
у вашому прикладі) представляють значення $nonce
.
1-й аргумент - це не поняття, а походить від запиту
Насправді, wp_verify_nonce()
їх потрібно використовувати так:
// here I assume that the form is submitted using 'post' as method
$verify = wp_verify_nonce($_POST['message-send']);
Отже, перший аргумент, переданий в wp_verify_nonce()
це саме значення, яке присутнє в прихованому полі.
2-й аргумент: wp_create_nonce()
метод
Щодо другого аргументу, це залежить від того, як ви будуєте значення nonce.
Наприклад, якщо ви зробили:
<?php $nonce = wp_create_nonce( 'custom-action' ); ?>
<input type="hidden" name="message-send" value="<?php echo $nonce ?>" />
Тоді вам потрібно зробити:
$verify = wp_verify_nonce( $_POST['message-send'], 'custom-action' );
Отже, другий аргумент - це те, що було використано як аргумент wp_create_nonce()
.
2-й аргумент: wp_nonce_field()
метод
Якщо ви створили nonce, використовуючи wp_nonce_field()
:
wp_nonce_field( 'another_action', 'message-send' );
Тоді вам потрібно перевірити так, як це було:
$verify = wp_verify_nonce( $_POST['message-send'], 'another_action' );
Отож, цього разу ця дія все-таки передається як перший аргумент wp_nonce_field()
.
Резюме
Для проходження wp_verify_nonce()
перевірки вам потрібно передати 2 аргументи функції, один - це значення у не прихованому полі, інший - дія , і залежить від того, як було побудовано значення nonce.
$nonce
значення - чек повертає помилковим, якщо$nonce
значення відсутнє.