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

Version Description

  • Company logo on pro version
  • Made preview load more efficient

=

Download this release

Release Info

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

Code changes from version 3.4.7 to 3.4.8

README.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://rextheme.com/wp-vr-360-panorama-and-virtual-tour-creator-fo
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.3
7
- Stable tag: 3.4.7
8
  Requires PHP: 5.6
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -110,6 +110,7 @@ For more control over creating a virtual tour, learn about the [Premium version]
110
  * Custom scene gallery
111
  * Custom control buttons
112
  * Google street view embed
 
113
  * Personalized support (e-mail or forum)
114
 
115
  [Instructions to upgrade to pro](https://rextheme.com/docs/wp-vr/how-to-upgrade-to-pro/)
@@ -118,8 +119,6 @@ For more control over creating a virtual tour, learn about the [Premium version]
118
  - Ground map
119
  - Connect multiple tours
120
  - Background music
121
- - Advanced on-screen control button.
122
-
123
 
124
  **[Documentation](https://rextheme.com/docs/wp-vr/)**
125
 
@@ -292,5 +291,9 @@ Simply add "/plugins/wpvr" to exclusion field (or use the location where you sto
292
  = 3.4.7 =
293
  * Google street view embed
294
 
 
 
 
 
295
  == Upgrade Notice ==
296
  Please do update the WP VR to the latest version. Each update makes it sure your plugin is supporting all tour features.  
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.3
7
+ Stable tag: 3.4.8
8
  Requires PHP: 5.6
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
110
  * Custom scene gallery
111
  * Custom control buttons
112
  * Google street view embed
113
+ * Company logo
114
  * Personalized support (e-mail or forum)
115
 
116
  [Instructions to upgrade to pro](https://rextheme.com/docs/wp-vr/how-to-upgrade-to-pro/)
119
  - Ground map
120
  - Connect multiple tours
121
  - Background music
 
 
122
 
123
  **[Documentation](https://rextheme.com/docs/wp-vr/)**
124
 
291
  = 3.4.7 =
292
  * Google street view embed
293
 
294
+ = 3.4.8 =
295
+ * Company logo on pro version
296
+ * Made preview load more efficient
297
+
298
  == Upgrade Notice ==
299
  Please do update the WP VR to the latest version. Each update makes it sure your plugin is supporting all tour features.  
admin/class-wpvr-admin.php CHANGED
@@ -1852,6 +1852,7 @@ class Wpvr_Admin {
1852
  $html .='</div>';
1853
  //---end rex-pano-tabs---
1854
  $html .= '</div>';
 
1855
  echo $html;
1856
  }
1857
 
1852
  $html .='</div>';
1853
  //---end rex-pano-tabs---
1854
  $html .= '</div>';
1855
+ $html .= '<div class="wpvr-loading" style="display:none;">Loading&#8230;</div>';
1856
  echo $html;
1857
  }
1858
 
admin/class-wpvr-ajax.php CHANGED
@@ -704,6 +704,16 @@ class Wpvr_Ajax {
704
  die();
705
  }
706
 
 
 
 
 
 
 
 
 
 
 
707
  $scene_fade_duration = '';
708
  $scene_fade_duration = $_POST['scenefadeduration'];
709
 
@@ -967,7 +977,7 @@ class Wpvr_Ajax {
967
  }
968
 
969
  $pano_array = array();
970
- $pano_array = array(__( "panoid" )=>$panoid,__( "autoLoad" )=>$autoload,__( "showControls" )=>$control,__( "vrgallery" )=>$vrgallery,__( "customcontrol" )=>$custom_control,__( "gyro" )=>$gyro,__( "compass" )=>$compass,__( "autoRotate" )=>$autorotation,__( "autoRotateInactivityDelay" )=>$autorotationinactivedelay,__( "autoRotateStopDelay" )=>$autorotationstopdelay,__( "preview" )=>$preview,__( "defaultscene" )=>$default_scene,__( "scenefadeduration" )=>$scene_fade_duration,__( "panodata" )=>$panodata);
971
 
972
  if ($rotation == 'off') {
973
  unset($pano_array['autoRotate']);
704
  die();
705
  }
706
 
707
+ //===Company Logo===//
708
+ $cpLogoSwitch = 'off';
709
+ $cpLogoSwitch = $_POST['cpLogoSwitch'];
710
+ $cpLogoImg = '';
711
+ $cpLogoImg = $_POST['cpLogoImg'];
712
+ $cpLogoContent = '';
713
+ $cpLogoContent = sanitize_text_field($_POST['cpLogoContent']);
714
+ //===Company Logo===//
715
+
716
+
717
  $scene_fade_duration = '';
718
  $scene_fade_duration = $_POST['scenefadeduration'];
719
 
977
  }
978
 
979
  $pano_array = array();
980
+ $pano_array = array(__( "panoid" )=>$panoid,__( "autoLoad" )=>$autoload,__( "showControls" )=>$control,__( "cpLogoSwitch" )=>$cpLogoSwitch,__( "cpLogoImg" )=>$cpLogoImg,__( "cpLogoContent" )=>$cpLogoContent,__( "vrgallery" )=>$vrgallery,__( "customcontrol" )=>$custom_control,__( "gyro" )=>$gyro,__( "compass" )=>$compass,__( "autoRotate" )=>$autorotation,__( "autoRotateInactivityDelay" )=>$autorotationinactivedelay,__( "autoRotateStopDelay" )=>$autorotationstopdelay,__( "preview" )=>$preview,__( "defaultscene" )=>$default_scene,__( "scenefadeduration" )=>$scene_fade_duration,__( "panodata" )=>$panodata);
981
 
982
  if ($rotation == 'off') {
983
  unset($pano_array['autoRotate']);
admin/css/wpvr-admin.css CHANGED
@@ -5,6 +5,138 @@
5
 
6
 
7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  .icon-wpvrtourmake_icon:before {
9
  content: '';
10
  height: 30px;
@@ -867,6 +999,8 @@ div.custom-tooltip:hover span:after {
867
  margin-bottom: 10px;
868
  }
869
 
 
 
870
  .rex-pano-tab .streetview-setting .form-group input,
871
  .rex-pano-tab .preview-setting input.preview-upload,
872
  .rex-pano-tab .video-setting input.video-upload,
@@ -887,6 +1021,8 @@ div.custom-tooltip:hover span:after {
887
  .rex-pano-tab .streetview-setting .form-group input{
888
  max-width: 100%;
889
  }
 
 
890
  .single-settings.preview-setting .form-group img,
891
  .single-scene .scene-setting .form-group img {
892
  max-width: 400px;
@@ -894,6 +1030,9 @@ div.custom-tooltip:hover span:after {
894
  display: block;
895
  margin-bottom: 15px;
896
  }
 
 
 
897
  .rex-pano-tab .preview-setting input.preview-upload,
898
  .rex-pano-tab .video-setting input.video-upload,
899
  .single-scene .scene-setting input.scene-upload {
@@ -905,6 +1044,31 @@ div.custom-tooltip:hover span:after {
905
  cursor: pointer;
906
  transition: all 0.3s ease;
907
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
908
  .rex-pano-tab .preview-setting input.preview-upload:hover,
909
  .rex-pano-tab .video-setting .single-settings input.video-upload:hover,
910
  .single-scene .scene-setting input.scene-upload:hover {
@@ -969,6 +1133,11 @@ div.custom-tooltip:hover span:after {
969
  resize: none;
970
  min-height: 110px;
971
  }
 
 
 
 
 
972
  .single-hotspot .hotspot-setting select,
973
  .single-hotspot .hotspot-setting textarea,
974
  .single-hotspot .hotspot-setting input{
5
 
6
 
7
 
8
+ /* Absolute Center Spinner */
9
+ .wpvr-loading {
10
+ position: fixed;
11
+ z-index: 999;
12
+ height: 2em;
13
+ width: 2em;
14
+ overflow: visible;
15
+ margin: auto;
16
+ top: 0;
17
+ left: 0;
18
+ bottom: 0;
19
+ right: 0;
20
+ }
21
+
22
+ /* Transparent Overlay */
23
+ .wpvr-loading:before {
24
+ content: '';
25
+ display: block;
26
+ position: fixed;
27
+ top: 0;
28
+ left: 0;
29
+ width: 100%;
30
+ height: 100%;
31
+ background-color: rgba(0,0,0,0.3);
32
+ }
33
+
34
+ /* :not(:required) hides these rules from IE9 and below */
35
+ .wpvr-loading:not(:required) {
36
+ /* hide "loading..." text */
37
+ font: 0/0 a;
38
+ color: transparent;
39
+ text-shadow: none;
40
+ background-color: transparent;
41
+ border: 0;
42
+ }
43
+
44
+ .wpvr-loading:not(:required):after {
45
+ content: '';
46
+ display: block;
47
+ font-size: 10px;
48
+ width: 1em;
49
+ height: 1em;
50
+ margin-top: -0.5em;
51
+ -webkit-animation: spinner 1500ms infinite linear;
52
+ -moz-animation: spinner 1500ms infinite linear;
53
+ -ms-animation: spinner 1500ms infinite linear;
54
+ -o-animation: spinner 1500ms infinite linear;
55
+ animation: spinner 1500ms infinite linear;
56
+ border-radius: 0.5em;
57
+ -webkit-box-shadow: rgba(0, 0, 0, 0.75) 1.5em 0 0 0, rgba(0, 0, 0, 0.75) 1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) 0 1.5em 0 0, rgba(0, 0, 0, 0.75) -1.1em 1.1em 0 0, rgba(0, 0, 0, 0.5) -1.5em 0 0 0, rgba(0, 0, 0, 0.5) -1.1em -1.1em 0 0, rgba(0, 0, 0, 0.75) 0 -1.5em 0 0, rgba(0, 0, 0, 0.75) 1.1em -1.1em 0 0;
58
+ box-shadow: rgba(0, 0, 0, 0.75) 1.5em 0 0 0, rgba(0, 0, 0, 0.75) 1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) 0 1.5em 0 0, rgba(0, 0, 0, 0.75) -1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) -1.5em 0 0 0, rgba(0, 0, 0, 0.75) -1.1em -1.1em 0 0, rgba(0, 0, 0, 0.75) 0 -1.5em 0 0, rgba(0, 0, 0, 0.75) 1.1em -1.1em 0 0;
59
+ }
60
+
61
+ /* Animation */
62
+
63
+ @-webkit-keyframes spinner {
64
+ 0% {
65
+ -webkit-transform: rotate(0deg);
66
+ -moz-transform: rotate(0deg);
67
+ -ms-transform: rotate(0deg);
68
+ -o-transform: rotate(0deg);
69
+ transform: rotate(0deg);
70
+ }
71
+ 100% {
72
+ -webkit-transform: rotate(360deg);
73
+ -moz-transform: rotate(360deg);
74
+ -ms-transform: rotate(360deg);
75
+ -o-transform: rotate(360deg);
76
+ transform: rotate(360deg);
77
+ }
78
+ }
79
+ @-moz-keyframes spinner {
80
+ 0% {
81
+ -webkit-transform: rotate(0deg);
82
+ -moz-transform: rotate(0deg);
83
+ -ms-transform: rotate(0deg);
84
+ -o-transform: rotate(0deg);
85
+ transform: rotate(0deg);
86
+ }
87
+ 100% {
88
+ -webkit-transform: rotate(360deg);
89
+ -moz-transform: rotate(360deg);
90
+ -ms-transform: rotate(360deg);
91
+ -o-transform: rotate(360deg);
92
+ transform: rotate(360deg);
93
+ }
94
+ }
95
+ @-o-keyframes spinner {
96
+ 0% {
97
+ -webkit-transform: rotate(0deg);
98
+ -moz-transform: rotate(0deg);
99
+ -ms-transform: rotate(0deg);
100
+ -o-transform: rotate(0deg);
101
+ transform: rotate(0deg);
102
+ }
103
+ 100% {
104
+ -webkit-transform: rotate(360deg);
105
+ -moz-transform: rotate(360deg);
106
+ -ms-transform: rotate(360deg);
107
+ -o-transform: rotate(360deg);
108
+ transform: rotate(360deg);
109
+ }
110
+ }
111
+ @keyframes spinner {
112
+ 0% {
113
+ -webkit-transform: rotate(0deg);
114
+ -moz-transform: rotate(0deg);
115
+ -ms-transform: rotate(0deg);
116
+ -o-transform: rotate(0deg);
117
+ transform: rotate(0deg);
118
+ }
119
+ 100% {
120
+ -webkit-transform: rotate(360deg);
121
+ -moz-transform: rotate(360deg);
122
+ -ms-transform: rotate(360deg);
123
+ -o-transform: rotate(360deg);
124
+ transform: rotate(360deg);
125
+ }
126
+ }
127
+
128
+
129
+
130
+
131
+
132
+
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
  .icon-wpvrtourmake_icon:before {
141
  content: '';
142
  height: 30px;
999
  margin-bottom: 10px;
1000
  }
1001
 
1002
+ .rex-pano-tab .cp-logo-content .form-group textarea,
1003
+ .rex-pano-tab .cp-logo-content .form-group input.cp-logo-upload,
1004
  .rex-pano-tab .streetview-setting .form-group input,
1005
  .rex-pano-tab .preview-setting input.preview-upload,
1006
  .rex-pano-tab .video-setting input.video-upload,
1021
  .rex-pano-tab .streetview-setting .form-group input{
1022
  max-width: 100%;
1023
  }
1024
+
1025
+ .single-settings.cp-logo-content .form-group img.cp-logo-img,
1026
  .single-settings.preview-setting .form-group img,
1027
  .single-scene .scene-setting .form-group img {
1028
  max-width: 400px;
1030
  display: block;
1031
  margin-bottom: 15px;
1032
  }
1033
+
1034
+
1035
+ .rex-pano-tab .cp-logo-content .form-group input.cp-logo-upload,
1036
  .rex-pano-tab .preview-setting input.preview-upload,
1037
  .rex-pano-tab .video-setting input.video-upload,
1038
  .single-scene .scene-setting input.scene-upload {
1044
  cursor: pointer;
1045
  transition: all 0.3s ease;
1046
  }
1047
+
1048
+ .rex-pano-tab .single-settings.cp-logo-content {
1049
+ display: block;
1050
+ }
1051
+ .rex-pano-tab .single-settings.cp-logo-content > span{
1052
+ margin-bottom: 12px;
1053
+ }
1054
+ .single-settings.cp-logo-content .form-group {
1055
+ width: 400px;
1056
+ position: relative;
1057
+ }
1058
+ .single-settings.cp-logo-content .form-group img.cp-logo-img {
1059
+ max-width: 100px;
1060
+ width: auto;
1061
+ }
1062
+ .rex-pano-tab .cp-logo-content .form-group input.cp-logo-upload{
1063
+ margin-top: 15px;
1064
+ }
1065
+ .rex-pano-tab.general .single-settings.cp-logo-content .field-tooltip{
1066
+ position: absolute;
1067
+ bottom: 12px;
1068
+ right: -40px;
1069
+ }
1070
+
1071
+
1072
  .rex-pano-tab .preview-setting input.preview-upload:hover,
1073
  .rex-pano-tab .video-setting .single-settings input.video-upload:hover,
1074
  .single-scene .scene-setting input.scene-upload:hover {
1133
  resize: none;
1134
  min-height: 110px;
1135
  }
1136
+ .rex-pano-tab .cp-logo-content .form-group textarea{
1137
+ height: auto;
1138
+ resize: none;
1139
+ min-height: 110px;
1140
+ }
1141
  .single-hotspot .hotspot-setting select,
1142
  .single-hotspot .hotspot-setting textarea,
1143
  .single-hotspot .hotspot-setting input{
admin/js/wpvr-admin.js CHANGED
@@ -45,6 +45,7 @@
45
  var ajaxurl = wpvr_obj.ajaxurl;
46
  $('#panolenspreview').on('click', function(e){
47
  e.preventDefault();
 
48
  var postid = $("#post_ID").val();
49
  var autoload = $("input[name='autoload']:checked").val();
50
  var compass = $("input[name='compass']:checked").val();
@@ -80,6 +81,7 @@
80
  },
81
 
82
  success: function( response ){
 
83
  if (response.success == true) {
84
  $('#error_occured').hide();
85
  $('#error_occuredpub').hide();
@@ -137,16 +139,19 @@
137
  });
138
  });
139
  }
 
 
 
140
  }
141
  else {
142
- $('#error_occured').show();
143
- $('#error_occured').html(response.data);
144
- $('#error_occuredpub').show();
145
- $('#error_occuredpub').html(response.data);
146
- $('body').addClass('error-overlay');
147
- $('html, body').animate({
148
- scrollTop: $("#error_occured").offset().top
149
- }, 500);
150
  }
151
  }
152
  });
@@ -157,6 +162,7 @@
157
  var ajaxurl = wpvr_obj.ajaxurl;
158
  $('#videopreview').on('click', function(e){
159
  e.preventDefault();
 
160
  var postid = $("#post_ID").val();
161
  var videourl = $("input[name='video-attachment-url']").val();
162
  var vidautoplay = $("input[name='playvideo']:checked").val();
@@ -173,6 +179,7 @@
173
  },
174
 
175
  success: function( response ){
 
176
  if (response.success == true) {
177
  $('#'+response.data["panoid"]).empty();
178
  $('#'+response.data["panoid"]).html(response.data["panodata"]);
@@ -183,6 +190,9 @@
183
  }
184
  });
185
  }
 
 
 
186
  }
187
  else {
188
 
@@ -197,8 +207,9 @@
197
  var flag_ok = false;
198
  $('#publish').on('click', function(e){
199
  var x = $(this).val();
200
- if ( ! flag_ok ) {
201
- e.preventDefault();
 
202
  var postid = $("#post_ID").val();
203
  var panovideo = $("input[name='panovideo']:checked").val();
204
  var videourl = $("input[name='video-attachment-url']").val();
@@ -238,12 +249,13 @@
238
  preview: preview,
239
  rotation: rotation,
240
  autorotation: autorotation,
241
- autorotationinactivedelay: autorotationinactivedelay,
242
- autorotationstopdelay: autorotationstopdelay,
243
  scenefadeduration: scenefadeduration,
244
  },
245
 
246
  success: function( response ){
 
247
  if (response.success == false) {
248
  $('#error_occured').show();
249
  $('#error_occured').html(response.data);
@@ -281,8 +293,9 @@
281
  var flag_ok = false;
282
  $('#save-post').on('click', function(e){
283
  var x = $(this).val();
284
- if ( ! flag_ok ) {
285
- e.preventDefault();
 
286
  var postid = $("#post_ID").val();
287
  var panovideo = $("input[name='panovideo']:checked").val();
288
  var videourl = $("input[name='video-attachment-url']").val();
@@ -291,7 +304,7 @@
291
  var compass = $("input[name='compass']:checked").val();
292
  var defaultscene = $("input[name='default-scene-id']").val();
293
  var preview = $("input[name='preview-attachment-url']").val();
294
- var rotation = $("input[name='autorotation']").val();
295
  var autorotation = $("input[name='auto-rotation']").val();
296
  var autorotationinactivedelay = $("input[name='auto-rotation-inactive-delay']").val();
297
  var autorotationstopdelay = $("input[name='auto-rotation-stop-delay']").val();
@@ -322,12 +335,13 @@
322
  preview: preview,
323
  rotation: rotation,
324
  autorotation: autorotation,
325
- autorotationinactivedelay: autorotationinactivedelay,
326
- autorotationstopdelay: autorotationstopdelay,
327
  scenefadeduration: scenefadeduration,
328
  },
329
 
330
  success: function( response ){
 
331
  if (response.success == false) {
332
  $('#error_occured').show();
333
  $('#error_occured').html(response.data);
45
  var ajaxurl = wpvr_obj.ajaxurl;
46
  $('#panolenspreview').on('click', function(e){
47
  e.preventDefault();
48
+ $('.wpvr-loading').show();
49
  var postid = $("#post_ID").val();
50
  var autoload = $("input[name='autoload']:checked").val();
51
  var compass = $("input[name='compass']:checked").val();
81
  },
82
 
83
  success: function( response ){
84
+ $('.wpvr-loading').hide();
85
  if (response.success == true) {
86
  $('#error_occured').hide();
87
  $('#error_occuredpub').hide();
139
  });
140
  });
141
  }
142
+ $('html, body').animate({
143
+ scrollTop: $("#wpvr_item_builder_box").offset().top
144
+ }, 500);
145
  }
146
  else {
147
+ $('#error_occured').show();
148
+ $('#error_occured').html(response.data);
149
+ $('#error_occuredpub').show();
150
+ $('#error_occuredpub').html(response.data);
151
+ $('body').addClass('error-overlay');
152
+ $('html, body').animate({
153
+ scrollTop: $("#error_occured").offset().top
154
+ }, 500);
155
  }
156
  }
157
  });
162
  var ajaxurl = wpvr_obj.ajaxurl;
163
  $('#videopreview').on('click', function(e){
164
  e.preventDefault();
165
+ $('.wpvr-loading').show();
166
  var postid = $("#post_ID").val();
167
  var videourl = $("input[name='video-attachment-url']").val();
168
  var vidautoplay = $("input[name='playvideo']:checked").val();
179
  },
180
 
181
  success: function( response ){
182
+ $('.wpvr-loading').hide();
183
  if (response.success == true) {
184
  $('#'+response.data["panoid"]).empty();
185
  $('#'+response.data["panoid"]).html(response.data["panodata"]);
190
  }
191
  });
192
  }
193
+ $('html, body').animate({
194
+ scrollTop: $("#wpvr_item_builder_box").offset().top
195
+ }, 500);
196
  }
197
  else {
198
 
207
  var flag_ok = false;
208
  $('#publish').on('click', function(e){
209
  var x = $(this).val();
210
+ if ( ! flag_ok ) {
211
+ e.preventDefault();
212
+ $('.wpvr-loading').show();
213
  var postid = $("#post_ID").val();
214
  var panovideo = $("input[name='panovideo']:checked").val();
215
  var videourl = $("input[name='video-attachment-url']").val();
249
  preview: preview,
250
  rotation: rotation,
251
  autorotation: autorotation,
252
+ autorotationinactivedelay: autorotationinactivedelay,
253
+ autorotationstopdelay: autorotationstopdelay,
254
  scenefadeduration: scenefadeduration,
255
  },
256
 
257
  success: function( response ){
258
+ $('.wpvr-loading').hide();
259
  if (response.success == false) {
260
  $('#error_occured').show();
261
  $('#error_occured').html(response.data);
293
  var flag_ok = false;
294
  $('#save-post').on('click', function(e){
295
  var x = $(this).val();
296
+ if ( ! flag_ok ) {
297
+ e.preventDefault();
298
+ $('.wpvr-loading').show();
299
  var postid = $("#post_ID").val();
300
  var panovideo = $("input[name='panovideo']:checked").val();
301
  var videourl = $("input[name='video-attachment-url']").val();
304
  var compass = $("input[name='compass']:checked").val();
305
  var defaultscene = $("input[name='default-scene-id']").val();
306
  var preview = $("input[name='preview-attachment-url']").val();
307
+ var rotation = $("input[name='autorotation']:checked").val();
308
  var autorotation = $("input[name='auto-rotation']").val();
309
  var autorotationinactivedelay = $("input[name='auto-rotation-inactive-delay']").val();
310
  var autorotationstopdelay = $("input[name='auto-rotation-stop-delay']").val();
335
  preview: preview,
336
  rotation: rotation,
337
  autorotation: autorotation,
338
+ autorotationinactivedelay: autorotationinactivedelay,
339
+ autorotationstopdelay: autorotationstopdelay,
340
  scenefadeduration: scenefadeduration,
341
  },
342
 
343
  success: function( response ){
344
+ $('.wpvr-loading').hide();
345
  if (response.success == false) {
346
  $('#error_occured').show();
347
  $('#error_occured').html(response.data);
admin/partials/wpvr-meta-box-builder-display.php CHANGED
@@ -404,6 +404,7 @@ var scenes = response[1];
404
 
405
  if (response[1]['scenes'] != "") {
406
  var panoshow = pannellum.viewer(response[0]["panoid"], scenes);
 
407
  if (scenes.autoRotate) {
408
  panoshow.on('load', function (){
409
  setTimeout(function(){ panoshow.startAutoRotate(scenes.autoRotate, 0); }, 3000);
404
 
405
  if (response[1]['scenes'] != "") {
406
  var panoshow = pannellum.viewer(response[0]["panoid"], scenes);
407
+
408
  if (scenes.autoRotate) {
409
  panoshow.on('load', function (){
410
  setTimeout(function(){ panoshow.startAutoRotate(scenes.autoRotate, 0); }, 3000);
admin/partials/wpvr_documentation.php CHANGED
@@ -163,6 +163,7 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
163
  <div class="item"><?php _e('Custom scene gallery','wpvr'); ?></div>
164
  <div class="item"><?php _e('Custom control buttons','wpvr'); ?></div>
165
  <div class="item"><?php _e('Google street view embed','wpvr'); ?></div>
 
166
  <div class="item"><?php _e('Personalized support on both support forum and our support e-mail.','wpvr'); ?></div>
167
  </div>
168
  <a href="https://rextheme.com/wpvr/" target="_blank" class="waves-effect waves-light btn wpvr-btn"><?php _e('Get Premium Version','wpvr'); ?></a>
163
  <div class="item"><?php _e('Custom scene gallery','wpvr'); ?></div>
164
  <div class="item"><?php _e('Custom control buttons','wpvr'); ?></div>
165
  <div class="item"><?php _e('Google street view embed','wpvr'); ?></div>
166
+ <div class="item"><?php _e('Company logo','wpvr'); ?></div>
167
  <div class="item"><?php _e('Personalized support on both support forum and our support e-mail.','wpvr'); ?></div>
168
  </div>
169
  <a href="https://rextheme.com/wpvr/" target="_blank" class="waves-effect waves-light btn wpvr-btn"><?php _e('Get Premium Version','wpvr'); ?></a>
public/class-wpvr-public.php CHANGED
@@ -587,6 +587,21 @@ class Wpvr_Public {
587
 
588
  }
589
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
590
  //===Custom Control===//
591
  if ( $custom_control['panZoomInSwitch'] == "on" || $custom_control['panZoomOutSwitch'] == "on" ) {
592
 
@@ -711,9 +726,7 @@ class Wpvr_Public {
711
  $html .= '} else {';
712
  $html .= 'touchtime = new Date().getTime();';
713
  $html .= '}';
714
-
715
  $html .= '}';
716
-
717
  $html .= '});';
718
  }
719
  }
587
 
588
  }
589
 
590
+ //===company logo===//
591
+ if (isset($postdata['cpLogoSwitch'])) {
592
+ $cpLogoImg = $postdata['cpLogoImg'];
593
+ $cpLogoContent = $postdata['cpLogoContent'];
594
+ if ($postdata['cpLogoSwitch'] == 'on') {
595
+ $html .= '<div id="cp-logo-controls">';
596
+ $html .= '<div class="cp-logo-ctrl" id="cp-logo">';
597
+ $html .= '<img src="'.$cpLogoImg.'" alt="Company Logo">';
598
+ $html .= '<div class="cp-info">'.$cpLogoContent.'</div>';
599
+ $html .= '</div>';
600
+ $html .= '</div>';
601
+ }
602
+ }
603
+ //===company logo ends===//
604
+
605
  //===Custom Control===//
606
  if ( $custom_control['panZoomInSwitch'] == "on" || $custom_control['panZoomOutSwitch'] == "on" ) {
607
 
726
  $html .= '} else {';
727
  $html .= 'touchtime = new Date().getTime();';
728
  $html .= '}';
 
729
  $html .= '}';
 
730
  $html .= '});';
731
  }
732
  }
public/css/wpvr-public.css CHANGED
@@ -3,6 +3,37 @@
3
  * included in this file.
4
  */
5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  #zoom-in-out-controls {
7
  position: absolute;
8
  top: 5px;
@@ -378,6 +409,10 @@ div.custom-ifram {
378
  width: 200px;
379
  }
380
 
 
 
 
 
381
  }
382
 
383
  .vrowl-carousel .owl-stage {
3
  * included in this file.
4
  */
5
 
6
+ #cp-logo-controls {
7
+ position: absolute;
8
+ top: 10px;
9
+ right: 10px;
10
+ z-index: 2;
11
+ }
12
+ .cp-logo-ctrl {
13
+ max-width: 100px;
14
+ height: auto;
15
+ display: inline-block;
16
+ cursor: pointer;
17
+ margin: 0 auto;
18
+ }
19
+ #cp-logo-controls .cp-logo-ctrl .cp-info {
20
+ font-size: 15px;
21
+ position: absolute;
22
+ top: 100%;
23
+ background: #fff;
24
+ width: 360px;
25
+ right: 0;
26
+ padding: 10px;
27
+ border-radius: 5px;
28
+ opacity: 0;
29
+ visibility: hidden;
30
+ transition: all 0.3s ease;
31
+ }
32
+ #cp-logo-controls .cp-logo-ctrl.show .cp-info {
33
+ opacity: 1;
34
+ visibility: visible;
35
+ }
36
+
37
  #zoom-in-out-controls {
38
  position: absolute;
39
  top: 5px;
409
  width: 200px;
410
  }
411
 
412
+ #cp-logo-controls .cp-logo-ctrl .cp-info {
413
+ width: 280px;
414
+ }
415
+
416
  }
417
 
418
  .vrowl-carousel .owl-stage {
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: 3.4.7
20
  * Author: Rextheme
21
  * Author URI: http://rextheme.com/
22
  * License: GPL-2.0+
@@ -398,6 +398,7 @@ function wpvr_block_render( $attributes ) {
398
  }
399
 
400
  $hotspots = array();
 
401
  foreach ($hotspot_datas as $hotspot_data) {
402
  $status = get_option( 'wpvr_edd_license_status' );
403
  if( $status !== false && $status == 'valid' ) {
@@ -417,6 +418,7 @@ function wpvr_block_render( $attributes ) {
417
  if (isset($hotspot_data["hotspot-scene-yaw"])) {
418
  $hotspot_scene_yaw = $hotspot_data["hotspot-scene-yaw"];
419
  }
 
420
  $hotspot_info = array(
421
  'text'=>$hotspot_data['hotspot-title'],
422
  'pitch'=>$hotspot_data['hotspot-pitch'],
@@ -600,6 +602,21 @@ function wpvr_block_render( $attributes ) {
600
  $html .= '<div id="pano'.$id.'" class="pano-wrap" style=" text-align:center; max-width:100%; width: '.$width.'px; height: '.$height.'px; margin: 0 auto; border-radius:'.$radius.';">';
601
  }
602
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
603
  //===Custom Control===//
604
  if ( $custom_control['panZoomInSwitch'] == "on" || $custom_control['panZoomOutSwitch'] == "on" ) {
605
 
@@ -688,6 +705,7 @@ function wpvr_block_render( $attributes ) {
688
  $html .= '}';
689
  $html .= '}';
690
  $html .= 'var panoshow'.$id.' = pannellum.viewer(response[0]["panoid"], scenes);';
 
691
  $html .= 'panoshow'.$id.'.on("load", function (){
692
  if (jQuery(".pnlm-panorama-info:visible").length > 0) {
693
  jQuery("#controls").css("bottom", "55px");
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: 3.4.8
20
  * Author: Rextheme
21
  * Author URI: http://rextheme.com/
22
  * License: GPL-2.0+
398
  }
399
 
400
  $hotspots = array();
401
+
402
  foreach ($hotspot_datas as $hotspot_data) {
403
  $status = get_option( 'wpvr_edd_license_status' );
404
  if( $status !== false && $status == 'valid' ) {
418
  if (isset($hotspot_data["hotspot-scene-yaw"])) {
419
  $hotspot_scene_yaw = $hotspot_data["hotspot-scene-yaw"];
420
  }
421
+
422
  $hotspot_info = array(
423
  'text'=>$hotspot_data['hotspot-title'],
424
  'pitch'=>$hotspot_data['hotspot-pitch'],
602
  $html .= '<div id="pano'.$id.'" class="pano-wrap" style=" text-align:center; max-width:100%; width: '.$width.'px; height: '.$height.'px; margin: 0 auto; border-radius:'.$radius.';">';
603
  }
604
 
605
+ //===company logo===//
606
+ if (isset($postdata['cpLogoSwitch'])) {
607
+ $cpLogoImg = $postdata['cpLogoImg'];
608
+ $cpLogoContent = $postdata['cpLogoContent'];
609
+ if ($postdata['cpLogoSwitch'] == 'on') {
610
+ $html .= '<div id="cp-logo-controls">';
611
+ $html .= '<div class="cp-logo-ctrl" id="cp-logo">';
612
+ $html .= '<img src="'.$cpLogoImg.'" alt="Company Logo">';
613
+ $html .= '<div class="cp-info">'.$cpLogoContent.'</div>';
614
+ $html .= '</div>';
615
+ $html .= '</div>';
616
+ }
617
+ }
618
+ //===company logo ends===//
619
+
620
  //===Custom Control===//
621
  if ( $custom_control['panZoomInSwitch'] == "on" || $custom_control['panZoomOutSwitch'] == "on" ) {
622
 
705
  $html .= '}';
706
  $html .= '}';
707
  $html .= 'var panoshow'.$id.' = pannellum.viewer(response[0]["panoid"], scenes);';
708
+
709
  $html .= 'panoshow'.$id.'.on("load", function (){
710
  if (jQuery(".pnlm-panorama-info:visible").length > 0) {
711
  jQuery("#controls").css("bottom", "55px");