隐藏产品shopify的元价格

问题描述 投票:0回答:2

在 Shopify 中。

如果用户未登录,我的网站会隐藏价格。我到处都有隐藏价格,但我只需在

window.ShopifyAnalytics.meta
(元价格)中执行,它显示为 json。

我最终看到了这个结构:

<script>
window.ShopifyAnalytics = window.ShopifyAnalytics || {};
window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
window.ShopifyAnalytics.meta.currency = 'USD';
var meta = {"product":{

...

};
for (var attr in meta) {
  window.ShopifyAnalytics.meta[attr] = meta[attr];
}
</script>

但是我如何隐藏这里的价格?

shopify metadata
2个回答
0
投票
{% if customer == null %}
    <script>
      window.ShopifyAnalytics = window.ShopifyAnalytics || {};
      window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};

      setTimeout(function()
      {
        delete window.ShopifyAnalytics.meta.product
      }, 100);
    </script>
{% endif %}

将其粘贴到 theme.liquid 的 head 标签上。
在单击 > 以在 console.log 上显示对象树之前,尚未评估该值


0
投票

在 theme.liquid 文件的 .. 标签内添加以下代码。

 {% if customer == null %}
    <script>
      new function(){
    const me=this;
    const config = { attributes: false, childList: true, subtree: false };
    me.init=()=>{    
      me.addObserver(document.querySelector("head"),config,me.callback)
    }
    me.callback = (mutationsList, observer)=> {
        // Use traditional 'for loops' for IE 11
        for(const mutation of mutationsList) {
            let target=mutation.target;
            if (mutation.type === 'childList') {
              if( if(window.ShopifyAnalytics && window.ShopifyAnalytics.meta){
                let targetScript=target.querySelector("#web-pixels-manager-setup")
                window.ShopifyAnalytics.meta["product"].variants=[];
                me.stop(observer);
              }
            } 
        }        
    };
    me.stop=(observer)=>{observer.disconnect();};
    me.addObserver=(target, config,callback)=>{
      console.log("add observer",target);
        const observer = new MutationObserver(callback);
        observer.observe(target, config);
    };
    me.init();
    document.addEventListener('DOMContentLoaded', me.initReady, false);
}
    </script>
    {% endif %}

它创建一个观察者来检查子元素是否添加到头部。 添加子项后,它会检查 window.ShopifyAnalytics.meta 是否存在,当存在时,产品变体将被清除为空数组。 并且仅当用户登录时才会执行此操作

© www.soinside.com 2019 - 2024. All rights reserved.