WP VR – 360 Panorama and virtual tour creator for WordPress - Version 6.7.0

Version Description

(18-09-2020) = * Import/Export modified * Mobile media resizer switch added * Ocean theme conflict fixed

=

Download this release

Release Info

Developer rextheme
Plugin Icon 128x128 WP VR – 360 Panorama and virtual tour creator for WordPress
Version 6.7.0
Comparing to
See all releases

Code changes from version 6.6.0 to 6.7.0

README.txt CHANGED
@@ -1,140 +1,209 @@
1
- === WP VR - 360 Panorama and virtual tour creator for WordPress ===
2
  Contributors: rextheme, coderexco
 
3
  Donate link: https://rextheme.com/wp-vr-360-panorama-and-virtual-tour-creator-for-wordpress/
4
- Tags: virtual tour, real estate tour, panorama, panorama viewer, virtual tour, 360 panorama, interactive tour
5
- Requires at least: 4.0
6
  Tested up to: 5.5.1
7
- Stable tag: 6.6.0
8
  Requires PHP: 7.0.0
 
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
12
- Let site visitors take a virtual tour and get them excited!! Let them experience the glimpse of a live tour of your place.
13
 
14
  == Description ==
15
- Create amazing virtual tours on your own easily using WPVR. Let visitors take a tour of your place remotely, and get them more excited.
16
 
17
- With WPVR, you can create a virtual tour where visitors can navigate a 360 view of your location, switch between several scenes, get information on items on the location, zoom in and out to get a better view and get an overall idea about how your place may look in reality.
18
 
19
- Simply provide a 360 panoramic image, and this plugin will transform it into a realistic tour.
20
-
21
-
22
- >WPVR is fully compatible with Gutenberg Block Editor and Elementor Page Builder.
23
 
 
24
 
