Last active
August 11, 2020 17:40
-
-
Save bourroush/6f7ed3a5ce745532fe46eef618aab0f6 to your computer and use it in GitHub Desktop.
Notifications - Customer Metafields
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{% assign valid_keys = ['products','brands','story_prefs','bookmarks'] %} | |
{% assign customer = form.customer_id | get: "Customer" %} | |
{% assign u_customer = "Customer" | new: customer.id %} | |
{% assign u_customer.metafields = [] %} | |
{% assign customer.metafields = "Metafield" | get_all: {parent:customer} %} | |
{% for key in valid_keys %} | |
{% if form.field == key %} | |
{% assign c_metafield = null %} | |
{% for m in customer.metafields %} | |
{% if m.namespace == 'favourites' and m.key == key %}{% assign c_metafield = m %}{% endif %} | |
{% endfor %} | |
{% if c_metafield %} | |
{% assign metafield = 'Metafield' | new: c_metafield.id %} | |
{% assign metafield.namespace = 'favourites' %} | |
{% assign metafield.key = key %} | |
{% assign metafield.value_type = "string" %} | |
{% assign metafield.value = c_metafield.value %} | |
{% else %} | |
{% assign metafield = 'Metafield' | new %} | |
{% assign metafield.namespace = 'favourites' %} | |
{% assign metafield.key = key %} | |
{% assign metafield.value_type = "string" %} | |
{% assign metafield.value = "" %} | |
{% endif %} | |
{% if form.type == 'add' %} | |
{% if metafield.value %} | |
{% assign meta_array = metafield.value | split: ',' %} | |
{% assign meta_array[meta_array.size] = form.value %} | |
{% assign metafield.value = meta_array | uniq | join: ',' %} | |
{% else %} | |
{% assign metafield.value = form.value %} | |
{% endif %} | |
{% elsif form.type == 'remove' %} | |
{% assign meta_array = metafield.value | replace: "(,|^)\K" + form.value + "(,|$)", "" | split: ',' %} | |
{% assign metafield.value = meta_array | uniq | join: ',' %} | |
{% assign metafield.value = metafield.value | replace: ",,","," %} | |
{% assign metafield.value = metafield.value | replace: "^,","" %} | |
{% assign metafield.value = metafield.value | replace: ",$","" %} | |
{% endif %} | |
{% assign u_customer.metafields[u_customer.metafields.size] = metafield %} | |
{% endif %} | |
{% endfor %} | |
{% debug u_customer %} | |
{% if metafield.value == "" %} | |
{% assign metafield = metafield | delete %} | |
{% else %} | |
{% assign u_customer = u_customer | update %} | |
{% endif %} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment