La funzione check_ajax_referer([$action, $query_arg, $die]) è il metodo di controllo sulle chiamate via ajax di un “nonce” creato in precedenza con la funzione wp_create_nonce()
<!--codice nella pagina "chiamante"--> <?php $print_nonce=wp_create_nonce( "print_document" ); ?> <script> jQuery(document).ready(function ($) { $(".export-pdf").click(function() { $.ajax({ url: ajaxurl, method:'POST', data: { 'action': 'save_pdf_document', //...... security:"<?php echo $print_nonce?>", }, success: function (result) { console.log(result); }, error: function (errorThrown) { console.log(errorThrown); } }) } }) </script> <!--FINE codice nella pagina "chiamante"--> <!--codice nel file functions.php"--> <?php function save_pdf_document() { if(check_ajax_referer('print_document', 'security',false ) && current_user_can('manage_documents') ){ save_PDF();//funzione definita altrove; } else die('security Issue'); die(); } add_action( 'wp_ajax_save_pdf_document', 'save_pdf_document' );
La verifica del “token” (nonce) di sicurezza (la cui chiave nell’esempio è “security”) con la funzione check_ajax_referer() ( oltre che alla capability dell’utente per ulteriore -e necessaria- misura di sicurezza) determina l’esecuzione o meno delle operazioni successive
Scrivi un commento