25
  [Demo Virtual Tour (Pro)](https://rextheme.com/wpvr/#demo-tour) | [Documentation](https://rextheme.com/docs/wp-vr/) | [Premium Version](https://rextheme.com/wpvr/)
26
 
27
- == Why Use WPVR? ==
28
- WPVR gives all the features needed to create a quality virtual tour without any hassle.
29
 
30
  https://www.youtube.com/watch?v=SWsv-bplne8
31
 
32
- Get several exclusive features, such as:
 
 
33
 
34
- **Simple interface optimized to create virtual tours easily** 
35
- Simple, easy, and straight forward options to add your 360 panoramic images and create a virtual tour.
36
 
37
- You can also add an auto rotation effect, scene fade animation when transmitting between scenes and many more to create an attractive virtual tour.
38
 
39
- Plus, it includes the feature to preview the tour at the back-end for proper inspection and tour creation.
 
 
40
 
41
  >Read detailed [documentation](https://rextheme.com/docs/wp-vr/) and [video tutorials](https://www.youtube.com/playlist?list=PLelDqLncNWcUndi1NkXJh2BH62OYmIayt) for assistance.
42
 
43
- **Create an interactive realistic tour with multiple scenes**
44
- Add several scenes and add hotspots to connect them into a tour. Create multiple hotspots for every scene at your own will, to connect to different scenes and generate a realistic tour experience.
45
 
46
- >Gyroscope support for mobile devices on WPVR Pro.
47
 
48
- Plus, hotspots can be used to provide information on click or hover, which will act as a guide to viewers.
49
 
 
50
 
51
- **Customize hotspots to create more attraction**
52
- WPVR comes with over 900+ custom icons to choose from, to use as hotspots. It features to change colors and add blinking animation to the custom icons to make the hotspots more catchy.
53
 
54
- Also, WPVR allows you to add custom icons on your own using custom CSS. 
55
 
56
- >Get a reliable support team to help you out at all times.
57
 
58
- Get more features for full control of the tour such as scene boundary control, zoom level control, default scene face, and many more.
59
 
60
- **Embed virtual tour without hassle**
61
- Once a tour is created, it will generate a tour ID which is used to embed the tour on the website either through Gutenberg block or Elementor widget.
62
 
63
- The tour will also generate a shortcode. For classic editor or WPBakery Page Builder, use the shortcode to embed the tour. (Use the Raw HTML block on WPBakery Page Builder.)
64
 
65
- **Gutenberg Block Support**
66
- On Gutenberg block editor has the WPVR block under the common blocks. It is used to embed the virtual tour. Provide the tour ID and assign your desired width and height, and the tour will be embedded.
67
 
68
- **Elementor Widget Support**
69
- The Elementor page builder will have a WPVR widget under the general widgets. Drag and drop the widget onto the page. Provide the tour ID and set your required width and height to get a live preview.
70
 
71
- For more control over creating a virtual tour, learn about the [Premium version](https://rextheme.com/wpvr/).
72
 
 
73
 
74
- = FEATURES =
75
- * Gutenberg block support
76
- * Elementor widget support
77
- * Responsive default design
78
- * Preview tour on back-end
79
- * Add multiple scenes and hotspots
80
- * Auto rotation with speed control
81
- * Auto rotation pause and stop control
82
- * Keyboard direction keys or mouse to navigate
83
- * Keyboard +/- keys or mouse scroll to control zoom
84
- * Scene type hotspot to connect scenes
85
- * Info type hotspots to give information, on-click or hover
86
- * Embed video, image or website link to hotspots
87
- * On screen controls and full screen mode
88
- * Hotspot customization with custom CSS
89
- * Scene fade animation
90
- * Full width tour tag
91
- * 360 Video embed support
92
- * Radius tag for VR border radius
93
- * Control plugin scripts and styles to load them on specific pages only.
94
- * Plugin Rollback support
95
- * Oxygen builder support
96
- * Multi-site support
97
- * Support from support forum
98
-
99
-
100
- = PREMIUM FEATURES =
101
- * All free features
102
- * Unlimited scenes and hotspots (limited to 5 in free version)
103
- * Gyroscope support on mobile devices
104
- * 900+ premium hotspot icons
105
- * Color picker for custom hotspot
106
- * Control max, min and default zoom level
107
- * Scene boundary control
108
- * Custom default scene face
109
- * Custom compass for panorama
110
- * Add scene title and description tag
111
- * File export and import (for WPVR only)
112
- * Duplicate tour on one click
113
- * Custom scene gallery
114
- * Custom control buttons
115
- * Google street view embed
116
- * Company logo
117
- * Partial Panorama
118
- * User role support
119
- * Mouse scroll switch
120
- * 360 video autoplay and loop switch
121
- * VR background music support
122
- * Personalized support (e-mail or forum)
123
 
124
- [Instructions to upgrade to pro](https://rextheme.com/docs/wp-vr/how-to-upgrade-to-pro/)
125
 
126
- > We have many more amazing features planned. Take look at [our development roadmap.](https://app.productstash.io/roadmaps/5f0b43d9a54eda00221d5516/public)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
127
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
 
129
- > *[Have a suggestion or feature request? Let us know!](https://app.productstash.io/roadmaps/5f0b43d9a54eda00221d5516/public#ideas)*
130
 
131
  **Upcoming Features**
132
- – WooCommerce Integration
133
  – Flat Image Support
134
- - Ground map
135
- - Connect multiple tours
 
136
 
137
- **[Documentation](https://rextheme.com/docs/wp-vr/)**
138
 
139
  ## Privacy Policy
140
  WP VR uses [Appsero](https://appsero.com) SDK to collect some telemetry data upon user's confirmation. This helps us to troubleshoot problems faster & make product improvements.
@@ -146,45 +215,72 @@ Integrating Appsero SDK **DOES NOT IMMEDIATELY** start gathering data, **without
146
  Learn more how [Appsero collects and uses this data](https://appsero.com/privacy-policy/).
147
 
148
  == Frequently Asked Questions ==
149
- = 1. Why should I use WPVR? =
150
- You can easily create a Virtual Tour for your place using WPVR. You simply need to provide a 360 degree panoramic photo, and this plugin will create a virtual tour which visitors can navigate easily. You can further add hotspots to include information or add more scenes to navigate to.
151
 
152
- = 2. Installation =
153
- You can download the plugin either from wordpress.org or from rextheme.com. Once you have downloaded the file, you can then go to your dashboard, under plugin, select Add New and upload the file. Then Install and activate the plugin. Once activated, on the left side under your dashboard, you will find the option WPVR at the bottom.
 
 
 
 
 
 
 
154
 
155
- = 3. What kind of pictures should I take to use in WPVR? =
156
- To make a perfect equirectangular image, you need to use a 360 degree panoramic photo of the area you want to preview.
157
 
158
- = 4. Can I embed images and videos on hotspot? =
159
- Yes, you can include image source or video embed link on the section On Click Content in a hotspot, which will view the image or video when clicked on.
 
 
 
 
 
 
 
160
 
161
- = 5. Can I Customize the Content on the hotspot? =
162
  Yes. You can create a custom class on your theme, stating whatever style you want. Then you can input the class name on the Hotspot Custom Class section in a hotspot, and the content displayed will be customized according to the style you set.
163
 
164
- = 6. How can I embed a virtual tour using Gutenberg Block Editor?? =
165
- Under common blocks, you will find a block called WPVR. Add WPVR block. Select the block and on the dynamic toolbar on the right, you will get the options to add ID, Height and Width. Collect the ID from the virtual tour you created. Assign height and width according to your convenience.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
 
167
- = 7. What do I do if I get “THE FILE (image link) COULD NOT BE ACCESSED” error? =
168
  Sometimes when you add a tour on your site, you might face this issue that rather than loading the tour it will give the error “THE FILE (…) COULD NOT BE ACCESSED.”
169
 
170
  This error shows up when you are running a website under “HTTPS” (secured with SSL certificate) whereas your image link is under “HTTP” (unsecured).
171
 
172
- To solve this issue, go to your WordPress Dashboard > Settings > General. Here make sure you have “https” added to both “WordPress Address (URL)” and “Site Address (URL)”. That’s it. Your virtual tour will load with no issues. 
173
 
174
- = 8. How to activate Gyroscope on IOS devices? =
175
- 1. Go to Settings > Safari
176
- 2. Scroll down to the Privacy & Security section
177
- 3. Enable Motion & Orientation Access
178
 
179
- That’s it. Now you can go to the browser and open the page with the virtual tour.
180
 
181
- You will find the gyroscope icon at the top left side.
182
 
183
- = 9. I Use Autoptimize plugin =
184
- If you use Autoptimize, then you need to exclude our plugin from their minification function.
185
 
186
- Simply add "/plugins/wpvr" to exclusion field (or use the location where you store plugins)
187
 
 
188
 
189
  == Screenshots ==
190
  1. Gutenberg Block
@@ -207,7 +303,7 @@ Simply add "/plugins/wpvr" to exclusion field (or use the location where you sto
207
  * On screen control available.
208
 
209
  = 1.0.1 =
210
- * Default scene can be selected from scene tab.
211
  * Default height and width given for shortcodes.
212
 
213
  = 2.0.0 =
@@ -223,7 +319,7 @@ Simply add "/plugins/wpvr" to exclusion field (or use the location where you sto
223
  * Rotation pause and stop control
224
 
225
  = 2.1.1 =
226
- * Dynamic Font-Awesome icon added for hotspot.
227
  * Dynamic color picker added for hotspot color.
228
  * Custom panorama compass support.
229
  * Default zoom level.
@@ -248,7 +344,7 @@ Simply add "/plugins/wpvr" to exclusion field (or use the location where you sto
248
  * Rextheme link removed from premium version.
249
 
250
  = 2.5.0 =
251
- * Gyroscope support on premium version.
252
  * Appsero error fix.
253
  * Gutenberg block column layout fix.
254
 
@@ -264,7 +360,7 @@ Simply add "/plugins/wpvr" to exclusion field (or use the location where you sto
264
  * Dynamic error reporting added.
265
 
266
  = 2.9.0 =
267
- * Tour selector updated on vr block.
268
 
269
  = 3.0.0 =
270
  * File import & export system added.
@@ -277,7 +373,7 @@ Simply add "/plugins/wpvr" to exclusion field (or use the location where you sto
277
  * Modified preview window.
278
 
279
  = 3.2.0 =
280
- * Custom scene gallery conflict and bug fix for iphone and ipad.
281
 
282
  = 3.3.0 =
283
  * Placeholder change.
@@ -290,7 +386,7 @@ Simply add "/plugins/wpvr" to exclusion field (or use the location where you sto
290
 
291
  = 3.4.2 =
292
  * Gallery carousal design fix
293
- * Css and js restricted
294
 
295
  = 3.4.3 =
296
  * Autorotation error fix
@@ -325,7 +421,7 @@ Simply add "/plugins/wpvr" to exclusion field (or use the location where you sto
325
  * js optimization removed
326
 
327
  = 3.7.0 =
328
- * Partial Panorama for pro version
329
 
330
  = 3.8.0 =
331
  * Load box design changed
@@ -371,7 +467,7 @@ Simply add "/plugins/wpvr" to exclusion field (or use the location where you sto
371
  * Scene title field added for gallery content
372
 
373
  = 5.0.0 =
374
- * Home button added to return to default scene
375
 
376
  = 5.1.0 (26-03-2020) =
377
  * Auto device based gyro enable added
@@ -389,7 +485,7 @@ Simply add "/plugins/wpvr" to exclusion field (or use the location where you sto
389
  = 5.5.0 (12-05-2020) =
390
  * Custom control conflict fixed
391
  * On click container fixed
392
- * Self hosted video pause on cross button
393
 
394
  = 5.6.0 (15-06-2020) =
395
  * VR background music support
@@ -442,7 +538,12 @@ Simply add "/plugins/wpvr" to exclusion field (or use the location where you sto
442
  * Preview gallery modified
443
  * Mobile media resizer modified
444
  * Video tab bug fixed
445
- * Allow url open auto handled
 
 
 
 
 
446
 
447
  == Upgrade Notice ==
448
- Please do update the WP VR to the latest version. Each update makes it sure your plugin is supporting all tour features.  
1
+ === WP VR - 360 Panorama and Virtual Tour Creator For WordPress ===
2
  Contributors: rextheme, coderexco
3
+ Tags: virtual tour, real estate tour, panorama, panorama viewer, virtual tour, 360 panorama, interactive tour, 360, streetview, virtual reality, 360 video, virtual, vr, interactive, 360-degree, equirectangular, google streetview, panoramas
4
  Donate link: https://rextheme.com/wp-vr-360-panorama-and-virtual-tour-creator-for-wordpress/
5
+ Requires at least: 5.0
 
6
  Tested up to: 5.5.1
 
7
  Requires PHP: 7.0.0
8
+ Stable tag: 6.7.0
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
12
+ Let site visitors take a virtual tour and get them excited!! Let them experience a glimpse of a live tour of your place.
13
 
14
  == Description ==
15
+ Create amazing virtual tours on your own easily using WP VR. Let visitors take a tour of your place remotely, and get them more excited.
16
 
17
+ With WP VR, you can create a virtual tour where visitors can navigate a 360 view of your location, switch between several scenes, get information on items on the location, zoom in and out to get a better view, and get an overall idea about how your place may look in reality.
18
 
19
+ Simply provide a 360 panoramic image, and this plugin will transform it into a realistic virtual tour.
 
 
 
20
 
21
+ >WPVR is fully compatible with Gutenberg Block Editor, Elementor Page Builder, and Oxygen Builder.
22
 
23
  [Demo Virtual Tour (Pro)](https://rextheme.com/wpvr/#demo-tour) | [Documentation](https://rextheme.com/docs/wp-vr/) | [Premium Version](https://rextheme.com/wpvr/)
24
 
25
+ == Why Use WPVR? ==
26
+ WPVR gives you all the features needed to create a quality virtual tour without any hassle.
27
 
28
  https://www.youtube.com/watch?v=SWsv-bplne8
29
 
30
+ **Simple Interface Optimized To Create Virtual Tours Easily** 
31
+
32
+ The plugin has a simple interface, designed to let you create a virtual tour real quick, without any expertise.
33
 
34
+ >In fact, you can create a simple virtual tour in less than 5 mins!!
 
35
 
36
+ On top of that, you can customize the tour with more amazing features such as auto-rotation effect and scene fade animation when transmitting between scenes.
37
 
38
+ You can also display images or videos on hotspots, allow Gyroscope mode on mobile devices, and many more, to make the tour more attractive and engaging.
39
+
40
+ The best part is, you will get a tour preview at the back-end so that you can see what you are creating on the go.
41
 
42
  >Read detailed [documentation](https://rextheme.com/docs/wp-vr/) and [video tutorials](https://www.youtube.com/playlist?list=PLelDqLncNWcUndi1NkXJh2BH62OYmIayt) for assistance.
43
 
44
+ **Create An Interactive Realistic Tour With Multiple Scenes**
 
45
 
46
+ You can add multiple 360-degree images in a virtual tour and connect them through scene type hotspots.
47
 
48
+ Viewers can click on the hotspots to move back and forth between the images.
49
 
50
+ You can also set multiple info type hotspots on each scene to show additional information about each 360 degree image or scene.
51
 
52
+ > You can connect up to 5 scenes, and add 5 hotspots per scene on a virtual tour. To be able to add unlimited scenes and hotspots, [click here](https://rextheme.com/wpvr)
 
53
 
54
+ **Interactive Hotspots To Create More Attraction**
55
 
56
+ WP VR comes with over 900+ custom icons for hotspots, that you can choose from. And you can assign a color and add a blinking/ripple animation to the custom icons to make the hotspots more catchy.
57
 
58
+ Also, WP VR allows you to add custom icons on your own using custom CSS.
59
 
60
+ You can set texts, image/GIF source, and video embedding links on hotspots. You can set these either in the On-Hover Content field or the On-Click Content field.
 
61
 
62
+ Viewers can view these contents by clicking on the hotspot or hovering over the hotspot.
63
 
64
+ >Contact our reliable [support team](https://rextheme.com/open-ticket) to help you out anytime.
 
65
 
66
+ **Embed Virtual Tours On Your Website Without Hassle**
 
67
 
68
+ Once you create a tour, it’s really easy to embed it on your website.
69
 
70
+ Simply use the WPVR Gutenberg block, WP VR Elementor Widget, WP VR Oxygen Element, or Shortcodes to embed the tour on any page or post on your website.
71
 
72
+ ***Gutenberg Block Support***
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
 
74
+ On the Gutenberg block editor, it has the WP VR block under the common blocks. It is used to embed the virtual tour. Provide the tour ID and assign your desired width and height, and the tour will be embedded.
75
 
76
+ ***Elementor Widget Support***
77
+
78
+ The Elementor page builder will have a WP VR widget under the general widgets. Drag and drop the widget onto the page. Provide the tour ID and set your required width and height to get a live preview.
79
+
80
+ ***Oxygen Element Support***
81
+
82
+ The Oxygen builder will have a WP VR element Choose your tour from the list, set your desired Width and height, and Apply Params to embed the tour.
83
+
84
+ ***Shortcode Support***
85
+
86
+ On Classic Editor, you can easily embed virtual tours using Shortcodes. Set your tour ID, width, height, and your tour will be embedded.
87
+
88
+ **Disable WordPress Large Image Handler To Upload High-Quality Images**
89
+
90
+ WordPress has a default large image handler that handles images with a size of more than 2560 by 1280 pixels and creates optimized versions of them.
91
+
92
+ So if you upload a very high-quality image, it will be converted to a lower resolution image.
93
+
94
+ WP VR allows you to disable this large image handler so you can create virtual tours with extremely high-resolution images.
95
+
96
+ **Control Editors and Authors from Accessing Tours**
97
+
98
+ Control the Editors and Authors of your site from accessing the virtual tours on your site.
99
+
100
+ ==Who Should Use WP VR?==
101
+
102
+ - Real Estate Industry
103
+ - Educational Institutes (Schools and colleges)
104
+ - Hotels and Resorts
105
+ - Restaurants
106
+ - Travel/Tourism
107
+ - Museums
108
+ - Art Galleries
109
+ - Showrooms/Stores
110
+ - Bars/Pubs.
111
+
112
+ And many more.
113
+
114
+ To have more control over creating a virtual tour, learn about the [Premium version](https://rextheme.com/wpvr/).
115
+
116
+ ==FEATURES==
117
 
118
+ * Developed with a Mobile-First approach
119
+ * 360 Degree Video Support (Self-hosted, Youtube and Vimeo Videos)
120
+ * Gutenberg Block Support
121
+ * Elementor Widget Support
122
+ * Shortcode Support
123
+ * Oxygen Builder Support
124
+ * Live Preview of Tour On The Back-end
125
+ * Tour Preview Image
126
+ * Tour Autoload Feature
127
+ * Scene Fade Animation
128
+ * Auto Rotation with Speed Control
129
+ * Auto Rotation Direction, Pause and Stop control
130
+ * Basic Control Buttons (Zoom In, Zoom Out, and Fullscreen)
131
+ * Mouse Drag Navigation on Virtual Tour
132
+ * Zoom In and Out with Mouse Scroll on Virtual Tour
133
+ * Zoom In and Out with ‘+’ and ‘-’ keyboard buttons
134
+ * Add Multiple Scenes and Hotspots
135
+ * Scene Type Hotspot to Connect Scenes
136
+ * Info Type Hotspots to Give Information
137
+ * On Hover and On-Click Content Option for Hotspots
138
+ * Embed Texts, Videos, Images, GIFs, and Website Links on Hotspots
139
+ * Hotspot Customization with Custom CSS
140
+ * Full-width Tour Tag
141
+ * Radius Tag for VR Border Radius
142
+ * Multi-Site Support
143
+ * WP User Role Support (Editors and Authors)
144
+ * Disable FontAwesome Option
145
+ * Disable WordPress Default Large Image Handler
146
+ * Control Plugin Assets To Load on Specific Pages/posts Only
147
+ * Enable notice for Mobile Visitors
148
+ * Mobile Media Resize Option
149
+ * Plugin Rollback Support
150
+ * Support From the Support Forum
151
+
152
+ ==PREMIUM FEATURES==
153
+
154
+ * All Free Features
155
+ * Unlimited Scenes and Hotspots (Limited to 5 in The Free Version)
156
+ * 360 Video Autoplay and Loop
157
+ * Google Street View Embed Support
158
+ * Gyroscope Support on Mobile Devices
159
+ * Auto Enable Gyroscope for Mobile Devices
160
+ * Custom & Responsive Scene Gallery
161
+ * Scene Titles on Each Scene
162
+ * Scene Description (Author) & URL on Each Scene
163
+ * Scene Titles & Thumbnails on Scene Gallery
164
+ * Tour Background Music Support
165
+ * Background Music Autoplay, Loop, & Pause Control
166
+ * Set Your Company Logo on The Virtual Tour
167
+ * Set Company Description on The Logo
168
+ * Home Button to Go to The Default Scene
169
+ * On-Screen Compass for Tours
170
+ * Disable or Enable Keyboard Movement Control
171
+ * Disable or Enable Keyboard Zoom Control
172
+ * Disable or Enable Mouse Drag Control
173
+ * Disable or Enable Mouse Scroll Zoom
174
+ * Fluent Forms Integration on Hotspots
175
+ * Fill-up and Submit Booking/Contact Forms
176
+ * WooCommerce Product Integration on Hotspots
177
+ * Add To Cart Feature for WooCommerce Products on Hotspots
178
+ * Advanced Control Buttons (Move Up, Down, Left, & Right)
179
+ * Customize Icons of Each Control Button (900+ Premium Icons)
180
+ * Customize Colors of Each Control Button (RGB, HSL, & HEX)
181
+ * Enable or Disable Each Control Button
182
+ * Custom Default Scene Face for Each Scene
183
+ * Default Scene Face For Target Scene
184
+ * Partial Panorama (Mobile Panorama) Support
185
+ * Scene Boundary Control (Horizontal & Vertical)
186
+ * Set Vertical Offset of Each Scene
187
+ * Limit Vertical Scene Grab for Each Scene
188
+ * Limit Horizontal Scene Grab for Each Scene
189
+ * Control Max, Min, and Default Zoom for Each Scene
190
+ * Customize Each Hotspot Icon (900+ Premium Icons)
191
+ * Color Picker for Hotspots (RGB, HSL, & HEX)
192
+ * Tour Export and Import (For WP VR Only)
193
+ * Duplicate Tour with One Click
194
+ * Priority Support
195
+
196
+ [Upgrade to Pro](https://rextheme.com/docs/wp-vr/how-to-upgrade-to-pro/)
197
 
198
+ > We have many more amazing features planned. Take look at [our development roadmap.](https://app.productstash.io/roadmaps/5f0b43d9a54eda00221d5516/public)
199
 
200
  **Upcoming Features**
201
+
202
  – Flat Image Support
203
+ - Cubemap Image Support
204
+ - Multi-Resolution Panorama Support
205
+ - Floor Plan
206
 
 
207
 
208
  ## Privacy Policy
209
  WP VR uses [Appsero](https://appsero.com) SDK to collect some telemetry data upon user's confirmation. This helps us to troubleshoot problems faster & make product improvements.
215
  Learn more how [Appsero collects and uses this data](https://appsero.com/privacy-policy/).
216
 
217
  == Frequently Asked Questions ==
 
 
218
 
219
+ =1. Why Do I Need WP VR?=
220
+
221
+ You can easily create a Virtual Tour of your place using WP VR to build a virtual presence of your business.
222
+
223
+ Simply provide a 360 degree panoramic photo and this plugin will create a virtual tour that your visitors can navigate easily.
224
+
225
+ Allow your prospects to have a realistic tour of your facility before they decide to purchase your service and increase your conversion rate.
226
+
227
+ =2. How to Install and Activate WP VR?=
228
 
229
+ Once you have downloaded the file, go to your dashboard. Under Plugins, select Add New, and upload the file. Then Install and activate the plugin.
 
230
 
231
+ Once activated, on the left side under your dashboard, you will find the option WP VR at the bottom.
232
+
233
+ =3. What Kind of Images Should I Use To Create A Virtual Tour?=
234
+
235
+ To make a perfect equirectangular image, you need to use a 360-degree panoramic photo of the area you want to preview.
236
+
237
+ However, you can also capture panorama images with your smartphone and use them to create a partial panorama tour.
238
+
239
+ =5. Can I Customize The Hotspot Icons?=
240
 
 
241
  Yes. You can create a custom class on your theme, stating whatever style you want. Then you can input the class name on the Hotspot Custom Class section in a hotspot, and the content displayed will be customized according to the style you set.
242
 
243
+ =6. Can I Create A 360 Degree Video Tour With WP VR?=
244
+
245
+ Yes, with WP VR, you can create a 360 Degree video tour.
246
+
247
+ You can either upload the video to create a tour or set a link to a Youtube/Vimeo 360 degree video.
248
+
249
+ =7. How To Embed A Virtual Tour Using Gutenberg Block Editor?=
250
+
251
+ Under common blocks, you will find a block called WP VR. Select the block and on the dynamic toolbar on the right, you will get the options to add ID, Height, and Width.
252
+
253
+ Collect the ID from the virtual tour you created. Assign height and width as you desire.
254
+
255
+ =8. The Tour Is Not Loading On The Webpage.=
256
+
257
+ Go to your WordPress Dashboard > WPVR > Get Started > Settings.
258
+
259
+ Check the Enable Script Control option status.
260
+
261
+ If the Enable Script Control option is turned On, turn it off and reload the tour page.
262
+
263
+ If you wish to use this feature, you have to set the URLs of all the pages on your site with a virtual tour in the List of Allowed Pages To Load WPVR Scripts field.
264
+
265
+ =9. What To Do If I Get “THE FILE (image link) COULD NOT BE ACCESSED” Error?=
266
 
 
267
  Sometimes when you add a tour on your site, you might face this issue that rather than loading the tour it will give the error “THE FILE (…) COULD NOT BE ACCESSED.”
268
 
269
  This error shows up when you are running a website under “HTTPS” (secured with SSL certificate) whereas your image link is under “HTTP” (unsecured).
270
 
271
+ To solve this issue, go to your WordPress Dashboard > Settings > General. Here make sure you have “https” added to both “WordPress Address (URL)” and “Site Address (URL)”. That’s it. Your virtual tour will load with no issues.
272
 
273
+ =10. Can I make The Virtual Tour Full-width?=
 
 
 
274
 
275
+ Yes, you can publish the tours as full-width of your page/post.
276
 
277
+ For Gutenberg, Elementor, and Oxygen builder, set fullwidth on the Width field. For shortcodes, set width = “fullwidth”.
278
 
279
+ =11. What If I Use An Optimization or Caching Plugin?=
 
280
 
281
+ If you use any Optimization or Caching plugins, then you need to exclude WP VR from its optimization function.
282
 
283
+ Simply add “/plugins/wpvr” to the exclusion field (or use the location where you store plugins).
284
 
285
  == Screenshots ==
286
  1. Gutenberg Block
303
  * On screen control available.
304
 
305
  = 1.0.1 =
306
+ * Default scene can be selected from the scene tab.
307
  * Default height and width given for shortcodes.
308
 
309
  = 2.0.0 =
319
  * Rotation pause and stop control
320
 
321
  = 2.1.1 =
322
+ * Dynamic Font-Awesome icon added for hotspots.
323
  * Dynamic color picker added for hotspot color.
324
  * Custom panorama compass support.
325
  * Default zoom level.
344
  * Rextheme link removed from premium version.
345
 
346
  = 2.5.0 =
347
+ * Gyroscope support on the premium version.
348
  * Appsero error fix.
349
  * Gutenberg block column layout fix.
350
 
360
  * Dynamic error reporting added.
361
 
362
  = 2.9.0 =
363
+ * Tour selector updated on VR block.
364
 
365
  = 3.0.0 =
366
  * File import & export system added.
373
  * Modified preview window.
374
 
375
  = 3.2.0 =
376
+ * Custom scene gallery conflict and a bug fix for iPhone and iPad.
377
 
378
  = 3.3.0 =
379
  * Placeholder change.
386
 
387
  = 3.4.2 =
388
  * Gallery carousal design fix
389
+ * CSS and js restricted
390
 
391
  = 3.4.3 =
392
  * Autorotation error fix
421
  * js optimization removed
422
 
423
  = 3.7.0 =
424
+ * Partial Panorama for the pro version
425
 
426
  = 3.8.0 =
427
  * Load box design changed
467
  * Scene title field added for gallery content
468
 
469
  = 5.0.0 =
470
+ * Home button added to return to the default scene
471
 
472
  = 5.1.0 (26-03-2020) =
473
  * Auto device based gyro enable added
485
  = 5.5.0 (12-05-2020) =
486
  * Custom control conflict fixed
487
  * On click container fixed
488
+ * Self hosted video pause on the cross button
489
 
490
  = 5.6.0 (15-06-2020) =
491
  * VR background music support
538
  * Preview gallery modified
539
  * Mobile media resizer modified
540
  * Video tab bug fixed
541
+ * Allow URL open auto handled
542
+
543
+ = 6.7.0 (18-09-2020) =
544
+ * Import/Export modified
545
+ * Mobile media resizer switch added
546
+ * Ocean theme conflict fixed
547
 
548
  == Upgrade Notice ==
549
+ Please do update the WP VR to the latest version. Each update makes sure your plugin is supporting all tour features.
admin/class-wpvr-admin.php CHANGED
@@ -85,7 +85,7 @@ class Wpvr_Admin {
85
  wp_enqueue_style( 'materialize-css', plugin_dir_url( __FILE__ ) . 'css/materialize.min.css', array(), $this->version, 'all' );
86
  wp_enqueue_style( 'materialize-icons', plugin_dir_url( __FILE__ ) . 'lib/materializeicon.css', array(), $this->version, 'all' );
87
  wp_enqueue_style( 'owl-css', 'https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.min.css', array(), $this->version, 'all' );
88
-
89
  wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/wpvr-admin.css', array(), $this->version, 'all' );
90
  }
91
 
@@ -124,7 +124,7 @@ class Wpvr_Admin {
124
  $adscreen = get_current_screen();
125
  wp_enqueue_media();
126
  if ($adscreen->id=="wpvr_item" || $adscreen->id=="toplevel_page_wpvr") {
127
- wp_enqueue_script('icon-picker', plugin_dir_url( __FILE__ ) . 'lib/jquery.fonticonpicker.min.js', array(), true);
128
  wp_enqueue_script('panellium-js', plugin_dir_url( __FILE__ ) . 'lib/pannellum/src/js/pannellum.js', array(), true);
129
  wp_enqueue_script('panelliumlib-js', plugin_dir_url( __FILE__ ) . 'lib/pannellum/src/js/libpannellum.js', array(), true);
130
  wp_enqueue_script( 'videojs-js', plugin_dir_url( __FILE__ ) .'js/video.js', array('jquery'), true);
@@ -449,7 +449,7 @@ class Wpvr_Admin {
449
 
450
  $html .='<div class="rex-pano-tab-content" id="wpvr-main-tab-contents">';
451
  $html .='<div class="rex-pano-tab general active" id="general">';
452
-
453
  //=start inner tab=
454
  $html .= '<div class="general-inner-tab">';
455
  //=start inner nav=
@@ -497,6 +497,7 @@ class Wpvr_Admin {
497
  $html .= '<input type="text" name="preview-attachment-url" class="preview-attachment-url" value="'.$preview.'">';
498
  $html .= '<input type="button" class="preview-upload" id="vr-preview-img" data-info="" value="Upload"/>';
499
  $html .= '<div class="img-upload-frame img-uploaded" style="background-image: url('.$preview.')">';
 
500
  $html .= '<label for="vr-preview-img">';
501
  $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/uplad-icon.png'.'" alt="preview img" />';
502
  $html .= '<span>'.__('Click to Upload an Image ','wpvr').'</span>';
@@ -514,6 +515,7 @@ class Wpvr_Admin {
514
  $html .= '<input type="text" name="preview-attachment-url" class="preview-attachment-url" value="">';
515
  $html .= '<input type="button" class="preview-upload" id="vr-preview-img" data-info="" value="Upload"/>';
516
  $html .= '<div class="img-upload-frame">';
 
517
  $html .= '<label for="vr-preview-img">';
518
  $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/uplad-icon.png'.'" alt="icon" />';
519
  $html .= '<span>'.__('Click to Upload an Image ','wpvr').'</span>';
@@ -566,7 +568,7 @@ class Wpvr_Admin {
566
  $html .= '<input id="wpvr_controls" class="vr-switcher-check" value="off" name="controls" type="checkbox" />';
567
  $html .= '<label for="wpvr_controls"></label>';
568
  $html .= '</span>';
569
-
570
  $html .= '<div class="field-tooltip">';
571
  $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
572
  $html .= '<span>'.__('This option will display Zoom In, Zoom Out and Full Screen buttons on the tour.','wpvr').'</span>';
@@ -646,7 +648,7 @@ class Wpvr_Admin {
646
  $html .= '<div class="single-settings autorotationdata" >';
647
  $html .= '<span>'.__('Resume Auto-rotation after: ','wpvr').'</span>';
648
  $html .= '<input type="number" name="auto-rotation-inactive-delay" value="'.$autorotationinactivedelay.'" placeholder="2000" />';
649
-
650
  $html .= '<div class="field-tooltip">';
651
  $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
652
  $html .= '<span>'.__('When someone clicks on the tour, auto-rotation stops. Here, set a time after which auto rotation will start again. Assign in milliseconds, where 1000 milliseconds = 1 second.','wpvr').'</span>';
@@ -658,7 +660,7 @@ class Wpvr_Admin {
658
  $html .= '<div class="single-settings autorotationdata" >';
659
  $html .= '<span>'.__('Stop Auto-rotation after: ','wpvr').'</span>';
660
  $html .= '<input type="number" name="auto-rotation-stop-delay" value="'.$autorotationstopdelay.'" placeholder="2000" />';
661
-
662
  $html .= '<div class="field-tooltip">';
663
  $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
664
  $html .= '<span>'.__('Set a time after which auto rotation will stop. Assign in milliseconds, where 1000 milliseconds = 1 second.','wpvr').'</span>';
@@ -677,7 +679,7 @@ class Wpvr_Admin {
677
  $html .= '<div class="advanced-settings-content inner-single-content" id="gen-advanced">';
678
  $html .= '<div class="content-wrapper">';
679
  $html .= '<div class="left">';
680
-
681
  //=Keyboard Movement Control=//
682
  $html .= '<div class="single-settings compass">';
683
  $html .= '<span>'.__('Keyboard Movement Control: ','wpvr').'</span>';
@@ -817,7 +819,7 @@ class Wpvr_Admin {
817
  $html .= '</span>';
818
  $html .= '</div>';
819
  //===Company logo end===//
820
-
821
  $html .= '</div>';
822
  //===end right===//
823
 
@@ -835,7 +837,7 @@ class Wpvr_Admin {
835
  $html .= '<div class="color-icon">';
836
  $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/move-up.jpg'.'" alt="icon" />';
837
  $html .= '</div>';
838
-
839
  $html .= '<span class="wpvr-switcher">';
840
  $html .= '<input id="wpvr_panupControl" class="vr-switcher-check" value="off" name="panupControl" type="checkbox" disabled />';
841
  $html .= '<label for="wpvr_panupControl" title="Pro Feature"></label>';
@@ -847,7 +849,7 @@ class Wpvr_Admin {
847
  //=====Move Down====//
848
  $html .= '<div class="single-settings controls custom-data-set">';
849
  $html .= '<span>'.__('Move Down: ','wpvr').'</span>';
850
-
851
  $html .= '<div class="color-icon">';
852
  $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/move-down.jpg'.'" alt="icon" />';
853
  $html .= '</div>';
@@ -866,7 +868,7 @@ class Wpvr_Admin {
866
  $html .= '<div class="color-icon">';
867
  $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/move-left.jpg'.'" alt="icon" />';
868
  $html .= '</div>';
869
-
870
  $html .= '<span class="wpvr-switcher">';
871
  $html .= '<input id="wpvr_panLeftControl" class="vr-switcher-check" value="off" name="panLeftControl" type="checkbox" disabled />';
872
  $html .= '<label for="wpvr_panLeftControl" title="Pro Feature"></label>';
@@ -892,7 +894,7 @@ class Wpvr_Admin {
892
  //=====Zoom In====//
893
  $html .= '<div class="single-settings controls custom-data-set">';
894
  $html .= '<span>'.__('Zoom In: ','wpvr').'</span>';
895
-
896
  $html .= '<div class="color-icon">';
897
  $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/zoom-in.jpg'.'" alt="icon" />';
898
  $html .= '</div>';
@@ -924,7 +926,7 @@ class Wpvr_Admin {
924
 
925
  $html .= '</div>';
926
  //=====Zoom Out End====//
927
-
928
  //===== Full Screen====//
929
  $html .= '<div class="single-settings controls custom-data-set">';
930
  $html .= '<span>'.__('Full Screen: ','wpvr').'</span>';
@@ -932,7 +934,7 @@ class Wpvr_Admin {
932
  $html .= '<div class="color-icon">';
933
  $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/full-screen.jpg'.'" alt="icon" />';
934
  $html .= '</div>';
935
-
936
  $html .= '<span class="wpvr-switcher">';
937
  $html .= '<input id="wpvr_panFullscreenControl" class="vr-switcher-check" value="off" name="panFullscreenControl" type="checkbox" disabled />';
938
  $html .= '<label for="wpvr_panFullscreenControl" title="Pro Feature"></label>';
@@ -948,7 +950,7 @@ class Wpvr_Admin {
948
  $html .= '<div class="color-icon">';
949
  $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/gryscop.jpg'.'" alt="icon" />';
950
  $html .= '</div>';
951
-
952
  $html .= '<span class="wpvr-switcher">';
953
  $html .= '<input id="wpvr_gyroscope" class="vr-switcher-check" value="off" name="gyroscope" type="checkbox" disabled />';
954
  $html .= '<label for="wpvr_gyroscope" title="Pro Feature"></label>';
@@ -964,7 +966,7 @@ class Wpvr_Admin {
964
  $html .= '<div class="color-icon">';
965
  $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/home.jpg'.'" alt="icon" />';
966
  $html .= '</div>';
967
-
968
  $html .= '<span class="wpvr-switcher">';
969
  $html .= '<input id="wpvr_backToHome" class="vr-switcher-check" value="off" name="backToHome" type="checkbox" disabled />';
970
  $html .= '<label for="wpvr_backToHome" title="Pro Feature"></label>';
@@ -1119,7 +1121,7 @@ class Wpvr_Admin {
1119
  $html .= '</select>';
1120
  $html .= '</div>';
1121
  //==Set Default Scene end==//
1122
-
1123
  $html .= '<div class=scene-setting>';
1124
  $html .= '<label for="scene-id">'.__('Scene ID : ','wpvr').'</label>';
1125
  $html .= '<input class="sceneid" type="text" name="scene-id"/>';
@@ -1517,7 +1519,7 @@ class Wpvr_Admin {
1517
 
1518
  $html .= '<div class="scene-content">';
1519
  $html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene Setting </h6>';
1520
-
1521
  $html .= '<div class="scene-left">';
1522
  //==Set Default Scene==//
1523
  if ($dscene == 'on') {
@@ -1560,7 +1562,7 @@ class Wpvr_Admin {
1560
  $html .= '</div>';
1561
  $html .= '</div>';
1562
  // ---end scene left---
1563
-
1564
  $html .= '</div>';
1565
 
1566
  if (!empty($pano_hotspots)) {
@@ -1969,7 +1971,7 @@ class Wpvr_Admin {
1969
  $html .= '</div>';
1970
  $html .= '</div>';
1971
  //--end scene left----
1972
-
1973
  $html .= '</div>';
1974
 
1975
  if (!empty($pano_hotspots)) {
@@ -2422,7 +2424,7 @@ class Wpvr_Admin {
2422
  $html .= '<button id="videopreview">Preview</button>';
2423
  $html .= '</div>';
2424
  }
2425
-
2426
  $html .= '<div class="wpvr-use-shortcode">';
2427
  $post = get_post();
2428
  $id = $post->ID;
@@ -2453,11 +2455,11 @@ class Wpvr_Admin {
2453
 
2454
  $html .= '<script>';
2455
  $html .= '
2456
-
2457
  document.getElementById("wpvr-copy-shortcode-video").addEventListener("click", function() {
2458
  copyToClipboardVideo(document.getElementById("copy-shortcode-video"));
2459
  });
2460
-
2461
  function copyToClipboardVideo(elem) {
2462
  // create hidden text element, if it doesn\'t already exist
2463
  var targetId = "_hiddenCopyText_";
@@ -2485,7 +2487,7 @@ class Wpvr_Admin {
2485
  var currentFocus = document.activeElement;
2486
  target.focus();
2487
  target.setSelectionRange(0, target.value.length);
2488
-
2489
  // copy the selection
2490
  var succeed;
2491
  try {
@@ -2498,11 +2500,11 @@ class Wpvr_Admin {
2498
  if (currentFocus && typeof currentFocus.focus === "function") {
2499
  currentFocus.focus();
2500
  }
2501
-
2502
  setTimeout(function(){
2503
  document.getElementById("wpvr-copied-notice-video").innerHTML = "";
2504
  }, 2000 );
2505
-
2506
  if (isInput) {
2507
  // restore prior selection
2508
  elem.setSelectionRange(origSelectionStart, origSelectionEnd);
@@ -2513,9 +2515,9 @@ class Wpvr_Admin {
2513
  document.getElementById("wpvr-copy-shortcode-video").scrollIntoView()
2514
  return succeed;
2515
  }
2516
-
2517
  ';
2518
-
2519
  $html .= '</script>';
2520
  $html .= '</div>';
2521
  //=end shortcode area=
85
  wp_enqueue_style( 'materialize-css', plugin_dir_url( __FILE__ ) . 'css/materialize.min.css', array(), $this->version, 'all' );
86
  wp_enqueue_style( 'materialize-icons', plugin_dir_url( __FILE__ ) . 'lib/materializeicon.css', array(), $this->version, 'all' );
87
  wp_enqueue_style( 'owl-css', 'https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.min.css', array(), $this->version, 'all' );
88
+
89
  wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/wpvr-admin.css', array(), $this->version, 'all' );
90
  }
91
 
124
  $adscreen = get_current_screen();
125
  wp_enqueue_media();
126
  if ($adscreen->id=="wpvr_item" || $adscreen->id=="toplevel_page_wpvr") {
127
+ wp_enqueue_script('wpvr-icon-picker', plugin_dir_url( __FILE__ ) . 'lib/jquery.fonticonpicker.min.js', array(), true);
128
  wp_enqueue_script('panellium-js', plugin_dir_url( __FILE__ ) . 'lib/pannellum/src/js/pannellum.js', array(), true);
129
  wp_enqueue_script('panelliumlib-js', plugin_dir_url( __FILE__ ) . 'lib/pannellum/src/js/libpannellum.js', array(), true);
130
  wp_enqueue_script( 'videojs-js', plugin_dir_url( __FILE__ ) .'js/video.js', array('jquery'), true);
449
 
450
  $html .='<div class="rex-pano-tab-content" id="wpvr-main-tab-contents">';
451
  $html .='<div class="rex-pano-tab general active" id="general">';
452
+
453
  //=start inner tab=
454
  $html .= '<div class="general-inner-tab">';
455
  //=start inner nav=
497
  $html .= '<input type="text" name="preview-attachment-url" class="preview-attachment-url" value="'.$preview.'">';
498
  $html .= '<input type="button" class="preview-upload" id="vr-preview-img" data-info="" value="Upload"/>';
499
  $html .= '<div class="img-upload-frame img-uploaded" style="background-image: url('.$preview.')">';
500
+ $html .= '<span class="remove-attachment">x</span>';
501
  $html .= '<label for="vr-preview-img">';
502
  $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/uplad-icon.png'.'" alt="preview img" />';
503
  $html .= '<span>'.__('Click to Upload an Image ','wpvr').'</span>';
515
  $html .= '<input type="text" name="preview-attachment-url" class="preview-attachment-url" value="">';
516
  $html .= '<input type="button" class="preview-upload" id="vr-preview-img" data-info="" value="Upload"/>';
517
  $html .= '<div class="img-upload-frame">';
518
+ $html .= '<span class="remove-attachment">x</span>';
519
  $html .= '<label for="vr-preview-img">';
520
  $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/uplad-icon.png'.'" alt="icon" />';
521
  $html .= '<span>'.__('Click to Upload an Image ','wpvr').'</span>';
568
  $html .= '<input id="wpvr_controls" class="vr-switcher-check" value="off" name="controls" type="checkbox" />';
569
  $html .= '<label for="wpvr_controls"></label>';
570
  $html .= '</span>';
571
+
572
  $html .= '<div class="field-tooltip">';
573
  $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
574
  $html .= '<span>'.__('This option will display Zoom In, Zoom Out and Full Screen buttons on the tour.','wpvr').'</span>';
648
  $html .= '<div class="single-settings autorotationdata" >';
649
  $html .= '<span>'.__('Resume Auto-rotation after: ','wpvr').'</span>';
650
  $html .= '<input type="number" name="auto-rotation-inactive-delay" value="'.$autorotationinactivedelay.'" placeholder="2000" />';
651
+
652
  $html .= '<div class="field-tooltip">';
653
  $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
654
  $html .= '<span>'.__('When someone clicks on the tour, auto-rotation stops. Here, set a time after which auto rotation will start again. Assign in milliseconds, where 1000 milliseconds = 1 second.','wpvr').'</span>';
660
  $html .= '<div class="single-settings autorotationdata" >';
661
  $html .= '<span>'.__('Stop Auto-rotation after: ','wpvr').'</span>';
662
  $html .= '<input type="number" name="auto-rotation-stop-delay" value="'.$autorotationstopdelay.'" placeholder="2000" />';
663
+
664
  $html .= '<div class="field-tooltip">';
665
  $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
666
  $html .= '<span>'.__('Set a time after which auto rotation will stop. Assign in milliseconds, where 1000 milliseconds = 1 second.','wpvr').'</span>';
679
  $html .= '<div class="advanced-settings-content inner-single-content" id="gen-advanced">';
680
  $html .= '<div class="content-wrapper">';
681
  $html .= '<div class="left">';
682
+
683
  //=Keyboard Movement Control=//
684
  $html .= '<div class="single-settings compass">';
685
  $html .= '<span>'.__('Keyboard Movement Control: ','wpvr').'</span>';
819
  $html .= '</span>';
820
  $html .= '</div>';
821
  //===Company logo end===//
822
+
823
  $html .= '</div>';
824
  //===end right===//
825
 
837
  $html .= '<div class="color-icon">';
838
  $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/move-up.jpg'.'" alt="icon" />';
839
  $html .= '</div>';
840
+
841
  $html .= '<span class="wpvr-switcher">';
842
  $html .= '<input id="wpvr_panupControl" class="vr-switcher-check" value="off" name="panupControl" type="checkbox" disabled />';
843
  $html .= '<label for="wpvr_panupControl" title="Pro Feature"></label>';
849
  //=====Move Down====//
850
  $html .= '<div class="single-settings controls custom-data-set">';
851
  $html .= '<span>'.__('Move Down: ','wpvr').'</span>';
852
+
853
  $html .= '<div class="color-icon">';
854
  $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/move-down.jpg'.'" alt="icon" />';
855
  $html .= '</div>';
868
  $html .= '<div class="color-icon">';
869
  $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/move-left.jpg'.'" alt="icon" />';
870
  $html .= '</div>';
871
+
872
  $html .= '<span class="wpvr-switcher">';
873
  $html .= '<input id="wpvr_panLeftControl" class="vr-switcher-check" value="off" name="panLeftControl" type="checkbox" disabled />';
874
  $html .= '<label for="wpvr_panLeftControl" title="Pro Feature"></label>';
894
  //=====Zoom In====//
895
  $html .= '<div class="single-settings controls custom-data-set">';
896
  $html .= '<span>'.__('Zoom In: ','wpvr').'</span>';
897
+
898
  $html .= '<div class="color-icon">';
899
  $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/zoom-in.jpg'.'" alt="icon" />';
900
  $html .= '</div>';
926
 
927
  $html .= '</div>';
928
  //=====Zoom Out End====//
929
+
930
  //===== Full Screen====//
931
  $html .= '<div class="single-settings controls custom-data-set">';
932
  $html .= '<span>'.__('Full Screen: ','wpvr').'</span>';
934
  $html .= '<div class="color-icon">';
935
  $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/full-screen.jpg'.'" alt="icon" />';
936
  $html .= '</div>';
937
+
938
  $html .= '<span class="wpvr-switcher">';
939
  $html .= '<input id="wpvr_panFullscreenControl" class="vr-switcher-check" value="off" name="panFullscreenControl" type="checkbox" disabled />';
940
  $html .= '<label for="wpvr_panFullscreenControl" title="Pro Feature"></label>';
950
  $html .= '<div class="color-icon">';
951
  $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/gryscop.jpg'.'" alt="icon" />';
952
  $html .= '</div>';
953
+
954
  $html .= '<span class="wpvr-switcher">';
955
  $html .= '<input id="wpvr_gyroscope" class="vr-switcher-check" value="off" name="gyroscope" type="checkbox" disabled />';
956
  $html .= '<label for="wpvr_gyroscope" title="Pro Feature"></label>';
966
  $html .= '<div class="color-icon">';
967
  $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/home.jpg'.'" alt="icon" />';
968
  $html .= '</div>';
969
+
970
  $html .= '<span class="wpvr-switcher">';
971
  $html .= '<input id="wpvr_backToHome" class="vr-switcher-check" value="off" name="backToHome" type="checkbox" disabled />';
972
  $html .= '<label for="wpvr_backToHome" title="Pro Feature"></label>';
1121
  $html .= '</select>';
1122
  $html .= '</div>';
1123
  //==Set Default Scene end==//
1124
+
1125
  $html .= '<div class=scene-setting>';
1126
  $html .= '<label for="scene-id">'.__('Scene ID : ','wpvr').'</label>';
1127
  $html .= '<input class="sceneid" type="text" name="scene-id"/>';
1519
 
1520
  $html .= '<div class="scene-content">';
1521
  $html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene Setting </h6>';
1522
+
1523
  $html .= '<div class="scene-left">';
1524
  //==Set Default Scene==//
1525
  if ($dscene == 'on') {
1562
  $html .= '</div>';
1563
  $html .= '</div>';
1564
  // ---end scene left---
1565
+
1566
  $html .= '</div>';
1567
 
1568
  if (!empty($pano_hotspots)) {
1971
  $html .= '</div>';
1972
  $html .= '</div>';
1973
  //--end scene left----
1974
+
1975
  $html .= '</div>';
1976
 
1977
  if (!empty($pano_hotspots)) {
2424
  $html .= '<button id="videopreview">Preview</button>';
2425
  $html .= '</div>';
2426
  }
2427
+
2428
  $html .= '<div class="wpvr-use-shortcode">';
2429
  $post = get_post();
2430
  $id = $post->ID;
2455
 
2456
  $html .= '<script>';
2457
  $html .= '
2458
+
2459
  document.getElementById("wpvr-copy-shortcode-video").addEventListener("click", function() {
2460
  copyToClipboardVideo(document.getElementById("copy-shortcode-video"));
2461
  });
2462
+
2463
  function copyToClipboardVideo(elem) {
2464
  // create hidden text element, if it doesn\'t already exist
2465
  var targetId = "_hiddenCopyText_";
2487
  var currentFocus = document.activeElement;
2488
  target.focus();
2489
  target.setSelectionRange(0, target.value.length);
2490
+
2491
  // copy the selection
2492
  var succeed;
2493
  try {
2500
  if (currentFocus && typeof currentFocus.focus === "function") {
2501
  currentFocus.focus();
2502
  }
2503
+
2504
  setTimeout(function(){
2505
  document.getElementById("wpvr-copied-notice-video").innerHTML = "";
2506
  }, 2000 );
2507
+
2508
  if (isInput) {
2509
  // restore prior selection
2510
  elem.setSelectionRange(origSelectionStart, origSelectionEnd);
2515
  document.getElementById("wpvr-copy-shortcode-video").scrollIntoView()
2516
  return succeed;
2517
  }
2518
+
2519
  ';
2520
+
2521
  $html .= '</script>';
2522
  $html .= '</div>';
2523
  //=end shortcode area=
admin/class-wpvr-ajax.php CHANGED
@@ -1339,6 +1339,63 @@ class Wpvr_Ajax {
1339
  wp_send_json_error('Media transfer process failed');
1340
  }
1341
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1342
  if ($new_data['panodata']) {
1343
 
1344
  if ($new_data['panodata']["scene-list"]) {
@@ -1402,6 +1459,7 @@ class Wpvr_Ajax {
1402
  $editor = sanitize_text_field($_POST['editor']);
1403
  $author = sanitize_text_field($_POST['author']);
1404
  $fontawesome = sanitize_text_field($_POST['fontawesome']);
 
1405
  $high_res_image = sanitize_text_field($_POST['high_res_image']);
1406
  $wpvr_frontend_notice = sanitize_text_field($_POST['wpvr_frontend_notice']);
1407
  $wpvr_frontend_notice_area = sanitize_text_field($_POST['wpvr_frontend_notice_area']);
@@ -1415,6 +1473,7 @@ class Wpvr_Ajax {
1415
  update_option('wpvr_editor_active', $editor);
1416
  update_option('wpvr_author_active', $author);
1417
  update_option('wpvr_fontawesome_disable', $fontawesome);
 
1418
  update_option('high_res_image', $high_res_image);
1419
  update_option('wpvr_frontend_notice', $wpvr_frontend_notice);
1420
  update_option('wpvr_frontend_notice_area', $wpvr_frontend_notice_area);
1339
  wp_send_json_error('Media transfer process failed');
1340
  }
1341
  }
1342
+ if ($new_data['preview']) {
1343
+ $preview_url = $file_save_url['baseurl'].'/wpvr/temp/scene_preview.jpg';
1344
+ $media_get = wpvr_handle_media_import($preview_url, $new_post_id);
1345
+ if ($media_get['status'] == 'error') {
1346
+ wp_delete_post($new_post_id, true);
1347
+ wpvr_delete_temp_file();
1348
+ wp_send_json_error($media_get['message']);
1349
+ }
1350
+ elseif ($media_get['status'] == 'success') {
1351
+ $new_data['preview'] = $media_get['message'];
1352
+ }
1353
+ else {
1354
+ wp_delete_post($new_post_id, true);
1355
+ wpvr_delete_temp_file();
1356
+ wp_send_json_error('Media transfer process failed');
1357
+ }
1358
+ }
1359
+ if ($new_data['cpLogoImg']) {
1360
+ $logo = $new_data['cpLogoImg'];
1361
+ $get_logo_format = explode(".", $logo);
1362
+ $logo_format = end($get_logo_format);
1363
+ $logo_img = $file_save_url['baseurl'].'/wpvr/temp/logo_img.'.$logo_format;
1364
+ $media_get = wpvr_handle_media_import($logo_img, $new_post_id);
1365
+ if ($media_get['status'] == 'error') {
1366
+ wp_delete_post($new_post_id, true);
1367
+ wpvr_delete_temp_file();
1368
+ wp_send_json_error($media_get['message']);
1369
+ }
1370
+ elseif ($media_get['status'] == 'success') {
1371
+ $new_data['cpLogoImg'] = $media_get['message'];
1372
+ }
1373
+ else {
1374
+ wp_delete_post($new_post_id, true);
1375
+ wpvr_delete_temp_file();
1376
+ wp_send_json_error('Media transfer process failed');
1377
+ }
1378
+ }
1379
+ if ($new_data['bg_music_url']) {
1380
+ $music_url = $new_data['bg_music_url'];
1381
+ $get_music_format = explode(".", $music_url);
1382
+ $music_format = end($get_music_format);
1383
+ $music_url = $file_save_url['baseurl'].'/wpvr/temp/music_url.'.$music_format;
1384
+ $media_get = wpvr_handle_media_import($music_url, $new_post_id);
1385
+ if ($media_get['status'] == 'error') {
1386
+ wp_delete_post($new_post_id, true);
1387
+ wpvr_delete_temp_file();
1388
+ wp_send_json_error($media_get['message']);
1389
+ }
1390
+ elseif ($media_get['status'] == 'success') {
1391
+ $new_data['bg_music_url'] = $media_get['message'];
1392
+ }
1393
+ else {
1394
+ wp_delete_post($new_post_id, true);
1395
+ wpvr_delete_temp_file();
1396
+ wp_send_json_error('Media transfer process failed');
1397
+ }
1398
+ }
1399
  if ($new_data['panodata']) {
1400
 
1401
  if ($new_data['panodata']["scene-list"]) {
1459
  $editor = sanitize_text_field($_POST['editor']);
1460
  $author = sanitize_text_field($_POST['author']);
1461
  $fontawesome = sanitize_text_field($_POST['fontawesome']);
1462
+ $mobile_media_resize = sanitize_text_field($_POST['mobile_media_resize']);
1463
  $high_res_image = sanitize_text_field($_POST['high_res_image']);
1464
  $wpvr_frontend_notice = sanitize_text_field($_POST['wpvr_frontend_notice']);
1465
  $wpvr_frontend_notice_area = sanitize_text_field($_POST['wpvr_frontend_notice_area']);
1473
  update_option('wpvr_editor_active', $editor);
1474
  update_option('wpvr_author_active', $author);
1475
  update_option('wpvr_fontawesome_disable', $fontawesome);
1476
+ update_option('mobile_media_resize', $mobile_media_resize);
1477
  update_option('high_res_image', $high_res_image);
1478
  update_option('wpvr_frontend_notice', $wpvr_frontend_notice);
1479
  update_option('wpvr_frontend_notice_area', $wpvr_frontend_notice_area);
admin/css/wpvr-admin.css CHANGED
@@ -155,7 +155,9 @@
155
 
156
 
157
 
158
-
 
 
159
 
160
  .icon-wpvrtourmake_icon:before {
161
  content: '';
@@ -925,6 +927,7 @@ div.custom-tooltip:hover span:after {
925
  .rex-pano-tab-content .general .single-settings.preview-setting .preview-upload {
926
  display: none;
927
  }
 
928
  .rex-pano-tab-content .general .single-settings.preview-setting .img-upload-frame {
929
  width: 100%;
930
  height: 220px;
@@ -933,6 +936,7 @@ div.custom-tooltip:hover span:after {
933
  background-repeat: no-repeat;
934
  background-position: center;
935
  background-size: cover;
 
936
  }
937
  .rex-pano-tab-content .general .single-settings.preview-setting .img-upload-frame label {
938
  width: 100%;
@@ -957,6 +961,42 @@ div.custom-tooltip:hover span:after {
957
  }
958
 
959
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
960
  /* ---autoload--- */
961
  .rex-pano-tab-content .general .inner-nav-content .single-settings:not(.preview-setting) {
962
  width: 100%;
155
 
156
 
157
 
158
+ .pnlm-load-button p {
159
+ color: #fff;
160
+ }
161
 
162
  .icon-wpvrtourmake_icon:before {
163
  content: '';
927
  .rex-pano-tab-content .general .single-settings.preview-setting .preview-upload {
928
  display: none;
929
  }
930
+
931
  .rex-pano-tab-content .general .single-settings.preview-setting .img-upload-frame {
932
  width: 100%;
933
  height: 220px;
936
  background-repeat: no-repeat;
937
  background-position: center;
938
  background-size: cover;
939
+ position: relative;
940
  }
941
  .rex-pano-tab-content .general .single-settings.preview-setting .img-upload-frame label {
942
  width: 100%;
961
  }
962
 
963
 
964
+ /* -----remove attachment style----- */
965
+ .rex-pano-tab-content .general .single-settings.preview-setting .remove-attachment {
966
+ position: absolute;
967
+ right: 6px;
968
+ top: 6px;
969
+ background: #fff;
970
+ padding: 5px;
971
+ text-indent: -9999px;
972
+ width: 24px;
973
+ height: 24px;
974
+ line-height: normal;
975
+ border-radius: 100%;
976
+ cursor: pointer;
977
+ display: none;
978
+ }
979
+ .rex-pano-tab-content .general .single-settings.preview-setting .img-upload-frame.img-uploaded span.remove-attachment {
980
+ display: block;
981
+ }
982
+
983
+ .rex-pano-tab-content .general .single-settings.preview-setting .remove-attachment:before,
984
+ .rex-pano-tab-content .general .single-settings.preview-setting .remove-attachment:after {
985
+ content: "";
986
+ position: absolute;
987
+ left: 50%;
988
+ top: 50%;
989
+ width: 2px;
990
+ height: calc(100% - 14px);
991
+ background: #201cfe;
992
+ transform: translate(-50%, -50%) rotate(45deg);
993
+ transform-origin: center;
994
+ }
995
+ .rex-pano-tab-content .general .single-settings.preview-setting .remove-attachment:after {
996
+ transform: translate(-50%, -50%) rotate(-45deg);
997
+ }
998
+
999
+
1000
  /* ---autoload--- */
1001
  .rex-pano-tab-content .general .inner-nav-content .single-settings:not(.preview-setting) {
1002
  width: 100%;
admin/js/wpvr-admin.js CHANGED
@@ -696,11 +696,22 @@
696
  var attachment = file_fram.state().get('selection').first().toJSON();
697
  parent.find('.preview-attachment-url').val(attachment.url);
698
  parent.find('.img-upload-frame').css('background-image', 'url(' + attachment.url + ')');
699
- parent.find('.img-upload-frame').addClass('img-uploaded');
 
700
  });
701
 
702
  file_fram.open();
703
- });
 
 
 
 
 
 
 
 
 
 
704
 
705
 
706
  $(document).on("change", "select[name*=hotspot-type]", function(event) {
@@ -1039,6 +1050,7 @@
1039
  var editor = $('#wpvr_editor_active').is(':checked');
1040
  var author = $('#wpvr_author_active').is(':checked');
1041
  var fontawesome = $('#wpvr_fontawesome_disable').is(':checked');
 
1042
  var wpvr_frontend_notice = $('#wpvr_frontend_notice').is(':checked');
1043
  var wpvr_frontend_notice_area = $('#wpvr_frontend_notice_area').val();
1044
  var wpvr_script_control = $('#wpvr_script_control').is(':checked');
@@ -1052,6 +1064,7 @@
1052
  editor: editor,
1053
  author: author,
1054
  fontawesome: fontawesome,
 
1055
  high_res_image: high_res_image,
1056
  wpvr_frontend_notice: wpvr_frontend_notice,
1057
  wpvr_frontend_notice_area: wpvr_frontend_notice_area,
696
  var attachment = file_fram.state().get('selection').first().toJSON();
697
  parent.find('.preview-attachment-url').val(attachment.url);
698
  parent.find('.img-upload-frame').css('background-image', 'url(' + attachment.url + ')');
699
+ parent.find('.img-upload-frame').addClass('img-uploaded');
700
+ parent.find('.remove-attachment').show();
701
  });
702
 
703
  file_fram.open();
704
+ });
705
+
706
+ //----remove tour preview image----
707
+ $(document).on("click", ".remove-attachment", function(event) {
708
+ $(this).hide();
709
+ parent = $(this).parents('.form-group');
710
+
711
+ parent.find('.preview-attachment-url').val('');
712
+ parent.find('.img-upload-frame').css('background-image', '');
713
+ parent.find('.img-upload-frame').removeClass('img-uploaded');
714
+ });
715
 
716
 
717
  $(document).on("change", "select[name*=hotspot-type]", function(event) {
1050
  var editor = $('#wpvr_editor_active').is(':checked');
1051
  var author = $('#wpvr_author_active').is(':checked');
1052
  var fontawesome = $('#wpvr_fontawesome_disable').is(':checked');
1053
+ var mobile_media_resize = $('#mobile_media_resize').is(':checked');
1054
  var wpvr_frontend_notice = $('#wpvr_frontend_notice').is(':checked');
1055
  var wpvr_frontend_notice_area = $('#wpvr_frontend_notice_area').val();
1056
  var wpvr_script_control = $('#wpvr_script_control').is(':checked');
1064
  editor: editor,
1065
  author: author,
1066
  fontawesome: fontawesome,
1067
+ mobile_media_resize: mobile_media_resize,
1068
  high_res_image: high_res_image,
1069
  wpvr_frontend_notice: wpvr_frontend_notice,
1070
  wpvr_frontend_notice_area: wpvr_frontend_notice_area,
admin/partials/wpvr_documentation.php CHANGED
@@ -504,6 +504,7 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
504
  $editor_active = get_option('wpvr_editor_active');
505
  $author_active = get_option('wpvr_author_active');
506
  $fontawesome_disable = get_option('wpvr_fontawesome_disable');
 
507
  $wpvr_script_control = get_option('wpvr_script_control');
508
  $wpvr_script_list = get_option('wpvr_script_list');
509
  $high_res_image = get_option('high_res_image');
@@ -590,6 +591,33 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
590
  </span>
591
  </li>
592
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
593
  <li>
594
  <h6><?php echo __( "Disable WordPress Large Image Handler on WP VR:", "wpvr" ); ?></h6>
595
 
504
  $editor_active = get_option('wpvr_editor_active');
505
  $author_active = get_option('wpvr_author_active');
506
  $fontawesome_disable = get_option('wpvr_fontawesome_disable');
507
+ $mobile_media_resize = get_option('mobile_media_resize');
508
  $wpvr_script_control = get_option('wpvr_script_control');
509
  $wpvr_script_list = get_option('wpvr_script_list');
510
  $high_res_image = get_option('high_res_image');
591
  </span>
592
  </li>
593
 
594
+ <li>
595
+ <h6><?php echo __( "Enable mobile media resizer:", "wpvr" ); ?></h6>
596
+
597
+ <span class="wpvr-switcher">
598
+ <?php
599
+ if ($mobile_media_resize == "true") {
600
+ ?>
601
+ <input id="mobile_media_resize" type="checkbox" checked>
602
+ <?php
603
+ }
604
+ else {
605
+ ?>
606
+ <input id="mobile_media_resize" type="checkbox">
607
+ <?php
608
+ }
609
+ ?>
610
+ <label for="mobile_media_resize"></label>
611
+ </span>
612
+
613
+ <span class="wpvr-tooltip">
614
+ <span class="icon">
615
+ <img src="<?php echo WPVR_PLUGIN_DIR_URL . 'admin/icon/question-icon.png'?>" alt="check">
616
+ </span>
617
+ <p><?php echo __( 'WPVR will resize each scenes for mobile devices.', 'wpvr' ); ?></p>
618
+ </span>
619
+ </li>
620
+
621
  <li>
622
  <h6><?php echo __( "Disable WordPress Large Image Handler on WP VR:", "wpvr" ); ?></h6>
623
 
public/class-wpvr-public.php CHANGED
@@ -606,42 +606,36 @@ class Wpvr_Public {
606
  }
607
 
608
  $device_scene = $panoscenes['scene-attachment-url'];
609
- $file_accessible = ini_get('allow_url_fopen');
610
- if ($file_accessible == "1") {
611
- $arrContextOptions=array(
612
- "ssl"=>array(
613
- "verify_peer"=>false,
614
- "verify_peer_name"=>false,
615
- ),
616
- );
617
- $getfile = file_get_contents($device_scene, false, stream_context_create($arrContextOptions));
618
- $image = imagecreatefromstring($getfile);
619
- $w = imagesx($image);
620
- // $image_info = getimagesize($device_scene);
621
- // if ($image_info[0] > 4096) {
622
- if ($w > 4096) {
623
- $src_to_id_for_mobile = '';
624
- $src_to_id_for_desktop = '';
625
- if (wpvr_isMobileDevice()) {
626
- $src_to_id_for_mobile = attachment_url_to_postid($panoscenes['scene-attachment-url']);
627
- if ($src_to_id_for_mobile) {
628
- $mobile_scene = wp_get_attachment_image_src($src_to_id_for_mobile, 'wpvr_mobile');
629
- if ($mobile_scene[3]) {
630
- $device_scene = $mobile_scene[0];
631
- }
632
- }
633
- }
634
- else {
635
- $src_to_id_for_desktop = attachment_url_to_postid($panoscenes['scene-attachment-url']);
636
- if ($src_to_id_for_desktop) {
637
- $desktop_scene = wp_get_attachment_image_src($src_to_id_for_mobile, 'full');
638
- if ($desktop_scene[0]) {
639
- $device_scene = $desktop_scene[0];
640
- }
641
- }
642
- }
643
- }
644
- }
645
 
646
  $scene_info = array();
647
  $scene_info = array("type"=>$panoscenes["scene-type"],"panorama"=>$device_scene,"pitch"=>$default_scene_pitch,"maxPitch"=>$scene_max_pitch,"minPitch"=>$scene_min_pitch,"maxYaw"=>$scene_max_yaw,"minYaw"=>$scene_min_yaw,"yaw"=>$default_scene_yaw,"hfov"=>$default_zoom,"maxHfov"=>$max_zoom,"minHfov"=>$min_zoom,"title"=>$scene_ititle,"author"=>$scene_author, "authorURL"=>$scene_author_url, "vaov"=>$scene_vaov, "haov"=>$scene_haov, "vOffset"=>$scene_vertical_offset, "hotSpots"=>$hotspots);
606
  }
607
 
608
  $device_scene = $panoscenes['scene-attachment-url'];
609
+ $mobile_media_resize = get_option('mobile_media_resize');
610
+ $file_accessible = ini_get('allow_url_fopen');
611
+
612
+ if ($mobile_media_resize == "true") {
613
+ if ($file_accessible == "1") {
614
+ $image_info = getimagesize($device_scene);
615
+ if ($image_info[0] > 4096) {
616
+ $src_to_id_for_mobile = '';
617
+ $src_to_id_for_desktop = '';
618
+ if (wpvr_isMobileDevice()) {
619
+ $src_to_id_for_mobile = attachment_url_to_postid($panoscenes['scene-attachment-url']);
620
+ if ($src_to_id_for_mobile) {
621
+ $mobile_scene = wp_get_attachment_image_src($src_to_id_for_mobile, 'wpvr_mobile');
622
+ if ($mobile_scene[3]) {
623
+ $device_scene = $mobile_scene[0];
624
+ }
625
+ }
626
+ }
627
+ else {
628
+ $src_to_id_for_desktop = attachment_url_to_postid($panoscenes['scene-attachment-url']);
629
+ if ($src_to_id_for_desktop) {
630
+ $desktop_scene = wp_get_attachment_image_src($src_to_id_for_mobile, 'full');
631
+ if ($desktop_scene[0]) {
632
+ $device_scene = $desktop_scene[0];
633
+ }
634
+ }
635
+ }
636
+ }
637
+ }
638
+ }
 
 
 
 
 
 
639
 
640
  $scene_info = array();
641
  $scene_info = array("type"=>$panoscenes["scene-type"],"panorama"=>$device_scene,"pitch"=>$default_scene_pitch,"maxPitch"=>$scene_max_pitch,"minPitch"=>$scene_min_pitch,"maxYaw"=>$scene_max_yaw,"minYaw"=>$scene_min_yaw,"yaw"=>$default_scene_yaw,"hfov"=>$default_zoom,"maxHfov"=>$max_zoom,"minHfov"=>$min_zoom,"title"=>$scene_ititle,"author"=>$scene_author, "authorURL"=>$scene_author_url, "vaov"=>$scene_vaov, "haov"=>$scene_haov, "vOffset"=>$scene_vertical_offset, "hotSpots"=>$hotspots);
public/css/wpvr-public.css CHANGED
@@ -108,6 +108,10 @@
108
  border-radius: 100%;
109
  }
110
 
 
 
 
 
111
  .ctrl {
112
  width: 30px;
113
  text-align: center;
108
  border-radius: 100%;
109
  }
110
 
111
+ .pnlm-load-button p {
112
+ color: #fff!important;
113
+ }
114
+
115
  .ctrl {
116
  width: 30px;
117
  text-align: center;
wpvr.php CHANGED
@@ -16,7 +16,7 @@
16
  * Plugin Name: WP VR
17
  * Plugin URI: https://rextheme.com/wpvr/
18
  * Description: WP VR - 360 Panorama and virtual tour creator for WordPress is a customized panaroma & virtual builder tool for WordPress Website.
19
- * Version: 6.6.0
20
  * Author: Rextheme
21
  * Author URI: http://rextheme.com/
22
  * License: GPL-2.0+
@@ -560,40 +560,34 @@ function wpvr_block_render( $attributes ) {
560
  }
561
 
562
  $device_scene = $panoscenes['scene-attachment-url'];
 
563
  $file_accessible = ini_get('allow_url_fopen');
564
- if ($file_accessible == "1") {
565
- $arrContextOptions=array(
566
- "ssl"=>array(
567
- "verify_peer"=>false,
568
- "verify_peer_name"=>false,
569
- ),
570
- );
571
- $getfile = file_get_contents($device_scene, false, stream_context_create($arrContextOptions));
572
- $image = imagecreatefromstring($getfile);
573
- $w = imagesx($image);
574
- // $image_info = getimagesize($device_scene);
575
- // if ($image_info[0] > 4096) {
576
- if ($w > 4096) {
577
- $src_to_id_for_mobile = '';
578
- $src_to_id_for_desktop = '';
579
- if (wpvr_isMobileDevice()) {
580
- $src_to_id_for_mobile = attachment_url_to_postid($panoscenes['scene-attachment-url']);
581
- if ($src_to_id_for_mobile) {
582
- $mobile_scene = wp_get_attachment_image_src($src_to_id_for_mobile, 'wpvr_mobile');
583
- if ($mobile_scene[3]) {
584
- $device_scene = $mobile_scene[0];
585
  }
586
  }
587
- }
588
- else {
589
- $src_to_id_for_desktop = attachment_url_to_postid($panoscenes['scene-attachment-url']);
590
- if ($src_to_id_for_desktop) {
591
- $desktop_scene = wp_get_attachment_image_src($src_to_id_for_mobile, 'full');
592
- if ($desktop_scene[0]) {
593
- $device_scene = $desktop_scene[0];
594
  }
595
  }
596
- }
597
  }
598
  }
599
 
16
  * Plugin Name: WP VR
17
  * Plugin URI: https://rextheme.com/wpvr/
18
  * Description: WP VR - 360 Panorama and virtual tour creator for WordPress is a customized panaroma & virtual builder tool for WordPress Website.
19
+ * Version: 6.7.0
20
  * Author: Rextheme
21
  * Author URI: http://rextheme.com/
22
  * License: GPL-2.0+
560
  }
561
 
562
  $device_scene = $panoscenes['scene-attachment-url'];
563
+ $mobile_media_resize = get_option('mobile_media_resize');
564
  $file_accessible = ini_get('allow_url_fopen');
565
+
566
+ if ($mobile_media_resize == "true") {
567
+ if ($file_accessible == "1") {
568
+ $image_info = getimagesize($device_scene);
569
+ if ($image_info[0] > 4096) {
570
+ $src_to_id_for_mobile = '';
571
+ $src_to_id_for_desktop = '';
572
+ if (wpvr_isMobileDevice()) {
573
+ $src_to_id_for_mobile = attachment_url_to_postid($panoscenes['scene-attachment-url']);
574
+ if ($src_to_id_for_mobile) {
575
+ $mobile_scene = wp_get_attachment_image_src($src_to_id_for_mobile, 'wpvr_mobile');
576
+ if ($mobile_scene[3]) {
577
+ $device_scene = $mobile_scene[0];
578
+ }
 
 
 
 
 
 
 
579
  }
580
  }
581
+ else {
582
+ $src_to_id_for_desktop = attachment_url_to_postid($panoscenes['scene-attachment-url']);
583
+ if ($src_to_id_for_desktop) {
584
+ $desktop_scene = wp_get_attachment_image_src($src_to_id_for_mobile, 'full');
585
+ if ($desktop_scene[0]) {
586
+ $device_scene = $desktop_scene[0];
587
+ }
588
  }
589
  }
590
+ }
591
  }
592
  }
593