我无法添加自定义订单商品元数据。我找到了一种方法来做,但是看起来很糟糕。
代码:
add_action('woocommerce_add_order_item_meta', 'func_add_custom_data_to_order_item_meta',1,2);
function func_add_custom_data_to_order_item_meta( $item_id, $values ) {
global $woocommerce,$wpdb;
if(!empty($values['custom'])){
$custom_order_meta = $values['custom'];
wc_add_order_item_meta($item_id, 'custom', serialize($custom_order_meta));
}
}
是否有任何方法可以遍历键值对并每次都在新行中获取其内容?
答案 0 :(得分:1)
已更新
自WooCommerce 3以来,钩子woocommerce_add_order_item_meta
已过时并已替换……请参阅 Woocommerce: Which hook to replace deprecated "woocommerce_add_order_item_meta" 。
要获取分开的可读的自定义订单商品数据(而不是序列化的数组),请尝试以下操作:
add_action('woocommerce_checkout_create_order_line_item', 'add_custom_cart_item_data_as_order_item_meta', 10, 4 );
function add_custom_cart_item_data_as_order_item_meta( $item, $cart_item_key, $values, $order ) {
if( isset($values['custom']['length']) ){
$item->update_meta_data( 'Length', $values['custom']['length'] );
}
// elseif … ad so on
}
代码进入您的活动子主题(活动主题)的function.php文件中。