php - 如何通过 Wordpress REST 创建 cookie
问题描述
我需要通过 Wordpress REST 更新 cookie
我有功能和注册路线。
const COOKIE_NAME = "wts_wishlist";
setcookie(COOKIE_NAME, "Empty-wishlist", time() + (365 * 24 * 60 * 60), '/' );
//cookie was created in browser
add_action('init', function () {
//Add to wishlist
function wts_add_to_wishlist()
{
$id = $_GET['id'];
if(!isset($_COOKIE[COOKIE_NAME])) {
return 'Cookie with name "' . COOKIE_NAME . '" does not exist...';
} else {
setcookie(COOKIE_NAME, $id, time() + (365 * 24 * 60 * 60), '/' );
//not changed
return "Product with id {$id} was added to your wishlist";
}
}
}
add_action('rest_api_init', function () {
//POST - Wishlist from cookies
register_rest_route('wts/v1', 'wishlist/add', [
'methods' => 'POST',
'callback' => 'wts_add_to_wishlist',
]);
}
example.com/wp-json/wts/v1/wishlist/add?id=1763 返回 200 和消息。但是浏览器中的cookie没有更新
解决方案
当我复制您的代码并尝试签入我的本地服务器时出现错误。我做了一些改变,并且工作得很好。
const COOKIE_NAME = "wts_wishlist";
setcookie(COOKIE_NAME, "Empty-wishlist", time() + (365 * 24 * 60 * 60), '/' );
//cookie was created in browser
add_action('init', function () {
//Add to wishlist
function wts_add_to_wishlist() {
$id = $_GET['id'];
if(!isset($_COOKIE[COOKIE_NAME])) {
return 'Cookie with name "' . COOKIE_NAME . '" does not exist...';
} else {
setcookie(COOKIE_NAME, $id, time() + (365 * 24 * 60 * 60), '/' );
//not changed
return "Product with id {$id} was added to your wishlist";
}
}
});
// Closed this action
add_action('rest_api_init', function () {
register_rest_route('wts/v1', 'wishlist/add', [
'methods' => 'GET', // Change method to GET for testing.
'callback' => 'wts_add_to_wishlist',
]);
});
// Closed this action
如果您希望在方法中使用 POST 更改 POST 而不是 GET 并尝试使用 POSTMAN 进行测试。
希望这对你有帮助!
推荐阅读
- c# - 为什么我的 json 字符串没有转换成 c# 对象?
- python - 通过 K 获得每个片段的问题意味着使用 Python 和 Opencv 在单独的图像中进行分割
- javascript - 从 WebView 中的页面在外部浏览器中打开链接
- python - 在 pandas 文档中的函数中定义 [,] 参数是什么意思?
- kotlin - 时间段内的随机数
- floating-point - IEEE 754-2008 中规范 NaN 的限制
- amazon-web-services - AWS IoT:限制连接、来自设备的消息
- swift - 如何在 UIImage 上放大之前使 ScrollView 的高度和宽度保持不变?
- math - 排列组合示例的错误答案
- regex - 正则表达式:在开头或某些特殊字符之后匹配字符串