Wordpress :: Нужно позвонить Ajax Действие с помощью дополнительного скрипта. php Файл в root папке Wordpress - PullRequest
0 голосов
/ 06 февраля 2020

У нас есть требование для запуска сценария костюма (файл php) в root wordpress

Просто у нас есть файл script.php в root проекта wordpress.

когда я запускаю https://mywordpress.co/script.php, просто мне нужно вызвать Ajax Action с помощью Curl, но кое-что, как это не работает. и он отвечает мне 0

в файле, который я вызываю ниже cURL код для вызова ajax действие, но не работает

$curl = curl_init();
        curl_setopt_array($curl, array(
          CURLOPT_URL => "https://xxxxxxxxxxxxxxxxx.com/wp-admin/admin-ajax.php",
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => "",
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 30,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => "POST",
          CURLOPT_POSTFIELDS => "blakey=blaval",
          CURLOPT_HTTPHEADER => array(

            "action: create_xxxxx",
            "type: product_variation",
            "id:".$post_id,
            "value:".$xxxxxx,

            "cache-control: no-cache",
            "content-type: application/x-www-form-urlencoded",


          ),
        ));

        $response = curl_exec($curl);
        $err = curl_error($curl);
        curl_close($curl); 

        if ($err) {
          echo "cURL Error #:" . $err;
        } else {
          echo 'cURL response:'.$response.'----------------';
        }

Как я могу вызвать действие из внешнего файла php в root WordPress. Заранее спасибо

1 Ответ

0 голосов
/ 06 февраля 2020

Правильный способ сделать AJAX запросов в WordPress - использовать wp_ajax_{$action} (для пользователей, вошедших в систему) и wp_ajax_nopriv_{$action} (для пользователей, не вошедших в систему).

Реализация это довольно просто:

function my_ajax() {
    // do something and return
}
add_action('wp_ajax_my_ajax', 'my_ajax'); // For logged-in users
add_action('wp_ajax_nopriv_my_ajax', 'my_ajax'); // For non logged-in users

Сначала вы создаете функцию для обработки вашего запроса AJAX. Затем вы подключаетесь к wp_ajax_{action} и / или wp_ajax_nopriv{action}. Использование обоих вариантов зависит от вашего случая.

Затем в коде JavaScript вы должны сделать так:

fetch(
    'https://xxxxxxxxxxxxxxxxx.com/wp-admin/admin-ajax.php',
    { first_name: 'Tarun', last_name: 'Bariya' }
).then(response => {
    return response.json(); // my_ajax() should return a JSON object
}.then(data => {
    // Do something with data
}));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...