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 / AvatarRoute.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
AvatarRoute.php
110 lines
1 <?php
2
3 namespace Give\DonorDashboards\Tabs\EditProfileTab;
4
5 use Give\DonorDashboards\Tabs\Contracts\Route as RouteAbstract;
6 use WP_REST_Request;
7 use WP_REST_Response;
8
9 /**
10 * @since 2.10.3
11 */
12 class AvatarRoute extends RouteAbstract
13 {
14
15 /**
16 * @inheritdoc
17 */
18 public function endpoint()
19 {
20 return 'avatar';
21 }
22
23 /**
24 * @inheritdoc
25 */
26 public function args()
27 {
28 return [];
29 }
30
31 /**
32 * @inheritDoc
33 *
34 * @return array|WP_REST_Response
35 */
36 public function handleRequest(WP_REST_Request $request)
37 {
38 if ( ! (is_array($_POST) && is_array($_FILES))) {
39 return new WP_REST_Response(
40 [
41 'status' => 400,
42 'response' => 'missing_files',
43 'body_response' => [
44 'message' => __('No files were included in request for upload.', 'give'),
45 ],
46 ]
47 );
48 }
49
50 // Delete existing Donor profile avatar attachment
51 if (give()->donorDashboard->getAvatarId()) {
52 wp_delete_attachment(give()->donorDashboard->getAvatarId(), true);
53 }
54
55 if ( ! function_exists('wp_handle_upload')) {
56 require_once(ABSPATH . 'wp-admin/includes/file.php');
57 }
58
59 foreach ($_FILES as $file) {
60 $upload = wp_handle_upload(
61 $file,
62 [
63 'test_form' => false,
64 ]
65 );
66
67 if (isset($upload['url'])) {
68 $path = $upload['url'];
69
70 // Check the type of file. We'll use this as the 'post_mime_type'.
71 $filetype = wp_check_filetype(basename($path), null);
72
73 // Prepare an array of post data for the attachment.
74 $attachment = [
75 'guid' => $path,
76 'post_mime_type' => $filetype['type'],
77 'post_title' => preg_replace('/\.[^.]+$/', '', basename($path)),
78 'post_content' => '',
79 'post_status' => 'inherit',
80 ];
81
82 // Insert the attachment.
83 $attachmentId = wp_insert_attachment($attachment, $path);
84
85 // Make sure that this file is included, as wp_generate_attachment_metadata() depends on it.
86 require_once(ABSPATH . 'wp-admin/includes/image.php');
87
88 // Generate the metadata for the attachment, and update the database record.
89 $attachmentData = wp_generate_attachment_metadata($attachmentId, $path);
90 wp_update_attachment_metadata($attachmentId, $attachmentData);
91
92 return [
93 'id' => $attachmentId,
94 ];
95 }
96 }
97
98 return new WP_REST_Response(
99 [
100 'status' => 404,
101 'response' => 'not_found',
102 'body_response' => [
103 'message' => __('No file with an upload URL was found', 'give'),
104 ],
105 ]
106 );
107 }
108
109 }
110