dataStore = $dataStore; $this->accessManager = $accessManager; add_action( 'admin_menu', array( $this, 'addAdminMenu' ) ); add_action( 'admin_post_' . self::IFRAME_ACTION, array( $this, 'renderIframeTemplate' ) ); } /** * Add admin menu item for Imunify Security. * * @return void */ public function addAdminMenu() { if ( ! $this->dataStore->isDataAvailable() ) { return; } add_menu_page( esc_html__( 'Imunify Security', 'imunify-security' ), esc_html__( 'Imunify Security', 'imunify-security' ), 'manage_options', self::PAGE_SLUG, array( $this, 'renderPage' ), 'dashicons-shield-alt', 80 // Position after "Settings". ); } /** * Render the admin page. * * @return void */ public function renderPage() { echo ''; $iframe_url = admin_url( 'admin-post.php?action=' . self::IFRAME_ACTION ); echo ''; echo ''; } /** * Render the iframe template. * * @since 2.0.0 * * @phpcs:disable WordPress.WhiteSpace.PrecisionAlignment.Found * @phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped * @phpcs:disable WordPress.WP.EnqueuedResources.NonEnqueuedStylesheet * @phpcs:disable WordPress.WP.EnqueuedResources.NonEnqueuedScript */ public function renderIframeTemplate() { $pluginUrl = plugin_dir_url( IMUNIFY_SECURITY_FILE_PATH ); $uiAppAssetsPath = $pluginUrl . 'assets/ui-app/assets/'; $endpointUrl = add_query_arg( array( 'action' => AjaxHandler::AJAX_ACTION, '_ajax_nonce' => wp_create_nonce( AjaxHandler::AJAX_NONCE_NAME ), ), admin_url( 'admin-ajax.php' ) ); $scanData = $this->dataStore->getScanData(); $license = is_null( $scanData ) ? array() : $scanData->getLicense(); $licenseId = self::extractLicenseId( $license ); $locale = get_user_locale(); $localeShort = substr( $locale, 0, 2 ); $canUserUpgrade = $this->accessManager->canUserUpgrade( $this->dataStore ); $canUserUpgradeJsValue = $canUserUpgrade ? 'true' : 'false'; header( 'Content-Type: text/html; charset=UTF-8' ); ?>