我想在自定义页面上创建自定义问卷,然后将答案保存到已登录的客户中。
我制作了一个自定义页面,该页面连接到包含以下代码的自定义.liquid模板:
{% if customer %}
{% form 'customer' %}
{{ form.errors | default_errors }}
{% if form.posted_successfully? %}
<div class="form--success">
<div class="success">Thank you, we have saved your questionaire and calculated your programme.</div>
</div>
<br><br>
{% else %}
... my html form here
<!-- Save -->
<span class="input-group__btn">
<button type="submit" name="commit" class="btn">
<span>Save</span>
</button>
</span>
<br><br>
{% endif %}
{% endform %}
{% else %}
<div style="custom-error">
Not logged in, this feature is available for registered customers only!
<br>
<a href="/account">Click here</a> to register/login now.
</div>
{% endif %}
当我访问自定义页面时,我的html表单呈现。我想弄清楚的是如何将表单数据(最好将表单数据序列化为json)保存到自定义元字段上的已登录客户中;当您单击保存时。
有什么主意吗?
答案 0 :(得分:1)
自定义表单字段
要自定义表单字段,您需要先编辑the above examples中的代码,然后再将其保存到客户注册表单模板中。
名称属性
和元素具有设置为
customer[note][Some Text]
的名称属性很重要,其中“一些文本”标识该字段希望回答什么问题。customer[note]
值是必不可少的,因为这使得信息可以作为客户注释提交。没有它,将不会提交任何内容。您应该编辑的name属性的唯一部分是第二组方括号之间的文本。
因此,您可以尝试:
<input type="text" placeholder="" name="customer[note][Company]" required />
这将显示在他们的用户个人资料中,例如:
另一方面,您必须使用一些正则表达式,或者将note
转储到.js变量中,并编写一个小的接口以通过键提取值。
(我知道(很难)通过这样的表单更新无法访问元字段。)