AJAX в wordpress плагине в switch
Сразу код, который не работает, в конце вопрос =):
Главный файл плагина wordpress: define('UrlPlugin', plugin_dir_path(__FILE__)); // Путь до плагина switch ($_SERVER['REQUEST_URI']) { // Навигация по сайту case '/vyistavit-redaktirovat-golosa': include UrlPlugin.'addEditVote/AddEditVote.php'; break; } Файл AddEditVote.php: add_action( 'wp_ajax_hello', 'say_hello' ); function say_hello() { echo "УРАААААААААААА!"; wp_die(); } //// при хуке действии wp_enqueue_scripts, вызываем функцияю, которая зарегистрирует JS код обработчика AJAX и выставил её после jQuery add_action('wp_enqueue_scripts', function () { wp_enqueue_script('ajaxAddEditVote', plugins_url('/ajaxAddEditVote.js', __FILE__), array('jquery'), null); // До вывода JS, вызванного wp_enqueue_script, выводим JS объект с какими либо значениями wp_localize_script('ajaxAddEditVote', 'localizePlugin', array( 'ajaxURL' => admin_url('admin-ajax.php') )); }); JS с AJAX запросом, добавленный в предыдущем файле: var data = { action: 'hello', }; jQuery.post(localizePlugin.ajaxURL, data, function (response) { alert('Получено с сервера: ' + response); }); Нужно: - Что бы на определённой странице сайта срабатывал AJAX и все файлы, связанные с ним хранились в отдельной папке плагина. - В коде выше, все пути прописаны правильно (перепроверил много раз), экшн для не авторизованных не требуется. - Если из switch вытащить include UrlPlugin.'addEditVote/AddEditVote.php'; И просто разместить в главном файле плагина, то всё работает, но на всех страницах сайта. Как только загоняешь в switch или if, то перестаёт работать и появляется 400 ошибка AJAX |
Цитата:
|
Цитата:
Если именно в этом коде: define('UrlPlugin', plugin_dir_path(__FILE__)); // Путь до плагина switch ($_SERVER['REQUEST_URI']) { // Навигация по сайту case '/vyistavit-redaktirovat-golosa': include UrlPlugin.'addEditVote/AddEditVote.php'; break; } До иклюда вызвать echo чего либо, то это что-либо отображается на сайте. так же, если инклюд вытащить из switch, то всё работает. Поэтому не понимаю что не так |
Потому, что путь ошибочный, код ошибки об этом сообщает. До иклюда вызвать echo чего либо, можно не чего либо, а пути, тогда и ошибка найдется.
|
Часовой пояс GMT +3, время: 11:55. |