Verwenden von AJAX in FrontEnd mit WordPress Plugin Boilerplate (wppb.io)

Ich versuche, eine Tag-Box ähnlich der des Backend zu machen, aber für das Frontend. Ich verwende AJAX, um Vorschläge für Tags zu erhalten, wenn der Benutzer das Eingabefeld eingibt.

Ich habe AJAX in WordPress in der Vergangenheit ohne Probleme in Themen und so verwendet, aber im Moment versuche ich ein Plugin zu bauen und da es viel komplizierter ist, versuche ich mit WordPress Plugin Boilerplate objektorientiert zu gehen (wppb.io) als Basis.

Aber ich kann es nicht mit dem Boilerplate funktionieren. Der AJAX-Aufruf funktioniert, aber Erfolg: function (data) gibt immer 0 zurück, wenn es “testing” zurückgeben soll, was mich glauben lässt, dass meine function nie aufgerufen wird. Ich habe Stunden damit verbracht und kann den Fehler nicht erkennen

Das ist mein Code:

/public/js/my-plugin-public.js

$('#my_plugin_tags').keyup(function() { var user_input = $(this).val(); var user_input_last = $.trim(user_input.split(',').pop()); $.ajax({ url: my-plugin.ajax_url, type: 'POST', data: { 'user_input': user_input_last }, success:function(data) { console.log(data); }, error: function(errorThrown){ console.log(errorThrown); } }); }); 

/public/class-my-plugin-public.php

 /** * Register the JavaScript for the public-facing side of the site. * * @since 1.0.0 */ public function enqueue_scripts() { wp_enqueue_script( 'my-plugin-public', plugin_dir_url( __FILE__) . 'js/my-plugin-public.js', array( 'jquery' , $this->plugin_name ), $this->version, false ); wp_localize_script( 'my-plugin-public', 'my-plugin' , array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) ); } 

/public/class-my-plugin-class-public.php

 /** * Get tag suggestions from while user writes * * @since 1.0.0 */ public function tags_autofill_function() { echo('Testing'); } 

/includes/class-my-plugin.php

 /** * Register all of the hooks related to the public-facing functionality * of the plugin. * * @since 1.0.0 * @access private */ private function define_public_hooks() { // Load CSS & Scripts $plugin_public = new My_Plugin_Public( $this->get_plugin_name(), $this->get_version() ); $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_styles' ); $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_scripts' ); // Custom Class from My Plugin $plugin_class_public = new My_Plugin_Class_Public(); $this->loader->add_action( 'wp_ajax_tags_autofill_function', $plugin_class_public , 'tags_autofill_function' ); $this->loader->add_action( 'wp_ajax_nopriv_tags_autofill_function', $plugin_class_public , 'tags_autofill_function' ); } 

Solutions Collecting From Web of "Verwenden von AJAX in FrontEnd mit WordPress Plugin Boilerplate (wppb.io)"