詢問顧客如何得知您的商店

您可以將「您從何種管道得知我們的商店?」表單欄位新增至購物車頁面,以詢問顧客從哪裡聽說您的商店。

您從何種管道得知我們的商店?

建立「您從何種管道得知我們的商店?」表單欄位

建立「您從何種管道得知我們的商店?」表單欄位:

  1. 「程式碼片段」目錄中,按一下「新增程式碼片段」

  2. 建立程式碼片段:

    1. 將程式碼片段命名為 hear-about-us
    2. 按一下「建立程式碼片段」
  3. 在新的程式碼片段 hear-about-us.liquid 中,貼上下列程式碼:

```liquid
<style>
#how-did-you-hear-about-us--label,
#how-did-you-hear-about-us-other--label {
    font-weight: bold;
}

select#how-did-you-hear-about-us,
input#how-did-you-hear-about-us-other {
    width: 100%;
    padding: 8px 10px 8px 10px;
    line-height: 1.2;
}

#how-did-you-hear-about-us,
#how-did-you-hear-about-us-other,
#how-did-you-hear-about-us--label,
#how-did-you-hear-about-us--error,
#how-did-you-hear-about-us-other--label,
#how-did-you-hear-about-us-other--error {
    display:block;
    margin-bottom: 5px;
}

#how-did-you-hear-about-us-other.error,
#how-did-you-hear-about-us.error {
    border: 2px solid {{ settings.hau_error_color }};
}

#how-did-you-hear-about-us--error,
#how-did-you-hear-about-us-other--error {
    color: {{ settings.hau_error_color }};
}
</style>

<div class="form-vertical">
<p>
    <label id="how-did-you-hear-about-us--label" for="how-did-you-hear-about-us">How did you hear about us?</label>
    <span id="how-did-you-hear-about-us--error" style="display:none">{{ settings.hau_error_message }}</span>
    <select id="how-did-you-hear-about-us" name="attributes[how-did-you-hear-about-us]">
    <option value=""{% if cart.attributes.how-did-you-hear-about-us == "" %} selected{% endif %}>Please make a selection</option>
    {% assign optionsArray = settings.hau_form_options | split: ',' %}
    {% for o in optionsArray %}
    {% assign option = o | strip %}
    <option value="{{ option }}"{% if cart.attributes.how-did-you-hear-about-us == option %} selected{% endif %}>{{ option }}</option>
    {% endfor %}
    <option value="Other"{% if cart.attributes.how-did-you-hear-about-us == "Other" %} selected{% endif %}>Other</option>
    </select>
</p>
<p id="otherFormWrapper" style="{% unless cart.attributes.how-did-you-hear-about-us == 'Other' %}display:none{% endunless %}">
    <label id="how-did-you-hear-about-us-other--label" for="how-did-you-hear-about-us-other">Other</label>
    <span id="how-did-you-hear-about-us-other--error" style="display:none">{{ settings.hau_error_message_other }}</span>
    <input id="how-did-you-hear-about-us-other" type="text" name="attributes[how-did-you-hear-about-us-other]" value="{{ cart.attributes.how-did-you-hear-about-us-other }}"/>
</p>
</div>

<script>
(function() {

    document.addEventListener("DOMContentLoaded", initForm);
    document.addEventListener("shopify:section:load", initForm);

    function initForm(){

    var formElement = document.querySelector('#how-did-you-hear-about-us');
    var formError = document.querySelector('#how-did-you-hear-about-us--error');
    var otherFormElement = document.querySelector('#how-did-you-hear-about-us-other');
    var otherFormError = document.querySelector('#how-did-you-hear-about-us-other--error');
    var otherFormWrapper = document.querySelector('#otherFormWrapper');
    var checkoutButtons = document.querySelectorAll('[name="checkout"], [name="goto_pp"], [name="goto_gc"]');

    function showOrHideForm(){
        if (formElement.value == 'Other'){
        otherFormWrapper.style.display = '';
        } else {
        otherFormWrapper.style.display = 'none';
        }
    }

    function checkFormElement(){
        if (formElement.value.length == 0){
        formElement.classList.add('error');
        formError.style.display = '';
        } else {
        if (formElement.classList.contains('error')){
            formElement.classList.remove('error');
            formError.style.display = 'none';
        }
        }
    }

    function checkOtherFormElement(){
        if (otherFormElement.value.length == 0){
        otherFormElement.classList.add('error');
        otherFormError.style.display = '';
        } else {
        if (otherFormElement.classList.contains('error')){
            otherFormElement.classList.remove('error');
            otherFormError.style.display = 'none';
        }
        }
    }

    otherFormElement.addEventListener("input", function() {
        {% if settings.hau_form_validation %}
        checkOtherFormElement();
        {% endif %}
    });

    formElement.addEventListener("change", function() {
        showOrHideForm();
        {% if settings.hau_form_validation %}
        checkFormElement();
        {% endif %}
    });

    checkoutButtons.forEach(function(element){
        element.addEventListener("click", function(evt) {

        {% if settings.hau_form_validation %}
        var validated = true;
        if (formElement.value.length == 0){
            checkFormElement();
            validated = false;
        }
        if (formElement.value == 'Other'){
            if (otherFormElement.value.length == 0){
            checkOtherFormElement();
            validated = false;
            }
        }
        if (!validated) {
            evt.preventDefault();
            evt.stopPropagation();
        }
        {% endif %}
        });
    });

    }
})()
</script>
1. 點擊「**儲存**」。

## 在購物車頁面中包含程式碼片段

若要在您的購物車頁面中加入**「您從何種管道得知我們的商店?」**程式碼片段:

1. 在「**區段**」目錄中,點擊「`cart-template.liquid`」。如果您的佈景主題不包含「`cart-template.liquid`」,則可以在「**範本**」目錄中,點擊「`cart.liquid`」。

2. [找到](/manual/productivity-tools/keyboard-shortcuts#find)程式碼中的結束標籤 `</form>`。在結束標籤 `</form>` 上方新的一行,貼上下列程式碼

     `liquid
{% render 'hear-about-us' %}
` 

3. 點擊「**儲存**」。

## 為配置設定新增佈景主題設定

1. 在**組態**目錄中,點擊「`settings_schema.json`」。

2. 在程式碼中[尋找](/manual/productivity-tools/keyboard-shortcuts#find)第一個右大括號「`},`」。在右大括號「`},`」下方新的一行貼上以下程式碼:

     `json
{
"name": "Hear About Us",
"settings": [
    {
        "type": "text",
        "id": "hau_form_options",
        "label": "Form options",
        "default": "Facebook, Twitter, Google, Instagram, Youtube",
        "info": "Separate each option with a comma"
    },
    {
        "type": "header",
        "content": "Form validation"
    },
    {
        "type": "checkbox",
        "id": "hau_form_validation",
        "label": "Enable form validation",
        "default": true
    },
    {
        "type": "text",
        "id": "hau_error_message",
        "label": "Error message",
        "info": "The error message that is displayed when no selection is made",
        "default": "Please select an option below"
    },
    {
        "type": "text",
        "id": "hau_error_message_other",
        "label": "Other field error message",
        "info": "The error message that is displayed when there is no input in the 'Other' field",
        "default": "Please fill the text field below"
    },
    {
        "type": "header",
        "content": "Error styling"
    },
    {
        "type": "color",
        "id": "hau_error_color",
        "label": "Color",
        "default": "#ff0000"
    }
]
},
` 

3. 點擊「**儲存**」。

## 將表單欄位設為必填

若您想避免顧客未在**「您從何種管道得知我們的商店?」**表單欄位中選取選項就進入結帳頁面,可以將該欄位設為必填。

1. 在「**區段**」目錄中,點擊「`cart-template.liquid`」。如果您的佈景主題不包含「`cart-template.liquid`」,則可以在「**範本**」目錄中,點擊「`cart.liquid`」。

2. 在購物車表單程式碼中[尋找](/manual/productivity-tools/keyboard-shortcuts#find)下列「`novalidate`」屬性:

novalidate `` 3. 用以下程式碼取代「novalidate`」屬性:

