is_connected() ) { Deactivation_Handler::init( AUTOMATTIC_FOR_AGENCIES_CLIENT_SLUG, __DIR__ . '/admin/deactivation-dialog.php' ); } } /** * Configure what Jetpack packages should get automatically initialized. * * @since 0.1.0 * * @return void */ public static function init_packages() { $config = new Automattic\Jetpack\Config(); // Connection package. $config->ensure( 'connection', array( 'slug' => AUTOMATTIC_FOR_AGENCIES_CLIENT_SLUG, 'name' => AUTOMATTIC_FOR_AGENCIES_CLIENT_NAME, 'url_info' => AUTOMATTIC_FOR_AGENCIES_CLIENT_URI, ) ); // Sync package. $must_sync_data = Data_Settings::MUST_SYNC_DATA_SETTINGS; // Add additional modules. $must_sync_data['jetpack_sync_modules'][] = 'Automattic\\Jetpack\\Sync\\Modules\\Plugins'; $must_sync_data['jetpack_sync_modules'][] = 'Automattic\\Jetpack\\Sync\\Modules\\Users'; $must_sync_data['jetpack_sync_modules'][] = 'Automattic\\Jetpack\\Sync\\Modules\\Meta'; $must_sync_data['jetpack_sync_modules'][] = 'Automattic\\Jetpack\\Sync\\Modules\\Stats'; $config->ensure( 'sync', $must_sync_data ); // Identity crisis package. $config->ensure( 'identity_crisis' ); } /** * Add submenu. * * @since 0.1.0 * * @return void */ public static function add_submenu() { add_submenu_page( '', AUTOMATTIC_FOR_AGENCIES_CLIENT_NAME, __( 'Automattic for Agencies', 'automattic-for-agencies-client' ), 'manage_options', AUTOMATTIC_FOR_AGENCIES_CLIENT_SLUG, array( static::class, 'plugin_settings_page' ) ); } /** * Set up Admin Settings screen. */ public static function load_scripts_styles() { add_action( 'admin_enqueue_scripts', array( static::class, 'enqueue_admin_scripts' ) ); } /** * Enqueue plugin admin scripts and styles. */ public static function enqueue_admin_scripts() { Assets::register_script( 'automattic-for-agencies-client', 'build/index.js', AUTOMATTIC_FOR_AGENCIES_CLIENT_ROOT_FILE, array( 'in_footer' => true, 'textdomain' => 'automattic-for-agencies-client', ) ); Assets::enqueue_script( 'automattic-for-agencies-client' ); // Initial JS state including JP Connection data. Connection_Initial_State::render_script( 'automattic-for-agencies-client' ); wp_add_inline_script( 'automattic-for-agencies-client', static::render_initial_state(), 'before' ); } /** * Render the initial state into a JavaScript variable. * * @return string */ private static function render_initial_state() { return 'var automatticForAgenciesClientInitialState=' . wp_json_encode( static::initial_state(), JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ) . ';'; } /** * Get the initial state data for hydrating the React UI. * * @return array */ private static function initial_state() { return array( 'apiRoot' => esc_url_raw( rest_url() ), 'apiNonce' => wp_create_nonce( 'wp_rest' ), 'registrationNonce' => wp_create_nonce( 'jetpack-registration-nonce' ), ); } /** * Main plugin settings page. */ public static function plugin_settings_page() { ?>
remove_connection(); } }