diff --git a/class-wc-facebookcommerce.php b/class-wc-facebookcommerce.php index 99c61455d..9720d336c 100644 --- a/class-wc-facebookcommerce.php +++ b/class-wc-facebookcommerce.php @@ -133,7 +133,7 @@ class WC_Facebookcommerce extends WooCommerce\Facebook\Framework\Plugin { /** @var WooCommerce\Facebook\Products\FBCategories instance. */ private $fb_categories; - /** @var WooCommerce\Facebook\Admin\RolloutSwitches instance. */ + /** @var WooCommerce\Facebook\RolloutSwitches instance. */ private $rollout_switches; /** @@ -217,6 +217,7 @@ public function init() { $this->sync_background_handler = new WooCommerce\Facebook\Products\Sync\Background(); $this->configuration_detection = new WooCommerce\Facebook\Feed\FeedConfigurationDetection(); $this->legacy_product_sets_sync_handler = new WooCommerce\Facebook\ProductSets\Sync(); + $this->product_sets_sync_handler = new WooCommerce\Facebook\ProductSets\ProductSetSync(); $this->commerce_handler = new WooCommerce\Facebook\Commerce(); $this->fb_categories = new WooCommerce\Facebook\Products\FBCategories(); $this->external_version_update = new WooCommerce\Facebook\ExternalVersionUpdate\Update(); @@ -244,10 +245,12 @@ public function init() { $this->webhook_handler = new WooCommerce\Facebook\Handlers\WebHook( $this ); $this->whatsapp_webhook_handler = new WooCommerce\Facebook\Handlers\Whatsapp_Webhook( $this ); $this->tracker = new WooCommerce\Facebook\Utilities\Tracker(); + $this->rollout_switches = new WooCommerce\Facebook\RolloutSwitches( $this ); // Init jobs $this->job_manager = new WooCommerce\Facebook\Jobs\JobManager(); add_action( 'init', [ $this->job_manager, 'init' ] ); + add_action( 'admin_init', array( $this->rollout_switches, 'init' ) ); // Instantiate the debug tools. $this->debug_tools = new DebugTools(); @@ -276,9 +279,7 @@ public function init_admin() { add_action( 'admin_init', function () { - $this->admin = new WooCommerce\Facebook\Admin(); - $this->rollout_switches = new WooCommerce\Facebook\Admin\RolloutSwitches( $this ); - $this->product_sets_sync_handler = new WooCommerce\Facebook\ProductSets\ProductSetSync(); + $this->admin = new WooCommerce\Facebook\Admin(); }, 0 ); @@ -833,7 +834,7 @@ public function get_asset_build_dir_url() { /** * Gets the connection handler. * - * @return WooCommerce\Facebook\Admin\RolloutSwitches + * @return WooCommerce\Facebook\RolloutSwitches */ public function get_rollout_switches() { return $this->rollout_switches; diff --git a/includes/Admin/Enhanced_Settings.php b/includes/Admin/Enhanced_Settings.php index 218c85a68..f58017add 100644 --- a/includes/Admin/Enhanced_Settings.php +++ b/includes/Admin/Enhanced_Settings.php @@ -16,7 +16,7 @@ use WooCommerce\Facebook\Framework\Helper; use WooCommerce\Facebook\Framework\Plugin\Exception as PluginException; use WooCommerce\Facebook\Admin\Settings_Screens\Whatsapp_Utility; -use WooCommerce\Facebook\Admin\RolloutSwitches; +use WooCommerce\Facebook\RolloutSwitches; defined( 'ABSPATH' ) || exit; diff --git a/includes/Admin/Product_Sets.php b/includes/Admin/Product_Sets.php index 9ed981b7f..597da6e6d 100644 --- a/includes/Admin/Product_Sets.php +++ b/includes/Admin/Product_Sets.php @@ -13,7 +13,7 @@ defined( 'ABSPATH' ) || exit; use WP_Term; -use WooCommerce\Facebook\Admin\RolloutSwitches; +use WooCommerce\Facebook\RolloutSwitches; /** * General handler for the product set admin functionality. diff --git a/includes/Admin/Settings.php b/includes/Admin/Settings.php index 31bc66cf4..7fd32d36d 100644 --- a/includes/Admin/Settings.php +++ b/includes/Admin/Settings.php @@ -16,7 +16,7 @@ use WooCommerce\Facebook\Admin\Settings_Screens\Whatsapp_Utility; use WooCommerce\Facebook\Framework\Helper; use WooCommerce\Facebook\Framework\Plugin\Exception as PluginException; -use WooCommerce\Facebook\Admin\RolloutSwitches; +use WooCommerce\Facebook\RolloutSwitches; defined( 'ABSPATH' ) || exit; diff --git a/includes/ProductSets/ProductSetSync.php b/includes/ProductSets/ProductSetSync.php index df29c5f56..8de0ed70e 100644 --- a/includes/ProductSets/ProductSetSync.php +++ b/includes/ProductSets/ProductSetSync.php @@ -12,7 +12,7 @@ defined( 'ABSPATH' ) || exit; -use WooCommerce\Facebook\Admin\RolloutSwitches; +use WooCommerce\Facebook\RolloutSwitches; use WooCommerce\Facebook\Utilities\Heartbeat; use WC_Facebookcommerce_Utils; diff --git a/includes/Admin/RolloutSwitches.php b/includes/RolloutSwitches.php similarity index 96% rename from includes/Admin/RolloutSwitches.php rename to includes/RolloutSwitches.php index 7a6886ec4..310b9ed67 100644 --- a/includes/Admin/RolloutSwitches.php +++ b/includes/RolloutSwitches.php @@ -8,7 +8,7 @@ * @package FacebookCommerce */ -namespace WooCommerce\Facebook\Admin; +namespace WooCommerce\Facebook; use WooCommerce\Facebook\Framework\Api\Exception; use WooCommerce\Facebook\Utilities\Heartbeat; @@ -36,7 +36,6 @@ class RolloutSwitches { public function __construct( \WC_Facebookcommerce $plugin ) { $this->plugin = $plugin; - add_action( Heartbeat::HOURLY, array( $this, 'init' ) ); } public function init() { @@ -49,7 +48,7 @@ public function init() { if ( 'yes' === get_transient( $flag_name ) ) { return; } - set_transient( $flag_name, 'yes', HOUR_IN_SECONDS ); + set_transient( $flag_name, 'yes', 60 * MINUTE_IN_SECONDS ); try { $external_business_id = $this->plugin->get_connection_handler()->get_external_business_id(); diff --git a/tests/Unit/RolloutSwitchesTest.php b/tests/Unit/RolloutSwitchesTest.php index c4aa68752..17e69a774 100644 --- a/tests/Unit/RolloutSwitchesTest.php +++ b/tests/Unit/RolloutSwitchesTest.php @@ -3,7 +3,7 @@ use WooCommerce\Facebook\Admin\Settings_Screens\Connection; use WooCommerce\Facebook\API; use WooCommerce\Facebook\Framework\Api\Exception as ApiException; -use WooCommerce\Facebook\Admin\RolloutSwitches; +use WooCommerce\Facebook\RolloutSwitches; class RolloutSwitchesTest extends \WooCommerce\Facebook\Tests\AbstractWPUnitTestWithSafeFiltering {