0

我们需要在 wordpress 的根目录中运行服装脚本(一个 php 文件)

简单地说,我们script.php在 wordpress 项目的根目录中有文件。

当我https://mywordpress.co/script.php简单地运行时,我需要使用 Curl 调用 Ajax Action,但有些它不起作用。它回应我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.'----------------';
        }

如何从 wordpress 根目录中的 php 外部文件调用操作。提前致谢

4

1 回答 1

0

在 WordPress 中发出 AJAX 请求的正确方法是使用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
}));

于 2020-02-06T12:27:58.007 回答