我有这个WooCommerce商店,我必须与外部库存系统集成。因此,我需要通过PHP / WordPress创建/更新产品。这部分我已经想通了。 问题是产品的变化。它们作为JSON字符串存储在数据库中。
示例:
a:1:{s:10:"size";a:6:{s:4:"name";s:10:"Size";s:5:"value";s:17:"42";s:8:"position";s:1:"0";s:10:"is_visible";i:1;s:12:"is_variation";i:1;s:11:"is_taxonomy";i:0;}}
然而,当我像这样插入
时update_post_meta($product_id, '_product_attributes', 'a:1:{s:10:"size....');
它添加了s:173:" a:1:{s:10:"siz.... ";
我尝试过使用json_encode()删除" s:173"但在开头和结尾都保留双引号。
有关如何在没有其他内容的情况下存储此JSON字符串的任何帮助?非常感谢
答案 0 :(得分:4)
您在数据库中看到的是序列化数组。 post meta函数可以为您处理所有这些。
使用get_post_meta获取数组,只需将数组传递给update_post_meta。
您不需要使用序列化/反序列化功能。
答案 1 :(得分:1)
我在woocommerce插件中找到了一些代码,
您可以这样做: -
$attributes['size'] = array(
'name' => "Size",
'value' => "42",
'position' => "0",
'is_visible' => 1,
'is_variation' => 1,
'is_taxonomy' => 0
);
update_post_meta( $post_id, '_product_attributes', $attributes );
希望这能帮到你......