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