2017-07-25 60 views
0

这个问题几乎出于纯粹的好奇心。WooCommerce Order Item的Meta值是否需要是字符串?

正如标题所述,WooCommerce订单商品元需要是一个字符串。

假设你说元数据是一个数组吗?
如果是这样,你需要以不同的方式去做事吗?

我知道,为了增加新的元数据,你需要沿着以下代码行使用的东西:

wc_add_order_item_meta($item_id, 'myMetaName', 'John Doe', true); 

但是,我想知道是否有可能有你的元数据是不同的数据类型。

任何输入是非常感谢!

+0

一个谷歌搜索告诉我这是可能的。尝试先阅读文档 –

回答

1

是的,它也可以是一个数组。

如果你看看到数据库表'_line_tax_data'meta_key你总是得到一个序列化数组作为meta_value是这样的:

a:2:{s:5:"total";a:1:{i:2;s:4:"1.92";}s:8:"subtotal";a:1:{i:2;s:3:"2.4";}} 

这是你在得到源代码:

/** 
* WooCommerce Order Item Meta API - Add term meta. 
* 
* @access public 
* @param mixed $item_id 
* @param mixed $meta_key 
* @param mixed $meta_value 
* @param bool $unique (default: false) 
* @return int New row ID or 0 
*/ 
function wc_add_order_item_meta($item_id, $meta_key, $meta_value, $unique = false) { 
    $data_store = WC_Data_Store::load('order-item'); 
    if ($meta_id = $data_store->add_metadata($item_id, $meta_key, $meta_value, $unique)) { 
     $cache_key = WC_Cache_Helper::get_cache_prefix('order-items') . 'object_meta_' . $item_id; 
     wp_cache_delete($cache_key, 'order-items'); 
     return $meta_id; 
    } 
    return 0; 
} 
相关问题