Cómo llamar a una función PHP desde Javascript en WordPress
Tengo un plugin muy simple con un archivo javascript y un archivo PHP. Quiero llamar al archivo PHP desde mi código javascript y obtener la salida. La función javascript es algo como lo siguiente:
function img_upload(){
var ajax = new XMLHttpRequest();
ajax.open('GET', 'http://Mi_Nombre_Dominio.com/wp-content/plugins/Mi_Plugin/auth.php', false);
ajax.send();
if (ajax.status === 200) {
console.log(ajax.responseText);
}
y el archivo PHP que devuelve los resultados:
<?php
$token=Get_Token();
echo $token;
function Get_Token()
{
//Hacer algunas cosas
return $token;
}
?>
ambos archivos (auth.php y myjs.js) están en el directorio raíz del plugin.
/home/Mi_Usuario/public_html/wp-content/plugins/Mi_Plugin
Si uso el nombre de dominio puedo llamar al archivo php en ajax.open() y obtener los resultados, pero sé que esta no es la forma correcta de hacerlo. ¿Cómo puedo llamar al archivo php dentro de mi código javascript vía ajax.open('ruta_al_php') en WordPress apropiadamente sin indicar el nombre de dominio?

Aquí tienes un ejemplo:
Usa este código JavaScript de ejemplo:
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) {
// Haz algo cuando termine
});
e.preventDefault();
});
PHP (incluye la función en tu plugin, no uses un archivo separado):
// Incluye el JavaScript anterior en tu plugin
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');
ACTUALIZACIÓN:
Añade el código PHP a tu archivo principal del plugin. Crea un archivo JavaScript - js/jquery.main.js
- y añade el código anterior. Eso debería funcionar.

¿Podrías describir un poco más tus códigos? Soy nuevo en el mundo de los plugins. Necesito solo un código simple. ¿Dónde debería agregar wp_enqueue_script, wp_localize_script?
