PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.4.7
GiveWP – Donation Plugin and Fundraising Platform v2.4.7
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 / includes / admin / plugins.php
give / includes / admin Last commit date
donors 7 years ago emails 7 years ago forms 7 years ago payments 7 years ago reports 7 years ago settings 7 years ago shortcodes 7 years ago tools 7 years ago upgrades 7 years ago views 8 years ago EDD_SL_Plugin_Updater.php 7 years ago abstract-admin-settings-page.php 7 years ago add-ons.php 7 years ago admin-actions.php 7 years ago admin-filters.php 7 years ago admin-footer.php 7 years ago admin-pages.php 7 years ago class-addon-activation-banner.php 7 years ago class-admin-settings.php 7 years ago class-api-keys-table.php 7 years ago class-blank-slate.php 7 years ago class-give-admin.php 7 years ago class-give-html-elements.php 7 years ago class-give-settings.php 7 years ago class-i18n-module.php 8 years ago dashboard-widgets.php 7 years ago give-metabox-functions.php 7 years ago import-functions.php 7 years ago plugins.php 7 years ago setting-page-functions.php 7 years ago welcome.php 7 years ago
plugins.php
656 lines
1 <?php
2 /**
3 * Admin Plugins
4 *
5 * @package Give
6 * @subpackage Admin/Plugins
7 * @copyright Copyright (c) 2016, GiveWP
8 * @license https://opensource.org/licenses/gpl-license GNU Public License
9 * @since 1.4
10 */
11
12 // Exit if accessed directly.
13 if ( ! defined( 'ABSPATH' ) ) {
14 exit;
15 }
16
17 /**
18 * Plugins row action links
19 *
20 * @since 1.4
21 *
22 * @param array $actions An array of plugin action links.
23 *
24 * @return array An array of updated action links.
25 */
26 function give_plugin_action_links( $actions ) {
27 $new_actions = array(
28 'settings' => sprintf(
29 '<a href="%1$s">%2$s</a>',
30 admin_url( 'edit.php?post_type=give_forms&page=give-settings' ),
31 __( 'Settings', 'give' )
32 ),
33 );
34
35 return array_merge( $new_actions, $actions );
36 }
37
38 add_filter( 'plugin_action_links_' . GIVE_PLUGIN_BASENAME, 'give_plugin_action_links' );
39
40
41 /**
42 * Plugin row meta links
43 *
44 * @since 1.4
45 *
46 * @param array $plugin_meta An array of the plugin's metadata.
47 * @param string $plugin_file Path to the plugin file, relative to the plugins directory.
48 *
49 * @return array
50 */
51 function give_plugin_row_meta( $plugin_meta, $plugin_file ) {
52 if ( GIVE_PLUGIN_BASENAME !== $plugin_file ) {
53 return $plugin_meta;
54 }
55
56 $new_meta_links = array(
57 sprintf(
58 '<a href="%1$s" target="_blank">%2$s</a>',
59 esc_url(
60 add_query_arg(
61 array(
62 'utm_source' => 'plugins-page',
63 'utm_medium' => 'plugin-row',
64 'utm_campaign' => 'admin',
65 ), 'https://givewp.com/documentation/'
66 )
67 ),
68 __( 'Documentation', 'give' )
69 ),
70 sprintf(
71 '<a href="%1$s" target="_blank">%2$s</a>',
72 esc_url(
73 add_query_arg(
74 array(
75 'utm_source' => 'plugins-page',
76 'utm_medium' => 'plugin-row',
77 'utm_campaign' => 'admin',
78 ), 'https://givewp.com/addons/'
79 )
80 ),
81 __( 'Add-ons', 'give' )
82 ),
83 );
84
85 return array_merge( $plugin_meta, $new_meta_links );
86 }
87
88 add_filter( 'plugin_row_meta', 'give_plugin_row_meta', 10, 2 );
89
90
91 /**
92 * Get the Parent Page Menu Title in admin section.
93 * Based on get_admin_page_title WordPress Function.
94 *
95 * @since 1.8.17
96 *
97 * @global array $submenu
98 * @global string $plugin_page
99 *
100 * @return string $title Page title
101 */
102 function give_get_admin_page_menu_title() {
103 $title = '';
104 global $submenu, $plugin_page;
105
106 foreach ( array_keys( $submenu ) as $parent ) {
107 if ( 'edit.php?post_type=give_forms' !== $parent ) {
108 continue;
109 }
110
111 foreach ( $submenu[ $parent ] as $submenu_array ) {
112 if ( $plugin_page !== $submenu_array[2] ) {
113 continue;
114 }
115
116 $title = isset( $submenu_array[0] ) ?
117 $submenu_array[0] :
118 $submenu_array[3];
119 }
120 }
121
122 return $title;
123 }
124
125 /**
126 * Store recently activated Give's addons to wp options.
127 *
128 * @since 2.1.0
129 */
130 function give_recently_activated_addons() {
131 // Check if action is set.
132 if ( isset( $_REQUEST['action'] ) ) {
133 $plugin_action = ( '-1' !== $_REQUEST['action'] ) ? $_REQUEST['action'] : ( isset( $_REQUEST['action2'] ) ? $_REQUEST['action2'] : '' );
134 $plugins = array();
135
136 switch ( $plugin_action ) {
137 case 'activate': // Single add-on activation.
138 $plugins[] = $_REQUEST['plugin'];
139 break;
140 case 'activate-selected': // If multiple add-ons activated.
141 $plugins = $_REQUEST['checked'];
142 break;
143 }
144
145
146 if ( ! empty( $plugins ) ) {
147
148 $give_addons = give_get_recently_activated_addons();
149
150 foreach ( $plugins as $plugin ) {
151 // Get plugins which has 'Give-' as prefix.
152 if ( stripos( $plugin, 'Give-' ) !== false ) {
153 $give_addons[] = $plugin;
154 }
155 }
156
157 if ( ! empty( $give_addons ) ) {
158 // Update the Give's activated add-ons.
159 update_option( 'give_recently_activated_addons', $give_addons, false );
160 }
161 }
162 }
163 }
164
165 // Add add-on plugins to wp option table.
166 add_action( 'activated_plugin', 'give_recently_activated_addons', 10 );
167
168 /**
169 * Create new menu in plugin section that include all the add-on
170 *
171 * @since 2.1.0
172 *
173 * @param $plugin_menu
174 *
175 * @return mixed
176 */
177 function give_filter_addons_do_filter_addons( $plugin_menu ) {
178 global $plugins;
179
180 foreach ( $plugins['all'] as $plugin_slug => $plugin_data ) {
181
182 if ( false !== strpos( $plugin_data['Name'], 'Give' ) && ( false !== strpos( $plugin_data['AuthorName'], 'WordImpress' ) || false !== strpos( $plugin_data['AuthorName'], 'GiveWP' ) ) ) {
183 $plugins['give'][ $plugin_slug ] = $plugins['all'][ $plugin_slug ];
184 $plugins['give'][ $plugin_slug ]['plugin'] = $plugin_slug;
185 // replicate the next step.
186 if ( current_user_can( 'update_plugins' ) ) {
187 $current = get_site_transient( 'update_plugins' );
188 if ( isset( $current->response[ $plugin_slug ] ) ) {
189 $plugins['give'][ $plugin_slug ]['update'] = true;
190 }
191 }
192 }
193 }
194
195 return $plugin_menu;
196
197 }
198
199 add_filter( 'show_advanced_plugins', 'give_filter_addons_do_filter_addons' );
200 add_filter( 'show_network_active_plugins', 'give_filter_addons_do_filter_addons' );
201
202 /**
203 * Keep activating the same add-on when admin activate or deactivate from Give Menu
204 *
205 * @since 2.2.0
206 *
207 * @param $action
208 * @param $result
209 */
210 function give_prepare_filter_addons_referer( $action, $result ) {
211 if ( ! function_exists( 'get_current_screen' ) ) {
212 return;
213 }
214 $screen = get_current_screen();
215 if ( is_object( $screen ) && $screen->base === 'plugins' && ! empty( $_REQUEST['plugin_status'] ) && $_REQUEST['plugin_status'] === 'give' ) {
216 global $status;
217 $status = 'give';
218 }
219 }
220
221 add_action( 'check_admin_referer', 'give_prepare_filter_addons_referer', 10, 2 );
222
223 /**
224 * Make the Give Menu as an default menu and update the Menu Name
225 *
226 * @since 2.1.0
227 *
228 * @param $views
229 *
230 * @return mixed
231 */
232 function give_filter_addons_filter_addons( $views ) {
233
234 global $status, $plugins;
235
236 if ( ! empty( $plugins['give'] ) ) {
237 $class = '';
238
239 if ( 'give' === $status ) {
240 $class = 'current';
241 }
242
243 $views['give'] = sprintf(
244 '<a class="%s" href="plugins.php?plugin_status=give"> %s <span class="count">(%s) </span></a>',
245 $class,
246 __( 'Give', 'give' ),
247 count( $plugins['give'] )
248 );
249 }
250
251 return $views;
252 }
253
254 add_filter( 'views_plugins', 'give_filter_addons_filter_addons' );
255 add_filter( 'views_plugins-network', 'give_filter_addons_filter_addons' );
256
257 /**
258 * Set the Give as the Main menu when admin click on the Give Menu in Plugin section.
259 *
260 * @since 2.1.0
261 *
262 * @param $plugins
263 *
264 * @return mixed
265 */
266 function give_prepare_filter_addons( $plugins ) {
267 global $status;
268
269 if ( isset( $_REQUEST['plugin_status'] ) && 'give' === $_REQUEST['plugin_status'] ) {
270 $status = 'give';
271 }
272
273 return $plugins;
274 }
275
276 add_filter( 'all_plugins', 'give_prepare_filter_addons' );
277
278
279 /**
280 * Display the upgrade notice message.
281 *
282 * @param array $data Array of plugin metadata.
283 * @param array $response An array of metadata about the available plugin update.
284 *
285 * @since 2.1
286 */
287 function give_in_plugin_update_message( $data, $response ) {
288 $new_version = $data['new_version'];
289 $current_version_parts = explode( '.', GIVE_VERSION );
290 $new_version_parts = explode( '.', $new_version );
291
292 // If it is a minor upgrade then return.
293 if ( version_compare( $current_version_parts[0] . '.' . $current_version_parts[1], $new_version_parts[0] . '.' . $new_version_parts[1], '=' ) ) {
294
295 return;
296 }
297
298 // Get the upgrade notice from the trunk.
299 $upgrade_notice = give_get_plugin_upgrade_notice( $new_version );
300
301 // Display upgrade notice.
302 echo apply_filters( 'give_in_plugin_update_message', $upgrade_notice ? '</p>' . wp_kses_post( $upgrade_notice ) . '<p class="dummy">' : '' );
303 }
304
305 // Display upgrade notice.
306 add_action( 'in_plugin_update_message-' . GIVE_PLUGIN_BASENAME, 'give_in_plugin_update_message', 10, 2 );
307
308
309 /**
310 * Get the upgrade notice from WordPress.org.
311 *
312 * Note: internal purpose use only
313 *
314 * @since 2.1
315 *
316 * @param string $new_version New verison of the plugin.
317 *
318 * @return string
319 */
320 function give_get_plugin_upgrade_notice( $new_version ) {
321
322 // Cache the upgrade notice.
323 $transient_name = "give_upgrade_notice_{$new_version}";
324 $upgrade_notice = get_transient( $transient_name );
325
326 if ( false === $upgrade_notice ) {
327 $response = wp_safe_remote_get( 'https://plugins.svn.wordpress.org/give/trunk/readme.txt' );
328
329 if ( ! is_wp_error( $response ) && ! empty( $response['body'] ) ) {
330 $upgrade_notice = give_parse_plugin_update_notice( $response['body'], $new_version );
331 set_transient( $transient_name, $upgrade_notice, DAY_IN_SECONDS );
332 }
333 }
334
335 return $upgrade_notice;
336 }
337
338
339 /**
340 * Parse update notice from readme file.
341 *
342 * Note: internal purpose use only
343 *
344 * @since 2.1
345 *
346 * @param string $content Content of the readme.txt file.
347 * @param string $new_version The version with current version is compared.
348 *
349 * @return string
350 */
351 function give_parse_plugin_update_notice( $content, $new_version ) {
352 $version_parts = explode( '.', $new_version );
353 $check_for_notices = array(
354 $version_parts[0] . '.0',
355 $version_parts[0] . '.0.0',
356 $version_parts[0] . '.' . $version_parts[1] . '.' . '0',
357 );
358
359 // Regex to extract Upgrade notice from the readme.txt file.
360 $notice_regexp = '~==\s*Upgrade Notice\s*==\s*=\s*(.*)\s*=(.*)(=\s*' . preg_quote( $new_version ) . '\s*=|$)~Uis';
361
362 $upgrade_notice = '';
363
364 foreach ( $check_for_notices as $check_version ) {
365 if ( version_compare( GIVE_VERSION, $check_version, '>' ) ) {
366 continue;
367 }
368
369 $matches = null;
370
371 if ( preg_match( $notice_regexp, $content, $matches ) ) {
372 $notices = (array) preg_split( '~[\r\n]+~', trim( $matches[2] ) );
373
374 if ( version_compare( trim( $matches[1] ), $check_version, '=' ) ) {
375 $upgrade_notice .= '<p class="give-plugin-upgrade-notice">';
376
377 foreach ( $notices as $index => $line ) {
378 $upgrade_notice .= preg_replace( '~\[([^\]]*)\]\(([^\)]*)\)~', '<a href="${2}">${1}</a>', $line );
379 }
380
381 $upgrade_notice .= '</p>';
382 }
383
384 if ( ! empty( $upgrade_notice ) ) {
385 break;
386 }
387 }
388 }
389
390 return wp_kses_post( $upgrade_notice );
391 }
392
393
394 /**
395 * Add styling to the plugin upgrade notice.
396 *
397 * @since 2.1
398 */
399 function give_plugin_notice_css() {
400 ?>
401 <style type="text/css">
402 #give-update .give-plugin-upgrade-notice {
403 font-weight: 400;
404 background: #fff8e5 !important;
405 border-left: 4px solid #ffb900;
406 border-top: 1px solid #ffb900;
407 padding: 9px 0 9px 12px !important;
408 margin: 0 -12px 0 -16px !important;
409 }
410
411 #give-update .give-plugin-upgrade-notice:before {
412 content: '\f348';
413 display: inline-block;
414 font: 400 18px/1 dashicons;
415 speak: none;
416 margin: 0 8px 0 -2px;
417 vertical-align: top;
418 }
419
420 #give-update .dummy {
421 display: none;
422 }
423 </style>
424 <?php
425 }
426
427 add_action( 'admin_head', 'give_plugin_notice_css' );
428
429 /**
430 * Get list of add-on last activated.
431 *
432 * @since 2.1.3
433 *
434 * @return mixed|array list of recently activated add-on
435 */
436 function give_get_recently_activated_addons() {
437 return get_option( 'give_recently_activated_addons', array() );
438 }
439
440 /**
441 * Renders the Give Deactivation Survey Form.
442 * Note: only for internal use
443 *
444 * @since 2.2
445 */
446 function give_deactivation_popup() {
447 // Bailout.
448 if ( ! current_user_can( 'delete_plugins' ) ) {
449 give_die();
450 }
451
452 $results = array();
453
454 // Start output buffering.
455 ob_start();
456 ?>
457
458 <h2 id="deactivation-survey-title">
459 <img src="<?php echo esc_url( GIVE_PLUGIN_URL ) ?>/assets/dist/images/give-icon-full-circle.svg">
460 <span><?php esc_html_e( 'Give Deactivation', 'give' ); ?></span>
461 </h2>
462 <form class="deactivation-survey-form" method="POST">
463 <p><?php esc_html_e( 'If you have a moment, please let us know why you are deactivating Give. All submissions are anonymous and we only use this feedback to improve this plugin.', 'give' ); ?></p>
464
465 <div>
466 <label class="give-field-description">
467 <input type="radio" name="give-survey-radios" value="1">
468 <?php esc_html_e( "I'm only deactivating temporarily", 'give' ); ?>
469 </label>
470 </div>
471
472 <div>
473 <label class="give-field-description">
474 <input type="radio" name="give-survey-radios" value="2">
475 <?php esc_html_e( 'I no longer need the plugin', 'give' ); ?>
476 </label>
477 </div>
478
479 <div>
480 <label class="give-field-description">
481 <input type="radio" name="give-survey-radios" value="3" data-has-field="true">
482 <?php esc_html_e( 'I found a better plugin', 'give' ); ?>
483 </label>
484
485 <div class="give-survey-extra-field">
486 <p><?php esc_html_e( 'What is the name of the plugin?', 'give' ); ?></p>
487 <input type="text" name="user-reason" class="widefat">
488 </div>
489 </div>
490
491 <div>
492 <label class="give-field-description">
493 <input type="radio" name="give-survey-radios" value="4">
494 <?php esc_html_e( 'I only needed the plugin for a short period', 'give' ); ?>
495 </label>
496 </div>
497
498 <div>
499 <label class="give-field-description">
500 <input type="radio" name="give-survey-radios" value="5" data-has-field="true">
501 <?php esc_html_e( 'The plugin broke my site', 'give' ); ?>
502 </label>
503
504 <div class="give-survey-extra-field">
505 <p><?php
506 printf(
507 '%1$s %2$s %3$s',
508 __( "We're sorry to hear that, check", 'give' ),
509 '<a href="https://wordpress.org/support/plugin/give">Give Support</a>.',
510 __( 'Can you describe the issue?', 'give' )
511 );
512 ?>
513 </p>
514 <textarea disabled name="user-reason" class="widefat" rows="6"></textarea disabled>
515 </div>
516 </div>
517
518 <div>
519 <label class="give-field-description">
520 <input type="radio" name="give-survey-radios" value="6" data-has-field="true">
521 <?php esc_html_e( 'The plugin suddenly stopped working', 'give' ); ?>
522 </label>
523
524 <div class="give-survey-extra-field">
525 <p><?php
526 printf(
527 '%1$s %2$s %3$s',
528 __( "We're sorry to hear that, check", 'give' ),
529 '<a href="https://wordpress.org/support/plugin/give">Give Support</a>.',
530 __( 'Can you describe the issue?', 'give' )
531 );
532 ?>
533 </p>
534 <textarea disabled name="user-reason" class="widefat" rows="6"></textarea disabled>
535 </div>
536 </div>
537
538 <div>
539 <label class="give-field-description">
540 <input type="radio" name="give-survey-radios" value="7" data-has-field="true">
541 <?php esc_html_e( 'Other', 'give' ); ?>
542 </label>
543
544 <div class="give-survey-extra-field">
545 <p><?php esc_html_e( "Please describe why you're deactivating Give", 'give' ); ?></p>
546 <textarea disabled name="user-reason" class="widefat" rows="6"></textarea disabled>
547 </div>
548 </div>
549
550 <div id="survey-and-delete-data">
551 <p>
552 <label>
553 <input type="checkbox" name="confirm_reset_store" value="1">
554 <?php esc_html_e( 'Would you like to delete all Give data?', 'give' ); ?>
555 </label>
556 <section class="give-field-description">
557 <?php esc_html_e( 'By default the custom roles, Give options, and database entries are not deleted when you deactivate Give. If you are deleting Give completely from your website and want those items removed as well check this option. Note: This will permanently delete all Give data from your database.', 'give' ); ?>
558 </section>
559 </p>
560 </div>
561 <?php
562 $current_user = wp_get_current_user();
563 $current_user_email = $current_user->user_email;
564 ?>
565 <input type="hidden" name="current-user-email" value="<?php echo $current_user_email; ?>">
566 <input type="hidden" name="current-site-url" value="<?php echo esc_url( get_bloginfo( 'url' ) ); ?>">
567 <input type="hidden" name="give-export-class" value="Give_Tools_Reset_Stats">
568 <?php wp_nonce_field( 'give_ajax_export', 'give_ajax_export' ); ?>
569 </form>
570
571 <?php
572
573 // Echo content (deactivation form) from the output buffer.
574 $output = ob_get_contents();
575
576 // Erase and stop output buffer.
577 ob_end_clean();
578
579 $results['html'] = $output;
580
581 wp_send_json( $results );
582 }
583
584 add_action( 'wp_ajax_give_deactivation_popup', 'give_deactivation_popup' );
585
586 /**
587 * Ajax callback after the deactivation survey form has been submitted.
588 * Note: only for internal use
589 *
590 * @since 2.2
591 */
592 function give_deactivation_form_submit() {
593
594 if ( ! check_ajax_referer( 'deactivation_survey_nonce', 'nonce', false ) ) {
595 wp_send_json_error();
596 wp_die();
597 }
598
599 $form_data = give_clean( wp_parse_args( $_POST['form-data'] ) );
600
601 // Get the selected radio value.
602 $radio_value = isset( $form_data['give-survey-radios'] ) ? $form_data['give-survey-radios'] : 0;
603
604 // Get the reason if any radio button has an optional text field.
605 $user_reason = isset( $form_data['user-reason'] ) ? $form_data['user-reason'] : '';
606
607 // Get the email of the user who deactivated the plugin.
608 $user_email = isset( $form_data['current-user-email'] ) ? $form_data['current-user-email'] : '';
609
610 // Get the URL of the website on which Give plugin is being deactivated.
611 $site_url = isset( $form_data['current-site-url'] ) ? $form_data['current-site-url'] : '';
612
613 // Get the value of the checkbox for deleting Give's data.
614 $delete_data = isset( $form_data['confirm_reset_store'] ) ? $form_data['confirm_reset_store'] : '';
615
616 /**
617 * Make a POST request to the endpoint to send the survey data.
618 */
619 $response = wp_remote_post(
620 'http://survey.givewp.com/wp-json/give/v2/survey/',
621 array(
622 'body' => array(
623 'radio_value' => $radio_value,
624 'user_reason' => $user_reason,
625 'current_user_email' => $user_email,
626 'site_url' => $site_url,
627 ),
628 )
629 );
630
631 // Check if the data is sent and stored correctly.
632 $response = wp_remote_retrieve_body( $response );
633
634 if ( 'true' === $response ) {
635 if ( '1' === $delete_data ) {
636 wp_send_json_success(
637 array(
638 'delete_data' => true,
639 )
640 );
641 } else {
642 wp_send_json_success(
643 array(
644 'delete_data' => false,
645 )
646 );
647 }
648 } else {
649 wp_send_json_error();
650 }
651
652 wp_die();
653 }
654
655 add_action( 'wp_ajax_deactivation_form_submit', 'give_deactivation_form_submit' );
656