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

Version Description

(27-07-2021) = * Update: Checked compatibility with WordPress 5.8. * Fix: PHP Error Notice. * Tweak: Dual Action Warning for Auto-Rotation redesigned & updated. * Tweak: Invalid Pitch Value Warning redesigned & updated. * Tweak: Invalid Yaw Value Warning redesigned & updated. * Tweak: Invalid Default Zoom Value Warnings redesigned & updated. * Tweak: Invalid Max-zoom Value Warning redesigned & updated. * Tweak: Max-zoom Value Exceeded Warning redesigned & updated. * Tweak: Invalid Min-zoom Value Warning redesigned & updated. * Tweak: Low Min-zoom Value Warning redesigned & updated.

Download this release

Release Info

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

Code changes from version 7.3.0 to 7.3.1

README.txt CHANGED
@@ -1,201 +1,212 @@
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.7
7
  Requires PHP: 7.0.0
8
- Stable tag: 7.3.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
- ***Visual Composer Element Support***
81
 
82
- On Visual Composer, you'll find an element named WP VR under the elements list. This WP VR Visual Composer Element will allow you to easily embed virtual tours and set custom height, width, and radius to them.
83
-
84
- ***Oxygen Element Support***
85
 
86
- 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.
87
 
88
- ***Shortcode Support***
89
 
90
- On Classic Editor, you can easily embed virtual tours using Shortcodes. Set your tour ID, width, height, and your tour will be embedded.
91
 
92
- **Disable WordPress Large Image Handler To Upload High-Quality Images**
93
 
94
- 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.
95
 
96
- So if you upload a very high-quality image, it will be converted to a lower resolution image.
97
 
98
- WP VR allows you to disable this large image handler so you can create virtual tours with extremely high-resolution images.
99
 
100
  **Control Editors and Authors from Accessing Tours**
101
 
102
  Control the Editors and Authors of your site from accessing the virtual tours on your site.
103
 
 
 
 
 
 
 
104
  ==Who Should Use WP VR?==
105
 
106
- - Real Estate Industry
107
- - Educational Institutes (Schools and colleges)
108
- - Hotels and Resorts
109
- - Restaurants
110
- - Travel/Tourism
111
- - Museums
112
- - Art Galleries
113
- - Showrooms/Stores
 
 
 
114
  - Bars/Pubs.
115
 
116
  And many more.
117
 
