cloudAttachmentUploader = new CloudAttachmentUploader($cloudProvider); } public function register(): void { add_filter('wp_generate_attachment_metadata', [$this, 'run'], 99, 2); } public function run($metadata, $attachment_id) { if (!$this->cloudAttachmentUploader->uploadAttachment($attachment_id)) { wp_delete_attachment($attachment_id, true); } return $metadata; } }