这个问题几乎是出于纯粹的好奇心。
如标题所述,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;
}