Wie mache ich einen benutzerdefinierten Ajax-Handler?

Ich versuche, benutzerdefinierte Ajax-Handler zu machen, weil die admin-ajax.php zu lange braucht, um Ajax-Anfragen von 7s bis 10s zu behandeln, also google ich es und mange, um einige benutzerdefinierte ajax-handler.php so zu tun

<?php if (is_ajax_request()) { if (isset($_POST["action"]) && !empty($_POST["action"])) { //Checks if action value exists $action = $_POST["action"]; switch($action) { //Switch case for value of action case "test": test_function(); break; } } } //Function to check if the request is an AJAX request function is_ajax_request() { return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'; } function test_function() { $response = wc_get_product(1463); header('Content-Type: application/json'); echo json_encode($response); die(); } 

und ich sende zuerst die Antwort als Text $response = "test" und der Ajax-Aufruf dauerte 300ms, aber wenn ich versuche, die function aus einer anderen Datei wie $response = wc_get_product(1463); Es gibt einen Fehler in der Antwort Fatal error: Call to undefined function wc_get_product() in C:\wamp\www\.... und ich habe versucht, benutzerdefinierte WordPress Ajax Handel mit diesem Ajaxflow-Plugin, aber es ist die gleiche Sache also bitte bitte wie kann ich die funktionen aus anderen dateien aufrufen und vielen dank im vorraus für jede hilfe.

Solutions Collecting From Web of "Wie mache ich einen benutzerdefinierten Ajax-Handler?"

Sie müssen WP-corefunktionsdateien einfügen, so etwas …

 < ?php //mimic the actuall admin-ajax define('DOING_AJAX', true); if (!isset( $_POST['action'])) die('-1'); //make sure you update this line //to the relative location of the wp-load.php require_once('../../../../../wp-load.php'); //Typical headers header('Content-Type: text/html'); send_nosniff_header(); //Disable caching header('Cache-Control: no-cache'); header('Pragma: no-cache'); 

Sie können mehr darüber hier https://coderwall.com/p/of7y2q/faster-ajax-for-wordpress oder hier https://wp-dreams.com/articles/2014/03/better-ajax-handler- lesen for-wordpress-super-schnell-ajax / .