Update custom order item meta in WooCommerce
You will use the following from an existing WC_Order Object $order
variable:
foreach ( $order->get_items() as $item-id => $item ) { $dinner_phone = $item->get_meta('dinner_phone'); // 1115559999 if ( ! empty( $dinner_phone ) ) { $formatted_diner_phone = wdc_format_phone( $dinner_phone ); // comes back (111) 555-9999 $item->update_meta_data('dinner_phone', $formatted_diner_phone); $item->save(); // Save item $new_phone = $item->get_meta('dinner_phone'); echo $new_phone; // Check that items is updated } $order->calculate_totals(); // Recalculate Order totals and save}
It should work.