protected function update_post_meta(&$order)
{
$updated_props = array();
$changed_props = array_keys($order->get_changes());
$meta_key_to_props = array('_order_currency' => 'currency', '_cart_discount' => 'discount_total', '_cart_discount_tax' => 'discount_tax', '_order_shipping' => 'shipping_total', '_order_shipping_tax' => 'shipping_tax', '_order_tax' => 'cart_tax', '_order_total' => 'total', '_order_version' => 'version', '_prices_include_tax' => 'prices_include_tax');
foreach ($meta_key_to_props as $meta_key => $prop) {
if (!in_array($prop, $changed_props)) {
continue;
}
$value = $order->{"get_{$prop}"}('edit');
if ('' !== $value) {
$updated = update_post_meta($order->get_id(), $meta_key, $value);
} else {
$updated = delete_post_meta($order->get_id(), $meta_key);
}
if ($updated) {
$updated_props[] = $prop;
}
}
}