118
  To have more control over creating a virtual tour, learn about the [Premium version](https://rextheme.com/wpvr/).
119
 
120
- ==FEATURES==
121
-
122
- * Developed with a Mobile-First approach
123
- * 360 Degree Video Support (Self-hosted, Youtube and Vimeo Videos)
124
- * Gutenberg Block Support
125
- * Elementor Widget Support
126
- * Shortcode Support
127
- * Oxygen Builder Support
128
- * Live Preview of Tour On The Back-end
129
- * Tour Preview Image
130
- * Tour Autoload Feature
131
- * Scene Fade Animation
132
- * Auto Rotation with Speed Control
133
- * Auto Rotation Direction, Pause and Stop control
134
- * Basic Control Buttons (Zoom In, Zoom Out, and Fullscreen)
135
- * Mouse Drag Navigation on Virtual Tour
136
- * Zoom In and Out with Mouse Scroll on Virtual Tour
137
- * Zoom In and Out with ‘+’ and ‘-’ keyboard buttons
138
- * Add Multiple Scenes and Hotspots
139
- * Scene Type Hotspot to Connect Scenes
140
- * Info Type Hotspots to Give Information
141
- * On Hover and On-Click Content Option for Hotspots
142
- * Embed Texts, Videos, Images, GIFs, and Website Links on Hotspots
143
- * Hotspot Customization with Custom CSS
144
- * Full-width Tour Tag
145
- * Radius Tag for VR Border Radius
146
- * Multi-Site Support
147
- * WP User Role Support (Editors and Authors)
148
- * Disable FontAwesome Option
149
- * Disable WordPress Default Large Image Handler
150
- * Control Plugin Assets To Load on Specific Pages/posts Only
151
- * Enable notice for Mobile Visitors
152
- * Mobile Media Resize Option
153
- * Plugin Rollback Support
154
- * Support From the Support Forum
155
 
156
  ==PREMIUM FEATURES==
157
 
158
- * All Free Features
159
- * Unlimited Scenes and Hotspots (Limited to 5 in The Free Version)
160
- * 360 Video Autoplay and Loop
161
- * Google Street View Embed Support
162
- * Gyroscope Support on Mobile Devices
163
- * Auto Enable Gyroscope for Mobile Devices
164
- * Custom & Responsive Scene Gallery
165
- * Scene Titles on Each Scene
166
- * Scene Description (Author) & URL on Each Scene
167
- * Scene Titles & Thumbnails on Scene Gallery
168
- * Tour Background Music Support
169
- * Background Music Autoplay, Loop, & Pause Control
170
- * Set Your Company Logo on The Virtual Tour
171
- * Set Company Description on The Logo
172
- * Home Button to Go to The Default Scene
173
- * On-Screen Compass for Tours
174
- * Disable or Enable Keyboard Movement Control
175
- * Disable or Enable Keyboard Zoom Control
176
- * Disable or Enable Mouse Drag Control
177
- * Disable or Enable Mouse Scroll Zoom
178
- * Fluent Forms Integration on Hotspots
179
- * Fill-up and Submit Booking/Contact Forms
180
- * WooCommerce Product Integration on Hotspots
181
- * Add To Cart Feature for WooCommerce Products on Hotspots
182
- * Advanced Control Buttons (Move Up, Down, Left, & Right)
183
- * Customize Icons of Each Control Button (900+ Premium Icons)
184
- * Customize Colors of Each Control Button (RGB, HSL, & HEX)
185
- * Enable or Disable Each Control Button
186
- * Custom Default Scene Face for Each Scene
187
- * Default Scene Face For Target Scene
188
- * Partial Panorama (Mobile Panorama) Support
189
- * Scene Boundary Control (Horizontal & Vertical)
190
- * Set Vertical Offset of Each Scene
191
- * Limit Vertical Scene Grab for Each Scene
192
- * Limit Horizontal Scene Grab for Each Scene
193
- * Control Max, Min, and Default Zoom for Each Scene
194
- * Customize Each Hotspot Icon (900+ Premium Icons)
195
- * Color Picker for Hotspots (RGB, HSL, & HEX)
196
- * Tour Export and Import (For WP VR Only)
197
- * Duplicate Tour with One Click
198
- * Priority Support
 
199
 
200
  [Upgrade to Pro](https://rextheme.com/docs/wp-vr/how-to-upgrade-to-pro/)
201
 
@@ -203,16 +214,16 @@ To have more control over creating a virtual tour, learn about the [Premium vers
203
 
204
  **Upcoming Features**
205
 
206
- Flat Image Support
207
- - Cubemap Image Support
208
- - Multi-Resolution Panorama Support
209
- - Floor Plan
210
-
211
 
212
  ## Privacy Policy
213
  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.
214
 
215
- Appsero SDK **does not gather any data by default.** The SDK only starts gathering basic telemetry data **when a user allows it via the admin notice**. We collect the data to ensure great user experience for all our users.
216
 
217
  Integrating Appsero SDK **DOES NOT IMMEDIATELY** start gathering data, **without confirmation from users in any case.**
218
 
@@ -230,7 +241,7 @@ Allow your prospects to have a realistic tour of your facility before they decid
230
 
231
  =2. How to Install and Activate WP VR?=
232
 
233
- 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.
234
 
235
  Once activated, on the left side under your dashboard, you will find the option WP VR at the bottom.
236
 
@@ -242,7 +253,9 @@ However, you can also capture panorama images with your smartphone and use them
242
 
243
  =5. Can I Customize The Hotspot Icons?=
244
 
245
- 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.
 
 
246
 
247
  =6. Can I Create A 360 Degree Video Tour With WP VR?=
248
 
@@ -254,7 +267,7 @@ You can either upload the video to create a tour or set a link to a Youtube/Vime
254
 
255
  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.
256
 
257
- Collect the ID from the virtual tour you created. Assign height and width as you desire.
258
 
259
  =8. The Tour Is Not Loading On The Webpage.=
260
 
@@ -303,6 +316,19 @@ Simply add “/plugins/wpvr” to the exclusion field (or use the location where
303
 
304
  == Changelog ==
305
 
 
 
 
 
 
 
 
 
 
 
 
 
 
306
  = 7.3.0 (18-06-2021) =
307
  * Tweak: WP VR logo & Text Aligned on Dashboard.
308
  * Tweak: Scene Image Missing Notice redesigned & updated.
1
+ === WP VR - 360 Panorama and Virtual Tour Builder 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.8
7
  Requires PHP: 7.0.0
8
+ Stable tag: 7.3.1
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 keep them engaged.
16
 
17
+ With WPVR, you can create a virtual tour, where your visitors can navigate through your place in a 360 panoramic view and get an overall idea on how it looks in reality.
18
 
19
+ Simply upload a 360 panoramic image, and the plugin will transform it into a realistic virtual tour.
20
 
21
+ >WPVR is compatible with Shortcodes, Elementor, Gutenberg, Visual Composer, & 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 & Easy To Use Virtual Tour Builder**
31
 
32
+ WPVR has a simple interface, designed to create virtual tours real quickly, without any expertise.
33
 
34
+ >In fact, you can create a simple virtual tour in less than 5 minutes!!
35
 
36
+ On top of that, you can customize the tour further using auto-rotation effect, scene fade animation when transmitting between scenes, Gyroscope support on mobile devices, and many more, to make the tour more attractive.
37
 
38
+ You may also use interactive hotspots to display information and keep your viewers engaged.
39
 
40
+ The best part of this plugin is, you will get a live tour preview at the back-end so that you can see what you are creating on the go.
41
 
42
+ Even if you're new to this, you will still be able to create virtual tours on your own, thanks to the actionable video tutorials and step-by-step instructions in our documentation.
43
 
44
+ >Read detailed [documentation](https://rextheme.com/docs/wp-vr/) and [video tutorials](https://www.youtube.com/playlist?list=PLelDqLncNWcUndi1NkXJh2BH62OYmIayt) for assistance.
45
 
46
+ **Create An Interactive Realistic Tour With Multiple Panoramic Images**
47
 
48
+ You can add multiple 360-degree images in a virtual tour to create scenes, and connect them through scene type hotspots.
49
 
50
+ Viewers can click on the hotspots to move back and forth between the scenes.
51
 
52
+ > You can connect up to 5 scenes, and add 5 hotspots per scene on a virtual tour. To create tours with unlimited scenes and hotspots, [click here](https://rextheme.com/wpvr)
53
 
54
  **Interactive Hotspots To Create More Attraction**
55
 
56
+ You can use engaging hotspots to view on-click or on-hover contents that include:
57
 
58
+ *Texts
59
+ *Images
60
+ *GIFs
61
+ *URLs
62
+ *Videos
63
+ *Buttons
64
 
65
+ Also, you will get over 900+ custom icons for hotspots which you can further customize with color and ripple animation. A great way to grab your viewer's attention.
66
 
67
+ >Contact our reliable [support team](https://rextheme.com/support/) to help you out anytime.
68
 
69
+ **A Simple Tool For 360 Experience**
70
 
71
+ Whether you run a travel blog, or sell properties as a realtor, a virtual tour will make your site more interactive. Even just viewing a simple scene with one 360 degree image will add extra value.
 
 
72
 
73
+ And WPVR is currently the most reliable plugin to help you out with this. You may choose to use it as a simple 360 photo viewer, or create a high quality virtual tour with all the features without any complications.
74
 
75
+ **A Functional 360 Video Viewer**
76
 
77
+ With WPVR, you will also be able to embed 360 videos on your website.
78
 
79
+ When you have a 360 camera, you will be able to capture 360-degree videos which is amazing. You can navigate within the video, while it plays.
80
 
81
+ Once you record one, you may upload your 360 video content to Youtube, Vimeo, or your website, and then embed the video on any page within your site easily.
82
 
83
+ **Embed Virtual Tours In Just A Few Clicks**
84
 
85
+ Once you create a tour, it’s really easy to embed it on your website.
 
 
86
 
87
+ Whether you use Gutenberg Editor or Popular page builders, WPVR comes with dedicated blocks and widgets to save you time when embedding your tour on your site.
88
 
89
+ | WPVR Gutenberg block | WPVR Elementor widget | Visual Composer Element | Oxygen Builder Element
90
 
91
+ If you use any other page builder, you can still publish the tour by using a shortcode, which is generated after you publish the tour.
92
 
93
+ **Use High Quality Images Without WordPress Restriction**
94
 
95
+ A good quality 360 panorama usually comes with very high resolution that can easily go over 3000 x 1500 pixels.
96
 
97
+ However, WordPress has the default large image handler which usually resizes images to below 2560 x 1280 pixels when you upload the image.
98
 
99
+ WPVR comes with the option to disable this restriction so that you can easily upload panoramic images that can be more that 3000 pixels in width.
100
 
101
  **Control Editors and Authors from Accessing Tours**
102
 
103
  Control the Editors and Authors of your site from accessing the virtual tours on your site.
104
 
105
+ **Mobile First VR Approach**
106
+
107
+ WPVR is designed with a mobile-friendly output in mind and all the tours you make will be fully responsive and weightless for mobile devices.
108
+
109
+ Simply enable the Auto-resize feature for mobile phones so that a lighter version of your panoramic images are generated. These are then used to view virtual tours on mobile devices.
110
+
111
  ==Who Should Use WP VR?==
112
 
113
+ - Real Estate Industry (Virtual home tours).
114
+ - Educational Institutes (Schools and colleges).
115
+ - Hotels and Resorts.
116
+ - Restaurants.
117
+ - Travel/Tourism.
118
+ - Museums.
119
+ - Art Galleries & Exhibitions.
120
+ - Car Showrooms.
121
+ - Furniture Showrooms.
122
+ - Clothing Stores.
123
+ - Grocery Stores.
124
  - Bars/Pubs.
125
 
126
  And many more.
127
 
128
  To have more control over creating a virtual tour, learn about the [Premium version](https://rextheme.com/wpvr/).
129
 
130
+ ==FREE FEATURES==
131
+
132
+ * An unlimited number of virtual tours.
133
+ * 360 Degree Video Support (Self-hosted, Youtube and Vimeo Videos).
134
+ * Shortcode Support.
135
+ * Gutenberg Block Support.
136
+ * Elementor Widget Support.
137
+ * Oxygen Builder Support.
138
+ * Live Preview of Tour On The Back-end.
139
+ * Tour Preview Image.
140
+ * Tour Autoload Feature.
141
+ * Scene Fade Animation.
142
+ * Auto Rotation with Speed Control.
143
+ * Auto Rotation Direction, Pause, and Stop control.
144
+ * Basic Control Buttons (Zoom In, Zoom Out, and Fullscreen).
145
+ * Mouse Drag Control on Virtual Tour.
146
+ * Zoom In and Out with Mouse Scroll on Virtual Tour.
147
+ * Zoom In and Out with ‘+’ and ‘-’ keyboard buttons.
148
+ * Add Multiple Scenes and Hotspots.
149
+ * Scene Type Hotspot to Connect Scenes.
150
+ * Info Type Hotspots to Give Information.
151
+ * On Hover and On-Click Content Option for Hotspots.
152
+ * Embed Texts, Videos, Images, GIFs, and Website Links on Hotspots.
153
+ * Hotspot Customization with Custom CSS.
154
+ * Full-width Tour Tag.
155
+ * Radius Tag for tour border-radius.
156
+ * Multi-Site Support.
157
+ * WP User Role Support (Editors and Authors).
158
+ * Disable FontAwesome Option.
159
+ * Disable WordPress Default Large Image Handler.
160
+ * Control Plugin Assets To Load on Specific Pages/posts Only.
161
+ * Enable Front-end notice for Mobile Visitors.
162
+ * Mobile Media Resize Option.
163
+ * Plugin Version Rollback Option.
164
+ * Support From the Support Forum.
165
 
166
  ==PREMIUM FEATURES==
167
 
168
+ * All Free Features.
169
+ * Unlimited Scenes and Hotspots (Up to 5 in the Free Version).
170
+ * 360 Video Autoplay and Loop.
171
+ * Google Street View Embed Support.
172
+ * Gyroscope Support for Mobile Devices.
173
+ * Auto Enable Gyroscope on Mobile Devices.
174
+ * Custom & Responsive Scene Gallery.
175
+ * Scene Titles on Each Scene.
176
+ * Scene Description (Author) & URL on Each Scene.
177
+ * Scene Titles & Thumbnails on Scene Gallery.
178
+ * Tour Background Music Support.
179
+ * Background Music Autoplay, Loop, & Pause Control.
180
+ * Set Your Company Logo on The Virtual Tour.
181
+ * Set Company Description on The Logo.
182
+ * Home Button to Go to The Default Scene.
183
+ * On-Screen Compass for Tours.
184
+ * Disable or Enable Keyboard Movement Control.
185
+ * Disable or Enable Keyboard Zoom Control.
186
+ * Global Zoom Settings for the entire Virtual Tour.
187
+ * Disable or Enable Mouse Drag Control.
188
+ * Disable or Enable Mouse Scroll Zoom.
189
+ * Fluent Forms Integration on Hotspots.
190
+ * Fill-up and Submit Booking/Contact Forms.
191
+ * WooCommerce Product Integration on Hotspots.
192
+ * Add To Cart Feature for WooCommerce Products on Hotspots.
193
+ * Advanced Control Buttons (Move Up, Down, Left, & Right).
194
+ * Customize Icons of Each Control Button (900+ Premium Icons).
195
+ * Customize Colors of Each Control Button (RGB, HSL, & HEX).
196
+ * Enable or Disable Each Control Button.
197
+ * Custom Default Scene Face for Each Scene.
198
+ * Default Scene Face For Target Scene.
199
+ * Partial Panorama (Mobile Panorama) Support.
200
+ * Scene Boundary Control (Horizontal & Vertical).
201
+ * Set Vertical Offset of Each Scene.
202
+ * Limit Vertical Scene Grab for Each Scene.
203
+ * Limit Horizontal Scene Grab for Each Scene.
204
+ * Control Max, Min, and Default Zoom for Each Scene.
205
+ * Customize Each Hotspot Icon (900+ Premium Icons).
206
+ * Color Picker for Hotspots (RGB, HSL, & HEX).
207
+ * Tour Export and Import (For WP VR Only).
208
+ * Duplicate Tours with One Click.
209
+ * Priority Support.
210
 
211
  [Upgrade to Pro](https://rextheme.com/docs/wp-vr/how-to-upgrade-to-pro/)
212
 
214
 
215
  **Upcoming Features**
216
 
217
+ - Floor Plan support.
218
+ - VR Glass/Cardboard support.
219
+ - Explainer Video option.
220
+ - Contact Form/Booking Option Button.
221
+ - Background Tour.
222
 
223
  ## Privacy Policy
224
  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.
225
 
226
+ Appsero SDK **does not gather any data by default.** The SDK only starts gathering basic telemetry data **when a user allows it via the admin notice**. We collect the data to ensure a great user experience for all our users.
227
 
228
  Integrating Appsero SDK **DOES NOT IMMEDIATELY** start gathering data, **without confirmation from users in any case.**
229
 
241
 
242
  =2. How to Install and Activate WP VR?=
243
 
244
+ 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.
245
 
246
  Once activated, on the left side under your dashboard, you will find the option WP VR at the bottom.
247
 
253
 
254
  =5. Can I Customize The Hotspot Icons?=
255
 
256
+ Yes. You can create a custom class on your theme, stating whatever style you want.
257
+
258
+ 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.
259
 
260
  =6. Can I Create A 360 Degree Video Tour With WP VR?=
261
 
267
 
268
  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.
269
 
270
+ Collect the ID from the virtual tour you created. Assign the height and width as you desire.
271
 
272
  =8. The Tour Is Not Loading On The Webpage.=
273
 
316
 
317
  == Changelog ==
318
 
319
+ = 7.3.1 (27-07-2021) =
320
+ * Update: Checked compatibility with WordPress 5.8.
321
+ * Fix: PHP Error Notice.
322
+ * Tweak: Dual Action Warning for Auto-Rotation redesigned & updated.
323
+ * Tweak: Invalid Pitch Value Warning redesigned & updated.
324
+ * Tweak: Invalid Yaw Value Warning redesigned & updated.
325
+ * Tweak: Invalid Default Zoom Value Warnings redesigned & updated.
326
+ * Tweak: Invalid Max-zoom Value Warning redesigned & updated.
327
+ * Tweak: Max-zoom Value Exceeded Warning redesigned & updated.
328
+ * Tweak: Invalid Min-zoom Value Warning redesigned & updated.
329
+ * Tweak: Low Min-zoom Value Warning redesigned & updated.
330
+
331
+
332
  = 7.3.0 (18-06-2021) =
333
  * Tweak: WP VR logo & Text Aligned on Dashboard.
334
  * Tweak: Scene Image Missing Notice redesigned & updated.
admin/class-wpvr-admin.php CHANGED
@@ -741,6 +741,11 @@ class Wpvr_Admin
741
  $html .= '</div>';
742
  $html .= '</div>';
743
  //=Auto rotation stop delay=//
 
 
 
 
 
744
 
745
  $html .= '</div>';
746
  //===end right===//
741
  $html .= '</div>';
742
  $html .= '</div>';
743
  //=Auto rotation stop delay=//
744
+
745
+
746
+ //=end backgound tour=//
747
+
748
+
749
 
750
  $html .= '</div>';
751
  //===end right===//
admin/class-wpvr-ajax.php CHANGED
@@ -102,7 +102,8 @@ class Wpvr_Ajax {
102
  $min_global_zoom = $_POST['minzoom'];
103
  }
104
  if (!empty($autorotationinactivedelay) && !empty($autorotationstopdelay)) {
105
- wp_send_json_error('<p><span>Warning:</span> You can not apply both autorotation pause or stop delay. Please choose either autorotation inactive delay or autorotation stop delay</p>');
 
106
  die();
107
  }
108
 
@@ -129,7 +130,7 @@ class Wpvr_Ajax {
129
  }
130
  }
131
  $panodata = $panolist;
132
-
133
  //===Error Control and Validation===//
134
 
135
  if ($panodata["scene-list"] != "") {
@@ -153,7 +154,7 @@ class Wpvr_Ajax {
153
  $validate_scene_pitch = $scenes_val["scene-pitch"];
154
  $validated_scene_pitch = preg_replace('/[^0-9.-]/','',$validate_scene_pitch);
155
  if ($validated_scene_pitch != $validate_scene_pitch) {
156
- wp_send_json_error('<p><span>Warning:</span> Default pitch value can only contain float numbers where scene id: '.$scene_id_validate.'</p>');
157
  die();
158
  }
159
  }
@@ -162,7 +163,7 @@ class Wpvr_Ajax {
162
  $validate_scene_yaw = $scenes_val["scene-yaw"];
163
  $validated_scene_yaw = preg_replace('/[^0-9.-]/','',$validate_scene_yaw);
164
  if ($validated_scene_yaw != $validate_scene_yaw) {
165
- wp_send_json_error('<p><span>Warning:</span> Default yaw value can only contain float numbers where scene id: '.$scene_id_validate.'</p>');
166
  die();
167
  }
168
  }
@@ -171,12 +172,13 @@ class Wpvr_Ajax {
171
  $validate_default_zoom = $scenes_val["scene-zoom"];
172
  $validated_default_zoom = preg_replace('/[^0-9-]/','',$validate_default_zoom);
173
  if ($validated_default_zoom != $validate_default_zoom) {
174
- wp_send_json_error('<p><span>Warning:</span> Default zoom value can only contain number in degree from 50 to 120 where scene id: '.$scene_id_validate.'</p>');
175
  die();
176
  }
177
  $default_zoom_value = (int)$scenes_val["scene-zoom"];
178
  if ($default_zoom_value > 120 || $default_zoom_value < 50) {
179
- wp_send_json_error('<p><span>Warning:</span> Default zoom value can only contain number in degree from 50 to 120 where scene id: '.$scene_id_validate.'</p>');
 
180
  die();
181
  }
182
  }
@@ -185,12 +187,13 @@ class Wpvr_Ajax {
185
  $validate_max_zoom = $scenes_val["scene-maxzoom"];
186
  $validated_max_zoom = preg_replace('/[^0-9-]/','',$validate_max_zoom);
187
  if ($validated_max_zoom != $validate_max_zoom) {
188
- wp_send_json_error('<p><span>Warning:</span> Max zoom out value can only contain number in degree where scene id: '.$scene_id_validate.'</p>');
 
189
  die();
190
  }
191
  $max_zoom_value = (int)$scenes_val["scene-maxzoom"];
192
  if ($max_zoom_value > 120 ) {
193
- wp_send_json_error('<p><span>Warning:</span> Max zoom out value can only contain number in degree below 120 where scene id: '.$scene_id_validate.'</p>');
194
  die();
195
  }
196
  }
@@ -199,12 +202,12 @@ class Wpvr_Ajax {
199
  $validate_min_zoom = $scenes_val["scene-minzoom"];
200
  $validated_min_zoom = preg_replace('/[^0-9-]/','',$validate_min_zoom);
201
  if ($validated_min_zoom != $validate_min_zoom) {
202
- wp_send_json_error('<p><span>Warning:</span> Max zoom in value can only contain number in degree where scene id: '.$scene_id_validate.'</p>');
203
  die();
204
  }
205
  $min_zoom_value = (int)$scenes_val["scene-minzoom"];
206
  if ($min_zoom_value < 50 ) {
207
- wp_send_json_error('<p><span>Warning:</span> Max zoom in value can only contain number in degree above 50 where scene id: '.$scene_id_validate.'</p>');
208
  die();
209
  }
210
  }
@@ -226,7 +229,8 @@ class Wpvr_Ajax {
226
  if (!empty($hotspot_pitch_validate)) {
227
  $hotspot_pitch_validated = preg_replace('/[^0-9.-]/','',$hotspot_pitch_validate);
228
  if ($hotspot_pitch_validated != $hotspot_pitch_validate) {
229
- wp_send_json_error('<p><span>Warning:</span> Hotspot pitch can only contain float numbers where scene id: '.$scene_id_validate.' and hotspot id : '.$hotspot_title_validate.'</p>');
 
230
  die();
231
  }
232
  }
@@ -235,7 +239,8 @@ class Wpvr_Ajax {
235
  if (!empty($hotspot_yaw_validate)) {
236
  $hotspot_yaw_validated = preg_replace('/[^0-9.-]/','',$hotspot_yaw_validate);
237
  if ($hotspot_yaw_validated != $hotspot_yaw_validate) {
238
- wp_send_json_error('<p><span>Warning:</span> Hotspot yaw can only contain float numbers where scene id: '.$scene_id_validate.' and hotspot id : '.$hotspot_title_validate.'</p>');
 
239
  die();
240
  }
241
  }
@@ -417,6 +422,7 @@ class Wpvr_Ajax {
417
  }
418
 
419
  $hotspot_datas = $panoscenes["hotspot-list"];
 
420
  $hotspots = array();
421
  foreach ($hotspot_datas as $hotspot_data) {
422
 
@@ -446,6 +452,7 @@ class Wpvr_Ajax {
446
  "targetYaw"=>(float)$hotspot_data["hotspot-scene-yaw"],
447
  'hotspot_type' => $hotspot_data['hotspot-type']
448
  );
 
449
  array_push($hotspots, $hotspot_info);
450
  if (empty($hotspot_data["hotspot-scene"])) {
451
  unset($hotspot_info['targetPitch']);
@@ -654,6 +661,7 @@ class Wpvr_Ajax {
654
  $autoplay = '';
655
  }
656
 
 
657
  if ($loop == 'on') {
658
  $loop = 'loop';
659
  }
@@ -680,6 +688,7 @@ class Wpvr_Ajax {
680
  $panoid ='';
681
  $postid = sanitize_text_field($_POST['postid']);
682
  $prevtext = sanitize_text_field($_POST['previewtext']);
 
683
  $previewtext = '';
684
  if(strlen($prevtext) <= 50 ){
685
  $previewtext = $prevtext;
@@ -699,18 +708,22 @@ class Wpvr_Ajax {
699
  $min_global_zoom = $_POST['minzoom'];
700
  }
701
 
702
- $streetview = $_POST['streetview'];
703
- if ($streetview == 'on') {
704
- $streetviewurl = esc_url_raw($_POST['streetviewurl']);
705
- if ($streetviewurl) {
706
- $html .= '<iframe src="'.$streetviewurl.'" width="600" height="400" frameborder="0" style="border:0;" allowfullscreen=""></iframe>';
 
 
 
 
 
 
707
  }
708
- $streetviewarray = array();
709
- $streetviewarray = array(__( "panoid" )=>$panoid,__( "streetviewdata" )=>$html,__( "streetviewurl" )=>$streetviewurl,__( "streetview" )=>$streetview);
710
- update_post_meta( $postid, 'panodata', $streetviewarray );
711
- die();
712
  }
713
-
 
714
  $pnovideo = $_POST['panovideo'];
715
  if ($pnovideo == "on") {
716
 
@@ -803,14 +816,14 @@ class Wpvr_Ajax {
803
  $vidautoplay = '';
804
  // $vidautoplay = sanitize_text_field($_POST['vidautoplay']);
805
  $vidautoplay = sanitize_text_field($_POST['autoplay']);
806
-
807
  if ($autoplay == 'on') {
808
  $autoplay = 'autoplay muted';
809
  }
810
  else {
811
  $autoplay = '';
812
  }
813
-
814
  if ($loop == 'on') {
815
  $loop = 'loop';
816
  }
@@ -830,7 +843,7 @@ class Wpvr_Ajax {
830
 
831
 
832
  $videoarray = array();
833
- $videoarray = array(__( "panoid" )=>$panoid,__( "panoviddata" )=>$html,__( "vidid" )=>$vidid,__( "vidurl" )=>$videourl,__( "autoplay" )=>$vidautoplay,__( "loop" )=>$vidloop,__( "vidtype" )=>$vidtype);
834
  update_post_meta( $postid, 'panodata', $videoarray );
835
  die();
836
  }
@@ -965,7 +978,7 @@ class Wpvr_Ajax {
965
 
966
 
967
  if (!empty($autorotationinactivedelay) && !empty($autorotationstopdelay)) {
968
- wp_send_json_error('<p><span>Warning:</span> You can not apply both autorotation pause or stop delay. Please choose either autorotation inactive delay or autorotation stop delay</p>');
969
  die();
970
  }
971
 
@@ -979,6 +992,8 @@ class Wpvr_Ajax {
979
  //===Company Logo===//
980
 
981
 
 
 
982
  $scene_fade_duration = '';
983
  $scene_fade_duration = $_POST['scenefadeduration'];
984
 
@@ -990,19 +1005,23 @@ class Wpvr_Ajax {
990
  foreach ($panodata["scene-list"] as $scenes_data) {
991
  $temp_array = array();
992
  $temp_array = (array)$scenes_data;
 
 
993
  if ($temp_array['hotspot-list']) {
994
  $_hotspot_array = array();
995
  foreach ($temp_array['hotspot-list'] as $temp_hotspot) {
 
996
  $temp_hotspot = (array)$temp_hotspot;
997
  $_hotspot_array[] = $temp_hotspot;
998
  }
999
  }
 
1000
  $temp_array['hotspot-list'] = $_hotspot_array;
1001
  $panolist['scene-list'][] = $temp_array;
1002
  }
1003
  }
1004
  $panodata = $panolist;
1005
-
1006
  //===Error Control and Validation===//
1007
 
1008
  if ($panodata["scene-list"] != "") {
@@ -1025,7 +1044,7 @@ class Wpvr_Ajax {
1025
  $validate_scene_pitch = $scenes_val["scene-pitch"];
1026
  $validated_scene_pitch = preg_replace('/[^0-9.-]/','',$validate_scene_pitch);
1027
  if ($validated_scene_pitch != $validate_scene_pitch) {
1028
- wp_send_json_error('<p><span>Warning:</span> Default pitch value can only contain float numbers where scene id: '.$scene_id_validate.'</p>');
1029
  die();
1030
  }
1031
  }
@@ -1034,7 +1053,7 @@ class Wpvr_Ajax {
1034
  $validate_scene_yaw = $scenes_val["scene-yaw"];
1035
  $validated_scene_yaw = preg_replace('/[^0-9.-]/','',$validate_scene_yaw);
1036
  if ($validated_scene_yaw != $validate_scene_yaw) {
1037
- wp_send_json_error('<p><span>Warning:</span> Default yaw value can only contain float numbers where scene id: '.$scene_id_validate.'</p>');
1038
  die();
1039
  }
1040
  }
@@ -1043,12 +1062,14 @@ class Wpvr_Ajax {
1043
  $validate_default_zoom = $scenes_val["scene-zoom"];
1044
  $validated_default_zoom = preg_replace('/[^0-9-]/','',$validate_default_zoom);
1045
  if ($validated_default_zoom != $validate_default_zoom) {
1046
- wp_send_json_error('<p><span>Warning:</span> Default zoom value can only contain number in degree from 50 to 120 where scene id: '.$scene_id_validate.'</p>');
 
1047
  die();
1048
  }
1049
  $default_zoom_value = (int)$scenes_val["scene-zoom"];
1050
  if ($default_zoom_value > 120 || $default_zoom_value < 50) {
1051
- wp_send_json_error('<p><span>Warning:</span> Default zoom value can only contain number in degree from 50 to 120 where scene id: '.$scene_id_validate.'</p>');
 
1052
  die();
1053
  }
1054
  }
@@ -1057,12 +1078,14 @@ class Wpvr_Ajax {
1057
  $validate_max_zoom = $scenes_val["scene-maxzoom"];
1058
  $validated_max_zoom = preg_replace('/[^0-9-]/','',$validate_max_zoom);
1059
  if ($validated_max_zoom != $validate_max_zoom) {
1060
- wp_send_json_error('<p><span>Warning:</span> Max zoom out value can only contain number in degree where scene id: '.$scene_id_validate.'</p>');
 
1061
  die();
1062
  }
1063
  $max_zoom_value = (int)$scenes_val["scene-maxzoom"];
1064
  if ($max_zoom_value > 120 ) {
1065
- wp_send_json_error('<p><span>Warning:</span> Max zoom out value can only contain number in degree below 120 where scene id: '.$scene_id_validate.'</p>');
 
1066
  die();
1067
  }
1068
  }
@@ -1071,12 +1094,12 @@ class Wpvr_Ajax {
1071
  $validate_min_zoom = $scenes_val["scene-minzoom"];
1072
  $validated_min_zoom = preg_replace('/[^0-9-]/','',$validate_min_zoom);
1073
  if ($validated_min_zoom != $validate_min_zoom) {
1074
- wp_send_json_error('<p><span>Warning:</span> Max zoom in value can only contain number in degree where scene id: '.$scene_id_validate.'</p>');
1075
  die();
1076
  }
1077
  $min_zoom_value = (int)$scenes_val["scene-minzoom"];
1078
  if ($min_zoom_value < 50 ) {
1079
- wp_send_json_error('<p><span>Warning:</span> Max zoom in value can only contain number in degree above 50 where scene id: '.$scene_id_validate.'</p>');
1080
  die();
1081
  }
1082
  }
@@ -1100,7 +1123,9 @@ class Wpvr_Ajax {
1100
  if (!empty($hotspot_pitch_validate)) {
1101
  $hotspot_pitch_validated = preg_replace('/[^0-9.-]/','',$hotspot_pitch_validate);
1102
  if ($hotspot_pitch_validated != $hotspot_pitch_validate) {
1103
- wp_send_json_error('<p><span>Warning:</span> Hotspot pitch can only contain float numbers where scene id: '.$scene_id_validate.' and hotspot id : '.$hotspot_title_validate.'</p>');
 
 
1104
  die();
1105
  }
1106
  }
@@ -1113,7 +1138,8 @@ class Wpvr_Ajax {
1113
  if (!empty($hotspot_yaw_validate)) {
1114
  $hotspot_yaw_validated = preg_replace('/[^0-9.-]/','',$hotspot_yaw_validate);
1115
  if ($hotspot_yaw_validated != $hotspot_yaw_validate) {
1116
- wp_send_json_error('<p><span>Warning:</span> Hotspot yaw can only contain float numbers where scene id: '.$scene_id_validate.' and hotspot id : '.$hotspot_title_validate.'</p>');
 
1117
  die();
1118
  }
1119
  }
@@ -1181,7 +1207,7 @@ class Wpvr_Ajax {
1181
  }
1182
  }
1183
  //===Error Control and Validation===//
1184
-
1185
  foreach ($panodata["scene-list"] as $panoscenes) {
1186
  if (empty($panoscenes['scene-id']) && !empty($panoscenes['scene-attachment-url'])) {
1187
  wp_send_json_error('<span class="pano-error-title">Missing Scene ID</span> <p>Please assign a unique Scene ID to your uploaded scene.</p>');
102
  $min_global_zoom = $_POST['minzoom'];
103
  }
104
  if (!empty($autorotationinactivedelay) && !empty($autorotationstopdelay)) {
105
+ wp_send_json_error('<span class="pano-error-title">Dual Action Error for Auto-Rotation</span><p> You can not use both Resume Auto-rotation & Stop Auto-rotation on the same tour. You can use only one of them.</p>');
106
+
107
  die();
108
  }
109
 
130
  }
131
  }
132
  $panodata = $panolist;
133
+
134
  //===Error Control and Validation===//
135
 
136
  if ($panodata["scene-list"] != "") {
154
  $validate_scene_pitch = $scenes_val["scene-pitch"];
155
  $validated_scene_pitch = preg_replace('/[^0-9.-]/','',$validate_scene_pitch);
156
  if ($validated_scene_pitch != $validate_scene_pitch) {
157
+ wp_send_json_error('<span class="pano-error-title">Invalid Pitch Value</span><p> The Pitch Value can only contain float numbers where Scene ID: '.$scene_id_validate.'</p>');
158
  die();
159
  }
160
  }
163
  $validate_scene_yaw = $scenes_val["scene-yaw"];
164
  $validated_scene_yaw = preg_replace('/[^0-9.-]/','',$validate_scene_yaw);
165
  if ($validated_scene_yaw != $validate_scene_yaw) {
166
+ wp_send_json_error('<span class="pano-error-title">Invalid Yaw Value</span><p> The Yaw Value can only contain float numbers where Scene ID: '.$scene_id_validate.'</p>');
167
  die();
168
  }
169
  }
172
  $validate_default_zoom = $scenes_val["scene-zoom"];
173
  $validated_default_zoom = preg_replace('/[^0-9-]/','',$validate_default_zoom);
174
  if ($validated_default_zoom != $validate_default_zoom) {
175
+ wp_send_json_error('<span class="pano-error-title">Invalid Default Zoom Value</span><p> You can only set Default Zoom in Degree values from 50 to 120 where Scene ID: '.$scene_id_validate.'</p>');
176
  die();
177
  }
178
  $default_zoom_value = (int)$scenes_val["scene-zoom"];
179
  if ($default_zoom_value > 120 || $default_zoom_value < 50) {
180
+ wp_send_json_error('<span class="pano-error-title">Invalid Default Zoom Value</span><p> You can only set Default Zoom in Degree values from 50 to 120 where Scene ID: '.$scene_id_validate.'</p>');
181
+
182
  die();
183
  }
184
  }
187
  $validate_max_zoom = $scenes_val["scene-maxzoom"];
188
  $validated_max_zoom = preg_replace('/[^0-9-]/','',$validate_max_zoom);
189
  if ($validated_max_zoom != $validate_max_zoom) {
190
+ wp_send_json_error('<span class="pano-error-title">Invalid Max-zoom Value:</span><p> You can only set Max-zoom in degree values (50-120) where Scene ID: '.$scene_id_validate.'</p>');
191
+
192
  die();
193
  }
194
  $max_zoom_value = (int)$scenes_val["scene-maxzoom"];
195
  if ($max_zoom_value > 120 ) {
196
+ wp_send_json_error('<span class="pano-error-title">Max-zoom Value Limit Exceeded</span><p> You can set the Max-zoom Value up to 120 degrees.</p>');
197
  die();
198
  }
199
  }
202
  $validate_min_zoom = $scenes_val["scene-minzoom"];
203
  $validated_min_zoom = preg_replace('/[^0-9-]/','',$validate_min_zoom);
204
  if ($validated_min_zoom != $validate_min_zoom) {
205
+ wp_send_json_error('<span class="pano-error-title">Invalid Min-zoom Value</span><p> You can only set Min-zoom in degree values (50-120) where Scene ID: '.$scene_id_validate.'</p>');
206
  die();
207
  }
208
  $min_zoom_value = (int)$scenes_val["scene-minzoom"];
209
  if ($min_zoom_value < 50 ) {
210
+ wp_send_json_error('<span class="pano-error-title">Low Min-Zoom Value</span><p> The Min-zoom value must be more than 50 in degree values where Scene ID: '.$scene_id_validate.'</p>');
211
  die();
212
  }
213
  }
229
  if (!empty($hotspot_pitch_validate)) {
230
  $hotspot_pitch_validated = preg_replace('/[^0-9.-]/','',$hotspot_pitch_validate);
231
  if ($hotspot_pitch_validated != $hotspot_pitch_validate) {
232
+ wp_send_json_error('<span class="pano-error-title">Invalid Pitch Value</span> <p>The Pitch Value can only contain float numbers where Scene ID: '.$scene_id_validate.' Hotspot ID is: '.$hotspot_title_validate.'</p>');
233
+
234
  die();
235
  }
236
  }
239
  if (!empty($hotspot_yaw_validate)) {
240
  $hotspot_yaw_validated = preg_replace('/[^0-9.-]/','',$hotspot_yaw_validate);
241
  if ($hotspot_yaw_validated != $hotspot_yaw_validate) {
242
+ wp_send_json_error('<span class="pano-error-title">Invalid Yaw Value</span> <p>The Yaw Value can only contain float numbers where Scene ID: '.$scene_id_validate.' Hotspot ID is: '.$hotspot_title_validate.'</p>');
243
+
244
  die();
245
  }
246
  }
422
  }
423
 
424
  $hotspot_datas = $panoscenes["hotspot-list"];
425
+
426
  $hotspots = array();
427
  foreach ($hotspot_datas as $hotspot_data) {
428
 
452
  "targetYaw"=>(float)$hotspot_data["hotspot-scene-yaw"],
453
  'hotspot_type' => $hotspot_data['hotspot-type']
454
  );
455
+
456
  array_push($hotspots, $hotspot_info);
457
  if (empty($hotspot_data["hotspot-scene"])) {
458
  unset($hotspot_info['targetPitch']);
661
  $autoplay = '';
662
  }
663
 
664
+
665
  if ($loop == 'on') {
666
  $loop = 'loop';
667
  }
688
  $panoid ='';
689
  $postid = sanitize_text_field($_POST['postid']);
690
  $prevtext = sanitize_text_field($_POST['previewtext']);
691
+ // error_log(print_r($_POST['customColor'],1));
692
  $previewtext = '';
693
  if(strlen($prevtext) <= 50 ){
694
  $previewtext = $prevtext;
708
  $min_global_zoom = $_POST['minzoom'];
709
  }
710
 
711
+ if(isset($_POST['streetview'])){
712
+ $streetview = $_POST['streetview'];
713
+ if ($streetview == 'on') {
714
+ $streetviewurl = esc_url_raw($_POST['streetviewurl']);
715
+ if ($streetviewurl) {
716
+ $html .= '<iframe src="'.$streetviewurl.'" width="600" height="400" frameborder="0" style="border:0;" allowfullscreen=""></iframe>';
717
+ }
718
+ $streetviewarray = array();
719
+ $streetviewarray = array(__( "panoid" )=>$panoid,__( "streetviewdata" )=>$html,__( "streetviewurl" )=>$streetviewurl,__( "streetview" )=>$streetview);
720
+ update_post_meta( $postid, 'panodata', $streetviewarray );
721
+ die();
722
  }
723
+
 
 
 
724
  }
725
+
726
+
727
  $pnovideo = $_POST['panovideo'];
728
  if ($pnovideo == "on") {
729
 
816
  $vidautoplay = '';
817
  // $vidautoplay = sanitize_text_field($_POST['vidautoplay']);
818
  $vidautoplay = sanitize_text_field($_POST['autoplay']);
819
+
820
  if ($autoplay == 'on') {
821
  $autoplay = 'autoplay muted';
822
  }
823
  else {
824
  $autoplay = '';
825
  }
826
+
827
  if ($loop == 'on') {
828
  $loop = 'loop';
829
  }
843
 
844
 
845
  $videoarray = array();
846
+ $videoarray = array(__( "panoid" )=>$panoid,__( "panoviddata" )=>$html,__( "vidid" )=>$vidid,__( "vidurl" )=>$videourl,__( "autoplay" )=>$autoplay,__( "loop" )=>$vidloop,__( "vidtype" )=>$vidtype);
847
  update_post_meta( $postid, 'panodata', $videoarray );
848
  die();
849
  }
978
 
979
 
980
  if (!empty($autorotationinactivedelay) && !empty($autorotationstopdelay)) {
981
+ wp_send_json_error('<span class="pano-error-title">Dual Action Error for Auto-Rotation</span><p> You can not use both Resume Auto-rotation & Stop Auto-rotation on the same tour. You can use only one of them.</p>');
982
  die();
983
  }
984
 
992
  //===Company Logo===//
993
 
994
 
995
+ // update_post_meta($postid,'hotspot_colors',$_POST['customColor']);
996
+
997
  $scene_fade_duration = '';
998
  $scene_fade_duration = $_POST['scenefadeduration'];
999
 
1005
  foreach ($panodata["scene-list"] as $scenes_data) {
1006
  $temp_array = array();
1007
  $temp_array = (array)$scenes_data;
1008
+ // $scene_id_ = $temp_array["scene-id"];
1009
+
1010
  if ($temp_array['hotspot-list']) {
1011
  $_hotspot_array = array();
1012
  foreach ($temp_array['hotspot-list'] as $temp_hotspot) {
1013
+
1014
  $temp_hotspot = (array)$temp_hotspot;
1015
  $_hotspot_array[] = $temp_hotspot;
1016
  }
1017
  }
1018
+
1019
  $temp_array['hotspot-list'] = $_hotspot_array;
1020
  $panolist['scene-list'][] = $temp_array;
1021
  }
1022
  }
1023
  $panodata = $panolist;
1024
+
1025
  //===Error Control and Validation===//
1026
 
1027
  if ($panodata["scene-list"] != "") {
1044
  $validate_scene_pitch = $scenes_val["scene-pitch"];
1045
  $validated_scene_pitch = preg_replace('/[^0-9.-]/','',$validate_scene_pitch);
1046
  if ($validated_scene_pitch != $validate_scene_pitch) {
1047
+ wp_send_json_error('<span class="pano-error-title">Invalid Pitch Value</span><p> The Pitch Value can only contain float numbers where Scene ID: '.$scene_id_validate.'</p>');
1048
  die();
1049
  }
1050
  }
1053
  $validate_scene_yaw = $scenes_val["scene-yaw"];
1054
  $validated_scene_yaw = preg_replace('/[^0-9.-]/','',$validate_scene_yaw);
1055
  if ($validated_scene_yaw != $validate_scene_yaw) {
1056
+ wp_send_json_error('<span class="pano-error-title">Invalid Yaw Value</span><p> The Yaw Value can only contain float numbers where Scene ID: '.$scene_id_validate.'</p>');
1057
  die();
1058
  }
1059
  }
1062
  $validate_default_zoom = $scenes_val["scene-zoom"];
1063
  $validated_default_zoom = preg_replace('/[^0-9-]/','',$validate_default_zoom);
1064
  if ($validated_default_zoom != $validate_default_zoom) {
1065
+ wp_send_json_error('<span class="pano-error-title">Invalid Default Zoom Value</span><p> You can only set Default Zoom in Degree values from 50 to 120 where Scene ID: '.$scene_id_validate.'</p>');
1066
+
1067
  die();
1068
  }
1069
  $default_zoom_value = (int)$scenes_val["scene-zoom"];
1070
  if ($default_zoom_value > 120 || $default_zoom_value < 50) {
1071
+ wp_send_json_error('<span class="pano-error-title">Invalid Default Zoom Value</span><p> You can only set Default Zoom in Degree values from 50 to 120 where Scene ID: '.$scene_id_validate.'</p>');
1072
+
1073
  die();
1074
  }
1075
  }
1078
  $validate_max_zoom = $scenes_val["scene-maxzoom"];
1079
  $validated_max_zoom = preg_replace('/[^0-9-]/','',$validate_max_zoom);
1080
  if ($validated_max_zoom != $validate_max_zoom) {
1081
+ wp_send_json_error('<span class="pano-error-title">Invalid Max-zoom Value:</span><p> You can only set Max-zoom in degree values (50-120) where Scene ID: '.$scene_id_validate.'</p>');
1082
+
1083
  die();
1084
  }
1085
  $max_zoom_value = (int)$scenes_val["scene-maxzoom"];
1086
  if ($max_zoom_value > 120 ) {
1087
+ wp_send_json_error('<span class="pano-error-title">Max-zoom Value Limit Exceeded</span><p> You can set the Max-zoom Value up to 120 degrees.</p>');
1088
+
1089
  die();
1090
  }
1091
  }
1094
  $validate_min_zoom = $scenes_val["scene-minzoom"];
1095
  $validated_min_zoom = preg_replace('/[^0-9-]/','',$validate_min_zoom);
1096
  if ($validated_min_zoom != $validate_min_zoom) {
1097
+ wp_send_json_error('<span class="pano-error-title">Invalid Min-zoom Value</span><p> You can only set Min-zoom in degree values (50-120) where Scene ID: '.$scene_id_validate.'</p>');
1098
  die();
1099
  }
1100
  $min_zoom_value = (int)$scenes_val["scene-minzoom"];
1101
  if ($min_zoom_value < 50 ) {
1102
+ wp_send_json_error('<span class="pano-error-title">Low Min-Zoom Value</span><p> The Min-zoom value must be more than 50 in degree values where Scene ID: '.$scene_id_validate.'</p>');
1103
  die();
1104
  }
1105
  }
1123
  if (!empty($hotspot_pitch_validate)) {
1124
  $hotspot_pitch_validated = preg_replace('/[^0-9.-]/','',$hotspot_pitch_validate);
1125
  if ($hotspot_pitch_validated != $hotspot_pitch_validate) {
1126
+ wp_send_json_error('<span class="pano-error-title">Invalid Pitch Value</span> <p>The Pitch Value can only contain float numbers where Scene ID: '.$scene_id_validate.' Hotspot ID is: '.$hotspot_title_validate.'</p>');
1127
+
1128
+
1129
  die();
1130
  }
1131
  }
1138
  if (!empty($hotspot_yaw_validate)) {
1139
  $hotspot_yaw_validated = preg_replace('/[^0-9.-]/','',$hotspot_yaw_validate);
1140
  if ($hotspot_yaw_validated != $hotspot_yaw_validate) {
1141
+ wp_send_json_error('<span class="pano-error-title">Invalid Yaw Value</span> <p>The Yaw Value can only contain float numbers where Scene ID: '.$scene_id_validate.' Hotspot ID is: '.$hotspot_title_validate.'</p>');
1142
+
1143
  die();
1144
  }
1145
  }
1207
  }
1208
  }
1209
  //===Error Control and Validation===//
1210
+
1211
  foreach ($panodata["scene-list"] as $panoscenes) {
1212
  if (empty($panoscenes['scene-id']) && !empty($panoscenes['scene-attachment-url'])) {
1213
  wp_send_json_error('<span class="pano-error-title">Missing Scene ID</span> <p>Please assign a unique Scene ID to your uploaded scene.</p>');
admin/css/wpvr-admin.css CHANGED
@@ -821,6 +821,7 @@ div.custom-tooltip:hover span:after {
821
  }
822
 
823
  .rex-pano-tab-content .rex-pano-tab.streetview,
 
824
  .rex-pano-tab-content .rex-pano-tab.video,
825
  .rex-pano-tab-content .rex-pano-tab.export,
826
  .rex-pano-tab-content .rex-pano-tab.general {
@@ -1640,6 +1641,7 @@ div.custom-tooltip:hover span:after {
1640
  }
1641
 
1642
  .rex-pano-tab.streetview .single-settings .field-tooltip,
 
1643
  .rex-pano-tab.general .single-settings .field-tooltip {
1644
  position: relative;
1645
  top: 2px;
@@ -1666,6 +1668,7 @@ div.custom-tooltip:hover span:after {
1666
  }
1667
 
1668
  .rex-pano-tab.streetview .single-settings .field-tooltip i,
 
1669
  .single-scene .scene-setting .field-tooltip i,
1670
  .hotspot-setup .hotspot-setting.custom-icon .field-tooltip i,
1671
  .rex-pano-tab.general .single-settings .field-tooltip i {
@@ -1674,6 +1677,7 @@ div.custom-tooltip:hover span:after {
1674
  }
1675
 
1676
  .rex-pano-tab.streetview .single-settings .field-tooltip span,
 
1677
  .single-scene .scene-setting .field-tooltip span,
1678
  .hotspot-setup .hotspot-setting.custom-icon .field-tooltip span,
1679
  .rex-pano-tab.general .single-settings .field-tooltip span {
@@ -1706,6 +1710,7 @@ div.custom-tooltip:hover span:after {
1706
  }
1707
 
1708
  .rex-pano-tab.streetview .single-settings .field-tooltip span:before,
 
1709
  .single-scene .scene-setting .field-tooltip span:before,
1710
  .hotspot-setup .hotspot-setting.custom-icon .field-tooltip span:before,
1711
  .rex-pano-tab.general .single-settings .field-tooltip span:before {
@@ -1725,7 +1730,10 @@ div.custom-tooltip:hover span:after {
1725
  transform: translateY(-50%);
1726
  }
1727
 
 
 
1728
  .rex-pano-tab.streetview .single-settings .field-tooltip:hover span,
 
1729
  .single-scene .scene-setting .field-tooltip:hover span,
1730
  .hotspot-setup .hotspot-setting.custom-icon .field-tooltip:hover span,
1731
  .rex-pano-tab.general .single-settings .field-tooltip:hover span {
@@ -1733,6 +1741,8 @@ div.custom-tooltip:hover span:after {
1733
  visibility: visible;
1734
  }
1735
 
 
 
1736
  .rex-pano-tab-content .general .inner-nav-content .right .field-tooltip span {
1737
  bottom: calc(100% + 13px);
1738
  top: initial;
@@ -2444,6 +2454,7 @@ button.delete-scene {
2444
  border-radius: 10px;
2445
  }
2446
  .rex-pano-tab-content .rex-pano-tab.streetview,
 
2447
  .rex-pano-tab-content .rex-pano-tab.video,
2448
  .rex-pano-tab-content .rex-pano-tab.export,
2449
  .rex-pano-tab-content .rex-pano-tab.general {
821
  }
822
 
823
  .rex-pano-tab-content .rex-pano-tab.streetview,
824
+ .rex-pano-tab-content .rex-pano-tab.backgroundTour,
825
  .rex-pano-tab-content .rex-pano-tab.video,
826
  .rex-pano-tab-content .rex-pano-tab.export,
827
  .rex-pano-tab-content .rex-pano-tab.general {
1641
  }
1642
 
1643
  .rex-pano-tab.streetview .single-settings .field-tooltip,
1644
+ .rex-pano-tab.backgroundTour .single-settings .field-tooltip,
1645
  .rex-pano-tab.general .single-settings .field-tooltip {
1646
  position: relative;
1647
  top: 2px;
1668
  }
1669
 
1670
  .rex-pano-tab.streetview .single-settings .field-tooltip i,
1671
+ .rex-pano-tab.backgroundTour .single-settings .field-tooltip i,
1672
  .single-scene .scene-setting .field-tooltip i,
1673
  .hotspot-setup .hotspot-setting.custom-icon .field-tooltip i,
1674
  .rex-pano-tab.general .single-settings .field-tooltip i {
1677
  }
1678
 
1679
  .rex-pano-tab.streetview .single-settings .field-tooltip span,
1680
+ .rex-pano-tab.backgroundTour .single-settings .field-tooltip span,
1681
  .single-scene .scene-setting .field-tooltip span,
1682
  .hotspot-setup .hotspot-setting.custom-icon .field-tooltip span,
1683
  .rex-pano-tab.general .single-settings .field-tooltip span {
1710
  }
1711
 
1712
  .rex-pano-tab.streetview .single-settings .field-tooltip span:before,
1713
+ .rex-pano-tab.backgroundTour .single-settings .field-tooltip span:before,
1714
  .single-scene .scene-setting .field-tooltip span:before,
1715
  .hotspot-setup .hotspot-setting.custom-icon .field-tooltip span:before,
1716
  .rex-pano-tab.general .single-settings .field-tooltip span:before {
1730
  transform: translateY(-50%);
1731
  }
1732
 
1733
+
1734
+
1735
  .rex-pano-tab.streetview .single-settings .field-tooltip:hover span,
1736
+ .rex-pano-tab.backgroundTour .single-settings .field-tooltip:hover span,
1737
  .single-scene .scene-setting .field-tooltip:hover span,
1738
  .hotspot-setup .hotspot-setting.custom-icon .field-tooltip:hover span,
1739
  .rex-pano-tab.general .single-settings .field-tooltip:hover span {
1741
  visibility: visible;
1742
  }
1743
 
1744
+
1745
+
1746
  .rex-pano-tab-content .general .inner-nav-content .right .field-tooltip span {
1747
  bottom: calc(100% + 13px);
1748
  top: initial;
2454
  border-radius: 10px;
2455
  }
2456
  .rex-pano-tab-content .rex-pano-tab.streetview,
2457
+ .rex-pano-tab-content .rex-pano-tab.backgroundTour,
2458
  .rex-pano-tab-content .rex-pano-tab.video,
2459
  .rex-pano-tab-content .rex-pano-tab.export,
2460
  .rex-pano-tab-content .rex-pano-tab.general {
admin/js/owl.carousel.js CHANGED
@@ -196,6 +196,7 @@
196
  merge: false,
197
  mergeFit: true,
198
  autoWidth: false,
 
199
 
200
  startPosition: 0,
201
  rtl: false,
196
  merge: false,
197
  mergeFit: true,
198
  autoWidth: false,
199
+
200
 
201
  startPosition: 0,
202
  rtl: false,
admin/js/wpvr-admin.js CHANGED
@@ -36,6 +36,7 @@
36
  $(".vrowl-carousel").owlCarousel({
37
  margin: 10,
38
  autoWidth: true,
 
39
  });
40
 
41
  var primary_markng = $('#scene-1').find('input.sceneid').val();
@@ -266,11 +267,13 @@
266
  var previewtext = $('.previewtext').val();
267
  if ($('.scene-setup')[0]) {
268
  var panodata = $('.scene-setup').repeaterVal();
 
269
  var panolist = JSON.stringify(panodata);
270
  } else {
271
  var panodata = '';
272
  var panolist = '';
273
  }
 
274
 
275
  jQuery.ajax({
276
 
@@ -840,6 +843,12 @@
840
  });
841
 
842
 
 
 
 
 
 
 
843
  $(document).on("change", "input[type=radio][name=panovideo]", function(event) {
844
  var getvalue = $(this).val();
845
  if (getvalue == 'on') {
@@ -1081,35 +1090,8 @@
1081
  $('html, body').animate({
1082
  scrollTop: $("#error_occured").offset().top
1083
  }, 500);
1084
- // $('#confirm_text').html('Default scene updated');
1085
- // $('.wpvr-delete-alert-wrapper').addClass('pano-error-color').css('display', 'flex');
1086
- // $('.wpvr-delete-alert-wrapper .cancel').css('display', 'none');
1087
- // $('.wpvr-delete-confirm-btn .yes').css('background', '#004EFA');
1088
- // $('.wpvr-delete-confirm-btn .yes').css('color', '#fff');
1089
- // $('.wpvr-delete-confirm-btn .yes').html('Ok');
1090
- // var _this = $(this);
1091
-
1092
- // $('.wpvr-delete-confirm-btn .yes').click(function(e){
1093
-
1094
- // $('.wpvr-delete-alert-wrapper').removeClass('pano-error-color').css('display', 'none');
1095
- // $('.wpvr-delete-alert-wrapper .cancel').css('display', 'flex');
1096
- // $('.wpvr-delete-alert-wrapper').hide();
1097
- // $('.wpvr-delete-confirm-btn .yes').css('background', '#eee');
1098
- // $('.wpvr-delete-confirm-btn .yes').css('color', '#333');
1099
- // $('.wpvr-delete-confirm-btn .yes').html('Yes');
1100
- // });
1101
- // $(document).on("click", ".wpvr-delete-alert-wrapper .cross", function(e) {
1102
- // e.preventDefault();
1103
- // $('.wpvr-delete-alert-wrapper').removeClass('pano-error-color').css('display', 'none');
1104
- // $('.wpvr-delete-alert-wrapper .cancel').css('display', 'flex');
1105
- // $('.wpvr-delete-alert-wrapper').hide();
1106
- // $('.wpvr-delete-confirm-btn .yes').css('background', '#eee');
1107
- // $('.wpvr-delete-confirm-btn .yes').css('color', '#333');
1108
- // $('.wpvr-delete-confirm-btn .yes').html('Yes');
1109
- // });
1110
  $(this).val('off');
1111
- // alert('Default scene updated.');
1112
- // $(this).val('off');
1113
  }
1114
  });
1115
  });
36
  $(".vrowl-carousel").owlCarousel({
37
  margin: 10,
38
  autoWidth: true,
39
+ nav:true
40
  });
41
 
42
  var primary_markng = $('#scene-1').find('input.sceneid').val();
267
  var previewtext = $('.previewtext').val();
268
  if ($('.scene-setup')[0]) {
269
  var panodata = $('.scene-setup').repeaterVal();
270
+
271
  var panolist = JSON.stringify(panodata);
272
  } else {
273
  var panodata = '';
274
  var panolist = '';
275
  }
276
+ console.log(panodata);
277
 
278
  jQuery.ajax({
279
 
843
  });
844
 
845
 
846
+ $(document).on("click", ".pano-error-close-btn", function(e) {
847
+ e.preventDefault();
848
+ $('.wpvr-delete-alert-wrapper').css('display', 'none');
849
+ $('.wpvr-delete-alert-wrapper').hide();
850
+ });
851
+
852
  $(document).on("change", "input[type=radio][name=panovideo]", function(event) {
853
  var getvalue = $(this).val();
854
  if (getvalue == 'on') {
1090
  $('html, body').animate({
1091
  scrollTop: $("#error_occured").offset().top
1092
  }, 500);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1093
  $(this).val('off');
1094
+
 
1095
  }
1096
  });
1097
  });
admin/js/wpvr-global.js CHANGED
@@ -31,7 +31,6 @@
31
  $(document).ready(function(){
32
  $('.setup-wizard-carousel').owlCarousel({
33
  loop:false,
34
- nav:true,
35
  items:1,
36
  dots: false,
37
  mouseDrag: false,
31
  $(document).ready(function(){
32
  $('.setup-wizard-carousel').owlCarousel({
33
  loop:false,
 
34
  items:1,
35
  dots: false,
36
  mouseDrag: false,
public/class-wpvr-public.php CHANGED
@@ -253,6 +253,7 @@ class Wpvr_Public
253
  if (isset($postdata['autoplay'])) {
254
  $autoplay = $postdata['autoplay'];
255
  }
 
256
  $loop = 'off';
257
  if (isset($postdata['loop'])) {
258
  $loop = $postdata['loop'];
@@ -305,6 +306,7 @@ class Wpvr_Public
305
  $html .= '<iframe src="https://player.vimeo.com/video/'.$foundid.'" width="'.trim($width, 'px').'" height="'.trim($height, 'px').'" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>';
306
  $html .= '</div>';
307
  } else {
 
308
  $html = '';
309
  $html .= '<div id="pano'.$id.'" class="pano-wrap" style="max-width:100%; width: '.$width.'; height: '.$height.'; margin: 0 auto;">';
310
  $html .= '<div style="width:100%; height:100%; ">'.$postdata['panoviddata'].'</div>';
@@ -560,7 +562,7 @@ class Wpvr_Public
560
 
561
  $hotspots = array();
562
 
563
-
564
  foreach ($hotspot_datas as $hotspot_data) {
565
  $status = get_option('wpvr_edd_license_status');
566
  if ($status !== false && $status == 'valid') {
@@ -865,17 +867,19 @@ class Wpvr_Public
865
  //===company logo ends===//
866
 
867
  //===Background Tour===//
868
- // $html .= '
869
- //
870
- // <div class="wpvr-topnav">
871
- // <a class="active" href="#home">Home</a>
872
- // <a href="#news">News</a>
873
- // <a href="#contact">Contact</a>
874
- // <a href="#about">About</a>
875
- // </div>
876
- //
877
- // ';
878
- // $html .= '<div class="wpvr-home-text">Welcome to WordPress</div>';
 
 
879
  //===Background Tour End===//
880
 
881
  //===Custom Control===//
@@ -986,6 +990,8 @@ class Wpvr_Public
986
  }
987
  }
988
 
 
 
989
 
990
  $html .= '<div class="wpvr-hotspot-tweak-contents-wrapper" style="display: none">';
991
  $html .= '<i class="fa fa-times cross" data-id="'.$id.'"></i>';
253
  if (isset($postdata['autoplay'])) {
254
  $autoplay = $postdata['autoplay'];
255
  }
256
+
257
  $loop = 'off';
258
  if (isset($postdata['loop'])) {
259
  $loop = $postdata['loop'];
306
  $html .= '<iframe src="https://player.vimeo.com/video/'.$foundid.'" width="'.trim($width, 'px').'" height="'.trim($height, 'px').'" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>';
307
  $html .= '</div>';
308
  } else {
309
+
310
  $html = '';
311
  $html .= '<div id="pano'.$id.'" class="pano-wrap" style="max-width:100%; width: '.$width.'; height: '.$height.'; margin: 0 auto;">';
312
  $html .= '<div style="width:100%; height:100%; ">'.$postdata['panoviddata'].'</div>';
562
 
563
  $hotspots = array();
564
 
565
+
566
  foreach ($hotspot_datas as $hotspot_data) {
567
  $status = get_option('wpvr_edd_license_status');
568
  if ($status !== false && $status == 'valid') {
867
  //===company logo ends===//
868
 
869
  //===Background Tour===//
870
+ // if(is_plugin_active( "wpvr-embed-addon/wpvr-embed-addon.php" )){
871
+ // $html .= '
872
+
873
+ // <div class="wpvr-topnav">
874
+ // <a class="active" href="#home">Home</a>
875
+ // <a href="#news">News</a>
876
+ // <a href="#contact">Contact</a>
877
+ // <a href="#about">About</a>
878
+ // </div>
879
+
880
+ // ';
881
+ // $html .= '<div class="wpvr-home-text">Welcome to WordPress</div>';
882
+ // }
883
  //===Background Tour End===//
884
 
885
  //===Custom Control===//
990
  }
991
  }
992
 
993
+
994
+
995
 
996
  $html .= '<div class="wpvr-hotspot-tweak-contents-wrapper" style="display: none">';
997
  $html .= '<i class="fa fa-times cross" data-id="'.$id.'"></i>';
public/css/owl.carousel.css CHANGED
@@ -51,7 +51,7 @@
51
  width: 100%; }
52
  .vrowl-carousel .owl-nav.disabled,
53
  .vrowl-carousel .owl-dots.disabled {
54
- display: none; }
55
  .vrowl-carousel .owl-nav .owl-prev,
56
  .vrowl-carousel .owl-nav .owl-next,
57
  .vrowl-carousel .owl-dot {
@@ -64,7 +64,7 @@
64
  .vrowl-carousel .owl-nav button.owl-prev,
65
  .vrowl-carousel .owl-nav button.owl-next,
66
  .vrowl-carousel button.owl-dot {
67
- background: none;
68
  color: inherit;
69
  border: none;
70
  padding: 0 !important;
51
  width: 100%; }
52
  .vrowl-carousel .owl-nav.disabled,
53
  .vrowl-carousel .owl-dots.disabled {
54
+ display: block; }
55
  .vrowl-carousel .owl-nav .owl-prev,
56
  .vrowl-carousel .owl-nav .owl-next,
57
  .vrowl-carousel .owl-dot {
64
  .vrowl-carousel .owl-nav button.owl-prev,
65
  .vrowl-carousel .owl-nav button.owl-next,
66
  .vrowl-carousel button.owl-dot {
67
+ /* background: none; */
68
  color: inherit;
69
  border: none;
70
  padding: 0 !important;
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: 7.3.0
20
  * Author: Rextheme
21
  * Author URI: http://rextheme.com/
22
  * License: GPL-2.0+
@@ -558,7 +558,7 @@ function wpvr_block_render($attributes)
558
  "sceneId"=>$hotspot_data["hotspot-scene"],
559
  "targetPitch"=>(float)$hotspot_scene_pitch,
560
  "targetYaw"=>(float)$hotspot_scene_yaw,
561
- 'hotspot_type' => $hotspot_data['hotspot-type']);
562
 
563
  $hotspot_info['URL'] = ($hotspot_data['hotspot-type'] === 'fluent_form' || $hotspot_data['hotspot-type'] === 'wc_product') ? '' : $hotspot_info['URL'];
564
 
@@ -574,8 +574,9 @@ function wpvr_block_render($attributes)
574
 
575
  $device_scene = $panoscenes['scene-attachment-url'];
576
  $mobile_media_resize = get_option('mobile_media_resize');
577
- $file_accessible = ini_get('allow_url_fopen');
578
-
 
579
  if ($mobile_media_resize == "true") {
580
  if ($file_accessible == "1") {
581
  $image_info = getimagesize($device_scene);
@@ -679,7 +680,7 @@ function wpvr_block_render($attributes)
679
  $scene_data[$panoscenes['scene-id']] = $scene_info;
680
  }
681
  }
682
-
683
  $pano_id_array = array();
684
  $pano_id_array = array('panoid'=>$panoid);
685
  $pano_response = array();
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: 7.3.1
20
  * Author: Rextheme
21
  * Author URI: http://rextheme.com/
22
  * License: GPL-2.0+
558
  "sceneId"=>$hotspot_data["hotspot-scene"],
559
  "targetPitch"=>(float)$hotspot_scene_pitch,
560
  "targetYaw"=>(float)$hotspot_scene_yaw,
561
+ 'hotspot_type' => $hotspot_data['hotspot-type']);
562
 
563
  $hotspot_info['URL'] = ($hotspot_data['hotspot-type'] === 'fluent_form' || $hotspot_data['hotspot-type'] === 'wc_product') ? '' : $hotspot_info['URL'];
564
 
574
 
575
  $device_scene = $panoscenes['scene-attachment-url'];
576
  $mobile_media_resize = get_option('mobile_media_resize');
577
+ // $file_accessible = ini_set("allow_url_fopen", "On");
578
+ $file_accessible = ini_get('allow_url_fopen','1');
579
+
580
  if ($mobile_media_resize == "true") {
581
  if ($file_accessible == "1") {
582
  $image_info = getimagesize($device_scene);
680
  $scene_data[$panoscenes['scene-id']] = $scene_info;
681
  }
682
  }
683
+
684
  $pano_id_array = array();
685
  $pano_id_array = array('panoid'=>$panoid);
686
  $pano_response = array();