Remove auto flip feature as its risky to flip tables without merchant interaction.

This commit is contained in:
Vedanshu Jain 2023-06-29 13:50:41 +05:30
parent 1c40f38615
commit b4dc98a62a
1 changed files with 0 additions and 37 deletions

View File

@ -33,11 +33,6 @@ class CustomOrdersTableController {
*/ */
public const CUSTOM_ORDERS_TABLE_USAGE_ENABLED_OPTION = 'woocommerce_custom_orders_table_enabled'; public const CUSTOM_ORDERS_TABLE_USAGE_ENABLED_OPTION = 'woocommerce_custom_orders_table_enabled';
/**
* The name of the option that tells that the authoritative table must be flipped once sync finishes.
*/
private const AUTO_FLIP_AUTHORITATIVE_TABLE_ROLES_OPTION = 'woocommerce_auto_flip_authoritative_table_roles';
/** /**
* The name of the option that tells whether database transactions are to be used or not for data synchronization. * The name of the option that tells whether database transactions are to be used or not for data synchronization.
* *
@ -360,44 +355,12 @@ class CustomOrdersTableController {
return $value; return $value;
} }
/**
* Handler for the synchronization finished hook.
* Here we switch the authoritative table if needed.
*/
private function process_sync_finished() {
if ( ! $this->auto_flip_authoritative_table_enabled() ) {
return;
}
update_option( self::AUTO_FLIP_AUTHORITATIVE_TABLE_ROLES_OPTION, 'no' );
if ( $this->custom_orders_table_usage_is_enabled() ) {
update_option( self::CUSTOM_ORDERS_TABLE_USAGE_ENABLED_OPTION, 'no' );
} else {
update_option( self::CUSTOM_ORDERS_TABLE_USAGE_ENABLED_OPTION, 'yes' );
}
}
/**
* Is the automatic authoritative table switch setting set?
*
* @return bool
*/
private function auto_flip_authoritative_table_enabled(): bool {
return get_option( self::AUTO_FLIP_AUTHORITATIVE_TABLE_ROLES_OPTION ) === 'yes';
}
/** /**
* Handler for the all settings updated hook. * Handler for the all settings updated hook.
*/ */
private function process_options_updated() { private function process_options_updated() {
$data_sync_is_enabled = $this->data_synchronizer->data_sync_is_enabled(); $data_sync_is_enabled = $this->data_synchronizer->data_sync_is_enabled();
// Disabling the sync implies disabling the automatic authoritative table switch too.
if ( ! $data_sync_is_enabled && $this->auto_flip_authoritative_table_enabled() ) {
update_option( self::AUTO_FLIP_AUTHORITATIVE_TABLE_ROLES_OPTION, 'no' );
}
// Enabling/disabling the sync implies starting/stopping it too, if needed. // Enabling/disabling the sync implies starting/stopping it too, if needed.
// We do this check here, and not in process_pre_update_option, so that if for some reason // We do this check here, and not in process_pre_update_option, so that if for some reason
// the setting is enabled but no sync is in process, sync will start by just saving the // the setting is enabled but no sync is in process, sync will start by just saving the