我试图模拟一个有效负载,一旦设置了集成,我的WordPress webhook将接收到该负载。该负载将包含嵌套的JSON。我无法在我的PHP函数中访问JSON对象中的数据。
这是我可以预期的有效载荷的结构:
data: {
attributes: {
user_name: "John Doe",
user_email: "johndoe@xyz.com"
}
}
下面是我尝试POST相同数据的JavaScript:
fetch(wp_ajax.ajax_url, {
method: 'POST',
body: new URLSearchParams({
action: 'course_signup',
data: {
attributes: {
user_name: "John Doe",
user_email: "johndoe@xyz.com"
}
}
})
})
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.log(err));
下面是我的PHP:
<?php
add_action('wp_ajax_course_signup', 'course_signup');
add_action('wp_ajax_nopriv_course_signup', 'course_signup');
function course_signup()
{
$data = json_decode($_POST['data']);
$user_name = $data['attributes']['user_name'];
$user_email = $data['attributes']['user_email'];
$data = $_POST['data'];
echo json_encode(array(
"action" => $_POST["action"],
"user_name" => $user_name,
"user_email" => $user_email
));
die();
}
下面是我的console.log(response))
的响应:
{
action: "course_signup",
user_email: null,
user_name: null
}
在POST请求的“Network”(网络)选项卡中,我看到有效负载为:
action: course_signup
data: [object Object]
1条答案
按热度按时间s3fp2yjn1#
感谢CBroe,
使用Postman有助于简化这一过程。
我将PHP更新为以下版本,这样我就可以访问所需的数据: