Cum să apelezi o funcție PHP din Javascript în WordPress
Am un plugin foarte simplu cu un fișier javascript și unul PHP. Vreau să apelez fișierul PHP din codul meu javascript și să obțin rezultatul. Funcția javascript arată cam așa:
function img_upload(){
var ajax = new XMLHttpRequest();
ajax.open('GET', 'http://Numele_Meu_Domain.com/wp-content/plugins/Plugin_Meu/auth.php', false);
ajax.send();
if (ajax.status === 200) {
console.log(ajax.responseText);
}
și fișierul PHP care returnează rezultatele:
<?php
$token=Get_Token();
echo $token;
function Get_Token()
{
//Execută anumite operații
return $token;
}
?>
ambele fișiere (auth.php și myjs.js) sunt în directorul rădăcină al plugin-ului.
/home/Numele_Meu_Utilizator/public_html/wp-content/plugins/Plugin_Meu
Dacă folosesc numele domeniului pot apela fișierul php în ajax.open() și obțin rezultatele, dar știu că aceasta nu este calea corectă de a face acest lucru. Cum pot apela fișierul php din codul meu javascript prin ajax.open('cale_catre_php') în WordPress în mod corespunzător fără a indica numele domeniului?

Iată un exemplu:
Folosește acest cod JavaScript de exemplu:
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) {
// Fă ceva când acțiunea este finalizată
});
e.preventDefault();
});
PHP (include funcția în pluginul tău, nu folosi un fișier separat):
// Include JavaScript-ul de mai sus în pluginul tău
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');
ACTUALIZARE:
Adaugă codul PHP în fișierul principal al pluginului. Creează un fișier JavaScript - js/jquery.main.js
- și adaugă codul de mai sus. Asta ar trebui să rezolve problema.

Poți să descrii puțin codurile tale? Sunt începător în lumea plugin-urilor. Am nevoie doar de un cod simplu. Unde ar trebui să adaug wp_enqueue_script, wp_localize_script?
