Как вызвать PHP функцию из Javascript в WordPress
У меня есть простой плагин с javascript файлом и PHP файлом. Я хочу вызвать PHP файл из моего javascript кода и получить результат. Javascript функция выглядит примерно так:
function img_upload(){
var ajax = new XMLHttpRequest();
ajax.open('GET', 'http://My_Domain_Name.com/wp-content/plugins/My_Plugin/auth.php', false);
ajax.send();
if (ajax.status === 200) {
console.log(ajax.responseText);
}
и PHP файл, который возвращает результаты:
<?php
$token=Get_Token();
echo $token;
function Get_Token()
{
//Выполнить некоторые действия
return $token;
}
?>
оба файла (auth.php и myjs.js) находятся в корневой директории плагина.
/home/My_Username/public_html/wp-content/plugins/My_Plugin
Если я использую доменное имя, я могу вызвать php файл в ajax.open() и получить результаты, но я знаю, что это неправильный способ. Как правильно вызвать php файл внутри моего javascript кода через ajax.open('path_to_php') в WordPress без указания доменного имени?

Вот пример:
Используйте этот пример кода на JavaScript:
jQuery(document).on('click', '.some-element', function(e){
var ipc = jQuery(this).data('collection-id');
jQuery('.some-other-element').show();
jQuery.ajax({
method: 'post',
url: ipAjaxVar.ajaxurl,
data: {
collection_id: ipc,
action: 'my_function',
}
}).done(function(msg) {
// Действия после успешного выполнения
});
e.preventDefault();
});
PHP (включите функцию в ваш плагин, не используйте отдельный файл):
// Подключите JavaScript выше в вашем плагине
wp_enqueue_script('main', plugins_url('js/jquery.main.js', __FILE__), array('jquery'), '', true);
wp_localize_script('main', 'ipAjaxVar', array(
'ajaxurl' => admin_url('admin-ajax.php')
));
add_action('wp_ajax_my_function', 'my_function');
ОБНОВЛЕНИЕ:
Добавьте PHP-код в основной файл вашего плагина. Создайте JavaScript-файл - js/jquery.main.js
- и добавьте в него код выше. Это должно сработать.

Не могли бы вы немного подробнее описать ваш код? Я новичок в мире плагинов. Мне нужен простой код. Куда мне следует добавить wp_enqueue_script, wp_localize_script?
