我正在使用woocommerce处理wordpress并使用WCK plugin作为自定义字段。我以编程方式创建产品。
我需要将自定义字段数据保存为数据库中的数组。但它没有正确保存,也没有在产品的后端显示自定义字段值。我正在使用此代码。
$data= array(
'alternative-product-names' => $alternative_pname,
'manufacturers-part-number' => $manufature_park_number,
'currently-packaged'=> $currently_packaged,
'other-package-options' => $other_pkg_opt,
'inner-pack-qty' => $inner_pack_qty,
'inner-pack-dimensions' => $inner_pck_dimension,
'packaging-picture'=>''
);
update_post_meta( $post_id, 'productextrainfo1234', $data );
我需要以这种格式保存数据:
一个:1:{I:0;一个:15:{S:25:"可替代产品,名称&#34 ;; S:4:" fgfg&#34 ;; S:25 :"制造商 - 部分 - 数&#34 ;; S:4:" gffg&#34 ;; S:18:"目前包装&#34 ;; S:4:" fgfg&#34 ;; S:21:"其他封装选项&#34 ;; S:4:" fgfg&#34 ;; S:14:"内包-数量&#34 ;; S:4:" fggf&#34 ;; S:21:"内包维度&#34 ;; S:17:"包装图象&#34 ;; S:3 :" 561&#34 ;;}}
答案 0 :(得分:4)
测试代码后:
首先,由于数组中有 7行键/值,因此序列化字符串不能以
a:1:{i:0;a:15:{ …
开头,而是a:1:{i:0;a:7:{ …
。其次,您需要将数组嵌入到一个空数组中,以获得您想要的正确格式:
的a:1:{i:0;a:7:{ … }};
即可。
所以你的代码必须是这样的:
$data= array(
array(
'alternative-product-names' => $alternative_pname,
'manufacturers-part-number' => $manufature_park_number,
'currently-packaged' => $currently_packaged,
'other-package-options' => $other_pkg_opt,
'inner-pack-qty' => $inner_pack_qty,
'inner-pack-dimensions' => $inner_pck_dimension,
'packaging-picture' => ''
)
);
update_post_meta( $product_id, 'productextrainfo1234', $data );
这样,您将在数据库中获得此序列化数据值:
一个:1:{I:0;一个:7:{S:25:"可替代产品,名称&#34 ;; N; S:25:"制造商 - 部分 - 数&# 34 ;; N; S:18:"目前包装&#34 ;; N; S:21:"其他封装选项&#34 ;; N; S:14:"内-pack-数量&#34 ;; N; S:21:"内包维度&#34 ;; N; S:17:"包装图象&#34 ;; S:0:&# 34;&#34 ;;}}
而不是:
一个:7:{S:25:&#34;可替代产品,名称&#34 ;; N; S:25:&#34;制造商 - 部分 - 数&#34 ;; N; S:18: &#34;目前包装&#34 ;; N; S:21:&#34;其他封装选项&#34 ;; N; S:14:&#34;内包-数量&#34 ;;ñ ; S:21:&#34;内包维度&#34 ;; N; S:17:&#34;包装图象&#34 ;; S:0:&#34;&#34 ;;} < / p>