PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.1.2
GiveWP – Donation Plugin and Fundraising Platform v2.1.2
4.16.3 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 / donors / donor-functions.php
give / includes / admin / donors Last commit date
class-donor-table.php 8 years ago donor-actions.php 8 years ago donor-functions.php 8 years ago donors.php 8 years ago
donor-functions.php
160 lines
1 <?php
2 /**
3 * Donors
4 *
5 * @package Give
6 * @subpackage Admin/Donors
7 * @copyright Copyright (c) 2016, WordImpress
8 * @license https://opensource.org/licenses/gpl-license GNU Public License
9 * @since 1.0
10 */
11
12 // Exit if accessed directly.
13 if ( ! defined( 'ABSPATH' ) ) {
14 exit;
15 }
16
17 /**
18 * Register a view for the single donor view.
19 *
20 * @param array $views An array of existing views.
21 *
22 * @since 1.0
23 *
24 * @return array The altered list of views.
25 */
26 function give_register_default_donor_views( $views ) {
27
28 $default_views = array(
29 'overview' => 'give_donor_view',
30 'delete' => 'give_donor_delete_view',
31 'notes' => 'give_donor_notes_view',
32 );
33
34 return array_merge( $views, $default_views );
35
36 }
37
38 add_filter( 'give_donor_views', 'give_register_default_donor_views', 1, 1 );
39
40 /**
41 * Register a tab for the single donor view.
42 *
43 * @param array $tabs An array of existing tabs.
44 *
45 * @since 1.0
46 *
47 * @return array The altered list of tabs
48 */
49 function give_register_default_donor_tabs( $tabs ) {
50
51 $default_tabs = array(
52 'overview' => array(
53 'dashicon' => 'dashicons-admin-users',
54 'title' => __( 'Donor Profile', 'give' ),
55 ),
56 'notes' => array(
57 'dashicon' => 'dashicons-admin-comments',
58 'title' => __( 'Donor Notes', 'give' ),
59 ),
60 );
61
62 return array_merge( $tabs, $default_tabs );
63 }
64
65 add_filter( 'give_donor_tabs', 'give_register_default_donor_tabs', 1, 1 );
66
67 /**
68 * Register the Delete icon as late as possible so it's at the bottom.
69 *
70 * @param array $tabs An array of existing tabs.
71 *
72 * @since 1.0
73 *
74 * @return array The altered list of tabs, with 'delete' at the bottom.
75 */
76 function give_register_delete_donor_tab( $tabs ) {
77
78 $tabs['delete'] = array(
79 'dashicon' => 'dashicons-trash',
80 'title' => __( 'Delete Donor', 'give' ),
81 );
82
83 return $tabs;
84 }
85
86 add_filter( 'give_donor_tabs', 'give_register_delete_donor_tab', PHP_INT_MAX, 1 );
87
88 /**
89 * Connect and Reconnect Donor with User profile.
90 * @todo $address is unnecessary param because we are store address to user.
91 *
92 * @param object $donor Donor Object.
93 * @param array $donor_data Donor Post Variables.
94 * @param array $address Address Information.
95 *
96 * @since 1.8.14
97 *
98 * @return array
99 */
100 function give_connect_user_donor_profile( $donor, $donor_data, $address ) {
101
102 $donor_id = $donor->id;
103 $previous_user_id = $donor->user_id;
104
105 /**
106 * Fires before editing a donor.
107 *
108 * @param int $donor_id The ID of the donor.
109 * @param array $donor_data The donor data.
110 * @param array $address The donor's address.
111 *
112 * @since 1.0
113 */
114 do_action( 'give_pre_edit_donor', $donor_id, $donor_data, $address );
115
116 $output = array();
117
118 if ( $donor->update( $donor_data ) ) {
119
120 // Create and Update Donor First Name and Last Name in Meta Fields.
121 $donor->update_meta( '_give_donor_first_name', $donor_data['first_name'] );
122 $donor->update_meta( '_give_donor_last_name', $donor_data['last_name'] );
123
124 // Fetch disconnected user id, if exists.
125 $disconnected_user_id = $donor->get_meta( '_give_disconnected_user_id', true );
126
127 // Flag User and Donor Disconnection.
128 delete_user_meta( $disconnected_user_id, '_give_is_donor_disconnected' );
129
130 // Check whether the disconnected user id and the reconnected user id are same or not.
131 // If both are same then delete user id store in donor meta.
132 if( $donor_data['user_id'] === $disconnected_user_id ) {
133 delete_user_meta( $disconnected_user_id, '_give_disconnected_donor_id' );
134 $donor->delete_meta( '_give_disconnected_user_id' );
135 }
136
137 $output['success'] = true;
138 $donor_data = array_merge( $donor_data, $address );
139 $output['customer_info'] = $donor_data;
140
141 } else {
142
143 $output['success'] = false;
144
145 }
146
147 /**
148 * Fires after editing a donor.
149 *
150 * @param int $donor_id The ID of the donor.
151 * @param array $donor_data The donor data.
152 *
153 * @since 1.0
154 */
155 do_action( 'give_post_edit_donor', $donor_id, $donor_data );
156
157
158 return $output;
159 }
160