PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.10.4
GiveWP – Donation Plugin and Fundraising Platform v2.10.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 5 years ago Exceptions 5 years ago Factories 5 years ago Helpers 5 years ago Pipeline 5 years ago Repositories 5 years ago Routes 5 years ago Tabs 5 years ago resources 5 years ago App.php 5 years ago Block.php 5 years ago Helpers.php 5 years ago Profile.php 5 years ago RequestHandler.php 5 years ago ServiceProvider.php 5 years ago Shortcode.php 5 years ago
RequestHandler.php
131 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 * Register 'give-embed' query var
16 *
17 * @param array $vars
18 * @return array
19 */
20 public function filterQueryVars( $vars ) {
21 $vars[] = 'give-embed';
22 $vars[] = 'give-generate-donor-dashboard-page';
23 $vars[] = 'give-generated-donor-dashboard-page';
24 return $vars;
25 }
26
27 /**
28 * Load donor dashboard markup, if donor dashboard exists in query vars
29 *
30 * @param WP_Query $query
31 * @return void
32 */
33 public function parseRequest( $query ) {
34
35 if ( is_admin() && current_user_can( 'manage_options' ) && ! wp_doing_ajax() && array_key_exists( 'give-generate-donor-dashboard-page', $query->query_vars ) ) {
36 ( new Settings() )->generateDonorDashboardPage();
37 wp_safe_redirect( admin_url( 'edit.php?post_type=give_forms&page=give-settings&give-generated-donor-dashboard-page=1' ) );
38 exit;
39 }
40
41 if ( array_key_exists( 'give-embed', $query->query_vars ) && $query->query_vars['give-embed'] === 'donor-dashboard' ) {
42
43 $this->setUpFrontendHooks();
44
45 $app = new App();
46 echo $app->getIframeContent();
47 exit; // and exit
48 }
49
50 }
51
52 /**
53 * Setup frontend hooks
54 *
55 * @since 2.10.0
56 */
57 public function setUpFrontendHooks() {
58 add_action( 'give_embed_head', [ $this, 'noRobots' ] );
59 add_action( 'give_embed_head', 'wp_enqueue_scripts', 1 );
60 add_action( 'give_embed_head', [ $this, 'handleEnqueueScripts' ], 2 );
61 add_action( 'give_embed_head', 'wp_print_styles', 8 );
62 add_action( 'give_embed_head', 'wp_print_head_scripts', 9 );
63 add_action( 'give_embed_footer', 'wp_print_footer_scripts', 20 );
64 }
65
66 /**
67 * Display a noindex meta tag.
68 *
69 * Outputs a noindex meta tag that tells web robots not to index and follow content.
70 *
71 * @since 2.10.0
72 */
73 public function noRobots() {
74 echo "<meta name='robots' content='noindex,nofollow'/>\n";
75 }
76
77 /**
78 * Handle enqueue script
79 *
80 * @since 2.10.0
81 */
82 public function handleEnqueueScripts() {
83 global $wp_scripts, $wp_styles;
84 wp_enqueue_scripts();
85
86 $wp_styles->dequeue( $this->getListOfScriptsToDequeue( $wp_styles->registered ) );
87 $wp_scripts->dequeue( $this->getListOfScriptsToDequeue( $wp_scripts->registered ) );
88 }
89
90 /**
91 * Get filter list to dequeue scripts and style
92 *
93 * @param array $scripts
94 *
95 * @return array
96 * @since 2.10.0
97 */
98 private function getListOfScriptsToDequeue( $scripts ) {
99 $list = [];
100 $skip = [ 'babel-polyfill' ];
101 $themeDir = get_template_directory_uri();
102
103 /* @var _WP_Dependency $data */
104 foreach ( $scripts as $handle => $data ) {
105 // Do not unset dependency.
106 if ( in_array( $handle, $skip, true ) ) {
107 continue;
108 }
109
110 // Do not allow styles and scripts from theme.
111 if ( false !== strpos( (string) $data->src, $themeDir ) ) {
112 $list[] = $handle;
113 continue;
114 }
115
116 if (
117 0 === strpos( $handle, 'give' ) ||
118 false !== strpos( $data->src, '\give' )
119 ) {
120 // Store dependencies to skip.
121 $skip = array_merge( $skip, $data->deps );
122 continue;
123 }
124
125 $list[] = $handle;
126 }
127
128 return $list;
129 }
130 }
131