首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AJAX调用中未设置

在AJAX调用中未设置
EN

WordPress Development用户
提问于 2022-11-09 10:08:26
回答 1查看 321关注 0票数 0

在获得API的响应后,我尝试在AJAX调用中设置cookie。API和AJAX调用运行良好,但cookie没有被设置。

我使用了WordPress的“COOKIEPATH”和“WordPress”常量,如本文所述:https://stackoverflow.com/a/8531421/4638682,但这似乎没有起到任何作用。我做错了什么?这里是我的AJAX调用:

代码语言:javascript
复制
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函数,但工作正常。

希望你们能帮我一把。

EN

回答 1

WordPress Development用户

发布于 2022-11-09 12:33:10

显然,我错过了time()属性。因此,当将其添加到setCookie函数中的cookie选项时,将设置cookie。

代码:

代码语言:javascript
复制
setcookie('user-zipcode', $zipcode, time() + MONTH_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN);
setcookie('delivery-today', $cookieVal, time() + DAY_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN);
票数 1
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/411150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档