PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.23.2
GiveWP – Donation Plugin and Fundraising Platform v2.23.2
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 / Form / LegacyConsumer / Actions / UploadFilesAction.php
give / src / Form / LegacyConsumer / Actions Last commit date
DetermineVisibilityForRequest.php 4 years ago UploadFilesAction.php 4 years ago
UploadFilesAction.php
87 lines
1 <?php
2
3 namespace Give\Form\LegacyConsumer\Actions;
4
5 use Give\Form\LegacyConsumer\Traits\HasFilesArray;
6 use Give\Framework\FieldsAPI\File;
7
8 use function wp_check_filetype;
9 use function wp_generate_attachment_metadata;
10 use function wp_handle_upload;
11 use function wp_insert_attachment;
12 use function wp_update_attachment_metadata;
13
14 /**
15 * @package Give\Form\LegacyConsumer\Commands
16 *
17 * @since 2.14.0
18 */
19 class UploadFilesAction
20 {
21 use HasFilesArray;
22
23 /**
24 * @var array
25 */
26 private $files;
27
28 /**
29 * @var File
30 */
31 private $field;
32
33 /**
34 * @since 2.14.0
35 */
36 public function __construct(File $field)
37 {
38 $this->field = $field;
39 $this->files = $this->getFiles();
40 }
41
42 /**
43 * @since 2.14.0
44 */
45 public function __invoke()
46 {
47 if ( ! function_exists('wp_handle_upload')) {
48 require_once(ABSPATH . 'wp-admin/includes/file.php');
49 }
50
51 $fileIds = [];
52 foreach ($this->files as $file) {
53 $upload = wp_handle_upload($file, ['test_form' => false,]);
54
55 if (isset($upload['url'])) {
56 $path = $upload['url'];
57
58 // Check the type of file. We'll use this as the 'post_mime_type'.
59 $filetype = wp_check_filetype(basename($path), null);
60
61 // Prepare an array of post data for the attachment.
62 $attachment = [
63 'guid' => $path,
64 'post_mime_type' => $filetype['type'],
65 'post_title' => preg_replace('/\.[^.]+$/', '', basename($path)),
66 'post_content' => '',
67 'post_status' => 'inherit',
68 ];
69
70 // Insert the attachment.
71 $attachmentId = wp_insert_attachment($attachment, $path);
72
73 // Make sure that this file is included, as wp_generate_attachment_metadata() depends on it.
74 require_once(ABSPATH . 'wp-admin/includes/image.php');
75
76 // Generate the metadata for the attachment, and update the database record.
77 $attachmentData = wp_generate_attachment_metadata($attachmentId, $path);
78 wp_update_attachment_metadata($attachmentId, $attachmentData);
79
80 $fileIds[] = $attachmentId;
81 }
82 }
83
84 return $fileIds;
85 }
86 }
87