Я не понимаю, почему этот вызов ajax не срабатывает в моем классе. Я думаю, что у меня что-то неуместно или мне нужно вызвать add_action jQuery в исходном файле плагина или как? Я в недоумении. Я построил класс неправильно или как? Обратная связь была бы отличной. Я могу добавить другие файлы или объяснить более подробно, если это необходимо ..
администрация. php
class Administration {
public function __construct() {
// Add Administration Page
add_action( 'admin_menu' , array ( $this , 'plugin_admin_add_menu'));
}
public function plugin_admin_add_menu() {
// Administration Page creation
$hook = add_menu_page(
'Image Uploader Display',
'Image Uploader Display',
'manage_options',
'image-uploader-display',
array( $this , 'image_uploader_display_administration_main'), '');
// Adds styles and scripts to Administration Page
add_action("load-" . $hook, array( $this, 'image_uploader_display_administration_styles_scripts' ) );
}
public function image_uploader_display_administration_main() {
require_once ( PLUGIN_FOLDER . '/administration/templates/main.php' );
}
public function image_uploader_display_administration_styles_scripts(){
wp_enqueue_style('image-uploader-display-administration', PLUGIN_DIR . 'administration/css/image-uploader-display-administration.css', array(), '0.0.0', 'all');
wp_enqueue_script( 'image-uploader-display-administration', PLUGIN_DIR . 'administration/js/image-uploader-display-administration.js', array('jquery'), null, true);
wp_localize_script( 'image-uploader-display-administration', 'set_post_types', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
**Adding action ->** add_action( 'wp_ajax_set_post_types', array( $this, 'image_uploader_display_administration_set_post_types' ) );
}
public function image_uploader_display_administration_set_post_types() {
echo "Set Post Types Ajax Return";
wp_die();
}
}
$IUDadministration = new Administration();
image-uploader-display-Administration. js
(function($) {
$("#admin-iud #set_post_types").on('click', function(){
// alert("Here works");
$.ajax({
url: set_post_types.ajax_url,
type: 'POST',
data: {
action: set_post_types
},
success: function(response) {
alert(response);
}
});
})
})(jQuery);
image-uploader-display. php (исходный файл плагина)
define('PLUGIN_FOLDER', dirname(__FILE__) );
define('PLUGIN_DIR', plugins_url() . '/image-uploader-display/');
define('PLUGIN_VERSION', '1.0');
define('PLUGIN_BASE_FILENAME', plugin_basename(__FILE__));
class Image_Uploader_Display {
public function __construct() {
// Include Administration Page
include_once( PLUGIN_FOLDER . '/administration/administration.php' );
//
//
}
}
$IUD = new Image_Uploader_Display();
?>
Obvioulsy что-то установлено неправильно, или я не знаю, что ...