diff --git a/modules/settings/module.php b/modules/settings/module.php index 99f475a..4a68ace 100644 --- a/modules/settings/module.php +++ b/modules/settings/module.php @@ -61,6 +61,7 @@ public function register_page() : void { * Enqueue Scripts and Styles */ public function enqueue_scripts( $hook ) : void { + //TODO: Update page name if ( 'toplevel_page_accessibility-settings-2' !== $hook ) { return; } @@ -122,6 +123,35 @@ public function on_connect(): void { } } + /** + * Retry registering the site if it fails during connect. + * + * @param $current_screen + * @return void + */ + public function check_plan_data( $current_screen ) : void { + //TODO: Update page name + if ( 'toplevel_page_accessibility-settings-2' !== $current_screen->base ) { + return; + } + + if ( Connect::is_connected() && get_option( Settings::PLAN_DATA ) === false ) { + $register_response = Utils::get_api_client()->make_request( + 'POST', + 'site/register' + ); + + if ( $register_response && ! is_wp_error( $register_response ) ) { + Data::set_subscription_id( $register_response->id ); + update_option( Settings::PLAN_DATA, $register_response ); + update_option( Settings::IS_VALID_PLAN_DATA, true ); + } else { + Logger::error( esc_html( $register_response->get_error_message() ) ); + update_option( Settings::IS_VALID_PLAN_DATA, false ); + } + } + } + /** * Register settings. * @@ -176,5 +206,6 @@ public function __construct() { add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_scripts' ] ); add_action( 'rest_api_init', [ $this, 'register_settings' ] ); add_action( 'on_connect_' . Config::APP_PREFIX . '_connected', [ $this, 'on_connect' ] ); + add_action( 'current_screen', [ $this, 'check_plan_data' ] ); } }