Automattic\WooCommerce\Internal\DataStores\Orders
CustomOrdersTableController::process_pre_update_option()
Handler for the setting pre-update hook. We use it to verify that authoritative orders table switch doesn't happen while sync is pending.
Method of the class: CustomOrdersTableController{}
No Hooks.
Return
null
. Nothing (null).
Usage
// private - for code of main (parent) class only $result = $this->process_pre_update_option( $value, $option, $old_value );
- $value(mixed) (required)
- New value of the setting.
- $option(string) (required)
- Setting name.
- $old_value(mixed) (required)
- Old value of the setting.
CustomOrdersTableController::process_pre_update_option() CustomOrdersTableController::process pre update option code WC 8.6.1
private function process_pre_update_option( $value, $option, $old_value ) { if ( DataSynchronizer::ORDERS_DATA_SYNC_ENABLED_OPTION === $option && $value !== $old_value ) { $this->order_cache->flush(); return $value; } if ( self::CUSTOM_ORDERS_TABLE_USAGE_ENABLED_OPTION !== $option ) { return $value; } $this->order_cache->flush(); if ( ! $this->data_synchronizer->check_orders_table_exists() ) { $this->data_synchronizer->create_database_tables(); } $tables_created = get_option( DataSynchronizer::ORDERS_TABLE_CREATED ) === 'yes'; if ( ! $tables_created ) { return 'no'; } $sync_is_pending = 0 !== $this->data_synchronizer->get_current_orders_pending_sync_count(); if ( $sync_is_pending && ! $this->changing_data_source_with_sync_pending_is_allowed() ) { throw new \Exception( "The authoritative table for orders storage can't be changed while there are orders out of sync" ); } return $value; }