具有自定义输入值的产品不会保存其整个长度,并且客户发票的前 32 个字符被剪裁。
我正在处理的商店中的一种产品有一个测试区域,供用户输入产品的自定义值。
此产品属性通过管理员设置为 150 个字符的长度,但是当有人订购并填写时,他们输入的信息在发票页面上查看时会在第 32 个字符之后被截断。
我能做些什么来解决这个问题?
具有自定义输入值的产品不会保存其整个长度,并且客户发票的前 32 个字符被剪裁。
我正在处理的商店中的一种产品有一个测试区域,供用户输入产品的自定义值。
此产品属性通过管理员设置为 150 个字符的长度,但是当有人订购并填写时,他们输入的信息在发票页面上查看时会在第 32 个字符之后被截断。
我能做些什么来解决这个问题?
您的数据库列太小而无法捕获自由文本字段,尽管您可能在管理员中将其设置为。
下订单时,购物车中每件商品的任何属性都将保存到 orders_products_attributes 表中。如果文本字段是客户可以指定的属性的一部分,则会将其保存在该项目行的 products_options_values 列中。
默认情况下,这是一varchar(32)
列。这意味着即使您在管理控制台中将其设置为 255,数据库也只会保留前 32 个字符。
您可以通过 phpMyAdmin 或 Adminer 跳转到数据库并运行此 SQL 来增加列字段大小:
ALTER TABLE orders_products_attributes
CHANGE products_options_values
products_options_values varchar(250) NOT NULL DEFAULT '';
上面的 SQL 会将 products_options_values 列的大小更新为最大 250 个字符。根据需要进行调整。
现在,包含自由文本产品属性的所有未来购买将在发票中显示最多 250 个字符。