diff --git a/plugins/woocommerce/src/Internal/DataStores/Orders/OrdersTableDataStore.php b/plugins/woocommerce/src/Internal/DataStores/Orders/OrdersTableDataStore.php index 97a76222966..d7b562f367e 100644 --- a/plugins/woocommerce/src/Internal/DataStores/Orders/OrdersTableDataStore.php +++ b/plugins/woocommerce/src/Internal/DataStores/Orders/OrdersTableDataStore.php @@ -2523,9 +2523,9 @@ FROM $order_meta_table $order->save_meta_data(); if ( $backfill ) { - $this->clear_caches( $order ); self::$backfilling_order_ids[] = $order->get_id(); - $r_order = wc_get_order( $order->get_id() ); // Refresh order to account for DB changes from post hooks. + $this->clear_caches( $order ); + $r_order = wc_get_order( $order->get_id() ); // Refresh order to account for DB changes from post hooks. $this->maybe_backfill_post_record( $r_order ); self::$backfilling_order_ids = array_diff( self::$backfilling_order_ids, array( $order->get_id() ) ); } diff --git a/plugins/woocommerce/tests/php/src/Internal/DataStores/Orders/OrdersTableDataStoreTests.php b/plugins/woocommerce/tests/php/src/Internal/DataStores/Orders/OrdersTableDataStoreTests.php index 5ec49afe448..1a0608cc8f0 100644 --- a/plugins/woocommerce/tests/php/src/Internal/DataStores/Orders/OrdersTableDataStoreTests.php +++ b/plugins/woocommerce/tests/php/src/Internal/DataStores/Orders/OrdersTableDataStoreTests.php @@ -3017,12 +3017,20 @@ class OrdersTableDataStoreTests extends HposTestCase { wc_get_order( $order_id ); } ); $order = OrderHelper::create_order(); - remove_all_actions( 'woocommerce_delete_shop_order_transients' ); $this->assertEquals( 1, $order->get_customer_id() ); $r_order = wc_get_order( $order->get_id() ); $this->assertEquals( 1, $r_order->get_customer_id() ); + + $this->reset_order_data_store_state( wc_get_container()->get( OrdersTableDataStore::class ) ); + $order->set_customer_id( 2 ); + $order->save(); + + $r_order = wc_get_order( $order->get_id() ); + $this->assertEquals( 2, $r_order->get_customer_id() ); + + remove_all_actions( 'woocommerce_delete_shop_order_transients' ); } /**