Я создаю ссылку с wp_nonce в GET параметре:
$link = esc_url( wp_nonce_url( add_query_arg( 'my_arg', 1 ) , 'product_subscription' ) );
echo '<a href="'. $link .'">'. $link .'</a>';
И если я вставляю это просто в functions.php - оно работает
if(isset( $_GET['_wpnonce'] ) && wp_verify_nonce( $_GET['_wpnonce'], 'product_subscription' ) ) {
echo "Nonce verified";
}
Но если я вставляю эту проверку в функцию
function check_subscription() {
echo "check_subscription";
if(isset( $_GET['_wpnonce'] ) && wp_verify_nonce( $_GET['_wpnonce'], 'product_subscription' ) ) {
echo "Nonce verified";
}
}
И затем вызываю эту функцию из любой страницы, оно не проходить проверку (isset проходит, wp_verify_none - нет). Функция вызывается 100%, т.к. текст "check subscription" выводит, а"Nonce verified" нет.