Вы просто хотите запустить функцию WP с помощью AJAX?
1) Добавить ajax действий
Это необходимо запустить внутри основного файла плагина. Если вы запустите его только для кода c, он не будет работать. WP немного странный и все ajax использует admin- ajax. php
if ( wp_doing_ajax() ){
add_action( 'wp_ajax_yourcustomfunction', array($this, 'yourcustomfunction') );
add_action( 'wp_ajax_nopriv_yourcustomfunction', array($this, 'yourcustomfunction') );
}
function yourcustomfunction(){
echo 'success';
exit();
}
2) В JavaScript в бэкэнде у вас есть глобальный: ajaxurl для ajax url НО во внешнем интерфейсе вы должны передать это как переменную через wp_localize_script
$datatoBePassed = array(
'ajaxurl' => admin_url( 'admin-ajax.php' ),
);
wp_localize_script( 'your_javascript_script', 'plugin_display_settings', $datatoBePassed );
In JS:
var datavar = {
action: 'yourcustomfunction',
};
$.post(plugin_display_settings.ajaxurl, datavar, function(response){
//response received here. It will be 'success' which is echoed in PHP
});
3) Если вы также хотите запустить одноразовый номер безопасности проверка (чтобы убедиться, что запрос действительно исходит от веб-сайта WP, предотвращает некоторые атаки), он становится немного сложнее:
$ datatoBePassed также должен включать 'security' => wp_create_nonce( 'yourplugin_security_nonce' ),
datavar в JS включает security: plugin_display_settings.security,
Наконец, ваша PHP пользовательская функция начинается с:
// Check security nonce.
if ( ! check_ajax_referer( 'yourplugin_security_nonce', 'security' ) ) {
wp_send_json_error( 'Invalid security token sent.' );
wp_die();
}
// If security check passed, run further