PluginProbe
WPVR – 360 Panorama viewer and Virtual Tour Builder for WordPress / 8.5.39
WPVR – 360 Panorama viewer and Virtual Tour Builder for WordPress v8.5.39
9.1.2 9.1.1 9.1.0 9.0.3 9.0.2 9.0.1 9.0.0 8.5.79 8.5.78 8.5.77 8.5.76 8.5.75 8.5.74 8.5.73 8.5.72 8.5.71 8.5.70 8.5.69 8.5.68 8.5.35 8.5.36 8.5.37 8.5.38 8.5.39 8.5.4 All 221 releases
wpvr / admin / classes / class-wpvr-import-sample-tour.php

class-wpvr-import-sample-tour.php in WPVR – 360 Panorama viewer and Virtual Tour Builder for WordPress 8.5.39, at admin/classes/class-wpvr-import-sample-tour.php

212 lines 6.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
3 /**
4 * Responsible for managing Tour Import feature
5 *
6 * @link http://rextheme.com/
7 * @since 8.5.21
8 *
9 * @package Wpvr
10 * @subpackage Wpvr/admin/classes
11 */
12
13 class WPVR_Sample_Tour_Import {
14
15 /**
16 * Prepare tour import feature, if tour has preview file
17 *
18 * @param mixed $file_save_url
19 * @param mixed $new_post_id
20 * @param mixed $new_data
21 *
22 * @return void
23 * @since 8.5.21
24 */
25 public static function prepare_preview_file_to_import($file_save_url, $new_post_id, $new_data)
26 {
27 $preview_url = $file_save_url['baseurl'] . '/wpvr/temp/scene_preview.jpg';
28 $media_get = self::wpvr_handle_media_import($preview_url, $new_post_id);
29 if ($media_get['status'] == 'error') {
30 wp_delete_post($new_post_id, true);
31 self::wpvr_delete_temp_file();
32 wp_send_json_error($media_get['message']);
33 } elseif ($media_get['status'] == 'success') {
34 return $new_data['preview'] = $media_get['message'];
35 } else {
36 wp_delete_post($new_post_id, true);
37 self::wpvr_delete_temp_file();
38 wp_send_json_error('Media transfer process failed');
39 }
40 }
41
42
43 /**
44 * Prepare tour import feature, if tour has company logo
45 *
46 * @param mixed $logo
47 * @param mixed $file_save_url
48 * @param mixed $new_post_id
49 * @param mixed $new_data
50 *
51 * @return void
52 * @since 8.5.21
53 */
54 public static function prepare_company_log_image_to_import($logo, $file_save_url, $new_post_id, $new_data)
55 {
56 $get_logo_format = explode(".", $logo);
57 $logo_format = end($get_logo_format);
58 $logo_img = $file_save_url['baseurl'] . '/wpvr/temp/logo_img.' . $logo_format;
59 $media_get = self::wpvr_handle_media_import($logo_img, $new_post_id);
60 if ($media_get['status'] == 'error') {
61 wp_delete_post($new_post_id, true);
62 self::wpvr_delete_temp_file();
63 wp_send_json_error($media_get['message']);
64 } elseif ($media_get['status'] == 'success') {
65 return $new_data['cpLogoImg'] = $media_get['message'];
66 } else {
67 wp_delete_post($new_post_id, true);
68 self::wpvr_delete_temp_file();
69 wp_send_json_error('Media transfer process failed');
70 }
71 }
72
73
74 /**
75 * Prepare tour import feature, if tour has background music url
76 *
77 * @param mixed $new_data
78 * @param mixed $file_save_url
79 * @param mixed $new_post_id
80 *
81 * @return array
82 * @since 8.5.21
83 */
84 public static function prepare_bg_music_url_to_import($new_data, $file_save_url, $new_post_id)
85 {
86 $music_url = $new_data['bg_music_url'];
87 $get_music_format = explode(".", $music_url);
88 $music_format = end($get_music_format);
89 $music_url = $file_save_url['baseurl'] . '/wpvr/temp/logo_img.' . $music_format;
90 $media_get = self::wpvr_handle_media_import($music_url, $new_post_id);
91 if ($media_get['status'] == 'error') {
92 wp_delete_post($new_post_id, true);
93 self::wpvr_delete_temp_file();
94 wp_send_json_error($media_get['message']);
95 } elseif ($media_get['status'] == 'success') {
96 return $new_data['bg_music_url'] = $media_get['message'];
97 } else {
98 wp_delete_post($new_post_id, true);
99 self::wpvr_delete_temp_file();
100 wp_send_json_error('Media transfer process failed');
101 }
102 }
103
104
105 /**
106 * Prepare scene attachment url to import
107 *
108 * @param mixed $panoscenes
109 * @param mixed $cube_name
110 * @param mixed $file_save_url
111 * @param mixed $new_post_id
112 * @param mixed $key
113 *
114 * @return array
115 * @since 8.5.21
116 */
117 public static function prepare_scene_attachment_url_to_import($panoscenes, $cube_name, $file_save_url, $new_post_id, $key)
118 {
119 $scene_id = $panoscenes['scene-id'];
120 $url = $file_save_url['baseurl'] . '/wpvr/temp/' . $scene_id . $cube_name;
121 $media_get = self::wpvr_handle_media_import($url, $new_post_id);
122 if ($media_get['status'] == 'error') {
123 wp_delete_post($new_post_id, true);
124 self::wpvr_delete_temp_file();
125 wp_send_json_error($media_get['message']);
126 } elseif ($media_get['status'] == 'success') {
127 return $new_data['panodata']["scene-list"][$key]['scene-attachment-url'] = $media_get['message'];
128 } else {
129 wp_delete_post($new_post_id, true);
130 self::wpvr_delete_temp_file();
131 wp_send_json_error('Media transfer process failed');
132 }
133 }
134
135
136 /**
137 * Handle media importing
138 *
139 * @param mixed $url
140 * @param mixed $post_id
141 *
142 * @return array
143 * @since 8.5.21
144 */
145 public static function wpvr_handle_media_import($url, $post_id)
146 {
147 add_filter('https_ssl_verify', '__return_false');
148 add_filter('https_local_ssl_verify', '__return_false');
149
150 $tmp = download_url($url);
151 $file_array = array(
152 'name' => basename($url),
153 'tmp_name' => $tmp
154 );
155
156 if (is_wp_error($tmp)) {
157 @unlink($file_array['tmp_name']);
158 return (array(
159 'status' => 'error',
160 'message' => $tmp->get_error_message()
161 ));
162 }
163
164 $id = media_handle_sideload($file_array, $post_id);
165
166 if (is_wp_error($id)) {
167 @unlink($file_array['tmp_name']);
168 return (array(
169 'status' => 'error',
170 'message' => $tmp->get_error_message()
171 ));
172 }
173 remove_filter('https_ssl_verify', '__return_false');
174 remove_filter('https_local_ssl_verify', '__return_false');
175
176 $value = wp_get_attachment_url($id);
177 return (array(
178 'status' => 'success',
179 'message' => $value
180 ));
181 }
182
183
184 /**
185 * Delete temporary files
186 *
187 * @return void
188 * @since 8.5.21
189 */
190 public static function wpvr_delete_temp_file()
191 {
192 $filesToDelete = array();
193 $file_save_url = wp_upload_dir();
194 $rootPath = realpath($file_save_url['basedir'] . '/wpvr/temp/');
195 $files = new RecursiveIteratorIterator(
196 new RecursiveDirectoryIterator($rootPath),
197 RecursiveIteratorIterator::LEAVES_ONLY
198 );
199 foreach ($files as $name => $file) {
200 if (!$file->isDir()) {
201 $filePath = $file->getRealPath();
202 $filesToDelete[] = $filePath;
203 }
204 }
205
206 foreach ($filesToDelete as $file) {
207 unlink($file);
208 }
209 }
210
211 }
212