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