Server IP : 192.158.238.246 / Your IP : 18.116.36.48 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/7779/cwd/plugins/give/src/DonorDashboards/ |
Upload File : |
<?php namespace Give\DonorDashboards; use _WP_Dependency; use Give\DonorDashboards\Admin\Settings; use WP_Query; /** * @since 2.10.0 */ class RequestHandler { /** * Register 'give-embed' query var * * @param array $vars * * @return array */ public function filterQueryVars($vars) { $vars[] = 'give-embed'; $vars[] = 'give-generate-donor-dashboard-page'; $vars[] = 'give-generated-donor-dashboard-page'; return $vars; } /** * Load donor dashboard markup, if donor dashboard exists in query vars * * @param WP_Query $query * * @return void */ public function parseRequest($query) { if (is_admin() && current_user_can('manage_options') && ! wp_doing_ajax() && array_key_exists( 'give-generate-donor-dashboard-page', $query->query_vars )) { (new Settings())->generateDonorDashboardPage(); wp_safe_redirect( admin_url('edit.php?post_type=give_forms&page=give-settings&give-generated-donor-dashboard-page=1') ); exit; } if (array_key_exists( 'give-embed', $query->query_vars ) && $query->query_vars['give-embed'] === 'donor-dashboard') { $this->setUpFrontendHooks(); $app = new App(); echo $app->getIframeContent(); exit; // and exit } } /** * Setup frontend hooks * * @since 2.10.0 */ public function setUpFrontendHooks() { add_action('give_embed_head', [$this, 'noRobots']); add_action('give_embed_head', 'wp_enqueue_scripts', 1); add_action('give_embed_head', [$this, 'handleEnqueueScripts'], 2); add_action('give_embed_head', 'wp_print_styles', 8); add_action('give_embed_head', 'wp_print_head_scripts', 9); add_action('give_embed_footer', 'wp_print_footer_scripts', 20); } /** * Display a noindex meta tag. * * Outputs a noindex meta tag that tells web robots not to index and follow content. * * @since 2.10.0 */ public function noRobots() { echo "<meta name='robots' content='noindex,nofollow'/>\n"; } /** * Handle enqueue script * * @since 2.10.0 */ public function handleEnqueueScripts() { global $wp_scripts, $wp_styles; wp_enqueue_scripts(); $wp_styles->dequeue($this->getListOfScriptsToDequeue($wp_styles->registered)); $wp_scripts->dequeue($this->getListOfScriptsToDequeue($wp_scripts->registered)); } /** * Get filter list to dequeue scripts and style * * @since 2.10.0 * * @param array $scripts * * @return array */ private function getListOfScriptsToDequeue($scripts) { $list = []; $skip = []; $themeDir = get_template_directory_uri(); /* @var _WP_Dependency $data */ foreach ($scripts as $handle => $data) { // Do not unset dependency. if (in_array($handle, $skip, true)) { continue; } // Do not allow styles and scripts from theme. if (false !== strpos((string)$data->src, $themeDir)) { $list[] = $handle; continue; } if ( 0 === strpos($handle, 'give') || false !== strpos($data->src, '\give') ) { // Store dependencies to skip. $skip = array_merge($skip, $data->deps); continue; } $list[] = $handle; } return $list; } }