wp_verify_nonce funktioniert nicht

Ich arbeite an einer Ajax-Anfrage, ich habe mehrere Ajax-Anfragen zu meiner functions.php. Und alle arbeiten, aber das:

Auf meinem php habe ich folgendes:

add_action("wp_ajax_fb_points", "get_fb_points"); add_action("wp_ajax_nopriv_fb_points", "get_fb_points"); function get_fb_points(){ if ( !wp_verify_nonce($_REQUEST['nonce'], 'fb_points_nonce')) { exit('No naughty business'); } echo 'yeah'; die(); } 

Auf der Fußzeile.php habe ich folgendes:

 FB.Event.subscribe('edge.create', function(response) { if(response == '') { $.ajax({ url: '', data: { action: 'fb_points', challenge : 2, nonce : '' }, async: false, success: function(data){ console.log(data); } }); } } ); 

Aber ich weiß nicht, warum es nicht funktioniert die Anfrage Antwort ist “No Naugty Business”. Kann mir jemand helfen, herauszufinden, was falsch ist?

Solutions Collecting From Web of "wp_verify_nonce funktioniert nicht"

Ich weiß nicht, dass ich das Ticket nur auf der Strecke eingereicht habe. Ich habe get_current_user_id() und das Verhalten von wp_create_nonce geändert.

Sinces wp_create_nonce verwendet wp_get_current_user() Ich denke, da ist das Problem.

Wenn ich Daten mit Ajax übergebe, verwende ich lieber check_ajax_referer anstelle von wp_verify_nonce.

 B.Event.subscribe('edge.create', function(response) { if(response == '< ?php echo get_facebook_profile('link'); ?>') { $.ajax({ url: '< ?php echo admin_url('admin-ajax.php'); ?>', data: { action: 'fb_points', challenge : 2, _ajax_nonce : '< ?php echo wp_create_nonce('fb_points_nonce'); ?>' }, async: false, success: function(data){ console.log(data); } }); } } ); function get_fb_points(){ check_ajax_referer( 'fb_points_nonce'); echo 'yeah'; die(); } 

Ich glaube, dass Ihre Methode nicht funktioniert, weil Sie $ _REQUEST anstelle von $ _POST verwenden.

 function get_fb_points(){ $nonce = $_POST['nonce']; if ( !wp_verify_nonce( $nonce, 'fb_points_nonce')) { exit('No naughty business'); } echo 'yeah'; die(); }