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 / App.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
App.php
176 lines
1 <?php
2
3 namespace Give\DonorDashboards;
4
5 use Give\DonorDashboards\Helpers\LocationList;
6
7 /**
8 * Class App
9 * @package Give\DonorDashboards
10 *
11 * @since 2.10.2
12 */
13 class App {
14 /**
15 * @var Profile
16 */
17 protected $profile;
18
19 /**
20 * App constructor.
21 */
22 public function __construct() {
23 $this->profile = new Profile();
24 }
25
26 /**
27 * @param array $attributes
28 *
29 * @return string
30 */
31 public function getOutput( $attributes ) {
32
33 $url = get_site_url() . '/?give-embed=donor-dashboard';
34
35 $queryArgs = [];
36
37 if ( isset( $attributes['accent_color'] ) ) {
38 $queryArgs['accent-color'] = urlencode( $attributes['accent_color'] );
39 }
40
41 if ( isset( $_GET['give_nl'] ) ) {
42 $queryArgs['give_nl'] = urlencode( give_clean( $_GET['give_nl'] ) );
43 }
44
45 if ( isset( $_GET['_give_hash'] ) ) {
46 $queryArgs['_give_hash'] = urlencode( give_clean( $_GET['_give_hash'] ) );
47 }
48
49 if ( isset( $_GET['action'] ) ) {
50 $queryArgs['action'] = urlencode( give_clean( $_GET['action'] ) );
51 }
52
53 $url = add_query_arg( $queryArgs, $url );
54
55 $loader = $this->getIframeLoader( $attributes['accent_color'] );
56
57 return sprintf(
58 '<div style="position: relative; max-width: 100%%;"><iframe
59 name="give-embed-donor-profile"
60 %1$s
61 %4$s
62 data-autoScroll="%2$s"
63 onload="if( \'undefined\' !== typeof Give ) { Give.initializeIframeResize(this) }"
64 style="border: 0;visibility: hidden;%3$s"></iframe>%5$s</div>',
65 "src=\"{$url}#/dashboard\"",
66 true,
67 'min-height: 776px; width: 100%; max-width: 100% !important;',
68 '',
69 $loader
70 );
71 }
72
73 /**
74 * Get output markup for Donor Dashboard app
75 *
76 * @since 2.10.0
77 *
78 * @param string $accentColor
79 *
80 * @return string
81 */
82 public function getIframeLoader( $accentColor ) {
83 ob_start();
84
85 require $this->getLoaderTemplatePath();
86
87 return ob_get_clean();
88 }
89
90 /**
91 * Get output markup for Donor Dashboard app
92 *
93 * @since 2.10.0
94 * @return string
95 */
96 public function getIframeContent() {
97 ob_start();
98
99 require $this->getTemplatePath();
100
101 return ob_get_clean();
102 }
103
104 /**
105 * Get template path for Donor Dashboard component template
106 * @since 2.10.0
107 **/
108 public function getTemplatePath() {
109 return GIVE_PLUGIN_DIR . '/src/DonorDashboards/resources/views/donordashboard.php';
110 }
111
112 /**
113 * Get template path for Donor Dashboard component template
114 * @since 2.10.0
115 **/
116 public function getLoaderTemplatePath() {
117 return GIVE_PLUGIN_DIR . '/src/DonorDashboards/resources/views/donordashboardloader.php';
118 }
119
120 /**
121 * Enqueue assets for front-end donor dashboards
122 *
123 * @since 2.10.0
124 **@return void
125 */
126 public function loadAssets() {
127 // Load assets only if rendering donor dashboard.
128 if ( ! isset( $_GET['give-embed'] ) || 'donor-dashboard' !== $_GET['give-embed'] ) {
129 return;
130 }
131
132 wp_enqueue_script(
133 'give-donor-dashboards-app',
134 GIVE_PLUGIN_URL . 'assets/dist/js/donor-dashboards-app.js',
135 [],
136 GIVE_VERSION,
137 true
138 );
139
140 $recaptcha_key = give_get_option( 'recaptcha_key' );
141 $recaptcha_secret = give_get_option( 'recaptcha_secret' );
142 $recaptcha_enabled = ( give_is_setting_enabled( give_get_option( 'enable_recaptcha' ) ) ) && ! empty( $recaptcha_key ) && ! empty( $recaptcha_secret ) ? true : false;
143
144 wp_localize_script(
145 'give-donor-dashboards-app',
146 'giveDonorDashboardData',
147 [
148 'apiRoot' => esc_url_raw( rest_url() ),
149 'apiNonce' => wp_create_nonce( 'wp_rest' ),
150 'profile' => give()->donorDashboard->getProfileData(),
151 'countries' => LocationList::getCountries(),
152 'states' => LocationList::getStates( give()->donorDashboard->getCountry() ),
153 'id' => give()->donorDashboard->getId(),
154 'emailAccessEnabled' => give_is_setting_enabled( give_get_option( 'email_access' ) ),
155 'registeredTabs' => give()->donorDashboardTabs->getRegisteredIds(),
156 'loggedInWithoutDonor' => get_current_user_id() !== 0 && give()->donorDashboard->getId() === null ? true : false,
157 'recaptchaKey' => $recaptcha_enabled ? $recaptcha_key : '',
158 ]
159 );
160
161 wp_enqueue_style(
162 'give-google-font-montserrat',
163 'https://fonts.googleapis.com/css?family=Montserrat:500,500i,600,600i,700,700i&display=swap',
164 [],
165 null
166 );
167
168 wp_enqueue_style(
169 'give-donor-dashboards-app',
170 GIVE_PLUGIN_URL . 'assets/dist/css/donor-dashboards-app.css',
171 [ 'give-google-font-montserrat' ],
172 GIVE_VERSION
173 );
174 }
175 }
176