PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.19.4
GiveWP – Donation Plugin and Fundraising Platform v3.19.4
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / DonorDashboards / RequestHandler.php
give / src / DonorDashboards Last commit date
Admin 4 years ago Exceptions 4 years ago Factories 4 years ago Helpers 4 years ago Pipeline 1 year ago Repositories 3 years ago Routes 2 years ago Tabs 1 year ago resources 1 year ago App.php 1 year ago Block.php 2 years ago Helpers.php 1 year ago Profile.php 1 year ago RequestHandler.php 4 years ago ServiceProvider.php 2 years ago Shortcode.php 2 years ago
RequestHandler.php
147 lines
1 <?php
2
3 namespace Give\DonorDashboards;
4
5 use _WP_Dependency;
6 use Give\DonorDashboards\Admin\Settings;
7 use WP_Query;
8
9 /**
10 * @since 2.10.0
11 */
12 class RequestHandler
13 {
14
15 /**
16 * Register 'give-embed' query var
17 *
18 * @param array $vars
19 *
20 * @return array
21 */
22 public function filterQueryVars($vars)
23 {
24 $vars[] = 'give-embed';
25 $vars[] = 'give-generate-donor-dashboard-page';
26 $vars[] = 'give-generated-donor-dashboard-page';
27
28 return $vars;
29 }
30
31 /**
32 * Load donor dashboard markup, if donor dashboard exists in query vars
33 *
34 * @param WP_Query $query
35 *
36 * @return void
37 */
38 public function parseRequest($query)
39 {
40 if (is_admin() && current_user_can('manage_options') && ! wp_doing_ajax() && array_key_exists(
41 'give-generate-donor-dashboard-page',
42 $query->query_vars
43 )) {
44 (new Settings())->generateDonorDashboardPage();
45 wp_safe_redirect(
46 admin_url('edit.php?post_type=give_forms&page=give-settings&give-generated-donor-dashboard-page=1')
47 );
48 exit;
49 }
50
51 if (array_key_exists(
52 'give-embed',
53 $query->query_vars
54 ) && $query->query_vars['give-embed'] === 'donor-dashboard') {
55 $this->setUpFrontendHooks();
56
57 $app = new App();
58 echo $app->getIframeContent();
59 exit; // and exit
60 }
61 }
62
63 /**
64 * Setup frontend hooks
65 *
66 * @since 2.10.0
67 */
68 public function setUpFrontendHooks()
69 {
70 add_action('give_embed_head', [$this, 'noRobots']);
71 add_action('give_embed_head', 'wp_enqueue_scripts', 1);
72 add_action('give_embed_head', [$this, 'handleEnqueueScripts'], 2);
73 add_action('give_embed_head', 'wp_print_styles', 8);
74 add_action('give_embed_head', 'wp_print_head_scripts', 9);
75 add_action('give_embed_footer', 'wp_print_footer_scripts', 20);
76 }
77
78 /**
79 * Display a noindex meta tag.
80 *
81 * Outputs a noindex meta tag that tells web robots not to index and follow content.
82 *
83 * @since 2.10.0
84 */
85 public function noRobots()
86 {
87 echo "<meta name='robots' content='noindex,nofollow'/>\n";
88 }
89
90 /**
91 * Handle enqueue script
92 *
93 * @since 2.10.0
94 */
95 public function handleEnqueueScripts()
96 {
97 global $wp_scripts, $wp_styles;
98 wp_enqueue_scripts();
99
100 $wp_styles->dequeue($this->getListOfScriptsToDequeue($wp_styles->registered));
101 $wp_scripts->dequeue($this->getListOfScriptsToDequeue($wp_scripts->registered));
102 }
103
104 /**
105 * Get filter list to dequeue scripts and style
106 *
107 * @since 2.10.0
108 *
109 * @param array $scripts
110 *
111 * @return array
112 */
113 private function getListOfScriptsToDequeue($scripts)
114 {
115 $list = [];
116 $skip = [];
117 $themeDir = get_template_directory_uri();
118
119 /* @var _WP_Dependency $data */
120 foreach ($scripts as $handle => $data) {
121 // Do not unset dependency.
122 if (in_array($handle, $skip, true)) {
123 continue;
124 }
125
126 // Do not allow styles and scripts from theme.
127 if (false !== strpos((string)$data->src, $themeDir)) {
128 $list[] = $handle;
129 continue;
130 }
131
132 if (
133 0 === strpos($handle, 'give') ||
134 false !== strpos($data->src, '\give')
135 ) {
136 // Store dependencies to skip.
137 $skip = array_merge($skip, $data->deps);
138 continue;
139 }
140
141 $list[] = $handle;
142 }
143
144 return $list;
145 }
146 }
147