如何在shopify液体文件中设置和使用会话变量?

时间:2014-10-28 09:38:53

标签: cookies session-variables shopify liquid

我需要在shopify中设置会话变量,但没有找到任何相关文档。

当用户登录shopify应用程序时,它会创建会话(或cookie),然后如何手动完成。 我的要求是将特定页面上的一些输入数据用于另一个可以通过会话变量实现的页面。

如果可以在Shopify中回复,请回复。如果可能,请尝试粘贴一些代码。如果没有,那么我该如何在Shopify中执行此操作。

感谢。

2 个答案:

答案 0 :(得分:1)

不确定您是否曾经弄明白,但是我在此处使用javascript跟踪推介着陆页的方式:

我添加了一个包含代码(https://www.myshopifysite.com/pages/StoreRef?ref=somerefferer)的目标网页,该代码会在存储Cookie后重定向到主商店页面。



<script>
function getParameterByName(name, url) {
    if (!url) {
      url = window.location.href;
    }
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}

function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+ d.toUTCString();
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
setCookie('referral',getParameterByName('ref', null,1));
window.location = 'http://www.myshopifysite.com';
</script>
&#13;
&#13;
&#13;

然后,在稍后的某个页面上 - 我添加了一个检查Cookie的页面 - (https://www.myshopifysite.com/pages/CheckRef

&#13;
&#13;
<script>
function getCookie(cname) {
    var name = cname + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var ca = decodedCookie.split(';');
    for(var i = 0; i <ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}

//alert('cookie val:' + getCookie('referral'));
</script>
&#13;
&#13;
&#13;

注意: 这取决于客户端是否已经开启了Cookie。在他们的浏览器上,虽然我怀疑这些天大多数人都这样做。

请注意您的域名(&#34; http://www.example.com&#34; vs&#34; http://example.com&#34;可能会导致Cookie问题 - 以及Shopify等内容,我已经找到了。

答案 1 :(得分:0)

<script>
function getParameterByName(name, url) {
    if (!url) {
      url = window.location.href;
    }
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}

function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+ d.toUTCString();
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
setCookie('referral',getParameterByName('ref', null,1));
window.location = 'http://www.myshopifysite.com';
</script>