Так а что не понятно,
Call to undefined function wp_insert_post()
Не знает что это за функция.
--
Что нужно сделать:
Локализуем параметры, подключаем скрипты
wp_localize_script('тут handle js', 'ajax', array(
'url' => admin_url('admin-ajax.php'),
'nonce' => wp_create_nonce('ajax-custom-request'),
));
в файле function.php регистрируем обработчик для ajax
//ajax_init
add_action('init', 'auth_ajax_init');
function auth_ajax_init(){
//для не авторизированных
add_action('wp_ajax_nopriv_custom_request, 'custom_request_callback');
//для авторизированных
add_action('wp_ajax_custom_request', 'custom_request_callback');
}
далее сам обработчик (можно там же в файле function.php):
function custom_request_callback(){
//Проверяем Ajax запрос на соответствие nonce коду, если не соответствует выходим
check_ajax_referer('ajax-custom-request', 'nonce_code');
//Если проверку прошли
//Здесь обрабатываем запрос, здесь доступна $_POST
wp_die();
}
в js скрипте:
let data = {
action: 'ajax-custom-request',
nonce_code: ajax.nonce,
data: здесь сериализуем данные для передачи,
};
$.post(ajax.url, data, function(data, textStatus) {
// здесь обработать ответ data
}, 'json');
https://wp-kama.ru/id_2018/ajax-v-wordpress.html