Come chiamare una funzione PHP da Javascript in WordPress
Ho un plugin molto semplice con un file javascript e un file PHP. Voglio chiamare il file PHP dal mio codice javascript e ottenere l'output. La funzione javascript è qualcosa del genere:
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);
}
e il file PHP che restituisce i risultati:
<?php
$token=Get_Token();
echo $token;
function Get_Token()
{
//Esegue alcune operazioni
return $token;
}
?>
entrambi i file (auth.php e myjs.js) si trovano nella directory principale del plugin.
/home/My_Username/public_html/wp-content/plugins/My_Plugin
Se uso il nome del dominio posso chiamare il file php in ajax.open() e ottenere i risultati, ma so che questo non è il modo corretto di farlo. Come posso chiamare correttamente il file php all'interno del mio codice javascript tramite ajax.open('path_to_php') in WordPress senza indicare il nome del dominio?

Ecco un esempio:
Usa questo codice JavaScript di esempio:
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) {
// Fai qualcosa quando completato
});
e.preventDefault();
});
PHP (includi la funzione nel tuo plugin, non usare un file separato):
// Includi il JavaScript sopra nel tuo 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');
AGGIORNAMENTO:
Aggiungi il codice PHP al tuo file principale del plugin. Crea un file JavaScript - js/jquery.main.js
- e aggiungi il codice sopra. Questo dovrebbe risolvere il problema.

Potresti descrivere un po' di più i tuoi codici? Sono un principiante nel mondo dei plugin. Ho bisogno solo di un codice semplice. Dove dovrei aggiungere wp_enqueue_script, wp_localize_script?