{% unless settings.hau_form_validation %}novalidate{% endunless %}
  1. 點擊「儲存」。

  2. 佈景主題編輯器中,點擊側邊欄的「佈景主題設定」

  3. 點擊「得知我們的商店」分頁。

  4. 「表單驗證」下,確認已啟用「啟用表單驗證」設定。

設定您的選項

如果您要自訂「您從何種管道得知我們的商店?」下拉式選單中的選項,可以使用佈景主題編輯器中的佈景主題設定來編輯選項。

  1. 佈景主題編輯器中,點擊「佈景主題設定」

  2. 點擊「得知我們的商店」分頁。

  3. 「表單選項」下新增或移除選項,並以逗號分隔各選項。

  4. 點擊「儲存」。

常見問題

我可以在何處查看擷取的資料?

您可以在管理介面找到訂單,然後從訂單的「其他詳細資訊」區段中看到答案:

訂單的「其他詳細資訊」區段

如果顧客在選項清單中找不到答案,可自行輸入內容嗎?

可以。如果顧客選取「其他」,在下拉式選單的下方會出現一個可供輸入答案的文字方塊

我可以在新訂單通知電子郵件中顯示答案嗎?

可以。若要在新訂單通知電子郵件中顯示顧客回應內容,請執行以下操作:

  1. 前往管理介面中的「通知」頁面,並在「新訂單」電子郵件範本新增以下程式碼:

    liquid This customer heard about us through {% if attributes.how-did-you-hear-about-us-other == blank %}{{ attributes.how-did-you-hear-about-us }}{% else %}{{ attributes.how-did-you-hear-about-us-other }}{% endif %}.

  2. 點擊「儲存」。

準備好開始透過 Shopify 銷售商品了嗎?

免費試用