Skip to content

Instantly share code, notes, and snippets.

@outofthesandbox
Created October 18, 2017 21:19
Show Gist options
  • Save outofthesandbox/b78a46e5582607c3b2292223728c7d30 to your computer and use it in GitHub Desktop.
Save outofthesandbox/b78a46e5582607c3b2292223728c7d30 to your computer and use it in GitHub Desktop.
Disable Apps
### Disabling all apps code loaded via `content_for_header`
Apps are all loaded in the header via a single script call, then the remaining assets are loaded below. This process takes place in the liquid tag `content_for_header`.
1. Open theme.liquid and locate the line which reads `{{ content_for_header }}`.
2. Now you can paste the following block of code to disable all apps on a new line before `{{ content_for_header }}`.
```
{% comment %} Leave url_to_remove as 0 to remove all apps, or set to a number to remove a specific app. {% endcomment %}
{% assign url_to_remove = 0 %}
{% assign lines = content_for_header | newline_to_br | split: '<br />' %}
{% for line in lines %}
{% if line contains 'var urls' %}
{% if url_to_remove == 0 %}
{% comment %}Remove all apps{% endcomment %}
{% capture new_line %}
{% endcapture %}
{% assign empty_array = new_line | append: "var urls = [];" %}
{% assign content_for_header = content_for_header | replace: line, empty_array %}
<!-- Removed all apps. -->
{% else %}
{% assign url_string = line | remove: "var urls = [" | remove: "];" | strip %}
{% assign url_array = url_string | split: ',' | uniq %}
{% comment %}Just remove app at index 'url_to_remove' {% endcomment %}
{% for url in url_array %}
{% if forloop.index == url_to_remove %}
{% assign content_for_header = content_for_header | replace: url, '""' %}
<!-- Removed app no. {{ url_to_remove }} of {{ url_array.size }}: {{ url }} -->
{% endif %}
{% endfor %}
{% endif %}
{% endif %}
{% endfor %}
```
3. Save theme.liquid. The above code will remove the assets of all apps enabled on the account by removing them from `{{ content_for_header }}`, so will disable every app which is loaded through there.
### Disabling Individual Apps
If we want to discover which of the 17 apps a store has installed is breaking everything we can disable apps one by one to troubleshoot.
1. Use the same block of code mentioned above, but don't save theme.liquid yet.
2. Now change the value of the liquid variable `url_to_remove` to a number to disable that specific app (e.g. changing it to 3 will disable the 3rd app enabled by {{ content_for_header }}, leaving the value as 0 will disable all apps). Now you can start running through each app to troubleshoot that issue.
3. Visit the storefront in Google Chrome when you have an app disabled and use the inspect tool to search in the storefront's code for the following text: `Removed app no.`. You can repeat this step, disabling each app on the store 1 by 1 until you find the one causing the issue.
@DavO48145
Copy link

How can I check which app is loading 1st and so on?

@sk29110
Copy link

sk29110 commented Oct 13, 2021

Can I use this in none published theme?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment