assetsOptimization = AssetsOptimization::getInstance(); add_action( 'init', array( $this, 'init' ), 0 ); add_filter( 'plugin_row_meta', array( $this, 'plugin_row_meta' ), 10, 2 ); add_filter( 'plugin_action_links_' . GETWID_PLUGIN_BASENAME, array( $this, 'plugin_action_links' ) ); } /** * Init Getwid when WordPress Initialises. */ public function init() { $this->settings = new Settings(); $this->versionControl = new VersionControl(); $this->scriptsManager = new ScriptsManager(); $this->fontIconsManager = new FontIconsManager(); $this->blocksManager = new BlocksManager(); $this->instagramTokenManager = new InstagramTokenManager(); $this->settingsPage = new SettingsPage(); $this->restAPI = new RestAPI(); $this->postTemplatePart = new PostTemplatePart(); $this->allowedCssTags = new AllowedCssTags(); $this->mailer = new Mailer(); } /** * @return ScriptsManager */ public function scriptsManager(){ return $this->scriptsManager; } /** * @return FontIconsManager */ public function fontIconsManager(){ return $this->fontIconsManager; } /** * @return BlocksManager */ public function blocksManager(){ return $this->blocksManager; } /** * @return InstagramTokenManager */ public function instagramTokenManager(){ return $this->instagramTokenManager; } /** * @return VersionControl */ public function versionControl(){ return $this->versionControl; } /** * @return SettingsPage */ public function settingsPage(){ return $this->settingsPage; } /** * @return RestAPI */ public function restAPI(){ return $this->restAPI; } /** * @return PostTemplatePart */ public function postTemplatePart(){ return $this->postTemplatePart; } /** * @return AllowedCssTags */ public function allowedCssTags(){ return $this->allowedCssTags; } /** * @return Mailer */ public function mailer(){ return $this->mailer; } /** * @return Settings */ public function settings(){ return $this->settings; } /** * @return AssetsOptimization */ public function assetsOptimization(){ return $this->assetsOptimization; } /** * @return Getwid */ public static function getInstance(){ if ( is_null( self::$instance ) ) { self::$instance = new self(); } return self::$instance; } public function is_rest_api_request() { if ( empty( $_SERVER['REQUEST_URI'] ) ) { return false; } $rest_prefix = trailingslashit( rest_get_url_prefix() ); $is_rest_api_request = ( false !== strpos( $_SERVER['REQUEST_URI'], $rest_prefix ) ); return apply_filters( 'getwid/is_rest_api_request', $is_rest_api_request ); } /** * Show row meta on the plugin screen. * * @return array */ public function plugin_row_meta( $links, $file ) { if ( GETWID_PLUGIN_BASENAME === $file ) { $row_meta = array( 'support' => '' . esc_html__( 'Support', 'getwid' ) . '', 'review' => '' . esc_html__( 'Write a Review', 'getwid' ) . '', ); return array_merge( $links, $row_meta ); } return (array) $links; } public function plugin_action_links( $actions ) { if ( current_user_can( 'manage_options' ) ) { $settings_url = $this->settingsPage->getTabUrl('general'); return array_merge( $actions, array( 'settings' => sprintf( '%s', $settings_url, __( 'Settings', 'getwid' ) ) ) ); } return $actions; } }