PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.27.2
GiveWP – Donation Plugin and Fundraising Platform v2.27.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 / src / DonorDashboards / Tabs / EditProfileTab / ProfileRoute.php
give / src / DonorDashboards / Tabs / EditProfileTab Last commit date
AvatarRoute.php 3 years ago LocationRoute.php 4 years ago ProfileRoute.php 4 years ago Tab.php 4 years ago
ProfileRoute.php
120 lines
1 <?php
2
3 namespace Give\DonorDashboards\Tabs\EditProfileTab;
4
5 use Give\DonorDashboards\Helpers\SanitizeProfileData as SanitizeHelper;
6 use Give\DonorDashboards\Profile as Profile;
7 use Give\DonorDashboards\Tabs\Contracts\Route as RouteAbstract;
8 use WP_REST_Request;
9
10 /**
11 * @since 2.10.0
12 */
13 class ProfileRoute extends RouteAbstract
14 {
15
16 /**
17 * @inheritdoc
18 */
19 public function endpoint()
20 {
21 return 'profile';
22 }
23
24 /**
25 * @inheritdoc
26 */
27 public function args()
28 {
29 return [
30 'data' => [
31 'type' => 'string',
32 'required' => true,
33 'sanitize_callback' => [$this, 'sanitizeData'],
34 ],
35 'id' => [
36 'type' => 'int',
37 'required' => true,
38 ],
39 ];
40 }
41
42 /**
43 * Handles profile update, and returns updated profile array
44 *
45 * @since 2.10.0
46 *
47 * @param WP_REST_Request $request
48 *
49 * @return array
50 *
51 */
52 public function handleRequest(WP_REST_Request $request)
53 {
54 return $this->updateProfile($request->get_param('data'), give()->donorDashboard->getId());
55 }
56
57 /**
58 * Updates profile model, then gets newly stored profile data to return
59 *
60 * @since 2.10.0
61 *
62 * @param int $id Profile id to update
63 *
64 * @param object $data Object representing profile data to update
65 *
66 * @return array
67 *
68 */
69 protected function updateProfile($data, $id)
70 {
71 $profile = new Profile($id);
72 $profile->update($data);
73
74 return [
75 'profile' => $profile->getProfileData(),
76 ];
77 }
78
79 /**
80 * Sanitize profile data object
81 *
82 * @since 2.10.0
83 *
84 * @param \WP_REST_Request $request
85 * @param string $param
86 *
87 * @param string $value JSON encoded string representing profile data
88 *
89 * @return object
90 *
91 */
92 public function sanitizeData($value, $request, $param)
93 {
94 $sanitizeHelper = '\Give\DonorDashboards\Helpers\SanitizeProfileData';
95 $values = json_decode($value);
96
97 return [
98 'firstName' => sanitize_text_field($values->firstName),
99 'lastName' => sanitize_text_field($values->lastName),
100 'company' => sanitize_text_field($values->company),
101 'additionalEmails' => SanitizeHelper::sanitizeAdditionalEmails($values->additionalEmails),
102 'additionalAddresses' => SanitizeHelper::sanitizeAdditionalAddresses($values->additionalAddresses),
103 'primaryEmail' => sanitize_email($values->primaryEmail),
104 'primaryAddress' => SanitizeHelper::sanitizeAddress($values->primaryAddress),
105 'titlePrefix' => sanitize_text_field($values->titlePrefix),
106 'avatarId' => SanitizeHelper::sanitizeInt($values->avatarId),
107 'isAnonymous' => intval($values->isAnonymous),
108 ];
109 }
110
111 protected function sanitizeValue($value, $config)
112 {
113 if ( ! empty($value) && is_callable($config['sanitizeCallback'])) {
114 return $config['sanitizeCallback']($value);
115 } else {
116 return $config['default'];
117 }
118 }
119 }
120