From 45563f0c11dc89a3f1a437c8bc4116b8f698e7c3 Mon Sep 17 00:00:00 2001 From: "Jorge A. Torres" Date: Tue, 30 Aug 2022 05:30:03 -0500 Subject: [PATCH] [COT] Initialize order date props during `read()` as GMT (#34474) * Load order date props as timestamps in COT --- plugins/woocommerce/changelog/fix-34147 | 4 ++++ .../DataStores/Orders/OrdersTableDataStore.php | 11 +++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 plugins/woocommerce/changelog/fix-34147 diff --git a/plugins/woocommerce/changelog/fix-34147 b/plugins/woocommerce/changelog/fix-34147 new file mode 100644 index 00000000000..ed7b08d0927 --- /dev/null +++ b/plugins/woocommerce/changelog/fix-34147 @@ -0,0 +1,4 @@ +Significance: patch +Type: fix + +Initialize order dates in the COT datastore using the correct timezone. diff --git a/plugins/woocommerce/src/Internal/DataStores/Orders/OrdersTableDataStore.php b/plugins/woocommerce/src/Internal/DataStores/Orders/OrdersTableDataStore.php index 2860fb730c3..b102e337714 100644 --- a/plugins/woocommerce/src/Internal/DataStores/Orders/OrdersTableDataStore.php +++ b/plugins/woocommerce/src/Internal/DataStores/Orders/OrdersTableDataStore.php @@ -828,11 +828,18 @@ SELECT type FROM {$this->get_orders_table_name()} WHERE id = %d; if ( ! isset( $prop_details['name'] ) ) { continue; } + + $prop_value = $order_data->{$prop_details['name']}; + + if ( 'date' === $prop_details['type'] ) { + $prop_value = $this->string_to_timestamp( $prop_value ); + } + $prop_setter_function_name = "set_{$prop_details['name']}"; if ( is_callable( array( $order, $prop_setter_function_name ) ) ) { - $order->{$prop_setter_function_name}( $order_data->{$prop_details['name']} ); + $order->{$prop_setter_function_name}( $prop_value ); } elseif ( is_callable( array( $this, $prop_setter_function_name ) ) ) { - $this->{$prop_setter_function_name}( $order, $order_data->{$prop_details['name']}, false ); + $this->{$prop_setter_function_name}( $order, $prop_value, false ); } } }