【问题标题】:Adding a cookie in Shopify在 Shopify 中添加 cookie
【发布时间】:2017-12-09 01:46:09
【问题描述】:

我正在尝试在我的商店中的 cookie 中添加一个值。 Javascript 不是一个选项,因为 cookie 的内容需要在客户端页面源上不可见。

在 PHP 服务器中,它使用如下代码完成:

<?php
$cookie_name = "PHPsecret";
$cookie_value = "The secret";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
?>

有人可以帮我在 Shopify 中实现这一目标吗?即使它可以通过一些变通技巧来完成,例如操纵购物车属性等,也没关系。告诉我怎么做。

非常感谢。

【问题讨论】:

  • Cookie 不是秘密
  • 秘密是指在页面源中不可见。现已编辑。
  • 你传递给客户的任何东西都不是秘密,你不能让任何东西不可见invisible 有几个选项,将服务器端存储在 session 中或存储在 db 中。
  • 谢谢。您能否在会话中对商店服务器端进行更多解释?
  • 服务器端会话在 shopify 中不起作用。也许您可以将值存储为购物车属性。无论哪种方式,您都必须使用 javascript。

标签: javascript php shopify


【解决方案1】:

我需要使用 cookie 将 Shopify 变量 {{ cart.item_count }} 传递给子域。对我来说,在 theme.liquid 底部的 Javascript 中添加这个就可以了:

<script>
  var nowCart = new Date();
  var timeCart = nowCart.getTime();
  var expireTimeCart = timeCart + 1000*36000;
  nowCart.setTime(expireTimeCart); // " + nowCart.toUTCString() + "
  document.cookie = "_count={{ cart.item_count }};domain=.example.com;expires=;SameSite=none;Secure=true";
</script>

</body>
</html>

据我所知,在 Shopify Liquid 中,没有办法“隐藏”cookie。事实上,任何知道如何打开他们的开发工具的人都可以通过任何一种方式读取您的 cookie……它真的需要保密吗(考虑将其添加到液体变量中)?

我可以推荐的下一个最佳选择是将您的 Javascript 放入 theme.liquid 的资产文件夹中的单独 .js 文件中,并将其包含在您的主题中,就像这样,{{ "cookie-code.js" | asset_url | script_tag }}

再一次,如果用户可以打开开发工具,他们仍然可以读取您的 cookie 或查看您的 javascript 文件。也许更详细地阐明您想要实现的目标是什么?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    • 1970-01-01
    相关资源
    最近更新 更多