wp_ajax-Handler mit mehreren classninstanzen

Vor acht Monaten habe ich dort fast die gleiche Frage gestellt. Aber das Problem ist noch nicht getriggers.

Aber ich habe eine zusätzliche Idee, warum es versagt. In der Zwischenzeit ist mein Code fortgeschritten. Ich habe mehrere classn, die alle die gleiche Struktur haben:

 ...  

und dann habe ich meine “Starter” -Datei, die alle Dateien benötigt und den Plugin-Header hat:

  

Während des require_once die Admin- und benutzerdefinierten Post-classn ordnungsgemäß instanziiert. Aber wenn ich eine Ajax-Anfrage von der Admin-class abfange, wird die Anfrage neuer zurückgegeben. Es erreicht die JS-Datei, aber danach wird der Callback nicht aufgerufen, ich denke, er wird nicht gefunden.

 pluginPath = dirname(__FILE__); add_action( 'admin_enqueue_scripts', array( $this,'add_admin_scripts') ); add_action( 'wp_ajax_blubb', array( $this, 'add_vehicle' ) ); } public function add_admin_scripts( ){ wp_enqueue_script( 'admin_scripts', plugins_url( 'js/functions.admin.js', __FILE__ ), array('jquery') ); // wp_localize_script('admin_scripts', 'ajax_var', array( // 'nonce' => wp_create_nonce( 'ajax-nonce' ) // ) ); } public function add_vehicle() { // $nonce = $_POST['nonce']; // if ( ! wp_verify_nonce( $nonce, 'ajax-nonce' ) ) // die ( 'Busted!'); $title = $_POST['id']; wp_die("Post Id: " . $title); exit; } ... } $wpMcAdmin = new McAdmin(); ?> 

Meine JS-Datei – der Erfolgsrückruf wird nicht ausgeführt …

 $('.add-vehicle').click(function(){ var data = { action: "blubb", // nonce: ajax_var.nonce, id: 1 }; $.post( ajaxurl, data, function( response ) { //on success alert('Server response from the AJAX URL ' + response); }); }); 

Ich nehme an, dass während der Einrichtung der McAdmin() class innerhalb von Mc() der Callback nicht weiß, wohin er zurückgehen soll. Wie kann ich meinen callback in der richtigen classninstanz ( McAdmin() ) McAdmin() ?

Danke & BR,

Mybecks

Solutions Collecting From Web of "wp_ajax-Handler mit mehreren classninstanzen"

Ihr McAdmin scheint in Ordnung – das Problem ist wahrscheinlich einer von zwei Gründen:

  1. Ein weiterer AJAX-Hook für blubb beendet das Skript vor McAdmin::get_vehicle
  2. Sie müssen den gleichen Hook für wp_ajax_nopriv_blubb – für nicht-eingeloggte AJAX-Anfragen (andernfalls schlägt es stillschweigend fehl).

Wenn dies nicht der Fall ist, müssen Sie eine kleine HTTP-Überprüfung durchführen – ich verwende Firebug oder HttpFox – und debugge die Serverantwort für die AJAX-Anfrage.

Ich habe es schließlich getriggers, mein Problem war, dass ich vergessen habe, die Ergebnisse in die JS-Datei zurückzusenden. Ich habe es jetzt gemacht mit:

 public function add_vehicle() { .... $response = json_encode( $POST ); //as sample // response output -> sent back to javascript file header( "Content-Type: application/json" ); echo $response; die(); } 

Auch ich habe den die(); vergessen die(); am Ende der function.