wp_create_nonce()
- это подключаемая функция, загружаемая после загрузки подключаемых модулей.
Обязательно вызовите ваш метод класса на правильном хуке, 'init'
(или позже) - хорошее место: как только ваша функция выведет что-то (форму), нет причин для запуска раньше, чем это.
wp_verify_nonce()
получает 2 аргумента:
$nonce
$action
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()
Относительно второго аргумента, это зависит от того, как вы строите одноразовое значение.
например. если вы сделали:
<?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()
Если вы создали одноразовый номер с помощью wp_nonce_field (), например:
wp_nonce_field( 'another_action', 'message-send' );
Затем вам нужно проверить одноразовый номер следующим образом:
$verify = wp_verify_nonce( $_POST['message-send'], 'another_action' );
Итак, на этот раз действие - это то, что передано в качестве первого аргумента wp_nonce_field()
.
Recap :
Чтобы пройти проверку wp_verify_nonce()
, вам нужно передать 2 аргумента функции, один из которых является значением в скрытом поле nonce, другой является действием и зависит от того, как было создано значение nonce.