在获得API的响应后,我尝试在AJAX调用中设置cookie。API和AJAX调用运行良好,但cookie没有被设置。
我使用了WordPress的“COOKIEPATH”和“WordPress”常量,如本文所述:https://stackoverflow.com/a/8531421/4638682,但这似乎没有起到任何作用。我做错了什么?这里是我的AJAX调用:
function run_zipcodecheck()
{
if (empty($_POST['zipcode'])) {
exit;
}
$zipcode = str_replace(' ', '', $_POST['zipcode']);
$link = 'https://import-nl.eflorist.net/api/CheckDelivery?pc=' . $zipcode . '&kd=0';
$deliverytoday = get_api_data($link);
$args = [];
if (!empty($deliverytoday) && ($deliverytoday == '"1"' or $deliverytoday == '1')) {
$type = 'success';
$args['title'] = __("You can get flowers delivered today if you're quick!", 'qore');
$args['close'] = 'false';
$args['class'] = 'my-6';
$cookieVal = '1';
} else {
$type = 'warning';
$args['title'] = __("Unfortunately, delivery of bouquets is no longer possible for today.", 'qore');
$args['close'] = 'false';
$args['class'] = 'my-6';
$cookieVal = '0';
}
setcookie('user-zipcode', $zipcode, MONTH_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN);
setcookie('delivery-today', $cookieVal, DAY_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN);
get_template_part('includes/components/alert', $type, $args);
wp_die();
}“get_api_data”只是一个带有一些错误句柄的wp_remote_get函数,但工作正常。
希望你们能帮我一把。
发布于 2022-11-09 12:33:10
显然,我错过了time()属性。因此,当将其添加到setCookie函数中的cookie选项时,将设置cookie。
代码:
setcookie('user-zipcode', $zipcode, time() + MONTH_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN);
setcookie('delivery-today', $cookieVal, time() + DAY_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN);https://wordpress.stackexchange.com/questions/411150
复制相似问题