具有自定义输入值的产品不会保存其全部长度,而客户发票将以前32个字符进行裁剪。
我正在处理的商店中的一个产品有一个测试区域供用户输入产品的自定义值。
此产品属性通过管理员设置为150个字符,但是当有人订购并填写时,他们输入的信息会在发票页面上查看后的第32个字符后被截断。
我该怎么做才能解决这个问题?
答案 0 :(得分:3)
您的数据库列太小,无法捕获自由文本字段,尽管您可能已将其设置为管理员。
下订单时,购物车中每件商品的任何属性都会保存到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个字符。