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

Version Description

  • Dynamic Font-Awesome icon added for hotspot.
  • Dynamic color picker added for hotspot color.
  • Custom panorama compass support.

=

Download this release

Release Info

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

Code changes from version 2.1.0 to 2.1.1

Files changed (86) hide show
  1. LICENSE.txt +0 -0
  2. README.txt +29 -9
  3. admin/class-wpvr-admin-pages.php +0 -0
  4. admin/class-wpvr-admin.php +707 -205
  5. admin/class-wpvr-ajax.php +55 -3
  6. admin/class-wpvr-icon.php +1019 -0
  7. admin/css/font-awesome.min.css +0 -0
  8. admin/css/iconpicker.ttf +0 -0
  9. admin/css/iconpicker.woff +0 -0
  10. admin/css/jquery.fonticonpicker.grey.min.css +2 -0
  11. admin/css/jquery.fonticonpicker.min.css +2 -0
  12. admin/css/materialize.css +0 -0
  13. admin/css/materialize.min.css +0 -0
  14. admin/css/wpvr-admin.css +88 -3
  15. admin/icon/Document.png +0 -0
  16. admin/icon/Feedback.png +0 -0
  17. admin/icon/Heart.png +0 -0
  18. admin/icon/Rating.png +0 -0
  19. admin/icon/Social_Booster_Banner.png +0 -0
  20. admin/icon/Support.png +0 -0
  21. admin/icon/banner.png +0 -0
  22. admin/icon/icon-128x128.png +0 -0
  23. admin/icon/icon.png +0 -0
  24. admin/index.php +0 -0
  25. admin/js/jquery.repeater.min.js +0 -0
  26. admin/js/materialize.js +0 -0
  27. admin/js/materialize.min.js +0 -0
  28. admin/js/video.js +0 -0
  29. admin/js/wpvr-admin.js +90 -16
  30. admin/lib/jquery.fonticonpicker.min.js +13 -0
  31. admin/lib/pannellum/.gitignore +0 -0
  32. admin/lib/pannellum/.npmignore +0 -0
  33. admin/lib/pannellum/src/css/img/background.svg +0 -0
  34. admin/lib/pannellum/src/css/img/compass.svg +0 -0
  35. admin/lib/pannellum/src/css/img/grab.svg +0 -0
  36. admin/lib/pannellum/src/css/img/grabbing.svg +0 -0
  37. admin/lib/pannellum/src/css/img/sprites.svg +0 -0
  38. admin/lib/pannellum/src/css/pannellum.css +0 -0
  39. admin/lib/pannellum/src/js/RequestAnimationFrame.js +0 -0
  40. admin/lib/pannellum/src/js/libpannellum.js +0 -0
  41. admin/lib/pannellum/src/js/pannellum.js +0 -0
  42. admin/partials/wpvr-admin-display.php +0 -0
  43. admin/partials/wpvr-meta-box-builder-display.php +7 -3
  44. admin/partials/wpvr-meta-box-shortcode-display.php +1 -1
  45. admin/partials/wpvr_documentation.php +6 -4
  46. admin/partials/wpvr_license.php +0 -0
  47. build/index.build.js +0 -0
  48. images/icon.png +0 -0
  49. includes/class-wpvr-activator.php +0 -0
  50. includes/class-wpvr-deactivator.php +0 -0
  51. includes/class-wpvr-i18n.php +0 -0
  52. includes/class-wpvr-loader.php +0 -0
  53. includes/class-wpvr.php +4 -0
  54. includes/index.php +0 -0
  55. index.php +0 -0
  56. insights.php +0 -0
  57. languages/de.mo +0 -0
  58. languages/de.po +0 -0
  59. languages/es.mo +0 -0
  60. languages/es.po +0 -0
  61. languages/it.mo +0 -0
  62. languages/it.po +0 -0
  63. package-lock.json +0 -0
  64. package.json +0 -0
  65. public/class-wpvr-public.php +61 -4
  66. public/css/font-awesome.min.css +0 -0
  67. public/css/wpvr-public.css +72 -10
  68. public/index.php +0 -0
  69. public/js/wpvr-public.js +6 -2
  70. public/lib/pannellum/.gitignore +0 -0
  71. public/lib/pannellum/.npmignore +0 -0
  72. public/lib/pannellum/src/css/img/background.svg +0 -0
  73. public/lib/pannellum/src/css/img/compass.svg +0 -0
  74. public/lib/pannellum/src/css/img/grab.svg +0 -0
  75. public/lib/pannellum/src/css/img/grabbing.svg +0 -0
  76. public/lib/pannellum/src/css/img/sprites.svg +0 -0
  77. public/lib/pannellum/src/css/pannellum.css +0 -0
  78. public/lib/pannellum/src/js/RequestAnimationFrame.js +0 -0
  79. public/lib/pannellum/src/js/libpannellum.js +0 -0
  80. public/lib/pannellum/src/js/pannellum.js +0 -0
  81. public/partials/wpvr-public-display.php +0 -0
  82. src/index.js +0 -0
  83. src/view.css +0 -0
  84. uninstall.php +0 -0
  85. webpack.config.js +0 -0
  86. wpvr.php +145 -7
LICENSE.txt CHANGED
File without changes
README.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: rextheme, coderexco
3
  Donate link: https://rextheme.com/wp-vr-360-panorama-and-virtual-tour-creator-for-wordpress/
4
  Tags: virtual tour, real estate tour, panorama, panorama viewer, virtual tour, 360 panorama, interactive tour
5
  Requires at least: 4.0
6
- Tested up to: 5.0
7
- Stable tag: 2.1.0
8
  Requires PHP: 5.6
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -14,12 +14,16 @@ Let site visitors take a virtual tour and get them excited!! Let them experience
14
  == Description ==
15
  With the WPVR, set up a virtual tour for site visitors where they can navigate a 360 view of your location, switch between several spots (or rooms), get information on items on the location, zoom in and out to get better view, and get an overall idea about how your place may look in reality.
16
 
17
- > Complete Gutenberg block support available. Check how to use **[wpvr block](https://rextheme.com/docs/wp-vr/gutenberg-block/)** 
18
 
19
- > 360 Video support added. Check how to add **[video](https://rextheme.com/docs/wp-vr/360-degree-video-support/)** 
20
- > Auto rotation feature added. 
 
 
 
 
 
21
 
22
- > Get your site visitors hooked by giving them a tour that makes them realize how amazing your place is. Check **[Documentation](https://rextheme.com/docs/wp-vr/)** 
23
 
24
  **Easy and simple interface** 
25
  Simple, easy and straight forward options to add your panorama images and create a tour.
@@ -32,7 +36,7 @@ You can implement your own custom style class and, alter the design and display
32
 
33
  **Easy to embed your virtual tour:**
34
  Every tour you create generates a shortcode.
35
- For a classic editor, you can simply apply this shorcode on your page along with proper width and height, and your website will include the virtual tour just the way you want.
36
  For Gutenberg block editor, you will find a block type “WPVR” under the common blocks. Create a WPVR block and on the toolbar, input the ID from the short code and assign your desired height and width, and the virtual tour will be embedded on your web page.
37
 
38
 
@@ -58,6 +62,9 @@ For Gutenberg block editor, you will find a block type “WPVR” under the comm
58
  = Premium Version =
59
  * Unlimited scenes
60
  * Unlimited hotspots
 
 
 
61
  * Personalized support on both support forum and our support e-mail.
62
 
63
 
@@ -86,10 +93,18 @@ Yes, you can include image source or video embed link on the section On Click Co
86
  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.
87
 
88
  = 6. How can I embed a virtual tour using Gutenberg Block Editor?? =
89
- Under common blocks, you will find a block called WPVR. Add WPVR block. Select the block and on the dynamic toolbar on the right, you will get the options to add ID, Height and Width. Collect the ID from the shorcode generated when you published a tour. Assign height and width according to your convenience.
 
 
 
90
 
 
91
 
92
- **[Documentation](https://rextheme.com/docs/wpvr-360-panorama-and-virtual-tour-creator-for-wordpress/)** 
 
 
 
 
93
 
94
 
95
 
@@ -122,5 +137,10 @@ Under common blocks, you will find a block called WPVR. Add WPVR block. Select t
122
  * Auto rotation
123
  * Rotation pause and stop control
124
 
 
 
 
 
 
125
  == Upgrade Notice ==
126
  Please do update the WP VR to the latest version. Each update makes it sure your plugin is supporting all tour features.  
3
  Donate link: https://rextheme.com/wp-vr-360-panorama-and-virtual-tour-creator-for-wordpress/
4
  Tags: virtual tour, real estate tour, panorama, panorama viewer, virtual tour, 360 panorama, interactive tour
5
  Requires at least: 4.0
6
+ Tested up to: 5.1
7
+ Stable tag: 2.1.1
8
  Requires PHP: 5.6
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
14
  == Description ==
15
  With the WPVR, set up a virtual tour for site visitors where they can navigate a 360 view of your location, switch between several spots (or rooms), get information on items on the location, zoom in and out to get better view, and get an overall idea about how your place may look in reality.
16
 
17
+ > Get your site visitors hooked by giving them a tour that makes them realize how amazing your place is. Check **[Documentation](https://rextheme.com/docs/wp-vr/)**. 
18
 
19
+ > Complete Gutenberg block support. Check how to use **[wpvr block](https://rextheme.com/docs/wp-vr/gutenberg-block/)**. 
20
+
21
+ > 360 Video support. Check how to add **[360 video](https://rextheme.com/docs/wp-vr/360-degree-video-support/)**. 
22
+
23
+ > Auto rotation and rotation pause and stop control.
24
+
25
+ >Panorama Compass and Customized Hotspot Icon with Dynamic Color support on Premium version.
26
 
 
27
 
28
  **Easy and simple interface** 
29
  Simple, easy and straight forward options to add your panorama images and create a tour.
36
 
37
  **Easy to embed your virtual tour:**
38
  Every tour you create generates a shortcode.
39
+ For a classic editor, you can simply apply this shortcode on your page along with proper width and height, and your website will include the virtual tour just the way you want.
40
  For Gutenberg block editor, you will find a block type “WPVR” under the common blocks. Create a WPVR block and on the toolbar, input the ID from the short code and assign your desired height and width, and the virtual tour will be embedded on your web page.
41
 
42
 
62
  = Premium Version =
63
  * Unlimited scenes
64
  * Unlimited hotspots
65
+ * Customized premium icons
66
+ * Color picker for hotspot custom icons background.
67
+ * Custom panorama compass support.
68
  * Personalized support on both support forum and our support e-mail.
69
 
70
 
93
  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.
94
 
95
  = 6. How can I embed a virtual tour using Gutenberg Block Editor?? =
96
+ Under common blocks, you will find a block called WPVR. Add WPVR block. Select the block and on the dynamic toolbar on the right, you will get the options to add ID, Height and Width. Collect the ID from the shortcode generated when you published a tour. Assign height and width according to your convenience.
97
+
98
+ = 7. What do I do if I get “THE FILE (image link) COULD NOT BE ACCESSED” error? =
99
+ Sometimes when you add a tour on your site, you might face this issue that rather than loading the tour it will give the error “THE FILE (…) COULD NOT BE ACCESSED.”
100
 
101
+ This error shows up when you are running a website under “HTTPS” (secured with SSL certificate) whereas your image link is under “HTTP” (unsecured).
102
 
103
+ To solve this issue, go to your WordPress Dashboard > Settings > General. Here make sure you have “https” added to both “WordPress Address (URL)” and “Site Address (URL)”. That’s it. Your virtual tour will load with no issues.
104
+
105
+
106
+
107
+ **[Documentation](https://rextheme.com/docs/wp-vr/)** 
108
 
109
 
110
 
137
  * Auto rotation
138
  * Rotation pause and stop control
139
 
140
+ = 2.1.1 =
141
+ * Dynamic Font-Awesome icon added for hotspot.
142
+ * Dynamic color picker added for hotspot color.
143
+ * Custom panorama compass support.
144
+
145
  == Upgrade Notice ==
146
  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-pages.php CHANGED
File without changes
admin/class-wpvr-admin.php CHANGED
@@ -79,7 +79,8 @@ class Wpvr_Admin {
79
  * between the defined hooks and the functions defined in this
80
  * class.
81
  */
82
- wp_enqueue_style( $this->plugin_name . 'fontawesome', 'https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css', array(), $this->version, 'all' );
 
83
  wp_enqueue_style( 'materialize-icons', 'https://fonts.googleapis.com/icon?family=Material+Icons', array(), $this->version, 'all' );
84
 
85
  $screen = get_current_screen();
@@ -89,6 +90,11 @@ class Wpvr_Admin {
89
  }
90
  wp_enqueue_style('panellium-css', plugin_dir_url( __FILE__ ) . 'lib/pannellum/src/css/pannellum.css', array(), true);
91
  wp_enqueue_style('videojs-css', 'https://vjs.zencdn.net/7.1.0/video-js.css', array(), true);
 
 
 
 
 
92
  wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/wpvr-admin.css', array(), $this->version, 'all' );
93
 
94
  }
@@ -111,19 +117,29 @@ class Wpvr_Admin {
111
  * between the defined hooks and the functions defined in this
112
  * class.
113
  */
114
-
 
115
  wp_enqueue_media();
 
 
 
 
116
  wp_enqueue_script('panellium-js', plugin_dir_url( __FILE__ ) . 'lib/pannellum/src/js/pannellum.js', array(), true);
117
  wp_enqueue_script('panelliumlib-js', plugin_dir_url( __FILE__ ) . 'lib/pannellum/src/js/libpannellum.js', array(), true);
118
  wp_enqueue_script( 'videojs-js', plugin_dir_url( __FILE__ ) .'js/video.js', array('jquery'), true);
119
  wp_enqueue_script('panelliumvid-js', plugin_dir_url( __FILE__ ) . 'lib/pannellum/src/js/videojs-pannellum-plugin.js', array(), true);
120
- $adscreen = get_current_screen();
121
 
122
  if ($adscreen->id=="toplevel_page_wpvr") {
123
  wp_enqueue_script( 'materialize-js', plugin_dir_url( __FILE__ ) . 'js/materialize.min.js', array( 'jquery' ), $this->version, false );
124
  }
125
  wp_enqueue_script( 'jquery-repeater', plugin_dir_url( __FILE__ ) .'js/jquery.repeater.min.js', array('jquery'), true);
126
- wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/wpvr-admin.js', array( 'jquery' ), $this->version, false );
 
 
 
 
 
127
  wp_localize_script( $this->plugin_name, 'wpvr_obj', array(
128
  'ajaxurl' => admin_url( 'admin-ajax.php' ),
129
  'ajax_nonce' => wp_create_nonce('wpvr'),
@@ -143,7 +159,7 @@ class Wpvr_Admin {
143
 
144
  add_meta_box(
145
  $this->post_type . '_builder_box',
146
- __('Preview', $this->plugin_name),
147
  array($this, 'wpvr_display_meta_box_builder'),
148
  $this->post_type,
149
  'advanced',
@@ -268,9 +284,15 @@ class Wpvr_Admin {
268
  }
269
  public function wpvr_setup($post) {
270
 
271
- $status = get_option( 'wpvr_edd_license_status' );
272
- if( $status !== false && $status == 'valid' ) {
273
- $data_limit = 999999999;
 
 
 
 
 
 
274
  }
275
  else {
276
  $data_limit = 5;
@@ -288,6 +310,11 @@ class Wpvr_Admin {
288
  if (isset($postdata["showControls"])) {
289
  $control = $postdata["showControls"];
290
  }
 
 
 
 
 
291
 
292
  $default_scene = '';
293
  if (isset($postdata["defaultscene"])) {
@@ -303,14 +330,23 @@ class Wpvr_Admin {
303
  if (isset($postdata["autoRotate"])) {
304
  $autorotation = $postdata["autoRotate"];
305
  }
 
 
 
306
  $autorotationinactivedelay = '';
307
  if (isset($postdata["autoRotateInactivityDelay"])) {
308
  $autorotationinactivedelay = $postdata["autoRotateInactivityDelay"];
309
  }
 
 
 
310
  $autorotationstopdelay = '';
311
  if (isset($postdata["autoRotateStopDelay"])) {
312
  $autorotationstopdelay = $postdata["autoRotateStopDelay"];
313
  }
 
 
 
314
 
315
  $scene_fade_duration = '';
316
  if (isset($postdata["scenefadeduration"])) {
@@ -321,7 +357,11 @@ class Wpvr_Admin {
321
  if (isset($postdata["panodata"])) {
322
  $pano_data = $postdata["panodata"];
323
  }
324
-
 
 
 
 
325
  $html = '';
326
 
327
  $html .= '<div class="pano-setup">';
@@ -335,9 +375,9 @@ class Wpvr_Admin {
335
  $html .='<nav class="rex-pano-tab-nav rex-pano-nav-menu main-nav">';
336
  $html .='<ul>';
337
  $html .='<li class="general active"><span data-href="#general"><i class="fa fa-cogs"></i> '.__('general','wpvr').'</span></li>';
338
- $html .='<li class="scene"><span data-href="#scenes"><i class="fa fa-photo"></i> '.__('Scenes','wpvr').'</span></li>';
339
- $html .='<li class="hotspot"><span data-href="#scenes"><i class="fa fa-dot-circle-o"></i> '.__('hotspot','wpvr').'</span></li>';
340
- $html .='<li class="video"><span data-href="#video"><i class="fa fa-video-camera"></i> '.__('Video','wpvr').'</span></li>';
341
  $html .='</ul>';
342
  $html .='</nav>';
343
 
@@ -346,41 +386,6 @@ class Wpvr_Admin {
346
 
347
  $html .= '<h6 class="title"> '.__('General Settings : ','wpvr').'</h6>';
348
 
349
- //=Autoload setup=
350
- if ($autoload == true) {
351
- $html .= '<div class="single-settings autoload">';
352
- $html .= '<span>'.__('Autoload: ','wpvr').'</span>';
353
- $html .= '<ul>';
354
- $html .= '<li class="radio-btn">';
355
- $html .= '<input class="styled-radio" id="styled-radio-1" type="radio" name="autoload" value="off">';
356
- $html .= '<label for="styled-radio-1">Off</label>';
357
- $html .= '</li>';
358
-
359
- $html .= '<li class="radio-btn">';
360
- $html .= '<input class="styled-radio" id="styled-radio-2" type="radio" name="autoload" value="on" checked >';
361
- $html .= '<label for="styled-radio-2">On</label>';
362
- $html .= '</li>';
363
- $html .= '</ul>';
364
- $html .= '</div>';
365
- }
366
- else {
367
- $html .= '<div class="single-settings autoload">';
368
- $html .= '<span>'.__('Autoload: ','wpvr').' </span>';
369
- $html .= '<ul>';
370
- $html .= '<li class="radio-btn">';
371
- $html .= '<input class="styled-radio" id="styled-radio-1" type="radio" name="autoload" value="off" checked >';
372
- $html .= '<label for="styled-radio-1">Off</label>';
373
- $html .= '</li>';
374
-
375
- $html .= '<li class="radio-btn">';
376
- $html .= '<input class="styled-radio" id="styled-radio-2" type="radio" name="autoload" value="on">';
377
- $html .= '<label for="styled-radio-2">On</label>';
378
- $html .= '</li>';
379
- $html .= '</ul>';
380
- $html .= '</div>';
381
- }
382
- //=Autoload setup End=
383
-
384
  //=Control Setup=
385
  if ($control == false) {
386
  $html .= '<div class="single-settings controls">';
@@ -415,39 +420,46 @@ class Wpvr_Admin {
415
  $html .= '</div>';
416
  }
417
  //=Control setup End=//
418
-
419
- //=Auto Rotation=//
420
- $html .= '<div class="single-settings scene-fade-duration">';
421
- $html .= '<span>'.__('Auto Rotation: ','wpvr').'</span>';
422
- $html .= '<input type="number" name="auto-rotation" value="'.$autorotation.'" />';
423
- $html .= '<div class="field-tooltip">';
424
- $html .= '<i class="fa fa-question-circle"></i>';
425
- $html .= '<span>'.__('Will automatically rotate the panorama for each page load. You can define rotation speed with number values. Positive number for counter-clockwise and negative number for clockwise. As an example "-5" will rotate the panorama clockwise.','wpvr').'</span>';
426
- $html .= '</div>';
427
- $html .= '</div>';
428
- //=Auto Rotation=//
429
-
430
- //=Auto rotation inactive delay=//
431
- $html .= '<div class="single-settings scene-fade-duration">';
432
- $html .= '<span>'.__('Auto Rotation Inactive Delay: ','wpvr').'</span>';
433
- $html .= '<input type="number" name="auto-rotation-inactive-delay" value="'.$autorotationinactivedelay.'" />';
434
- $html .= '<div class="field-tooltip">';
435
- $html .= '<i class="fa fa-question-circle"></i>';
436
- $html .= '<span>'.__('Will pause the rotation for few times. You can put the time value in miliseconds. As an example "2000" will pause the rotation for 2 seconds.','wpvr').'</span>';
437
- $html .= '</div>';
438
- $html .= '</div>';
439
- //=Auto rotation inactive delay=//
440
 
441
- //=Auto rotation stop delay=//
442
- $html .= '<div class="single-settings scene-fade-duration">';
443
- $html .= '<span>'.__('Auto Rotation Stop Delay: ','wpvr').'</span>';
444
- $html .= '<input type="number" name="auto-rotation-stop-delay" value="'.$autorotationstopdelay.'" />';
445
- $html .= '<div class="field-tooltip">';
446
- $html .= '<i class="fa fa-question-circle"></i>';
447
- $html .= '<span>'.__('Will stop the auto rotation after given time value. As an example for "2000" the roation will stop after 2 seconds on each page load.','wpvr').'</span>';
448
- $html .= '</div>';
449
- $html .= '</div>';
450
- //=Auto rotation stop delay=//
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
451
 
452
  //=scene fade duration=//
453
  $html .= '<div class="single-settings scene-fade-duration">';
@@ -459,7 +471,41 @@ class Wpvr_Admin {
459
  // $html .= '</div>';
460
  $html .= '</div>';
461
  //=scene fade duration End=//
462
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
463
 
464
  //===preview image===//
465
  if (!empty($preview)) {
@@ -483,6 +529,74 @@ class Wpvr_Admin {
483
  $html .= '</div>';
484
  }
485
  //===preview image end===//
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
486
 
487
  $html .='</div>';
488
  //---end general tab----
@@ -495,7 +609,7 @@ class Wpvr_Admin {
495
 
496
  $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu scene-nav">';
497
  $html .= '<ul>';
498
- $html .= '<li class="active"><span data-index="1" data-href="#scene-1"><i class="fa fa-photo"></i></span></li>';
499
  $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i></span></li>';
500
  $html .= '</ul>';
501
  $html .= '</nav>';
@@ -541,7 +655,7 @@ class Wpvr_Admin {
541
 
542
  $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
543
  $html .= '<ul>';
544
- $html .= '<li class="active"><span data-index="1" data-href="#scene-0-hotspot-1"><i class="fa fa-dot-circle-o"></i></span></li>';
545
  $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
546
  $html .= '</ul>';
547
  $html .= '</nav>';
@@ -567,10 +681,41 @@ class Wpvr_Admin {
567
  $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
568
  $html .= '</div>';
569
 
570
- $html .= '<div class="hotspot-setting">';
571
- $html .= '<label for="hotspot-customclass">'.__('Hotspot custom class: ','wpvr').'</label>';
572
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
573
- $html .= '</div>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
574
  $html .= '</div>';
575
 
576
  $html .= '<div class="hotspot-type hotspot-setting">';
@@ -609,12 +754,12 @@ class Wpvr_Admin {
609
 
610
  $html .= '</div>';
611
  //=Hotspot type End=//
612
- $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="fa fa-trash-o"></i></button>';
613
  $html .= '</div>';
614
  $html .= '</div>';
615
 
616
  $html .= '</div>';
617
- $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="fa fa-trash-o"></i></button>';
618
  $html .= '</div>';
619
 
620
 
@@ -653,12 +798,12 @@ class Wpvr_Admin {
653
  $html .= '</div>';
654
  $html .= '</div>';
655
 
656
- //--hotspot setup--
657
  $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
658
 
659
  $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
660
  $html .= '<ul>';
661
- $html .= '<li class="active"><span data-index="1" data-href="#scene-1-hotspot-1"><i class="fa fa-dot-circle-o"></i></span></li>';
662
  $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
663
  $html .= '</ul>';
664
  $html .= '</nav>';
@@ -684,10 +829,41 @@ class Wpvr_Admin {
684
  $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
685
  $html .= '</div>';
686
 
687
- $html .= '<div class="hotspot-setting">';
688
- $html .= '<label for="hotspot-customclass">'.__('Hotspot custom class: ','wpvr').'</label>';
689
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
690
- $html .= '</div>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
691
  $html .= '</div>';
692
 
693
  $html .= '<div class="hotspot-type hotspot-setting">';
@@ -725,12 +901,11 @@ class Wpvr_Admin {
725
 
726
  $html .= '</div>';
727
  //=Hotspot type End=//
728
- $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="fa fa-trash-o"></i></button>';
729
  $html .= '</div>';
730
- $html .= '</div>';
731
-
732
  $html .= '</div>';
733
- $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="fa fa-trash-o"></i></button>';
734
  $html .= '</div>';
735
  $html .= '</div>';
736
 
@@ -746,10 +921,10 @@ class Wpvr_Admin {
746
  $firstvalue = reset($pano_data["scene-list"]);
747
  foreach ($pano_data["scene-list"] as $pano_scenes) {
748
  if ($pano_scenes['scene-id'] == $firstvalue['scene-id']) {
749
- $html .= '<li class="active"><span data-index="'.$i.'" data-href="#scene-'.$i.'"><i class="fa fa-photo"></i></span></li>';
750
  }
751
  else {
752
- $html .= '<li><span data-index="'.$i.'" data-href="#scene-'.$i.'"><i class="fa fa-photo"></i></span></li>';
753
  }
754
  $i++;
755
  }
@@ -800,7 +975,7 @@ class Wpvr_Admin {
800
 
801
  $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
802
  $html .= '<ul>';
803
- $html .= '<li class="active"><span data-index="1" data-href="#scene-0-hotspot-1"><i class="fa fa-dot-circle-o"></i></span></li>';
804
  $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
805
  $html .= '</ul>';
806
  $html .= '</nav>';
@@ -826,10 +1001,41 @@ class Wpvr_Admin {
826
  $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
827
  $html .= '</div>';
828
 
829
- $html .= '<div class="hotspot-setting">';
830
- $html .= '<label for="hotspot-customclass">'.__('Hotspot custom class: ','wpvr').'</label>';
831
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
832
- $html .= '</div>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
833
  $html .= '</div>';
834
 
835
  $html .= '<div class="hotspot-type hotspot-setting">';
@@ -868,12 +1074,12 @@ class Wpvr_Admin {
868
 
869
  $html .= '</div>';
870
  //=Hotspot type End=//
871
- $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="fa fa-trash-o"></i></button>';
872
  $html .= '</div>';
873
  $html .= '</div>';
874
 
875
  $html .= '</div>';
876
- $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="fa fa-trash-o"></i></button>';
877
  $html .= '</div>';
878
  //test
879
 
@@ -951,10 +1157,10 @@ class Wpvr_Admin {
951
  foreach ($pano_hotspots as $pano_hotspot) {
952
 
953
  if ($pano_hotspot['hotspot-title'] == $firstvaluehotspot['hotspot-title']) {
954
- $html .= '<li class="active"><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="fa fa-dot-circle-o"></i></span></li>';
955
  }
956
  else {
957
- $html .= '<li><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="fa fa-dot-circle-o"></i></span></li>';
958
  }
959
  $j++;
960
  }
@@ -963,75 +1169,6 @@ class Wpvr_Admin {
963
  $html .= '</nav>';
964
 
965
  $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
966
-
967
-
968
- //==test hotspot==//
969
- // $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab clearfix" id="scene-'.$s.'-hotspot-0">';
970
-
971
- // $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
972
-
973
- // $html .= '<div class="wrapper">';
974
- // $html .= '<div class="hotspot-setting">';
975
- // $html .= '<label for="hotspot-title">'.__('Hotspot ID : ','wpvr').'</label>';
976
- // $html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
977
- // $html .= '</div>';
978
-
979
- // $html .= '<div class="hotspot-setting">';
980
- // $html .= '<label for="hotspot-pitch">'.__('Pitch: ','wpvr').'</label>';
981
- // $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch"/>';
982
- // $html .= '</div>';
983
-
984
- // $html .= '<div class="hotspot-setting">';
985
- // $html .= '<label for="hotspot-yaw">'.__('Yaw: ','wpvr').'</label>';
986
- // $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
987
- // $html .= '</div>';
988
-
989
- // $html .= '<div class="hotspot-setting">';
990
- // $html .= '<label for="hotspot-customclass">'.__('Hotspot custom class: ','wpvr').'</label>';
991
- // $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
992
- // $html .= '</div>';
993
- // $html .= '</div>';
994
-
995
- // $html .= '<div class="hotspot-type hotspot-setting">';
996
- // $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ','wpvr').'</label>';
997
- // $html .= '<select name="hotspot-type">';
998
- // $html .= '<option value="info" selected> Info</option>';
999
- // $html .= '<option value="scene"> Scene</option>';
1000
- // $html .= '</select>';
1001
-
1002
- // $html .= '<div class="hotspot-url">';
1003
- // $html .= '<label for="hotspot-url">'.__('URL: ','wpvr').'</label>';
1004
- // $html .= '<input type="url" name="hotspot-url" value="" />';
1005
- // $html .= '</div>';
1006
-
1007
- // $html .= '<div class="hotspot-content">';
1008
- // $html .= '<label for="hotspot-content">'.__('On click Content: ','wpvr').'</label>';
1009
- // $html .= '<textarea name="hotspot-content"></textarea>';
1010
- // $html .= '</div>';
1011
-
1012
- // $html .= '<div class="hotspot-hover">';
1013
- // $html .= '<label for="hotspot-hover">'.__('On hover Content: ','wpvr').'</label>';
1014
- // $html .= '<textarea name="hotspot-hover"></textarea>';
1015
- // $html .= '</div>';
1016
-
1017
- // $html .= '<div class="hotspot-scene" style="display:none;" >';
1018
- // $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ','wpvr').'</label>';
1019
- // $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1020
- // $html .= '<option value="none"> None</option>';
1021
- // $html .= '</select>';
1022
- // $html .= '</div>';
1023
- // $html .= '<div class="hotspot-scene" style="display:none;" >';
1024
- // $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ','wpvr').'</label>';
1025
- // $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
1026
- // $html .= '</div>';
1027
-
1028
- // $html .= '</div>';
1029
- // //=Hotspot type End=//
1030
- // $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="fa fa-trash-o"></i></button>';
1031
- // $html .= '</div>';
1032
- //==test hotspot==//
1033
-
1034
-
1035
 
1036
  $h = 1;
1037
  $firstvaluehotspotset = reset($pano_hotspots);
@@ -1053,7 +1190,20 @@ class Wpvr_Admin {
1053
  $hotspot_target_scene = '';
1054
  $hotspot_target_scene = $pano_hotspot['hotspot-scene'];
1055
  $hotspot_custom_class = '';
1056
- $hotspot_custom_class = $pano_hotspot['hotspot-customclass'];
 
 
 
 
 
 
 
 
 
 
 
 
 
1057
  if ($pano_hotspot['hotspot-title'] == $firstvaluehotspotset['hotspot-title']) {
1058
  $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-'.$h.'">';
1059
 
@@ -1076,10 +1226,42 @@ class Wpvr_Admin {
1076
  $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
1077
  $html .= '</div>';
1078
 
1079
- $html .= '<div class="hotspot-setting">';
1080
- $html .= '<label for="hotspot-customclass">'.__('Hotspot custom class: ','wpvr').'</label>';
1081
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
1082
- $html .= '</div>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1083
  $html .= '</div>';
1084
 
1085
  //=Hotspot type=//
@@ -1162,7 +1344,7 @@ class Wpvr_Admin {
1162
 
1163
  }
1164
  //=Hotspot type End=//
1165
- $html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="fa fa-trash-o"></i></button>';
1166
  $html .= '</div>';
1167
  }
1168
  else {
@@ -1186,10 +1368,42 @@ class Wpvr_Admin {
1186
  $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
1187
  $html .= '</div>';
1188
 
1189
- $html .= '<div class="hotspot-setting">';
1190
- $html .= '<label for="hotspot-customclass">'.__('Hotspot custom class: ','wpvr').'</label>';
1191
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
1192
- $html .= '</div>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1193
  $html .= '</div>';
1194
 
1195
  //=Hotspot type=//
@@ -1272,7 +1486,7 @@ class Wpvr_Admin {
1272
 
1273
  }
1274
  //=Hotspot type End=//
1275
- $html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="fa fa-trash-o"></i></button>';
1276
  $html .= '</div>';
1277
  }
1278
  $h++;
@@ -1280,7 +1494,115 @@ class Wpvr_Admin {
1280
  $html .= '</div>';
1281
  $html .= '</div>';
1282
  }
1283
- $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="fa fa-trash-o"></i></button>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1284
  $html .= '</div>';
1285
  }
1286
  else {
@@ -1339,10 +1661,10 @@ class Wpvr_Admin {
1339
  $j = 1;
1340
  foreach ($pano_hotspots as $pano_hotspot) {
1341
  if ($pano_hotspot['hotspot-title'] == $pano_hotspots[0]['hotspot-title']) {
1342
- $html .= '<li class="active"><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="fa fa-dot-circle-o"></i></span></li>';
1343
  }
1344
  else {
1345
- $html .= '<li><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="fa fa-dot-circle-o"></i></span></li>';
1346
  }
1347
  $j++;
1348
  }
@@ -1371,7 +1693,17 @@ class Wpvr_Admin {
1371
  $hotspot_target_scene = '';
1372
  $hotspot_target_scene = $pano_hotspot['hotspot-scene'];
1373
  $hotspot_custom_class = '';
1374
- $hotspot_custom_class = $pano_hotspot['hotspot-customclass'];
 
 
 
 
 
 
 
 
 
 
1375
  if ($pano_hotspot['hotspot-title'] == $pano_hotspots[0]['hotspot-title']) {
1376
  $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-'.$h.'">';
1377
 
@@ -1393,10 +1725,41 @@ class Wpvr_Admin {
1393
  $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
1394
  $html .= '</div>';
1395
 
1396
- $html .= '<div class="hotspot-setting">';
1397
- $html .= '<label for="hotspot-customclass">'.__('Hotspot custom class: ','wpvr').'</label>';
1398
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
1399
- $html .= '</div>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1400
  $html .= '</div>';
1401
 
1402
  //=Hotspot type=//
@@ -1479,7 +1842,7 @@ class Wpvr_Admin {
1479
 
1480
  }
1481
  //=Hotspot type End=//
1482
- $html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="fa fa-trash-o"></i></button>';
1483
  $html .= '</div>';
1484
  }
1485
  else {
@@ -1503,10 +1866,41 @@ class Wpvr_Admin {
1503
  $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
1504
  $html .= '</div>';
1505
 
1506
- $html .= '<div class="hotspot-setting">';
1507
- $html .= '<label for="hotspot-customclass">'.__('Hotspot custom class: ','wpvr').'</label>';
1508
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
1509
- $html .= '</div>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1510
  $html .= '</div>';
1511
 
1512
  //=Hotspot type=//
@@ -1589,7 +1983,7 @@ class Wpvr_Admin {
1589
 
1590
  }
1591
  //=Hotspot type End=//
1592
- $html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="fa fa-trash-o"></i></button>';
1593
  $html .= '</div>';
1594
  }
1595
  $h++;
@@ -1597,7 +1991,115 @@ class Wpvr_Admin {
1597
  $html .= '</div>';
1598
  $html .= '</div>';
1599
  }
1600
- $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="fa fa-trash-o"></i></button>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1601
  $html .= '</div>';
1602
  }
1603
  $s++;
@@ -1713,4 +2215,4 @@ class Wpvr_Admin {
1713
  echo $html;
1714
  }
1715
 
1716
- }
79
  * between the defined hooks and the functions defined in this
80
  * class.
81
  */
82
+ // wp_enqueue_style( $this->plugin_name . 'fontawesome', 'https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css', array(), $this->version, 'all' );
83
+ wp_enqueue_style( $this->plugin_name . 'fontawesome', 'https://use.fontawesome.com/releases/v5.7.2/css/all.css', array(), $this->version, 'all' );
84
  wp_enqueue_style( 'materialize-icons', 'https://fonts.googleapis.com/icon?family=Material+Icons', array(), $this->version, 'all' );
85
 
86
  $screen = get_current_screen();
90
  }
91
  wp_enqueue_style('panellium-css', plugin_dir_url( __FILE__ ) . 'lib/pannellum/src/css/pannellum.css', array(), true);
92
  wp_enqueue_style('videojs-css', 'https://vjs.zencdn.net/7.1.0/video-js.css', array(), true);
93
+ if ($screen->id=="wpvr_item") {
94
+ wp_enqueue_style( 'icon-picker-css', plugin_dir_url( __FILE__ ) . 'css/jquery.fonticonpicker.min.css', array(), $this->version, 'all' );
95
+ wp_enqueue_style( 'icon-picker-css-theme', plugin_dir_url( __FILE__ ) . 'css/jquery.fonticonpicker.grey.min.css', array(), $this->version, 'all' );
96
+ }
97
+
98
  wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/wpvr-admin.css', array(), $this->version, 'all' );
99
 
100
  }
117
  * between the defined hooks and the functions defined in this
118
  * class.
119
  */
120
+ $adscreen = get_current_screen();
121
+
122
  wp_enqueue_media();
123
+ if ($adscreen->id=="wpvr_item") {
124
+ // wp_enqueue_script('icon-picker-jquery', plugin_dir_url( __FILE__ ) . 'lib/jquery-1.7.1.min.js', array(), true);
125
+ wp_enqueue_script('icon-picker', plugin_dir_url( __FILE__ ) . 'lib/jquery.fonticonpicker.min.js', array(), true);
126
+ }
127
  wp_enqueue_script('panellium-js', plugin_dir_url( __FILE__ ) . 'lib/pannellum/src/js/pannellum.js', array(), true);
128
  wp_enqueue_script('panelliumlib-js', plugin_dir_url( __FILE__ ) . 'lib/pannellum/src/js/libpannellum.js', array(), true);
129
  wp_enqueue_script( 'videojs-js', plugin_dir_url( __FILE__ ) .'js/video.js', array('jquery'), true);
130
  wp_enqueue_script('panelliumvid-js', plugin_dir_url( __FILE__ ) . 'lib/pannellum/src/js/videojs-pannellum-plugin.js', array(), true);
131
+
132
 
133
  if ($adscreen->id=="toplevel_page_wpvr") {
134
  wp_enqueue_script( 'materialize-js', plugin_dir_url( __FILE__ ) . 'js/materialize.min.js', array( 'jquery' ), $this->version, false );
135
  }
136
  wp_enqueue_script( 'jquery-repeater', plugin_dir_url( __FILE__ ) .'js/jquery.repeater.min.js', array('jquery'), true);
137
+ if ($adscreen->id=="wpvr_item") {
138
+ // wp_enqueue_script('icon-picker-jquery', plugin_dir_url( __FILE__ ) . 'lib/jquery-1.7.1.min.js', array(), true);
139
+ wp_enqueue_script('icon-picker', plugin_dir_url( __FILE__ ) . 'lib/jquery.fonticonpicker.min.js', array(), true);
140
+ wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/wpvr-admin.js', array( 'jquery' ), $this->version, false );
141
+ }
142
+
143
  wp_localize_script( $this->plugin_name, 'wpvr_obj', array(
144
  'ajaxurl' => admin_url( 'admin-ajax.php' ),
145
  'ajax_nonce' => wp_create_nonce('wpvr'),
159
 
160
  add_meta_box(
161
  $this->post_type . '_builder_box',
162
+ __('Tour Preview', $this->plugin_name),
163
  array($this, 'wpvr_display_meta_box_builder'),
164
  $this->post_type,
165
  'advanced',
284
  }
285
  public function wpvr_setup($post) {
286
 
287
+
288
+ if(is_plugin_active( 'wpvr-pro/wpvr-pro.php' )){
289
+ $status = get_option( 'wpvr_edd_license_status' );
290
+ if( $status !== false && $status == 'valid' ) {
291
+ $data_limit = 999999999;
292
+ }
293
+ else {
294
+ $data_limit = 5;
295
+ }
296
  }
297
  else {
298
  $data_limit = 5;
310
  if (isset($postdata["showControls"])) {
311
  $control = $postdata["showControls"];
312
  }
313
+
314
+ $compass = false;
315
+ if (isset($postdata["compass"])) {
316
+ $compass = $postdata["compass"];
317
+ }
318
 
319
  $default_scene = '';
320
  if (isset($postdata["defaultscene"])) {
330
  if (isset($postdata["autoRotate"])) {
331
  $autorotation = $postdata["autoRotate"];
332
  }
333
+ else {
334
+ $autorotation = -5;
335
+ }
336
  $autorotationinactivedelay = '';
337
  if (isset($postdata["autoRotateInactivityDelay"])) {
338
  $autorotationinactivedelay = $postdata["autoRotateInactivityDelay"];
339
  }
340
+ else {
341
+ $autorotationinactivedelay = 2000;
342
+ }
343
  $autorotationstopdelay = '';
344
  if (isset($postdata["autoRotateStopDelay"])) {
345
  $autorotationstopdelay = $postdata["autoRotateStopDelay"];
346
  }
347
+ else {
348
+ $autorotationstopdelay = 2000;
349
+ }
350
 
351
  $scene_fade_duration = '';
352
  if (isset($postdata["scenefadeduration"])) {
357
  if (isset($postdata["panodata"])) {
358
  $pano_data = $postdata["panodata"];
359
  }
360
+ // $custom_icon = array("None"=>"none","Icon1"=>"custom-icon icon1","Icon2"=>"custom-icon icon2","Icon3"=>"custom-icon icon3","Icon4"=>"custom-icon icon4","Icon5"=>"custom-icon icon5");
361
+
362
+ $custom_icon_array = new Wpvr_fontawesome_icons();
363
+ $custom_icon = $custom_icon_array->icon;
364
+
365
  $html = '';
366
 
367
  $html .= '<div class="pano-setup">';
375
  $html .='<nav class="rex-pano-tab-nav rex-pano-nav-menu main-nav">';
376
  $html .='<ul>';
377
  $html .='<li class="general active"><span data-href="#general"><i class="fa fa-cogs"></i> '.__('general','wpvr').'</span></li>';
378
+ $html .='<li class="scene"><span data-href="#scenes"><i class="fa fa-image"></i> '.__('Scenes','wpvr').'</span></li>';
379
+ $html .='<li class="hotspot"><span data-href="#scenes"><i class="far fa-dot-circle"></i> '.__('hotspot','wpvr').'</span></li>';
380
+ $html .='<li class="video"><span data-href="#video"><i class="fas fa-video"></i> '.__('Video','wpvr').'</span></li>';
381
  $html .='</ul>';
382
  $html .='</nav>';
383
 
386
 
387
  $html .= '<h6 class="title"> '.__('General Settings : ','wpvr').'</h6>';
388
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
389
  //=Control Setup=
390
  if ($control == false) {
391
  $html .= '<div class="single-settings controls">';
420
  $html .= '</div>';
421
  }
422
  //=Control setup End=//
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
423
 
424
+ //=Compass Setup=//
425
+ if(is_plugin_active( 'wpvr-pro/wpvr-pro.php' )){
426
+ $status = get_option( 'wpvr_edd_license_status' );
427
+ if( $status !== false && $status == 'valid' ) {
428
+ if ($compass == true) {
429
+ $html .= '<div class="single-settings compass">';
430
+ $html .= '<span>'.__('Show Compass: ','wpvr').'</span>';
431
+ $html .= '<ul>';
432
+ $html .= '<li class="radio-btn">';
433
+ $html .= '<input class="styled-radio" id="styled-radio-13" type="radio" name="compass" value="off" >';
434
+ $html .= '<label for="styled-radio-13">Off</label>';
435
+ $html .= '</li>';
436
+
437
+ $html .= '<li class="radio-btn">';
438
+ $html .= '<input class="styled-radio" id="styled-radio-14" type="radio" name="compass" value="on" checked >';
439
+ $html .= '<label for="styled-radio-14">On</label>';
440
+ $html .= '</li>';
441
+ $html .= '</ul>';
442
+ $html .= '</div>';
443
+ }
444
+ else {
445
+ $html .= '<div class="single-settings compass">';
446
+ $html .= '<span>'.__('Show Compass: ','wpvr').'</span>';
447
+ $html .= '<ul>';
448
+ $html .= '<li class="radio-btn">';
449
+ $html .= '<input class="styled-radio" id="styled-radio-13" type="radio" name="compass" value="off" checked >';
450
+ $html .= '<label for="styled-radio-13">Off</label>';
451
+ $html .= '</li>';
452
+
453
+ $html .= '<li class="radio-btn">';
454
+ $html .= '<input class="styled-radio" id="styled-radio-14" type="radio" name="compass" value="on" >';
455
+ $html .= '<label for="styled-radio-14">On</label>';
456
+ $html .= '</li>';
457
+ $html .= '</ul>';
458
+ $html .= '</div>';
459
+ }
460
+ }
461
+ }
462
+ //=Compass setup End=//
463
 
464
  //=scene fade duration=//
465
  $html .= '<div class="single-settings scene-fade-duration">';
471
  // $html .= '</div>';
472
  $html .= '</div>';
473
  //=scene fade duration End=//
474
+
475
+ //=Autoload setup=//
476
+ if ($autoload == true) {
477
+ $html .= '<div class="single-settings autoload">';
478
+ $html .= '<span>'.__('Autoload: ','wpvr').'</span>';
479
+ $html .= '<ul>';
480
+ $html .= '<li class="radio-btn">';
481
+ $html .= '<input class="styled-radio" id="styled-radio-1" type="radio" name="autoload" value="off">';
482
+ $html .= '<label for="styled-radio-1">Off</label>';
483
+ $html .= '</li>';
484
+
485
+ $html .= '<li class="radio-btn">';
486
+ $html .= '<input class="styled-radio" id="styled-radio-2" type="radio" name="autoload" value="on" checked >';
487
+ $html .= '<label for="styled-radio-2">On</label>';
488
+ $html .= '</li>';
489
+ $html .= '</ul>';
490
+ $html .= '</div>';
491
+ }
492
+ else {
493
+ $html .= '<div class="single-settings autoload">';
494
+ $html .= '<span>'.__('Autoload: ','wpvr').' </span>';
495
+ $html .= '<ul>';
496
+ $html .= '<li class="radio-btn">';
497
+ $html .= '<input class="styled-radio" id="styled-radio-1" type="radio" name="autoload" value="off" checked >';
498
+ $html .= '<label for="styled-radio-1">Off</label>';
499
+ $html .= '</li>';
500
+
501
+ $html .= '<li class="radio-btn">';
502
+ $html .= '<input class="styled-radio" id="styled-radio-2" type="radio" name="autoload" value="on">';
503
+ $html .= '<label for="styled-radio-2">On</label>';
504
+ $html .= '</li>';
505
+ $html .= '</ul>';
506
+ $html .= '</div>';
507
+ }
508
+ //=Autoload setup End=//
509
 
510
  //===preview image===//
511
  if (!empty($preview)) {
529
  $html .= '</div>';
530
  }
531
  //===preview image end===//
532
+
533
+ //===Autorotation on off set==//
534
+ if (isset($postdata["autoRotate"])) {
535
+ $html .= '<div class="single-settings autoload">';
536
+ $html .= '<span>'.__('Auto Rotation: ','wpvr').' </span>';
537
+ $html .= '<ul>';
538
+ $html .= '<li class="radio-btn">';
539
+ $html .= '<input class="styled-radio" id="styled-radio-11" type="radio" name="autorotation" value="off" >';
540
+ $html .= '<label for="styled-radio-11">Off</label>';
541
+ $html .= '</li>';
542
+
543
+ $html .= '<li class="radio-btn">';
544
+ $html .= '<input class="styled-radio" id="styled-radio-12" type="radio" name="autorotation" value="on" checked >';
545
+ $html .= '<label for="styled-radio-12">On</label>';
546
+ $html .= '</li>';
547
+ $html .= '</ul>';
548
+ $html .= '</div>';
549
+ }
550
+ else {
551
+ $html .= '<div class="single-settings autoload">';
552
+ $html .= '<span>'.__('Auto Rotation: ','wpvr').' </span>';
553
+ $html .= '<ul>';
554
+ $html .= '<li class="radio-btn">';
555
+ $html .= '<input class="styled-radio" id="styled-radio-11" type="radio" name="autorotation" value="off" checked >';
556
+ $html .= '<label for="styled-radio-11">Off</label>';
557
+ $html .= '</li>';
558
+
559
+ $html .= '<li class="radio-btn">';
560
+ $html .= '<input class="styled-radio" id="styled-radio-12" type="radio" name="autorotation" value="on">';
561
+ $html .= '<label for="styled-radio-12">On</label>';
562
+ $html .= '</li>';
563
+ $html .= '</ul>';
564
+ $html .= '</div>';
565
+ }
566
+ //===Autorotation on off set==//
567
+
568
+ //=Auto Rotation=//
569
+ $html .= '<div class="single-settings scene-fade-duration autorotationdata" >';
570
+ $html .= '<span>'.__('Auto Rotation: ','wpvr').'</span>';
571
+ $html .= '<input type="number" name="auto-rotation" value="'.$autorotation.'" />';
572
+ $html .= '<div class="field-tooltip">';
573
+ $html .= '<i class="fa fa-question-circle"></i>';
574
+ $html .= '<span>'.__('Will automatically rotate the panorama for each page load. You can define rotation speed with number values. Positive number for counter-clockwise and negative number for clockwise. As an example "-5" will rotate the panorama clockwise.','wpvr').'</span>';
575
+ $html .= '</div>';
576
+ $html .= '</div>';
577
+ //=Auto Rotation=//
578
+
579
+ //=Auto rotation inactive delay=//
580
+ $html .= '<div class="single-settings scene-fade-duration autorotationdata" >';
581
+ $html .= '<span>'.__('Auto Rotation Inactive Delay: ','wpvr').'</span>';
582
+ $html .= '<input type="number" name="auto-rotation-inactive-delay" value="'.$autorotationinactivedelay.'" />';
583
+ $html .= '<div class="field-tooltip">';
584
+ $html .= '<i class="fa fa-question-circle"></i>';
585
+ $html .= '<span>'.__('Will pause the rotation for few times. You can put the time value in miliseconds. As an example "2000" will pause the rotation for 2 seconds.','wpvr').'</span>';
586
+ $html .= '</div>';
587
+ $html .= '</div>';
588
+ //=Auto rotation inactive delay=//
589
+
590
+ //=Auto rotation stop delay=//
591
+ $html .= '<div class="single-settings scene-fade-duration autorotationdata" >';
592
+ $html .= '<span>'.__('Auto Rotation Stop Delay: ','wpvr').'</span>';
593
+ $html .= '<input type="number" name="auto-rotation-stop-delay" value="'.$autorotationstopdelay.'" />';
594
+ $html .= '<div class="field-tooltip">';
595
+ $html .= '<i class="fa fa-question-circle"></i>';
596
+ $html .= '<span>'.__('Will stop the auto rotation after given time value. As an example for "2000" the roation will stop after 2 seconds on each page load.','wpvr').'</span>';
597
+ $html .= '</div>';
598
+ $html .= '</div>';
599
+ //=Auto rotation stop delay=//
600
 
601
  $html .='</div>';
602
  //---end general tab----
609
 
610
  $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu scene-nav">';
611
  $html .= '<ul>';
612
+ $html .= '<li class="active"><span data-index="1" data-href="#scene-1"><i class="fa fa-image"></i></span></li>';
613
  $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i></span></li>';
614
  $html .= '</ul>';
615
  $html .= '</nav>';
655
 
656
  $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
657
  $html .= '<ul>';
658
+ $html .= '<li class="active"><span data-index="1" data-href="#scene-0-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
659
  $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
660
  $html .= '</ul>';
661
  $html .= '</nav>';
681
  $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
682
  $html .= '</div>';
683
 
684
+ if(is_plugin_active( 'wpvr-pro/wpvr-pro.php' )){
685
+ $status = get_option( 'wpvr_edd_license_status' );
686
+ if( $status !== false && $status == 'valid' ) {
687
+ $html .= '<div class="hotspot-setting custom-icon">';
688
+ $html .= '<label for="hotspot-customclass-pro">'.__('Hotspot custom icon: ','wpvr').'</label>';
689
+ $html .= '<select class="hotspot-customclass-pro-select" name="hotspot-customclass-pro">';
690
+ foreach ($custom_icon as $cikey => $civalue) {
691
+ if ($cikey == 'none') {
692
+ $html .= '<option value="'.$cikey.'" selected> '.$civalue.'</option>';
693
+ }
694
+ else {
695
+ $html .= '<option value="'.$cikey.'"> '.$civalue.'</option>';
696
+ }
697
+ }
698
+ $html .= '</select>';
699
+ $html .= '<span class="change-icon"></span>';
700
+ $html .= '<div class="field-tooltip">';
701
+ $html .= '<i class="fa fa-question-circle"></i>';
702
+ $html .= '<span>'.__('Custom icons will only show on frontend.','wpvr').'</span>';
703
+ $html .= '</div>';
704
+ $html .= '</div>';
705
+ $html .= '<div class="hotspot-setting hotspot-icon">';
706
+ $html .= '<label for="hotspot-customclass-color">'.__('Hotspot custom icon color: ','wpvr').'</label>';
707
+ $html .= '<input type="color" class="hotspot-customclass-color" name="hotspot-customclass-color" value="#00b4ff" />';
708
+ $html .= '<input type="hidden" class="hotspot-customclass-color-icon-value" name="hotspot-customclass-color-icon-value" value="#00b4ff" />';
709
+ $html .= '</div>';
710
+ }
711
+ }
712
+ // else {
713
+ $html .= '<div class="hotspot-setting">';
714
+ $html .= '<label for="hotspot-customclass">'.__('Hotspot custom icon class: ','wpvr').'</label>';
715
+ $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
716
+ $html .= '</div>';
717
+ // }
718
+
719
  $html .= '</div>';
720
 
721
  $html .= '<div class="hotspot-type hotspot-setting">';
754
 
755
  $html .= '</div>';
756
  //=Hotspot type End=//
757
+ $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
758
  $html .= '</div>';
759
  $html .= '</div>';
760
 
761
  $html .= '</div>';
762
+ $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
763
  $html .= '</div>';
764
 
765
 
798
  $html .= '</div>';
799
  $html .= '</div>';
800
 
801
+ //--hotspot setup--//
802
  $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
803
 
804
  $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
805
  $html .= '<ul>';
806
+ $html .= '<li class="active"><span data-index="1" data-href="#scene-1-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
807
  $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
808
  $html .= '</ul>';
809
  $html .= '</nav>';
829
  $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
830
  $html .= '</div>';
831
 
832
+ if(is_plugin_active( 'wpvr-pro/wpvr-pro.php' )){
833
+ $status = get_option( 'wpvr_edd_license_status' );
834
+ if( $status !== false && $status == 'valid' ) {
835
+ $html .= '<div class="hotspot-setting custom-icon">';
836
+ $html .= '<label for="hotspot-customclass-pro">'.__('Hotspot custom icon: ','wpvr').'</label>';
837
+ $html .= '<select class="hotspot-customclass-pro-select" name="hotspot-customclass-pro">';
838
+ foreach ($custom_icon as $cikey => $civalue) {
839
+ if ($cikey == 'none') {
840
+ $html .= '<option value="'.$cikey.'" selected> '.$civalue.'</option>';
841
+ }
842
+ else {
843
+ $html .= '<option value="'.$cikey.'"> '.$civalue.'</option>';
844
+ }
845
+ }
846
+ $html .= '</select>';
847
+ $html .= '<span class="change-icon"></span>';
848
+ $html .= '<div class="field-tooltip">';
849
+ $html .= '<i class="fa fa-question-circle"></i>';
850
+ $html .= '<span>'.__('Custom icons will only show on frontend.','wpvr').'</span>';
851
+ $html .= '</div>';
852
+ $html .= '</div>';
853
+ $html .= '<div class="hotspot-setting hotspot-icon">';
854
+ $html .= '<label for="hotspot-customclass-color">'.__('Hotspot custom icon color: ','wpvr').'</label>';
855
+ $html .= '<input type="color" class="hotspot-customclass-color" name="hotspot-customclass-color" value="#00b4ff" />';
856
+ $html .= '<input type="hidden" class="hotspot-customclass-color-icon-value" name="hotspot-customclass-color-icon-value" value="#00b4ff" />';
857
+ $html .= '</div>';
858
+ }
859
+ }
860
+ // else {
861
+ $html .= '<div class="hotspot-setting">';
862
+ $html .= '<label for="hotspot-customclass">'.__('Hotspot custom icon class: ','wpvr').'</label>';
863
+ $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
864
+ $html .= '</div>';
865
+ // }
866
+
867
  $html .= '</div>';
868
 
869
  $html .= '<div class="hotspot-type hotspot-setting">';
901
 
902
  $html .= '</div>';
903
  //=Hotspot type End=//
904
+ $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
905
  $html .= '</div>';
906
+ $html .= '</div>';
 
907
  $html .= '</div>';
908
+ $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
909
  $html .= '</div>';
910
  $html .= '</div>';
911
 
921
  $firstvalue = reset($pano_data["scene-list"]);
922
  foreach ($pano_data["scene-list"] as $pano_scenes) {
923
  if ($pano_scenes['scene-id'] == $firstvalue['scene-id']) {
924
+ $html .= '<li class="active"><span data-index="'.$i.'" data-href="#scene-'.$i.'"><i class="fa fa-image"></i></span></li>';
925
  }
926
  else {
927
+ $html .= '<li><span data-index="'.$i.'" data-href="#scene-'.$i.'"><i class="fa fa-image"></i></span></li>';
928
  }
929
  $i++;
930
  }
975
 
976
  $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
977
  $html .= '<ul>';
978
+ $html .= '<li class="active"><span data-index="1" data-href="#scene-0-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
979
  $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
980
  $html .= '</ul>';
981
  $html .= '</nav>';
1001
  $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
1002
  $html .= '</div>';
1003
 
1004
+ if(is_plugin_active( 'wpvr-pro/wpvr-pro.php' )){
1005
+ $status = get_option( 'wpvr_edd_license_status' );
1006
+ if( $status !== false && $status == 'valid' ) {
1007
+ $html .= '<div class="hotspot-setting custom-icon">';
1008
+ $html .= '<label for="hotspot-customclass-pro">'.__('Hotspot custom icon: ','wpvr').'</label>';
1009
+ $html .= '<select class="hotspot-customclass-pro-select" name="hotspot-customclass-pro">';
1010
+ foreach ($custom_icon as $cikey => $civalue) {
1011
+ if ($cikey == 'none') {
1012
+ $html .= '<option value="'.$cikey.'" selected> '.$civalue.'</option>';
1013
+ }
1014
+ else {
1015
+ $html .= '<option value="'.$cikey.'"> '.$civalue.'</option>';
1016
+ }
1017
+ }
1018
+ $html .= '</select>';
1019
+ $html .= '<span class="change-icon"></span>';
1020
+ $html .= '<div class="field-tooltip">';
1021
+ $html .= '<i class="fa fa-question-circle"></i>';
1022
+ $html .= '<span>'.__('Custom icons will only show on frontend.','wpvr').'</span>';
1023
+ $html .= '</div>';
1024
+ $html .= '</div>';
1025
+ $html .= '<div class="hotspot-setting hotspot-icon">';
1026
+ $html .= '<label for="hotspot-customclass-color">'.__('Hotspot custom icon color: ','wpvr').'</label>';
1027
+ $html .= '<input type="color" class="hotspot-customclass-color" name="hotspot-customclass-color" value="#00b4ff" />';
1028
+ $html .= '<input type="hidden" class="hotspot-customclass-color-icon-value" name="hotspot-customclass-color-icon-value" value="#00b4ff" />';
1029
+ $html .= '</div>';
1030
+ }
1031
+ }
1032
+ // else {
1033
+ $html .= '<div class="hotspot-setting">';
1034
+ $html .= '<label for="hotspot-customclass">'.__('Hotspot custom icon class: ','wpvr').'</label>';
1035
+ $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
1036
+ $html .= '</div>';
1037
+ // }
1038
+
1039
  $html .= '</div>';
1040
 
1041
  $html .= '<div class="hotspot-type hotspot-setting">';
1074
 
1075
  $html .= '</div>';
1076
  //=Hotspot type End=//
1077
+ $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
1078
  $html .= '</div>';
1079
  $html .= '</div>';
1080
 
1081
  $html .= '</div>';
1082
+ $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
1083
  $html .= '</div>';
1084
  //test
1085
 
1157
  foreach ($pano_hotspots as $pano_hotspot) {
1158
 
1159
  if ($pano_hotspot['hotspot-title'] == $firstvaluehotspot['hotspot-title']) {
1160
+ $html .= '<li class="active"><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="far fa-dot-circle"></i></span></li>';
1161
  }
1162
  else {
1163
+ $html .= '<li><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="far fa-dot-circle"></i></span></li>';
1164
  }
1165
  $j++;
1166
  }
1169
  $html .= '</nav>';
1170
 
1171
  $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1172
 
1173
  $h = 1;
1174
  $firstvaluehotspotset = reset($pano_hotspots);
1190
  $hotspot_target_scene = '';
1191
  $hotspot_target_scene = $pano_hotspot['hotspot-scene'];
1192
  $hotspot_custom_class = '';
1193
+ if (isset($pano_hotspot['hotspot-customclass'])) {
1194
+ $hotspot_custom_class = $pano_hotspot['hotspot-customclass'];
1195
+ }
1196
+
1197
+ $hotspot_custom_class_pro = '';
1198
+ if (isset($pano_hotspot['hotspot-customclass-pro'])) {
1199
+ $hotspot_custom_class_pro = $pano_hotspot['hotspot-customclass-pro'];
1200
+ }
1201
+
1202
+ $hotspot_custom_class_pro_color = '';
1203
+ if (isset($pano_hotspot['hotspot-customclass-color-icon-value'])) {
1204
+ $hotspot_custom_class_pro_color = $pano_hotspot['hotspot-customclass-color-icon-value'];
1205
+ }
1206
+ // var_dump($hotspot_custom_class_pro_color);
1207
  if ($pano_hotspot['hotspot-title'] == $firstvaluehotspotset['hotspot-title']) {
1208
  $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-'.$h.'">';
1209
 
1226
  $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
1227
  $html .= '</div>';
1228
 
1229
+ if(is_plugin_active( 'wpvr-pro/wpvr-pro.php' )){
1230
+ $status = get_option( 'wpvr_edd_license_status' );
1231
+ if( $status !== false && $status == 'valid' ) {
1232
+ $html .= '<div class="hotspot-setting custom-icon">';
1233
+ $html .= '<label for="hotspot-customclass-pro">'.__('Hotspot custom icon: ','wpvr').'</label>';
1234
+ $html .= '<select class="hotspot-customclass-pro-select" name="hotspot-customclass-pro">';
1235
+ foreach ($custom_icon as $cikey => $civalue) {
1236
+ if ($cikey == $hotspot_custom_class_pro) {
1237
+ $html .= '<option value="'.$cikey.'" selected> '.$civalue.'</option>';
1238
+ }
1239
+ else {
1240
+ $html .= '<option value="'.$cikey.'"> '.$civalue.'</option>';
1241
+ }
1242
+ }
1243
+ $html .= '</select>';
1244
+ $html .= '<span class="change-icon"><i class="'.$hotspot_custom_class_pro.'"></i></span>';
1245
+ $html .= '<div class="field-tooltip">';
1246
+ $html .= '<i class="fa fa-question-circle"></i>';
1247
+ $html .= '<span>'.__('Custom icons will only show on frontend.','wpvr').'</span>';
1248
+ $html .= '</div>';
1249
+ $html .= '</div>';
1250
+ $html .= '<div class="hotspot-setting hotspot-icon">';
1251
+ $html .= '<label for="hotspot-customclass-color">'.__('Hotspot custom icon color: ','wpvr').'</label>';
1252
+ $html .= '<input type="color" class="hotspot-customclass-color" name="hotspot-customclass-color" value="'.$hotspot_custom_class_pro_color.'" />';
1253
+ $html .= '<input type="hidden" class="hotspot-customclass-color-icon-value icon-found-value" name="hotspot-customclass-color-icon-value" value="'.$hotspot_custom_class_pro_color.'" />';
1254
+
1255
+ $html .= '</div>';
1256
+ }
1257
+ }
1258
+ // else {
1259
+ $html .= '<div class="hotspot-setting">';
1260
+ $html .= '<label for="hotspot-customclass">'.__('Hotspot custom icon class: ','wpvr').'</label>';
1261
+ $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
1262
+ $html .= '</div>';
1263
+ // }
1264
+
1265
  $html .= '</div>';
1266
 
1267
  //=Hotspot type=//
1344
 
1345
  }
1346
  //=Hotspot type End=//
1347
+ $html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
1348
  $html .= '</div>';
1349
  }
1350
  else {
1368
  $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
1369
  $html .= '</div>';
1370
 
1371
+ if(is_plugin_active( 'wpvr-pro/wpvr-pro.php' )){
1372
+ $status = get_option( 'wpvr_edd_license_status' );
1373
+ if( $status !== false && $status == 'valid' ) {
1374
+ $html .= '<div class="hotspot-setting custom-icon">';
1375
+ $html .= '<label for="hotspot-customclass-pro">'.__('Hotspot custom icon: ','wpvr').'</label>';
1376
+ $html .= '<select class="hotspot-customclass-pro-select" name="hotspot-customclass-pro">';
1377
+ foreach ($custom_icon as $cikey => $civalue) {
1378
+ if ($cikey == $hotspot_custom_class_pro) {
1379
+ $html .= '<option value="'.$cikey.'" selected> '.$civalue.'</option>';
1380
+ }
1381
+ else {
1382
+ $html .= '<option value="'.$cikey.'"> '.$civalue.'</option>';
1383
+ }
1384
+ }
1385
+ $html .= '</select>';
1386
+ $html .= '<span class="change-icon"><i class="'.$hotspot_custom_class_pro.'"></i></span>';
1387
+ $html .= '<div class="field-tooltip">';
1388
+ $html .= '<i class="fa fa-question-circle"></i>';
1389
+ $html .= '<span>'.__('Custom icons will only show on frontend.','wpvr').'</span>';
1390
+ $html .= '</div>';
1391
+ $html .= '</div>';
1392
+ $html .= '<div class="hotspot-setting hotspot-icon">';
1393
+ $html .= '<label for="hotspot-customclass-color">'.__('Hotspot custom icon color: ','wpvr').'</label>';
1394
+ $html .= '<input type="color" class="hotspot-customclass-color" name="hotspot-customclass-color" value="'.$hotspot_custom_class_pro_color.'" />';
1395
+ $html .= '<input type="hidden" class="hotspot-customclass-color-icon-value icon-found-value" name="hotspot-customclass-color-icon-value" value="'.$hotspot_custom_class_pro_color.'" />';
1396
+
1397
+ $html .= '</div>';
1398
+ }
1399
+ }
1400
+ // else {
1401
+ $html .= '<div class="hotspot-setting">';
1402
+ $html .= '<label for="hotspot-customclass">'.__('Hotspot custom icon class: ','wpvr').'</label>';
1403
+ $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
1404
+ $html .= '</div>';
1405
+ // }
1406
+
1407
  $html .= '</div>';
1408
 
1409
  //=Hotspot type=//
1486
 
1487
  }
1488
  //=Hotspot type End=//
1489
+ $html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
1490
  $html .= '</div>';
1491
  }
1492
  $h++;
1494
  $html .= '</div>';
1495
  $html .= '</div>';
1496
  }
1497
+ else {
1498
+ $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
1499
+
1500
+ $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
1501
+ $html .= '<ul>';
1502
+ $html .= '<li class="active"><span data-index="1" data-href="#scene-'.$s.'-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
1503
+ $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
1504
+ $html .= '</ul>';
1505
+ $html .= '</nav>';
1506
+
1507
+ $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
1508
+ $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-1">';
1509
+
1510
+ $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
1511
+
1512
+ $html .= '<div class="wrapper">';
1513
+ $html .= '<div class="hotspot-setting">';
1514
+ $html .= '<label for="hotspot-title">'.__('Hotspot ID : ','wpvr').'</label>';
1515
+ $html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
1516
+ $html .= '</div>';
1517
+
1518
+ $html .= '<div class="hotspot-setting">';
1519
+ $html .= '<label for="hotspot-pitch">'.__('Pitch: ','wpvr').'</label>';
1520
+ $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch"/>';
1521
+ $html .= '</div>';
1522
+
1523
+ $html .= '<div class="hotspot-setting">';
1524
+ $html .= '<label for="hotspot-yaw">'.__('Yaw: ','wpvr').'</label>';
1525
+ $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
1526
+ $html .= '</div>';
1527
+
1528
+ if(is_plugin_active( 'wpvr-pro/wpvr-pro.php' )){
1529
+ $status = get_option( 'wpvr_edd_license_status' );
1530
+ if( $status !== false && $status == 'valid' ) {
1531
+ $html .= '<div class="hotspot-setting custom-icon">';
1532
+ $html .= '<label for="hotspot-customclass-pro">'.__('Hotspot custom icon: ','wpvr').'</label>';
1533
+ $html .= '<select class="hotspot-customclass-pro-select" name="hotspot-customclass-pro">';
1534
+ foreach ($custom_icon as $cikey => $civalue) {
1535
+ if ($cikey == 'none') {
1536
+ $html .= '<option value="'.$cikey.'" selected> '.$civalue.'</option>';
1537
+ }
1538
+ else {
1539
+ $html .= '<option value="'.$cikey.'"> '.$civalue.'</option>';
1540
+ }
1541
+ }
1542
+ $html .= '</select>';
1543
+ $html .= '<span class="change-icon"></span>';
1544
+ $html .= '<div class="field-tooltip">';
1545
+ $html .= '<i class="fa fa-question-circle"></i>';
1546
+ $html .= '<span>'.__('Custom icons will only show on frontend.','wpvr').'</span>';
1547
+ $html .= '</div>';
1548
+ $html .= '</div>';
1549
+ $html .= '<div class="hotspot-setting hotspot-icon">';
1550
+ $html .= '<label for="hotspot-customclass-color">'.__('Hotspot custom icon color: ','wpvr').'</label>';
1551
+ $html .= '<input type="color" class="hotspot-customclass-color" name="hotspot-customclass-color" value="#00b4ff" />';
1552
+ $html .= '<input type="hidden" class="hotspot-customclass-color-icon-value" name="hotspot-customclass-color-icon-value" value="#00b4ff" />';
1553
+ $html .= '</div>';
1554
+ }
1555
+ }
1556
+ // else {
1557
+ $html .= '<div class="hotspot-setting">';
1558
+ $html .= '<label for="hotspot-customclass">'.__('Hotspot custom icon class: ','wpvr').'</label>';
1559
+ $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
1560
+ $html .= '</div>';
1561
+ // }
1562
+
1563
+ $html .= '</div>';
1564
+
1565
+ $html .= '<div class="hotspot-type hotspot-setting">';
1566
+ $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ','wpvr').'</label>';
1567
+ $html .= '<select name="hotspot-type">';
1568
+ $html .= '<option value="info" selected> Info</option>';
1569
+ $html .= '<option value="scene"> Scene</option>';
1570
+ $html .= '</select>';
1571
+
1572
+ $html .= '<div class="hotspot-url">';
1573
+ $html .= '<label for="hotspot-url">'.__('URL: ','wpvr').'</label>';
1574
+ $html .= '<input type="url" name="hotspot-url" value="" />';
1575
+ $html .= '</div>';
1576
+
1577
+ $html .= '<div class="hotspot-content">';
1578
+ $html .= '<label for="hotspot-content">'.__('On click Content: ','wpvr').'</label>';
1579
+ $html .= '<textarea name="hotspot-content"></textarea>';
1580
+ $html .= '</div>';
1581
+
1582
+ $html .= '<div class="hotspot-hover">';
1583
+ $html .= '<label for="hotspot-hover">'.__('On hover Content: ','wpvr').'</label>';
1584
+ $html .= '<textarea name="hotspot-hover"></textarea>';
1585
+ $html .= '</div>';
1586
+
1587
+ $html .= '<div class="hotspot-scene" style="display:none;" >';
1588
+ $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ','wpvr').'</label>';
1589
+ $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1590
+ $html .= '<option value="none"> None</option>';
1591
+ $html .= '</select>';
1592
+ $html .= '</div>';
1593
+ $html .= '<div class="hotspot-scene" style="display:none;" >';
1594
+ $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ','wpvr').'</label>';
1595
+ $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
1596
+ $html .= '</div>';
1597
+
1598
+ $html .= '</div>';
1599
+ //=Hotspot type End=//
1600
+ $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
1601
+ $html .= '</div>';
1602
+ $html .= '</div>';
1603
+ $html .= '</div>';
1604
+ }
1605
+ $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
1606
  $html .= '</div>';
1607
  }
1608
  else {
1661
  $j = 1;
1662
  foreach ($pano_hotspots as $pano_hotspot) {
1663
  if ($pano_hotspot['hotspot-title'] == $pano_hotspots[0]['hotspot-title']) {
1664
+ $html .= '<li class="active"><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="far fa-dot-circle"></i></span></li>';
1665
  }
1666
  else {
1667
+ $html .= '<li><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="far fa-dot-circle"></i></span></li>';
1668
  }
1669
  $j++;
1670
  }
1693
  $hotspot_target_scene = '';
1694
  $hotspot_target_scene = $pano_hotspot['hotspot-scene'];
1695
  $hotspot_custom_class = '';
1696
+ if (isset($pano_hotspot['hotspot-customclass'])) {
1697
+ $hotspot_custom_class = $pano_hotspot['hotspot-customclass'];
1698
+ }
1699
+ $hotspot_custom_class_pro = '';
1700
+ if (isset($pano_hotspot['hotspot-customclass-pro'])) {
1701
+ $hotspot_custom_class_pro = $pano_hotspot['hotspot-customclass-pro'];
1702
+ }
1703
+ $hotspot_custom_class_pro_color = '';
1704
+ if (isset($pano_hotspot['hotspot-customclass-color-icon-value'])) {
1705
+ $hotspot_custom_class_pro_color = $pano_hotspot['hotspot-customclass-color-icon-value'];
1706
+ }
1707
  if ($pano_hotspot['hotspot-title'] == $pano_hotspots[0]['hotspot-title']) {
1708
  $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-'.$h.'">';
1709
 
1725
  $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
1726
  $html .= '</div>';
1727
 
1728
+ if(is_plugin_active( 'wpvr-pro/wpvr-pro.php' )){
1729
+ $status = get_option( 'wpvr_edd_license_status' );
1730
+ if( $status !== false && $status == 'valid' ) {
1731
+ $html .= '<div class="hotspot-setting custom-icon">';
1732
+ $html .= '<label for="hotspot-customclass-pro">'.__('Hotspot custom icon: ','wpvr').'</label>';
1733
+ $html .= '<select class ="hotspot-customclass-pro-select" name="hotspot-customclass-pro">';
1734
+ foreach ($custom_icon as $cikey => $civalue) {
1735
+ if ($cikey == $hotspot_custom_class_pro) {
1736
+ $html .= '<option value="'.$cikey.'" selected> '.$civalue.'</option>';
1737
+ }
1738
+ else {
1739
+ $html .= '<option value="'.$cikey.'"> '.$civalue.'</option>';
1740
+ }
1741
+ }
1742
+ $html .= '</select>';
1743
+ $html .= '<span class="change-icon"><i class="'.$hotspot_custom_class_pro.'"></i></span>';
1744
+ $html .= '<div class="field-tooltip">';
1745
+ $html .= '<i class="fa fa-question-circle"></i>';
1746
+ $html .= '<span>'.__('Custom icons will only show on frontend.','wpvr').'</span>';
1747
+ $html .= '</div>';
1748
+ $html .= '</div>';
1749
+ $html .= '<div class="hotspot-setting hotspot-icon">';
1750
+ $html .= '<label for="hotspot-customclass-color">'.__('Hotspot custom icon color: ','wpvr').'</label>';
1751
+ $html .= '<input type="color" class="hotspot-customclass-color" name="hotspot-customclass-color" value="'.$hotspot_custom_class_pro_color.'" />';
1752
+ $html .= '<input type="hidden" class="hotspot-customclass-color-icon-value icon-found-value" name="hotspot-customclass-color-icon-value" value="'.$hotspot_custom_class_pro_color.'" />';
1753
+ $html .= '</div>';
1754
+ }
1755
+ }
1756
+ // else {
1757
+ $html .= '<div class="hotspot-setting">';
1758
+ $html .= '<label for="hotspot-customclass">'.__('Hotspot custom icon class: ','wpvr').'</label>';
1759
+ $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
1760
+ $html .= '</div>';
1761
+ // }
1762
+
1763
  $html .= '</div>';
1764
 
1765
  //=Hotspot type=//
1842
 
1843
  }
1844
  //=Hotspot type End=//
1845
+ $html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
1846
  $html .= '</div>';
1847
  }
1848
  else {
1866
  $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
1867
  $html .= '</div>';
1868
 
1869
+ if(is_plugin_active( 'wpvr-pro/wpvr-pro.php' )){
1870
+ $status = get_option( 'wpvr_edd_license_status' );
1871
+ if( $status !== false && $status == 'valid' ) {
1872
+ $html .= '<div class="hotspot-setting custom-icon">';
1873
+ $html .= '<label for="hotspot-customclass-pro">'.__('Hotspot custom icon: ','wpvr').'</label>';
1874
+ $html .= '<select class ="hotspot-customclass-pro-select" name="hotspot-customclass-pro">';
1875
+ foreach ($custom_icon as $cikey => $civalue) {
1876
+ if ($cikey == $hotspot_custom_class_pro) {
1877
+ $html .= '<option value="'.$cikey.'" selected> '.$civalue.'</option>';
1878
+ }
1879
+ else {
1880
+ $html .= '<option value="'.$cikey.'"> '.$civalue.'</option>';
1881
+ }
1882
+ }
1883
+ $html .= '</select>';
1884
+ $html .= '<span class="change-icon"><i class="'.$hotspot_custom_class_pro.'"></i></span>';
1885
+ $html .= '<div class="field-tooltip">';
1886
+ $html .= '<i class="fa fa-question-circle"></i>';
1887
+ $html .= '<span>'.__('Custom icons will only show on frontend.','wpvr').'</span>';
1888
+ $html .= '</div>';
1889
+ $html .= '</div>';
1890
+ $html .= '<div class="hotspot-setting hotspot-icon">';
1891
+ $html .= '<label for="hotspot-customclass-color">'.__('Hotspot custom icon color: ','wpvr').'</label>';
1892
+ $html .= '<input type="color" class="hotspot-customclass-color" name="hotspot-customclass-color" value="'.$hotspot_custom_class_pro_color.'" />';
1893
+ $html .= '<input type="hidden" class="hotspot-customclass-color-icon-value" name="hotspot-customclass-color-icon-value" value="'.$hotspot_custom_class_pro_color.'" />';
1894
+ $html .= '</div>';
1895
+ }
1896
+ }
1897
+ // else {
1898
+ $html .= '<div class="hotspot-setting">';
1899
+ $html .= '<label for="hotspot-customclass">'.__('Hotspot custom icon class: ','wpvr').'</label>';
1900
+ $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
1901
+ $html .= '</div>';
1902
+ // }
1903
+
1904
  $html .= '</div>';
1905
 
1906
  //=Hotspot type=//
1983
 
1984
  }
1985
  //=Hotspot type End=//
1986
+ $html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
1987
  $html .= '</div>';
1988
  }
1989
  $h++;
1991
  $html .= '</div>';
1992
  $html .= '</div>';
1993
  }
1994
+ else {
1995
+ $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
1996
+
1997
+ $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
1998
+ $html .= '<ul>';
1999
+ $html .= '<li class="active"><span data-index="1" data-href="#scene-'.$s.'-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
2000
+ $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
2001
+ $html .= '</ul>';
2002
+ $html .= '</nav>';
2003
+
2004
+ $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
2005
+ $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-1">';
2006
+
2007
+ $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
2008
+
2009
+ $html .= '<div class="wrapper">';
2010
+ $html .= '<div class="hotspot-setting">';
2011
+ $html .= '<label for="hotspot-title">'.__('Hotspot ID : ','wpvr').'</label>';
2012
+ $html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
2013
+ $html .= '</div>';
2014
+
2015
+ $html .= '<div class="hotspot-setting">';
2016
+ $html .= '<label for="hotspot-pitch">'.__('Pitch: ','wpvr').'</label>';
2017
+ $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch"/>';
2018
+ $html .= '</div>';
2019
+
2020
+ $html .= '<div class="hotspot-setting">';
2021
+ $html .= '<label for="hotspot-yaw">'.__('Yaw: ','wpvr').'</label>';
2022
+ $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
2023
+ $html .= '</div>';
2024
+
2025
+ if(is_plugin_active( 'wpvr-pro/wpvr-pro.php' )){
2026
+ $status = get_option( 'wpvr_edd_license_status' );
2027
+ if( $status !== false && $status == 'valid' ) {
2028
+ $html .= '<div class="hotspot-setting custom-icon">';
2029
+ $html .= '<label for="hotspot-customclass-pro">'.__('Hotspot custom icon: ','wpvr').'</label>';
2030
+ $html .= '<select class="hotspot-customclass-pro-select" name="hotspot-customclass-pro">';
2031
+ foreach ($custom_icon as $cikey => $civalue) {
2032
+ if ($cikey == 'none') {
2033
+ $html .= '<option value="'.$cikey.'" selected> '.$civalue.'</option>';
2034
+ }
2035
+ else {
2036
+ $html .= '<option value="'.$cikey.'"> '.$civalue.'</option>';
2037
+ }
2038
+ }
2039
+ $html .= '</select>';
2040
+ $html .= '<span class="change-icon"></span>';
2041
+ $html .= '<div class="field-tooltip">';
2042
+ $html .= '<i class="fa fa-question-circle"></i>';
2043
+ $html .= '<span>'.__('Custom icons will only show on frontend.','wpvr').'</span>';
2044
+ $html .= '</div>';
2045
+ $html .= '</div>';
2046
+ $html .= '<div class="hotspot-setting hotspot-icon">';
2047
+ $html .= '<label for="hotspot-customclass-color">'.__('Hotspot custom icon color: ','wpvr').'</label>';
2048
+ $html .= '<input type="color" class="hotspot-customclass-color" name="hotspot-customclass-color" value="#00b4ff" />';
2049
+ $html .= '<input type="hidden" class="hotspot-customclass-color-icon-value" name="hotspot-customclass-color-icon-value" value="#00b4ff" />';
2050
+ $html .= '</div>';
2051
+ }
2052
+ }
2053
+ // else {
2054
+ $html .= '<div class="hotspot-setting">';
2055
+ $html .= '<label for="hotspot-customclass">'.__('Hotspot custom icon class: ','wpvr').'</label>';
2056
+ $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
2057
+ $html .= '</div>';
2058
+ // }
2059
+
2060
+ $html .= '</div>';
2061
+
2062
+ $html .= '<div class="hotspot-type hotspot-setting">';
2063
+ $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ','wpvr').'</label>';
2064
+ $html .= '<select name="hotspot-type">';
2065
+ $html .= '<option value="info" selected> Info</option>';
2066
+ $html .= '<option value="scene"> Scene</option>';
2067
+ $html .= '</select>';
2068
+
2069
+ $html .= '<div class="hotspot-url">';
2070
+ $html .= '<label for="hotspot-url">'.__('URL: ','wpvr').'</label>';
2071
+ $html .= '<input type="url" name="hotspot-url" value="" />';
2072
+ $html .= '</div>';
2073
+
2074
+ $html .= '<div class="hotspot-content">';
2075
+ $html .= '<label for="hotspot-content">'.__('On click Content: ','wpvr').'</label>';
2076
+ $html .= '<textarea name="hotspot-content"></textarea>';
2077
+ $html .= '</div>';
2078
+
2079
+ $html .= '<div class="hotspot-hover">';
2080
+ $html .= '<label for="hotspot-hover">'.__('On hover Content: ','wpvr').'</label>';
2081
+ $html .= '<textarea name="hotspot-hover"></textarea>';
2082
+ $html .= '</div>';
2083
+
2084
+ $html .= '<div class="hotspot-scene" style="display:none;" >';
2085
+ $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ','wpvr').'</label>';
2086
+ $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
2087
+ $html .= '<option value="none"> None</option>';
2088
+ $html .= '</select>';
2089
+ $html .= '</div>';
2090
+ $html .= '<div class="hotspot-scene" style="display:none;" >';
2091
+ $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ','wpvr').'</label>';
2092
+ $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
2093
+ $html .= '</div>';
2094
+
2095
+ $html .= '</div>';
2096
+ //=Hotspot type End=//
2097
+ $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
2098
+ $html .= '</div>';
2099
+ $html .= '</div>';
2100
+ $html .= '</div>';
2101
+ }
2102
+ $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
2103
  $html .= '</div>';
2104
  }
2105
  $s++;
2215
  echo $html;
2216
  }
2217
 
2218
+ }
admin/class-wpvr-ajax.php CHANGED
@@ -30,6 +30,14 @@ class Wpvr_Ajax {
30
  $control = false;
31
  }
32
 
 
 
 
 
 
 
 
 
33
  $autoload = sanitize_text_field($_POST['autoload']);
34
  if ($autoload == 'on') {
35
  $autoload = true;
@@ -44,6 +52,9 @@ class Wpvr_Ajax {
44
  $preview = '';
45
  $preview = esc_url($_POST['preview']);
46
 
 
 
 
47
  $autorotation = '';
48
  $autorotation = sanitize_text_field($_POST['autorotation']);
49
  $autorotationinactivedelay = '';
@@ -101,6 +112,16 @@ class Wpvr_Ajax {
101
  die();
102
  }
103
  }
 
 
 
 
 
 
 
 
 
 
104
  $hotspot_type_validate = $hotspot_val["hotspot-type"];
105
  $hotspot_url_validate = $hotspot_val["hotspot-url"];
106
  if (!empty($hotspot_url_validate)) {
@@ -172,6 +193,7 @@ class Wpvr_Ajax {
172
  __( "yaw" )=>$hotspot_data["hotspot-yaw"],
173
  __( "type" )=>$hotspot_data["hotspot-type"],
174
  __( "URL" )=>$hotspot_data["hotspot-url"],
 
175
  __( "clickHandlerArgs" )=>$hotspot_data["hotspot-content"],
176
  __( "createTooltipArgs" )=>$hotspot_data["hotspot-hover"],
177
  __( "sceneId" )=>$hotspot_data["hotspot-scene"]);
@@ -192,8 +214,13 @@ class Wpvr_Ajax {
192
  $pano_id_array = array();
193
  $pano_id_array = array(__( "panoid" )=>$panoid);
194
  $pano_response = array();
195
- $pano_response = array(__( "autoLoad" )=>$autoload,__( "showControls" )=>$control,__( "preview" )=>$preview,__( "autoRotate" )=>$autorotation,__( "autoRotateInactivityDelay" )=>$autorotationinactivedelay,__( "autoRotateStopDelay" )=>$autorotationstopdelay,__( "default" )=>$default_data,__( "scenes" )=>$scene_data);
196
 
 
 
 
 
 
197
  if (empty($autorotation)) {
198
  unset($pano_response['autoRotate']);
199
  unset($pano_response['autoRotateInactivityDelay']);
@@ -374,6 +401,14 @@ class Wpvr_Ajax {
374
  $control = false;
375
  }
376
 
 
 
 
 
 
 
 
 
377
  $autoload = sanitize_text_field($_POST['autoload']);
378
  if ($autoload == 'on') {
379
  $autoload = true;
@@ -387,6 +422,9 @@ class Wpvr_Ajax {
387
  $preview = '';
388
  $preview = esc_url($_POST['preview']);
389
 
 
 
 
390
  $autorotation = '';
391
  $autorotation = sanitize_text_field($_POST['autorotation']);
392
  $autorotationinactivedelay = '';
@@ -455,6 +493,16 @@ class Wpvr_Ajax {
455
  die();
456
  }
457
  }
 
 
 
 
 
 
 
 
 
 
458
  $hotspot_type_validate = $hotspot_val["hotspot-type"];
459
  $hotspot_url_validate = $hotspot_val["hotspot-url"];
460
  if (!empty($hotspot_url_validate)) {
@@ -524,9 +572,13 @@ class Wpvr_Ajax {
524
  // var_dump($panodata);
525
  // die();
526
  $pano_array = array();
527
- $pano_array = array(__( "panoid" )=>$panoid,__( "autoLoad" )=>$autoload,__( "showControls" )=>$control,__( "autoRotate" )=>$autorotation,__( "autoRotateInactivityDelay" )=>$autorotationinactivedelay,__( "autoRotateStopDelay" )=>$autorotationstopdelay,__( "preview" )=>$preview,__( "defaultscene" )=>$default_scene,__( "scenefadeduration" )=>$scene_fade_duration,__( "panodata" )=>$panodata);
528
-
529
 
 
 
 
 
 
530
  if (empty($autorotation)) {
531
  unset($pano_array['autoRotate']);
532
  unset($pano_array['autoRotateInactivityDelay']);
30
  $control = false;
31
  }
32
 
33
+ $compass = sanitize_text_field($_POST['compass']);
34
+ if ($compass == 'on') {
35
+ $compass = true;
36
+ }
37
+ else {
38
+ $compass = false;
39
+ }
40
+
41
  $autoload = sanitize_text_field($_POST['autoload']);
42
  if ($autoload == 'on') {
43
  $autoload = true;
52
  $preview = '';
53
  $preview = esc_url($_POST['preview']);
54
 
55
+ $rotation = '';
56
+ $rotation = sanitize_text_field($_POST['rotation']);
57
+
58
  $autorotation = '';
59
  $autorotation = sanitize_text_field($_POST['autorotation']);
60
  $autorotationinactivedelay = '';
112
  die();
113
  }
114
  }
115
+
116
+ if(is_plugin_active( 'wpvr-pro/wpvr-pro.php' )){
117
+ $status = get_option( 'wpvr_edd_license_status' );
118
+ if( $status !== false && $status == 'valid' ) {
119
+ if ($hotspot_val["hotspot-customclass-pro"] != 'none' && !empty($hotspot_val["hotspot-customclass"])) {
120
+ wp_send_json_error('<p><span>Warning:</span> Don\'t add Custom icon class and custom icon both.</p>');
121
+ die();
122
+ }
123
+ }
124
+ }
125
  $hotspot_type_validate = $hotspot_val["hotspot-type"];
126
  $hotspot_url_validate = $hotspot_val["hotspot-url"];
127
  if (!empty($hotspot_url_validate)) {
193
  __( "yaw" )=>$hotspot_data["hotspot-yaw"],
194
  __( "type" )=>$hotspot_data["hotspot-type"],
195
  __( "URL" )=>$hotspot_data["hotspot-url"],
196
+ // __( "cssClass" )=>$hotspot_data["hotspot-customclass"],
197
  __( "clickHandlerArgs" )=>$hotspot_data["hotspot-content"],
198
  __( "createTooltipArgs" )=>$hotspot_data["hotspot-hover"],
199
  __( "sceneId" )=>$hotspot_data["hotspot-scene"]);
214
  $pano_id_array = array();
215
  $pano_id_array = array(__( "panoid" )=>$panoid);
216
  $pano_response = array();
217
+ $pano_response = array(__( "autoLoad" )=>$autoload,__( "showControls" )=>$control,__( "compass" )=>$compass,__( "preview" )=>$preview,__( "autoRotate" )=>$autorotation,__( "autoRotateInactivityDelay" )=>$autorotationinactivedelay,__( "autoRotateStopDelay" )=>$autorotationstopdelay,__( "default" )=>$default_data,__( "scenes" )=>$scene_data);
218
 
219
+ if ($rotation == 'off') {
220
+ unset($pano_response['autoRotate']);
221
+ unset($pano_response['autoRotateInactivityDelay']);
222
+ unset($pano_response['autoRotateStopDelay']);
223
+ }
224
  if (empty($autorotation)) {
225
  unset($pano_response['autoRotate']);
226
  unset($pano_response['autoRotateInactivityDelay']);
401
  $control = false;
402
  }
403
 
404
+ $compass = sanitize_text_field($_POST['compass']);
405
+ if ($compass == 'on') {
406
+ $compass = true;
407
+ }
408
+ else {
409
+ $compass = false;
410
+ }
411
+
412
  $autoload = sanitize_text_field($_POST['autoload']);
413
  if ($autoload == 'on') {
414
  $autoload = true;
422
  $preview = '';
423
  $preview = esc_url($_POST['preview']);
424
 
425
+ $rotation = '';
426
+ $rotation = sanitize_text_field($_POST['rotation']);
427
+
428
  $autorotation = '';
429
  $autorotation = sanitize_text_field($_POST['autorotation']);
430
  $autorotationinactivedelay = '';
493
  die();
494
  }
495
  }
496
+
497
+ if(is_plugin_active( 'wpvr-pro/wpvr-pro.php' )){
498
+ $status = get_option( 'wpvr_edd_license_status' );
499
+ if( $status !== false && $status == 'valid' ) {
500
+ if ($hotspot_val["hotspot-customclass-pro"] != 'none' && !empty($hotspot_val["hotspot-customclass"])) {
501
+ wp_send_json_error('<p><span>Warning:</span> Don\'t add Custom icon class and custom icon both.</p>');
502
+ die();
503
+ }
504
+ }
505
+ }
506
  $hotspot_type_validate = $hotspot_val["hotspot-type"];
507
  $hotspot_url_validate = $hotspot_val["hotspot-url"];
508
  if (!empty($hotspot_url_validate)) {
572
  // var_dump($panodata);
573
  // die();
574
  $pano_array = array();
575
+ $pano_array = array(__( "panoid" )=>$panoid,__( "autoLoad" )=>$autoload,__( "showControls" )=>$control,__( "compass" )=>$compass,__( "autoRotate" )=>$autorotation,__( "autoRotateInactivityDelay" )=>$autorotationinactivedelay,__( "autoRotateStopDelay" )=>$autorotationstopdelay,__( "preview" )=>$preview,__( "defaultscene" )=>$default_scene,__( "scenefadeduration" )=>$scene_fade_duration,__( "panodata" )=>$panodata);
 
576
 
577
+ if ($rotation == 'off') {
578
+ unset($pano_array['autoRotate']);
579
+ unset($pano_array['autoRotateInactivityDelay']);
580
+ unset($pano_array['autoRotateStopDelay']);
581
+ }
582
  if (empty($autorotation)) {
583
  unset($pano_array['autoRotate']);
584
  unset($pano_array['autoRotateInactivityDelay']);
admin/class-wpvr-icon.php ADDED
@@ -0,0 +1,1019 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
3
+ /**
4
+ * The fontawesome functionality of the plugin.
5
+ *
6
+ * @link http://rextheme.com/
7
+ * @since 1.0.0
8
+ *
9
+ * @package Wpvr
10
+ * @subpackage Wpvr/admin
11
+ */
12
+
13
+ class Wpvr_fontawesome_icons {
14
+
15
+ public $icon;
16
+
17
+ /**
18
+ * Admin icon setup is specified in this area.
19
+ */
20
+
21
+ public function __construct() {
22
+
23
+ $this->icon = array (
24
+ 'none' => __( 'None', 'wpvr' ),
25
+ 'fab fa-500px' => __( '500px', 'wpvr' ),
26
+ 'fab fa-accessible-icon' => __( 'accessible-icon', 'wpvr' ),
27
+ 'fab fa-accusoft' => __( 'accusoft', 'wpvr' ),
28
+ 'fas fa-address-book' => __( 'address-book', 'wpvr' ),
29
+ 'far fa-address-book' => __( 'address-book', 'wpvr' ),
30
+ 'fas fa-address-card' => __( 'address-card', 'wpvr' ),
31
+ 'far fa-address-card' => __( 'address-card', 'wpvr' ),
32
+ 'fas fa-adjust' => __( 'adjust', 'wpvr' ),
33
+ 'fab fa-adn' => __( 'adn', 'wpvr' ),
34
+ 'fab fa-adversal' => __( 'adversal', 'wpvr' ),
35
+ 'fab fa-affiliatetheme' => __( 'affiliatetheme', 'wpvr' ),
36
+ 'fab fa-algolia' => __( 'algolia', 'wpvr' ),
37
+ 'fas fa-align-center' => __( 'align-center', 'wpvr' ),
38
+ 'fas fa-align-justify' => __( 'align-justify', 'wpvr' ),
39
+ 'fas fa-align-left' => __( 'align-left', 'wpvr' ),
40
+ 'fas fa-align-right' => __( 'align-right', 'wpvr' ),
41
+ 'fas fa-allergies' => __( 'allergies', 'wpvr' ),
42
+ 'fab fa-amazon' => __( 'amazon', 'wpvr' ),
43
+ 'fab fa-amazon-pay' => __( 'amazon-pay', 'wpvr' ),
44
+ 'fas fa-ambulance' => __( 'ambulance', 'wpvr' ),
45
+ 'fas fa-american-sign-language-interpreting' => __( 'american-sign-language-interpreting', 'wpvr' ),
46
+ 'fab fa-amilia' => __( 'amilia', 'wpvr' ),
47
+ 'fas fa-anchor' => __( 'anchor', 'wpvr' ),
48
+ 'fab fa-android' => __( 'android', 'wpvr' ),
49
+ 'fab fa-angellist' => __( 'angellist', 'wpvr' ),
50
+ 'fas fa-angle-double-down' => __( 'angle-double-down', 'wpvr' ),
51
+ 'fas fa-angle-double-left' => __( 'angle-double-left', 'wpvr' ),
52
+ 'fas fa-angle-double-right' => __( 'angle-double-right', 'wpvr' ),
53
+ 'fas fa-angle-double-up' => __( 'angle-double-up', 'wpvr' ),
54
+ 'fas fa-angle-down' => __( 'angle-down', 'wpvr' ),
55
+ 'fas fa-angle-left' => __( 'angle-left', 'wpvr' ),
56
+ 'fas fa-angle-right' => __( 'angle-right', 'wpvr' ),
57
+ 'fas fa-angle-up' => __( 'angle-up', 'wpvr' ),
58
+ 'fab fa-angrycreative' => __( 'angrycreative', 'wpvr' ),
59
+ 'fab fa-angular' => __( 'angular', 'wpvr' ),
60
+ 'fab fa-app-store' => __( 'app-store', 'wpvr' ),
61
+ 'fab fa-app-store-ios' => __( 'app-store-ios', 'wpvr' ),
62
+ 'fab fa-apper' => __( 'apper', 'wpvr' ),
63
+ 'fab fa-apple' => __( 'apple', 'wpvr' ),
64
+ 'fab fa-apple-pay' => __( 'apple-pay', 'wpvr' ),
65
+ 'fas fa-archive' => __( 'archive', 'wpvr' ),
66
+ 'fas fa-arrow-alt-circle-down' => __( 'arrow-alt-circle-down', 'wpvr' ),
67
+ 'far fa-arrow-alt-circle-down' => __( 'arrow-alt-circle-down', 'wpvr' ),
68
+ 'fas fa-arrow-alt-circle-left' => __( 'arrow-alt-circle-left', 'wpvr' ),
69
+ 'far fa-arrow-alt-circle-left' => __( 'arrow-alt-circle-left', 'wpvr' ),
70
+ 'fas fa-arrow-alt-circle-right' => __( 'arrow-alt-circle-right', 'wpvr' ),
71
+ 'far fa-arrow-alt-circle-right' => __( 'arrow-alt-circle-right', 'wpvr' ),
72
+ 'fas fa-arrow-alt-circle-up' => __( 'arrow-alt-circle-up', 'wpvr' ),
73
+ 'far fa-arrow-alt-circle-up' => __( 'arrow-alt-circle-up', 'wpvr' ),
74
+ 'fas fa-arrow-circle-down' => __( 'arrow-circle-down', 'wpvr' ),
75
+ 'fas fa-arrow-circle-left' => __( 'arrow-circle-left', 'wpvr' ),
76
+ 'fas fa-arrow-circle-right' => __( 'arrow-circle-right', 'wpvr' ),
77
+ 'fas fa-arrow-circle-up' => __( 'arrow-circle-up', 'wpvr' ),
78
+ 'fas fa-arrow-down' => __( 'arrow-down', 'wpvr' ),
79
+ 'fas fa-arrow-left' => __( 'arrow-left', 'wpvr' ),
80
+ 'fas fa-arrow-right' => __( 'arrow-right', 'wpvr' ),
81
+ 'fas fa-arrow-up' => __( 'arrow-up', 'wpvr' ),
82
+ 'fas fa-arrows-alt' => __( 'arrows-alt', 'wpvr' ),
83
+ 'fas fa-arrows-alt-h' => __( 'arrows-alt-h', 'wpvr' ),
84
+ 'fas fa-arrows-alt-v' => __( 'arrows-alt-v', 'wpvr' ),
85
+ 'fas fa-assistive-listening-systems' => __( 'assistive-listening-systems', 'wpvr' ),
86
+ 'fas fa-asterisk' => __( 'asterisk', 'wpvr' ),
87
+ 'fab fa-asymmetrik' => __( 'asymmetrik', 'wpvr' ),
88
+ 'fas fa-at' => __( 'at', 'wpvr' ),
89
+ 'fab fa-audible' => __( 'audible', 'wpvr' ),
90
+ 'fas fa-audio-description' => __( 'audio-description', 'wpvr' ),
91
+ 'fab fa-autoprefixer' => __( 'autoprefixer', 'wpvr' ),
92
+ 'fab fa-avianex' => __( 'avianex', 'wpvr' ),
93
+ 'fab fa-aviato' => __( 'aviato', 'wpvr' ),
94
+ 'fab fa-aws' => __( 'aws', 'wpvr' ),
95
+ 'fas fa-backward' => __( 'backward', 'wpvr' ),
96
+ 'fas fa-balance-scale' => __( 'balance-scale', 'wpvr' ),
97
+ 'fas fa-ban' => __( 'ban', 'wpvr' ),
98
+ 'fas fa-band-aid' => __( 'band-aid', 'wpvr' ),
99
+ 'fab fa-bandcamp' => __( 'bandcamp', 'wpvr' ),
100
+ 'fas fa-barcode' => __( 'barcode', 'wpvr' ),
101
+ 'fas fa-bars' => __( 'bars', 'wpvr' ),
102
+ 'fas fa-baseball-ball' => __( 'baseball-ball', 'wpvr' ),
103
+ 'fas fa-basketball-ball' => __( 'basketball-ball', 'wpvr' ),
104
+ 'fas fa-bath' => __( 'bath', 'wpvr' ),
105
+ 'fas fa-battery-empty' => __( 'battery-empty', 'wpvr' ),
106
+ 'fas fa-battery-full' => __( 'battery-full', 'wpvr' ),
107
+ 'fas fa-battery-half' => __( 'battery-half', 'wpvr' ),
108
+ 'fas fa-battery-quarter' => __( 'battery-quarter', 'wpvr' ),
109
+ 'fas fa-battery-three-quarters' => __( 'battery-three-quarters', 'wpvr' ),
110
+ 'fas fa-bed' => __( 'bed', 'wpvr' ),
111
+ 'fas fa-beer' => __( 'beer', 'wpvr' ),
112
+ 'fab fa-behance' => __( 'behance', 'wpvr' ),
113
+ 'fab fa-behance-square' => __( 'behance-square', 'wpvr' ),
114
+ 'fas fa-bell' => __( 'bell', 'wpvr' ),
115
+ 'far fa-bell' => __( 'bell', 'wpvr' ),
116
+ 'fas fa-bell-slash' => __( 'bell-slash', 'wpvr' ),
117
+ 'far fa-bell-slash' => __( 'bell-slash', 'wpvr' ),
118
+ 'fas fa-bicycle' => __( 'bicycle', 'wpvr' ),
119
+ 'fab fa-bimobject' => __( 'bimobject', 'wpvr' ),
120
+ 'fas fa-binoculars' => __( 'binoculars', 'wpvr' ),
121
+ 'fas fa-birthday-cake' => __( 'birthday-cake', 'wpvr' ),
122
+ 'fab fa-bitbucket' => __( 'bitbucket', 'wpvr' ),
123
+ 'fab fa-bitcoin' => __( 'bitcoin', 'wpvr' ),
124
+ 'fab fa-bity' => __( 'bity', 'wpvr' ),
125
+ 'fab fa-black-tie' => __( 'black-tie', 'wpvr' ),
126
+ 'fab fa-blackberry' => __( 'blackberry', 'wpvr' ),
127
+ 'fas fa-blind' => __( 'blind', 'wpvr' ),
128
+ 'fab fa-blogger' => __( 'blogger', 'wpvr' ),
129
+ 'fab fa-blogger-b' => __( 'blogger-b', 'wpvr' ),
130
+ 'fab fa-bluetooth' => __( 'bluetooth', 'wpvr' ),
131
+ 'fab fa-bluetooth-b' => __( 'bluetooth-b', 'wpvr' ),
132
+ 'fas fa-bold' => __( 'bold', 'wpvr' ),
133
+ 'fas fa-bolt' => __( 'bolt', 'wpvr' ),
134
+ 'fas fa-bomb' => __( 'bomb', 'wpvr' ),
135
+ 'fas fa-book' => __( 'book', 'wpvr' ),
136
+ 'fas fa-bookmark' => __( 'bookmark', 'wpvr' ),
137
+ 'far fa-bookmark' => __( 'bookmark', 'wpvr' ),
138
+ 'fas fa-bowling-ball' => __( 'bowling-ball', 'wpvr' ),
139
+ 'fas fa-box' => __( 'box', 'wpvr' ),
140
+ 'fas fa-box-open' => __( 'box-open', 'wpvr' ),
141
+ 'fas fa-boxes' => __( 'boxes', 'wpvr' ),
142
+ 'fas fa-braille' => __( 'braille', 'wpvr' ),
143
+ 'fas fa-briefcase' => __( 'briefcase', 'wpvr' ),
144
+ 'fas fa-briefcase-medical' => __( 'briefcase-medical', 'wpvr' ),
145
+ 'fab fa-btc' => __( 'btc', 'wpvr' ),
146
+ 'fas fa-bug' => __( 'bug', 'wpvr' ),
147
+ 'fas fa-building' => __( 'building', 'wpvr' ),
148
+ 'far fa-building' => __( 'building', 'wpvr' ),
149
+ 'fas fa-bullhorn' => __( 'bullhorn', 'wpvr' ),
150
+ 'fas fa-bullseye' => __( 'bullseye', 'wpvr' ),
151
+ 'fas fa-burn' => __( 'burn', 'wpvr' ),
152
+ 'fab fa-buromobelexperte' => __( 'buromobelexperte', 'wpvr' ),
153
+ 'fas fa-bus' => __( 'bus', 'wpvr' ),
154
+ 'fab fa-buysellads' => __( 'buysellads', 'wpvr' ),
155
+ 'fas fa-calculator' => __( 'calculator', 'wpvr' ),
156
+ 'fas fa-calendar' => __( 'calendar', 'wpvr' ),
157
+ 'far fa-calendar' => __( 'calendar', 'wpvr' ),
158
+ 'fas fa-calendar-alt' => __( 'calendar-alt', 'wpvr' ),
159
+ 'far fa-calendar-alt' => __( 'calendar-alt', 'wpvr' ),
160
+ 'fas fa-calendar-check' => __( 'calendar-check', 'wpvr' ),
161
+ 'far fa-calendar-check' => __( 'calendar-check', 'wpvr' ),
162
+ 'fas fa-calendar-minus' => __( 'calendar-minus', 'wpvr' ),
163
+ 'far fa-calendar-minus' => __( 'calendar-minus', 'wpvr' ),
164
+ 'fas fa-calendar-plus' => __( 'calendar-plus', 'wpvr' ),
165
+ 'far fa-calendar-plus' => __( 'calendar-plus', 'wpvr' ),
166
+ 'fas fa-calendar-times' => __( 'calendar-times', 'wpvr' ),
167
+ 'far fa-calendar-times' => __( 'calendar-times', 'wpvr' ),
168
+ 'fas fa-camera' => __( 'camera', 'wpvr' ),
169
+ 'fas fa-camera-retro' => __( 'camera-retro', 'wpvr' ),
170
+ 'fas fa-capsules' => __( 'capsules', 'wpvr' ),
171
+ 'fas fa-car' => __( 'car', 'wpvr' ),
172
+ 'fas fa-caret-down' => __( 'caret-down', 'wpvr' ),
173
+ 'fas fa-caret-left' => __( 'caret-left', 'wpvr' ),
174
+ 'fas fa-caret-right' => __( 'caret-right', 'wpvr' ),
175
+ 'fas fa-caret-square-down' => __( 'caret-square-down', 'wpvr' ),
176
+ 'far fa-caret-square-down' => __( 'caret-square-down', 'wpvr' ),
177
+ 'fas fa-caret-square-left' => __( 'caret-square-left', 'wpvr' ),
178
+ 'far fa-caret-square-left' => __( 'caret-square-left', 'wpvr' ),
179
+ 'fas fa-caret-square-right' => __( 'caret-square-right', 'wpvr' ),
180
+ 'far fa-caret-square-right' => __( 'caret-square-right', 'wpvr' ),
181
+ 'fas fa-caret-square-up' => __( 'caret-square-up', 'wpvr' ),
182
+ 'far fa-caret-square-up' => __( 'caret-square-up', 'wpvr' ),
183
+ 'fas fa-caret-up' => __( 'caret-up', 'wpvr' ),
184
+ 'fas fa-cart-arrow-down' => __( 'cart-arrow-down', 'wpvr' ),
185
+ 'fas fa-cart-plus' => __( 'cart-plus', 'wpvr' ),
186
+ 'fab fa-cc-amazon-pay' => __( 'cc-amazon-pay', 'wpvr' ),
187
+ 'fab fa-cc-amex' => __( 'cc-amex', 'wpvr' ),
188
+ 'fab fa-cc-apple-pay' => __( 'cc-apple-pay', 'wpvr' ),
189
+ 'fab fa-cc-diners-club' => __( 'cc-diners-club', 'wpvr' ),
190
+ 'fab fa-cc-discover' => __( 'cc-discover', 'wpvr' ),
191
+ 'fab fa-cc-jcb' => __( 'cc-jcb', 'wpvr' ),
192
+ 'fab fa-cc-mastercard' => __( 'cc-mastercard', 'wpvr' ),
193
+ 'fab fa-cc-paypal' => __( 'cc-paypal', 'wpvr' ),
194
+ 'fab fa-cc-stripe' => __( 'cc-stripe', 'wpvr' ),
195
+ 'fab fa-cc-visa' => __( 'cc-visa', 'wpvr' ),
196
+ 'fab fa-centercode' => __( 'centercode', 'wpvr' ),
197
+ 'fas fa-certificate' => __( 'certificate', 'wpvr' ),
198
+ 'fas fa-chart-area' => __( 'chart-area', 'wpvr' ),
199
+ 'fas fa-chart-bar' => __( 'chart-bar', 'wpvr' ),
200
+ 'far fa-chart-bar' => __( 'chart-bar', 'wpvr' ),
201
+ 'fas fa-chart-line' => __( 'chart-line', 'wpvr' ),
202
+ 'fas fa-chart-pie' => __( 'chart-pie', 'wpvr' ),
203
+ 'fas fa-check' => __( 'check', 'wpvr' ),
204
+ 'fas fa-check-circle' => __( 'check-circle', 'wpvr' ),
205
+ 'far fa-check-circle' => __( 'check-circle', 'wpvr' ),
206
+ 'fas fa-check-square' => __( 'check-square', 'wpvr' ),
207
+ 'far fa-check-square' => __( 'check-square', 'wpvr' ),
208
+ 'fas fa-chess' => __( 'chess', 'wpvr' ),
209
+ 'fas fa-chess-bishop' => __( 'chess-bishop', 'wpvr' ),
210
+ 'fas fa-chess-board' => __( 'chess-board', 'wpvr' ),
211
+ 'fas fa-chess-king' => __( 'chess-king', 'wpvr' ),
212
+ 'fas fa-chess-knight' => __( 'chess-knight', 'wpvr' ),
213
+ 'fas fa-chess-pawn' => __( 'chess-pawn', 'wpvr' ),
214
+ 'fas fa-chess-queen' => __( 'chess-queen', 'wpvr' ),
215
+ 'fas fa-chess-rook' => __( 'chess-rook', 'wpvr' ),
216
+ 'fas fa-chevron-circle-down' => __( 'chevron-circle-down', 'wpvr' ),
217
+ 'fas fa-chevron-circle-left' => __( 'chevron-circle-left', 'wpvr' ),
218
+ 'fas fa-chevron-circle-right' => __( 'chevron-circle-right', 'wpvr' ),
219
+ 'fas fa-chevron-circle-up' => __( 'chevron-circle-up', 'wpvr' ),
220
+ 'fas fa-chevron-down' => __( 'chevron-down', 'wpvr' ),
221
+ 'fas fa-chevron-left' => __( 'chevron-left', 'wpvr' ),
222
+ 'fas fa-chevron-right' => __( 'chevron-right', 'wpvr' ),
223
+ 'fas fa-chevron-up' => __( 'chevron-up', 'wpvr' ),
224
+ 'fas fa-child' => __( 'child', 'wpvr' ),
225
+ 'fab fa-chrome' => __( 'chrome', 'wpvr' ),
226
+ 'fas fa-circle' => __( 'circle', 'wpvr' ),
227
+ 'far fa-circle' => __( 'circle', 'wpvr' ),
228
+ 'fas fa-circle-notch' => __( 'circle-notch', 'wpvr' ),
229
+ 'fas fa-clipboard' => __( 'clipboard', 'wpvr' ),
230
+ 'far fa-clipboard' => __( 'clipboard', 'wpvr' ),
231
+ 'fas fa-clipboard-check' => __( 'clipboard-check', 'wpvr' ),
232
+ 'fas fa-clipboard-list' => __( 'clipboard-list', 'wpvr' ),
233
+ 'fas fa-clock' => __( 'clock', 'wpvr' ),
234
+ 'far fa-clock' => __( 'clock', 'wpvr' ),
235
+ 'fas fa-clone' => __( 'clone', 'wpvr' ),
236
+ 'far fa-clone' => __( 'clone', 'wpvr' ),
237
+ 'fas fa-closed-captioning' => __( 'closed-captioning', 'wpvr' ),
238
+ 'far fa-closed-captioning' => __( 'closed-captioning', 'wpvr' ),
239
+ 'fas fa-cloud' => __( 'cloud', 'wpvr' ),
240
+ 'fas fa-cloud-download-alt' => __( 'cloud-download-alt', 'wpvr' ),
241
+ 'fas fa-cloud-upload-alt' => __( 'cloud-upload-alt', 'wpvr' ),
242
+ 'fab fa-cloudscale' => __( 'cloudscale', 'wpvr' ),
243
+ 'fab fa-cloudsmith' => __( 'cloudsmith', 'wpvr' ),
244
+ 'fab fa-cloudversify' => __( 'cloudversify', 'wpvr' ),
245
+ 'fas fa-code' => __( 'code', 'wpvr' ),
246
+ 'fas fa-code-branch' => __( 'code-branch', 'wpvr' ),
247
+ 'fab fa-codepen' => __( 'codepen', 'wpvr' ),
248
+ 'fab fa-codiepie' => __( 'codiepie', 'wpvr' ),
249
+ 'fas fa-coffee' => __( 'coffee', 'wpvr' ),
250
+ 'fas fa-cog' => __( 'cog', 'wpvr' ),
251
+ 'fas fa-cogs' => __( 'cogs', 'wpvr' ),
252
+ 'fas fa-columns' => __( 'columns', 'wpvr' ),
253
+ 'fas fa-comment' => __( 'comment', 'wpvr' ),
254
+ 'far fa-comment' => __( 'comment', 'wpvr' ),
255
+ 'fas fa-comment-alt' => __( 'comment-alt', 'wpvr' ),
256
+ 'far fa-comment-alt' => __( 'comment-alt', 'wpvr' ),
257
+ 'fas fa-comment-dots' => __( 'comment-dots', 'wpvr' ),
258
+ 'fas fa-comment-slash' => __( 'comment-slash', 'wpvr' ),
259
+ 'fas fa-comments' => __( 'comments', 'wpvr' ),
260
+ 'far fa-comments' => __( 'comments', 'wpvr' ),
261
+ 'fas fa-compass' => __( 'compass', 'wpvr' ),
262
+ 'far fa-compass' => __( 'compass', 'wpvr' ),
263
+ 'fas fa-compress' => __( 'compress', 'wpvr' ),
264
+ 'fab fa-connectdevelop' => __( 'connectdevelop', 'wpvr' ),
265
+ 'fab fa-contao' => __( 'contao', 'wpvr' ),
266
+ 'fas fa-copy' => __( 'copy', 'wpvr' ),
267
+ 'far fa-copy' => __( 'copy', 'wpvr' ),
268
+ 'fas fa-copyright' => __( 'copyright', 'wpvr' ),
269
+ 'far fa-copyright' => __( 'copyright', 'wpvr' ),
270
+ 'fas fa-couch' => __( 'couch', 'wpvr' ),
271
+ 'fab fa-cpanel' => __( 'cpanel', 'wpvr' ),
272
+ 'fab fa-creative-commons' => __( 'creative-commons', 'wpvr' ),
273
+ 'fas fa-credit-card' => __( 'credit-card', 'wpvr' ),
274
+ 'far fa-credit-card' => __( 'credit-card', 'wpvr' ),
275
+ 'fas fa-crop' => __( 'crop', 'wpvr' ),
276
+ 'fas fa-crosshairs' => __( 'crosshairs', 'wpvr' ),
277
+ 'fab fa-css3' => __( 'css3', 'wpvr' ),
278
+ 'fab fa-css3-alt' => __( 'css3-alt', 'wpvr' ),
279
+ 'fas fa-cube' => __( 'cube', 'wpvr' ),
280
+ 'fas fa-cubes' => __( 'cubes', 'wpvr' ),
281
+ 'fas fa-cut' => __( 'cut', 'wpvr' ),
282
+ 'fab fa-cuttlefish' => __( 'cuttlefish', 'wpvr' ),
283
+ 'fab fa-d-and-d' => __( 'd-and-d', 'wpvr' ),
284
+ 'fab fa-dashcube' => __( 'dashcube', 'wpvr' ),
285
+ 'fas fa-database' => __( 'database', 'wpvr' ),
286
+ 'fas fa-deaf' => __( 'deaf', 'wpvr' ),
287
+ 'fab fa-delicious' => __( 'delicious', 'wpvr' ),
288
+ 'fab fa-deploydog' => __( 'deploydog', 'wpvr' ),
289
+ 'fab fa-deskpro' => __( 'deskpro', 'wpvr' ),
290
+ 'fas fa-desktop' => __( 'desktop', 'wpvr' ),
291
+ 'fab fa-deviantart' => __( 'deviantart', 'wpvr' ),
292
+ 'fas fa-diagnoses' => __( 'diagnoses', 'wpvr' ),
293
+ 'fab fa-digg' => __( 'digg', 'wpvr' ),
294
+ 'fab fa-digital-ocean' => __( 'digital-ocean', 'wpvr' ),
295
+ 'fab fa-discord' => __( 'discord', 'wpvr' ),
296
+ 'fab fa-discourse' => __( 'discourse', 'wpvr' ),
297
+ 'fas fa-dna' => __( 'dna', 'wpvr' ),
298
+ 'fab fa-dochub' => __( 'dochub', 'wpvr' ),
299
+ 'fab fa-docker' => __( 'docker', 'wpvr' ),
300
+ 'fas fa-dollar-sign' => __( 'dollar-sign', 'wpvr' ),
301
+ 'fas fa-dolly' => __( 'dolly', 'wpvr' ),
302
+ 'fas fa-dolly-flatbed' => __( 'dolly-flatbed', 'wpvr' ),
303
+ 'fas fa-donate' => __( 'donate', 'wpvr' ),
304
+ 'fas fa-dot-circle' => __( 'dot-circle', 'wpvr' ),
305
+ 'far fa-dot-circle' => __( 'dot-circle', 'wpvr' ),
306
+ 'fas fa-dove' => __( 'dove', 'wpvr' ),
307
+ 'fas fa-download' => __( 'download', 'wpvr' ),
308
+ 'fab fa-draft2digital' => __( 'draft2digital', 'wpvr' ),
309
+ 'fab fa-dribbble' => __( 'dribbble', 'wpvr' ),
310
+ 'fab fa-dribbble-square' => __( 'dribbble-square', 'wpvr' ),
311
+ 'fab fa-dropbox' => __( 'dropbox', 'wpvr' ),
312
+ 'fab fa-drupal' => __( 'drupal', 'wpvr' ),
313
+ 'fab fa-dyalog' => __( 'dyalog', 'wpvr' ),
314
+ 'fab fa-earlybirds' => __( 'earlybirds', 'wpvr' ),
315
+ 'fab fa-edge' => __( 'edge', 'wpvr' ),
316
+ 'fas fa-edit' => __( 'edit', 'wpvr' ),
317
+ 'far fa-edit' => __( 'edit', 'wpvr' ),
318
+ 'fas fa-eject' => __( 'eject', 'wpvr' ),
319
+ 'fab fa-elementor' => __( 'elementor', 'wpvr' ),
320
+ 'fas fa-ellipsis-h' => __( 'ellipsis-h', 'wpvr' ),
321
+ 'fas fa-ellipsis-v' => __( 'ellipsis-v', 'wpvr' ),
322
+ 'fab fa-ember' => __( 'ember', 'wpvr' ),
323
+ 'fab fa-empire' => __( 'empire', 'wpvr' ),
324
+ 'fas fa-envelope' => __( 'envelope', 'wpvr' ),
325
+ 'far fa-envelope' => __( 'envelope', 'wpvr' ),
326
+ 'fas fa-envelope-open' => __( 'envelope-open', 'wpvr' ),
327
+ 'far fa-envelope-open' => __( 'envelope-open', 'wpvr' ),
328
+ 'fas fa-envelope-square' => __( 'envelope-square', 'wpvr' ),
329
+ 'fab fa-envira' => __( 'envira', 'wpvr' ),
330
+ 'fas fa-eraser' => __( 'eraser', 'wpvr' ),
331
+ 'fab fa-erlang' => __( 'erlang', 'wpvr' ),
332
+ 'fab fa-ethereum' => __( 'ethereum', 'wpvr' ),
333
+ 'fab fa-etsy' => __( 'etsy', 'wpvr' ),
334
+ 'fas fa-euro-sign' => __( 'euro-sign', 'wpvr' ),
335
+ 'fas fa-exchange-alt' => __( 'exchange-alt', 'wpvr' ),
336
+ 'fas fa-exclamation' => __( 'exclamation', 'wpvr' ),
337
+ 'fas fa-exclamation-circle' => __( 'exclamation-circle', 'wpvr' ),
338
+ 'fas fa-exclamation-triangle' => __( 'exclamation-triangle', 'wpvr' ),
339
+ 'fas fa-expand' => __( 'expand', 'wpvr' ),
340
+ 'fas fa-expand-arrows-alt' => __( 'expand-arrows-alt', 'wpvr' ),
341
+ 'fab fa-expeditedssl' => __( 'expeditedssl', 'wpvr' ),
342
+ 'fas fa-external-link-alt' => __( 'external-link-alt', 'wpvr' ),
343
+ 'fas fa-external-link-square-alt' => __( 'external-link-square-alt', 'wpvr' ),
344
+ 'fas fa-eye' => __( 'eye', 'wpvr' ),
345
+ 'fas fa-eye-dropper' => __( 'eye-dropper', 'wpvr' ),
346
+ 'fas fa-eye-slash' => __( 'eye-slash', 'wpvr' ),
347
+ 'far fa-eye-slash' => __( 'eye-slash', 'wpvr' ),
348
+ 'fab fa-facebook' => __( 'facebook', 'wpvr' ),
349
+ 'fab fa-facebook-f' => __( 'facebook-f', 'wpvr' ),
350
+ 'fab fa-facebook-messenger' => __( 'facebook-messenger', 'wpvr' ),
351
+ 'fab fa-facebook-square' => __( 'facebook-square', 'wpvr' ),
352
+ 'fas fa-fast-backward' => __( 'fast-backward', 'wpvr' ),
353
+ 'fas fa-fast-forward' => __( 'fast-forward', 'wpvr' ),
354
+ 'fas fa-fax' => __( 'fax', 'wpvr' ),
355
+ 'fas fa-female' => __( 'female', 'wpvr' ),
356
+ 'fas fa-fighter-jet' => __( 'fighter-jet', 'wpvr' ),
357
+ 'fas fa-file' => __( 'file', 'wpvr' ),
358
+ 'far fa-file' => __( 'file', 'wpvr' ),
359
+ 'fas fa-file-alt' => __( 'file-alt', 'wpvr' ),
360
+ 'far fa-file-alt' => __( 'file-alt', 'wpvr' ),
361
+ 'fas fa-file-archive' => __( 'file-archive', 'wpvr' ),
362
+ 'far fa-file-archive' => __( 'file-archive', 'wpvr' ),
363
+ 'fas fa-file-audio' => __( 'file-audio', 'wpvr' ),
364
+ 'far fa-file-audio' => __( 'file-audio', 'wpvr' ),
365
+ 'fas fa-file-code' => __( 'file-code', 'wpvr' ),
366
+ 'far fa-file-code' => __( 'file-code', 'wpvr' ),
367
+ 'fas fa-file-excel' => __( 'file-excel', 'wpvr' ),
368
+ 'far fa-file-excel' => __( 'file-excel', 'wpvr' ),
369
+ 'fas fa-file-image' => __( 'file-image', 'wpvr' ),
370
+ 'far fa-file-image' => __( 'file-image', 'wpvr' ),
371
+ 'fas fa-file-medical' => __( 'file-medical', 'wpvr' ),
372
+ 'fas fa-file-medical-alt' => __( 'file-medical-alt', 'wpvr' ),
373
+ 'fas fa-file-pdf' => __( 'file-pdf', 'wpvr' ),
374
+ 'far fa-file-pdf' => __( 'file-pdf', 'wpvr' ),
375
+ 'fas fa-file-powerpoint' => __( 'file-powerpoint', 'wpvr' ),
376
+ 'far fa-file-powerpoint' => __( 'file-powerpoint', 'wpvr' ),
377
+ 'fas fa-file-video' => __( 'file-video', 'wpvr' ),
378
+ 'far fa-file-video' => __( 'file-video', 'wpvr' ),
379
+ 'fas fa-file-word' => __( 'file-word', 'wpvr' ),
380
+ 'far fa-file-word' => __( 'file-word', 'wpvr' ),
381
+ 'fas fa-film' => __( 'film', 'wpvr' ),
382
+ 'fas fa-filter' => __( 'filter', 'wpvr' ),
383
+ 'fas fa-fire' => __( 'fire', 'wpvr' ),
384
+ 'fas fa-fire-extinguisher' => __( 'fire-extinguisher', 'wpvr' ),
385
+ 'fab fa-firefox' => __( 'firefox', 'wpvr' ),
386
+ 'fas fa-first-aid' => __( 'first-aid', 'wpvr' ),
387
+ 'fab fa-first-order' => __( 'first-order', 'wpvr' ),
388
+ 'fab fa-firstdraft' => __( 'firstdraft', 'wpvr' ),
389
+ 'fas fa-flag' => __( 'flag', 'wpvr' ),
390
+ 'far fa-flag' => __( 'flag', 'wpvr' ),
391
+ 'fas fa-flag-checkered' => __( 'flag-checkered', 'wpvr' ),
392
+ 'fas fa-flask' => __( 'flask', 'wpvr' ),
393
+ 'fab fa-flickr' => __( 'flickr', 'wpvr' ),
394
+ 'fab fa-flipboard' => __( 'flipboard', 'wpvr' ),
395
+ 'fab fa-fly' => __( 'fly', 'wpvr' ),
396
+ 'fas fa-folder' => __( 'folder', 'wpvr' ),
397
+ 'far fa-folder' => __( 'folder', 'wpvr' ),
398
+ 'fas fa-folder-open' => __( 'folder-open', 'wpvr' ),
399
+ 'far fa-folder-open' => __( 'folder-open', 'wpvr' ),
400
+ 'fas fa-font' => __( 'font', 'wpvr' ),
401
+ 'fab fa-font-awesome' => __( 'font-awesome', 'wpvr' ),
402
+ 'fab fa-font-awesome-alt' => __( 'font-awesome-alt', 'wpvr' ),
403
+ 'fab fa-font-awesome-flag' => __( 'font-awesome-flag', 'wpvr' ),
404
+ 'fab fa-fonticons' => __( 'fonticons', 'wpvr' ),
405
+ 'fab fa-fonticons-fi' => __( 'fonticons-fi', 'wpvr' ),
406
+ 'fas fa-football-ball' => __( 'football-ball', 'wpvr' ),
407
+ 'fab fa-fort-awesome' => __( 'fort-awesome', 'wpvr' ),
408
+ 'fab fa-fort-awesome-alt' => __( 'fort-awesome-alt', 'wpvr' ),
409
+ 'fab fa-forumbee' => __( 'forumbee', 'wpvr' ),
410
+ 'fas fa-forward' => __( 'forward', 'wpvr' ),
411
+ 'fab fa-foursquare' => __( 'foursquare', 'wpvr' ),
412
+ 'fab fa-free-code-camp' => __( 'free-code-camp', 'wpvr' ),
413
+ 'fab fa-freebsd' => __( 'freebsd', 'wpvr' ),
414
+ 'fas fa-frown' => __( 'frown', 'wpvr' ),
415
+ 'far fa-frown' => __( 'frown', 'wpvr' ),
416
+ 'fas fa-futbol' => __( 'futbol', 'wpvr' ),
417
+ 'far fa-futbol' => __( 'futbol', 'wpvr' ),
418
+ 'fas fa-gamepad' => __( 'gamepad', 'wpvr' ),
419
+ 'fas fa-gavel' => __( 'gavel', 'wpvr' ),
420
+ 'fas fa-gem' => __( 'gem', 'wpvr' ),
421
+ 'far fa-gem' => __( 'gem', 'wpvr' ),
422
+ 'fas fa-genderless' => __( 'genderless', 'wpvr' ),
423
+ 'fab fa-get-pocket' => __( 'get-pocket', 'wpvr' ),
424
+ 'fab fa-gg' => __( 'gg', 'wpvr' ),
425
+ 'fab fa-gg-circle' => __( 'gg-circle', 'wpvr' ),
426
+ 'fas fa-gift' => __( 'gift', 'wpvr' ),
427
+ 'fab fa-git' => __( 'git', 'wpvr' ),
428
+ 'fab fa-git-square' => __( 'git-square', 'wpvr' ),
429
+ 'fab fa-github' => __( 'github', 'wpvr' ),
430
+ 'fab fa-github-alt' => __( 'github-alt', 'wpvr' ),
431
+ 'fab fa-github-square' => __( 'github-square', 'wpvr' ),
432
+ 'fab fa-gitkraken' => __( 'gitkraken', 'wpvr' ),
433
+ 'fab fa-gitlab' => __( 'gitlab', 'wpvr' ),
434
+ 'fab fa-gitter' => __( 'gitter', 'wpvr' ),
435
+ 'fas fa-glass-martini' => __( 'glass-martini', 'wpvr' ),
436
+ 'fab fa-glide' => __( 'glide', 'wpvr' ),
437
+ 'fab fa-glide-g' => __( 'glide-g', 'wpvr' ),
438
+ 'fas fa-globe' => __( 'globe', 'wpvr' ),
439
+ 'fab fa-gofore' => __( 'gofore', 'wpvr' ),
440
+ 'fas fa-golf-ball' => __( 'golf-ball', 'wpvr' ),
441
+ 'fab fa-goodreads' => __( 'goodreads', 'wpvr' ),
442
+ 'fab fa-goodreads-g' => __( 'goodreads-g', 'wpvr' ),
443
+ 'fab fa-google' => __( 'google', 'wpvr' ),
444
+ 'fab fa-google-drive' => __( 'google-drive', 'wpvr' ),
445
+ 'fab fa-google-play' => __( 'google-play', 'wpvr' ),
446
+ 'fab fa-google-plus' => __( 'google-plus', 'wpvr' ),
447
+ 'fab fa-google-plus-g' => __( 'google-plus-g', 'wpvr' ),
448
+ 'fab fa-google-plus-square' => __( 'google-plus-square', 'wpvr' ),
449
+ 'fab fa-google-wallet' => __( 'google-wallet', 'wpvr' ),
450
+ 'fas fa-graduation-cap' => __( 'graduation-cap', 'wpvr' ),
451
+ 'fab fa-gratipay' => __( 'gratipay', 'wpvr' ),
452
+ 'fab fa-grav' => __( 'grav', 'wpvr' ),
453
+ 'fab fa-gripfire' => __( 'gripfire', 'wpvr' ),
454
+ 'fab fa-grunt' => __( 'grunt', 'wpvr' ),
455
+ 'fab fa-gulp' => __( 'gulp', 'wpvr' ),
456
+ 'fas fa-h-square' => __( 'h-square', 'wpvr' ),
457
+ 'fab fa-hacker-news' => __( 'hacker-news', 'wpvr' ),
458
+ 'fab fa-hacker-news-square' => __( 'hacker-news-square', 'wpvr' ),
459
+ 'fas fa-hand-holding' => __( 'hand-holding', 'wpvr' ),
460
+ 'fas fa-hand-holding-heart' => __( 'hand-holding-heart', 'wpvr' ),
461
+ 'fas fa-hand-holding-usd' => __( 'hand-holding-usd', 'wpvr' ),
462
+ 'fas fa-hand-lizard' => __( 'hand-lizard', 'wpvr' ),
463
+ 'far fa-hand-lizard' => __( 'hand-lizard', 'wpvr' ),
464
+ 'fas fa-hand-paper' => __( 'hand-paper', 'wpvr' ),
465
+ 'far fa-hand-paper' => __( 'hand-paper', 'wpvr' ),
466
+ 'fas fa-hand-peace' => __( 'hand-peace', 'wpvr' ),
467
+ 'far fa-hand-peace' => __( 'hand-peace', 'wpvr' ),
468
+ 'fas fa-hand-point-down' => __( 'hand-point-down', 'wpvr' ),
469
+ 'far fa-hand-point-down' => __( 'hand-point-down', 'wpvr' ),
470
+ 'fas fa-hand-point-left' => __( 'hand-point-left', 'wpvr' ),
471
+ 'far fa-hand-point-left' => __( 'hand-point-left', 'wpvr' ),
472
+ 'fas fa-hand-point-right' => __( 'hand-point-right', 'wpvr' ),
473
+ 'far fa-hand-point-right' => __( 'hand-point-right', 'wpvr' ),
474
+ 'fas fa-hand-point-up' => __( 'hand-point-up', 'wpvr' ),
475
+ 'far fa-hand-point-up' => __( 'hand-point-up', 'wpvr' ),
476
+ 'fas fa-hand-pointer' => __( 'hand-pointer', 'wpvr' ),
477
+ 'far fa-hand-pointer' => __( 'hand-pointer', 'wpvr' ),
478
+ 'fas fa-hand-rock' => __( 'hand-rock', 'wpvr' ),
479
+ 'far fa-hand-rock' => __( 'hand-rock', 'wpvr' ),
480
+ 'fas fa-hand-scissors' => __( 'hand-scissors', 'wpvr' ),
481
+ 'far fa-hand-scissors' => __( 'hand-scissors', 'wpvr' ),
482
+ 'fas fa-hand-spock' => __( 'hand-spock', 'wpvr' ),
483
+ 'far fa-hand-spock' => __( 'hand-spock', 'wpvr' ),
484
+ 'fas fa-hands' => __( 'hands', 'wpvr' ),
485
+ 'fas fa-hands-helping' => __( 'hands-helping', 'wpvr' ),
486
+ 'fas fa-handshake' => __( 'handshake', 'wpvr' ),
487
+ 'far fa-handshake' => __( 'handshake', 'wpvr' ),
488
+ 'fas fa-hashtag' => __( 'hashtag', 'wpvr' ),
489
+ 'fas fa-hdd' => __( 'hdd', 'wpvr' ),
490
+ 'far fa-hdd' => __( 'hdd', 'wpvr' ),
491
+ 'fas fa-heading' => __( 'heading', 'wpvr' ),
492
+ 'fas fa-headphones' => __( 'headphones', 'wpvr' ),
493
+ 'fas fa-heart' => __( 'heart', 'wpvr' ),
494
+ 'far fa-heart' => __( 'heart', 'wpvr' ),
495
+ 'fas fa-heartbeat' => __( 'heartbeat', 'wpvr' ),
496
+ 'fab fa-hips' => __( 'hips', 'wpvr' ),
497
+ 'fab fa-hire-a-helper' => __( 'hire-a-helper', 'wpvr' ),
498
+ 'fas fa-history' => __( 'history', 'wpvr' ),
499
+ 'fas fa-hockey-puck' => __( 'hockey-puck', 'wpvr' ),
500
+ 'fas fa-home' => __( 'home', 'wpvr' ),
501
+ 'fab fa-hooli' => __( 'hooli', 'wpvr' ),
502
+ 'fas fa-hospital' => __( 'hospital', 'wpvr' ),
503
+ 'far fa-hospital' => __( 'hospital', 'wpvr' ),
504
+ 'fas fa-hospital-alt' => __( 'hospital-alt', 'wpvr' ),
505
+ 'fas fa-hospital-symbol' => __( 'hospital-symbol', 'wpvr' ),
506
+ 'fab fa-hotjar' => __( 'hotjar', 'wpvr' ),
507
+ 'fas fa-hourglass' => __( 'hourglass', 'wpvr' ),
508
+ 'far fa-hourglass' => __( 'hourglass', 'wpvr' ),
509
+ 'fas fa-hourglass-end' => __( 'hourglass-end', 'wpvr' ),
510
+ 'fas fa-hourglass-half' => __( 'hourglass-half', 'wpvr' ),
511
+ 'fas fa-hourglass-start' => __( 'hourglass-start', 'wpvr' ),
512
+ 'fab fa-houzz' => __( 'houzz', 'wpvr' ),
513
+ 'fab fa-html5' => __( 'html5', 'wpvr' ),
514
+ 'fab fa-hubspot' => __( 'hubspot', 'wpvr' ),
515
+ 'fas fa-i-cursor' => __( 'i-cursor', 'wpvr' ),
516
+ 'fas fa-id-badge' => __( 'id-badge', 'wpvr' ),
517
+ 'far fa-id-badge' => __( 'id-badge', 'wpvr' ),
518
+ 'fas fa-id-card' => __( 'id-card', 'wpvr' ),
519
+ 'far fa-id-card' => __( 'id-card', 'wpvr' ),
520
+ 'fas fa-id-card-alt' => __( 'id-card-alt', 'wpvr' ),
521
+ 'fas fa-image' => __( 'image', 'wpvr' ),
522
+ 'far fa-image' => __( 'image', 'wpvr' ),
523
+ 'fas fa-images' => __( 'images', 'wpvr' ),
524
+ 'far fa-images' => __( 'images', 'wpvr' ),
525
+ 'fab fa-imdb' => __( 'imdb', 'wpvr' ),
526
+ 'fas fa-inbox' => __( 'inbox', 'wpvr' ),
527
+ 'fas fa-indent' => __( 'indent', 'wpvr' ),
528
+ 'fas fa-industry' => __( 'industry', 'wpvr' ),
529
+ 'fas fa-info' => __( 'info', 'wpvr' ),
530
+ 'fas fa-info-circle' => __( 'info-circle', 'wpvr' ),
531
+ 'fab fa-instagram' => __( 'instagram', 'wpvr' ),
532
+ 'fab fa-internet-explorer' => __( 'internet-explorer', 'wpvr' ),
533
+ 'fab fa-ioxhost' => __( 'ioxhost', 'wpvr' ),
534
+ 'fas fa-italic' => __( 'italic', 'wpvr' ),
535
+ 'fab fa-itunes' => __( 'itunes', 'wpvr' ),
536
+ 'fab fa-itunes-note' => __( 'itunes-note', 'wpvr' ),
537
+ 'fab fa-java' => __( 'java', 'wpvr' ),
538
+ 'fab fa-jenkins' => __( 'jenkins', 'wpvr' ),
539
+ 'fab fa-joget' => __( 'joget', 'wpvr' ),
540
+ 'fab fa-joomla' => __( 'joomla', 'wpvr' ),
541
+ 'fab fa-js' => __( 'js', 'wpvr' ),
542
+ 'fab fa-js-square' => __( 'js-square', 'wpvr' ),
543
+ 'fab fa-jsfiddle' => __( 'jsfiddle', 'wpvr' ),
544
+ 'fas fa-key' => __( 'key', 'wpvr' ),
545
+ 'fas fa-keyboard' => __( 'keyboard', 'wpvr' ),
546
+ 'far fa-keyboard' => __( 'keyboard', 'wpvr' ),
547
+ 'fab fa-keycdn' => __( 'keycdn', 'wpvr' ),
548
+ 'fab fa-kickstarter' => __( 'kickstarter', 'wpvr' ),
549
+ 'fab fa-kickstarter-k' => __( 'kickstarter-k', 'wpvr' ),
550
+ 'fab fa-korvue' => __( 'korvue', 'wpvr' ),
551
+ 'fas fa-language' => __( 'language', 'wpvr' ),
552
+ 'fas fa-laptop' => __( 'laptop', 'wpvr' ),
553
+ 'fab fa-laravel' => __( 'laravel', 'wpvr' ),
554
+ 'fab fa-lastfm' => __( 'lastfm', 'wpvr' ),
555
+ 'fab fa-lastfm-square' => __( 'lastfm-square', 'wpvr' ),
556
+ 'fas fa-leaf' => __( 'leaf', 'wpvr' ),
557
+ 'fab fa-leanpub' => __( 'leanpub', 'wpvr' ),
558
+ 'fas fa-lemon' => __( 'lemon', 'wpvr' ),
559
+ 'far fa-lemon' => __( 'lemon', 'wpvr' ),
560
+ 'fab fa-less' => __( 'less', 'wpvr' ),
561
+ 'fas fa-level-down-alt' => __( 'level-down-alt', 'wpvr' ),
562
+ 'fas fa-level-up-alt' => __( 'level-up-alt', 'wpvr' ),
563
+ 'fas fa-life-ring' => __( 'life-ring', 'wpvr' ),
564
+ 'far fa-life-ring' => __( 'life-ring', 'wpvr' ),
565
+ 'fas fa-lightbulb' => __( 'lightbulb', 'wpvr' ),
566
+ 'far fa-lightbulb' => __( 'lightbulb', 'wpvr' ),
567
+ 'fab fa-line' => __( 'line', 'wpvr' ),
568
+ 'fas fa-link' => __( 'link', 'wpvr' ),
569
+ 'fab fa-linkedin' => __( 'linkedin', 'wpvr' ),
570
+ 'fab fa-linkedin-in' => __( 'linkedin-in', 'wpvr' ),
571
+ 'fab fa-linode' => __( 'linode', 'wpvr' ),
572
+ 'fab fa-linux' => __( 'linux', 'wpvr' ),
573
+ 'fas fa-lira-sign' => __( 'lira-sign', 'wpvr' ),
574
+ 'fas fa-list' => __( 'list', 'wpvr' ),
575
+ 'fas fa-list-alt' => __( 'list-alt', 'wpvr' ),
576
+ 'far fa-list-alt' => __( 'list-alt', 'wpvr' ),
577
+ 'fas fa-list-ol' => __( 'list-ol', 'wpvr' ),
578
+ 'fas fa-list-ul' => __( 'list-ul', 'wpvr' ),
579
+ 'fas fa-location-arrow' => __( 'location-arrow', 'wpvr' ),
580
+ 'fas fa-lock' => __( 'lock', 'wpvr' ),
581
+ 'fas fa-lock-open' => __( 'lock-open', 'wpvr' ),
582
+ 'fas fa-long-arrow-alt-down' => __( 'long-arrow-alt-down', 'wpvr' ),
583
+ 'fas fa-long-arrow-alt-left' => __( 'long-arrow-alt-left', 'wpvr' ),
584
+ 'fas fa-long-arrow-alt-right' => __( 'long-arrow-alt-right', 'wpvr' ),
585
+ 'fas fa-long-arrow-alt-up' => __( 'long-arrow-alt-up', 'wpvr' ),
586
+ 'fas fa-low-vision' => __( 'low-vision', 'wpvr' ),
587
+ 'fab fa-lyft' => __( 'lyft', 'wpvr' ),
588
+ 'fab fa-magento' => __( 'magento', 'wpvr' ),
589
+ 'fas fa-magic' => __( 'magic', 'wpvr' ),
590
+ 'fas fa-magnet' => __( 'magnet', 'wpvr' ),
591
+ 'fas fa-male' => __( 'male', 'wpvr' ),
592
+ 'fas fa-map' => __( 'map', 'wpvr' ),
593
+ 'far fa-map' => __( 'map', 'wpvr' ),
594
+ 'fas fa-map-marker' => __( 'map-marker', 'wpvr' ),
595
+ 'fas fa-map-marker-alt' => __( 'map-marker-alt', 'wpvr' ),
596
+ 'fas fa-map-pin' => __( 'map-pin', 'wpvr' ),
597
+ 'fas fa-map-signs' => __( 'map-signs', 'wpvr' ),
598
+ 'fas fa-mars' => __( 'mars', 'wpvr' ),
599
+ 'fas fa-mars-double' => __( 'mars-double', 'wpvr' ),
600
+ 'fas fa-mars-stroke' => __( 'mars-stroke', 'wpvr' ),
601
+ 'fas fa-mars-stroke-h' => __( 'mars-stroke-h', 'wpvr' ),
602
+ 'fas fa-mars-stroke-v' => __( 'mars-stroke-v', 'wpvr' ),
603
+ 'fab fa-maxcdn' => __( 'maxcdn', 'wpvr' ),
604
+ 'fab fa-medapps' => __( 'medapps', 'wpvr' ),
605
+ 'fab fa-medium' => __( 'medium', 'wpvr' ),
606
+ 'fab fa-medium-m' => __( 'medium-m', 'wpvr' ),
607
+ 'fas fa-medkit' => __( 'medkit', 'wpvr' ),
608
+ 'fab fa-medrt' => __( 'medrt', 'wpvr' ),
609
+ 'fab fa-meetup' => __( 'meetup', 'wpvr' ),
610
+ 'fas fa-meh' => __( 'meh', 'wpvr' ),
611
+ 'far fa-meh' => __( 'meh', 'wpvr' ),
612
+ 'fas fa-mercury' => __( 'mercury', 'wpvr' ),
613
+ 'fas fa-microchip' => __( 'microchip', 'wpvr' ),
614
+ 'fas fa-microphone' => __( 'microphone', 'wpvr' ),
615
+ 'fas fa-microphone-slash' => __( 'microphone-slash', 'wpvr' ),
616
+ 'fab fa-microsoft' => __( 'microsoft', 'wpvr' ),
617
+ 'fas fa-minus' => __( 'minus', 'wpvr' ),
618
+ 'fas fa-minus-circle' => __( 'minus-circle', 'wpvr' ),
619
+ 'fas fa-minus-square' => __( 'minus-square', 'wpvr' ),
620
+ 'far fa-minus-square' => __( 'minus-square', 'wpvr' ),
621
+ 'fab fa-mix' => __( 'mix', 'wpvr' ),
622
+ 'fab fa-mixcloud' => __( 'mixcloud', 'wpvr' ),
623
+ 'fab fa-mizuni' => __( 'mizuni', 'wpvr' ),
624
+ 'fas fa-mobile' => __( 'mobile', 'wpvr' ),
625
+ 'fas fa-mobile-alt' => __( 'mobile-alt', 'wpvr' ),
626
+ 'fab fa-modx' => __( 'modx', 'wpvr' ),
627
+ 'fab fa-monero' => __( 'monero', 'wpvr' ),
628
+ 'fas fa-money-bill-alt' => __( 'money-bill-alt', 'wpvr' ),
629
+ 'far fa-money-bill-alt' => __( 'money-bill-alt', 'wpvr' ),
630
+ 'fas fa-moon' => __( 'moon', 'wpvr' ),
631
+ 'far fa-moon' => __( 'moon', 'wpvr' ),
632
+ 'fas fa-motorcycle' => __( 'motorcycle', 'wpvr' ),
633
+ 'fas fa-mouse-pointer' => __( 'mouse-pointer', 'wpvr' ),
634
+ 'fas fa-music' => __( 'music', 'wpvr' ),
635
+ 'fab fa-napster' => __( 'napster', 'wpvr' ),
636
+ 'fas fa-neuter' => __( 'neuter', 'wpvr' ),
637
+ 'fas fa-newspaper' => __( 'newspaper', 'wpvr' ),
638
+ 'far fa-newspaper' => __( 'newspaper', 'wpvr' ),
639
+ 'fab fa-nintendo-switch' => __( 'nintendo-switch', 'wpvr' ),
640
+ 'fab fa-node' => __( 'node', 'wpvr' ),
641
+ 'fab fa-node-js' => __( 'node-js', 'wpvr' ),
642
+ 'fas fa-notes-medical' => __( 'notes-medical', 'wpvr' ),
643
+ 'fab fa-npm' => __( 'npm', 'wpvr' ),
644
+ 'fab fa-ns8' => __( 'ns8', 'wpvr' ),
645
+ 'fab fa-nutritionix' => __( 'nutritionix', 'wpvr' ),
646
+ 'fas fa-object-group' => __( 'object-group', 'wpvr' ),
647
+ 'far fa-object-group' => __( 'object-group', 'wpvr' ),
648
+ 'fas fa-object-ungroup' => __( 'object-ungroup', 'wpvr' ),
649
+ 'far fa-object-ungroup' => __( 'object-ungroup', 'wpvr' ),
650
+ 'fab fa-odnoklassniki' => __( 'odnoklassniki', 'wpvr' ),
651
+ 'fab fa-odnoklassniki-square' => __( 'odnoklassniki-square', 'wpvr' ),
652
+ 'fab fa-opencart' => __( 'opencart', 'wpvr' ),
653
+ 'fab fa-openid' => __( 'openid', 'wpvr' ),
654
+ 'fab fa-opera' => __( 'opera', 'wpvr' ),
655
+ 'fab fa-optin-monster' => __( 'optin-monster', 'wpvr' ),
656
+ 'fab fa-osi' => __( 'osi', 'wpvr' ),
657
+ 'fas fa-outdent' => __( 'outdent', 'wpvr' ),
658
+ 'fab fa-page4' => __( 'page4', 'wpvr' ),
659
+ 'fab fa-pagelines' => __( 'pagelines', 'wpvr' ),
660
+ 'fas fa-paint-brush' => __( 'paint-brush', 'wpvr' ),
661
+ 'fab fa-palfed' => __( 'palfed', 'wpvr' ),
662
+ 'fas fa-pallet' => __( 'pallet', 'wpvr' ),
663
+ 'fas fa-paper-plane' => __( 'paper-plane', 'wpvr' ),
664
+ 'far fa-paper-plane' => __( 'paper-plane', 'wpvr' ),
665
+ 'fas fa-paperclip' => __( 'paperclip', 'wpvr' ),
666
+ 'fas fa-parachute-box' => __( 'parachute-box', 'wpvr' ),
667
+ 'fas fa-paragraph' => __( 'paragraph', 'wpvr' ),
668
+ 'fas fa-paste' => __( 'paste', 'wpvr' ),
669
+ 'fab fa-patreon' => __( 'patreon', 'wpvr' ),
670
+ 'fas fa-pause' => __( 'pause', 'wpvr' ),
671
+ 'fas fa-pause-circle' => __( 'pause-circle', 'wpvr' ),
672
+ 'far fa-pause-circle' => __( 'pause-circle', 'wpvr' ),
673
+ 'fas fa-paw' => __( 'paw', 'wpvr' ),
674
+ 'fab fa-paypal' => __( 'paypal', 'wpvr' ),
675
+ 'fas fa-pen-square' => __( 'pen-square', 'wpvr' ),
676
+ 'fas fa-pencil-alt' => __( 'pencil-alt', 'wpvr' ),
677
+ 'fas fa-people-carry' => __( 'people-carry', 'wpvr' ),
678
+ 'fas fa-percent' => __( 'percent', 'wpvr' ),
679
+ 'fab fa-periscope' => __( 'periscope', 'wpvr' ),
680
+ 'fab fa-phabricator' => __( 'phabricator', 'wpvr' ),
681
+ 'fab fa-phoenix-framework' => __( 'phoenix-framework', 'wpvr' ),
682
+ 'fas fa-phone' => __( 'phone', 'wpvr' ),
683
+ 'fas fa-phone-slash' => __( 'phone-slash', 'wpvr' ),
684
+ 'fas fa-phone-square' => __( 'phone-square', 'wpvr' ),
685
+ 'fas fa-phone-volume' => __( 'phone-volume', 'wpvr' ),
686
+ 'fab fa-php' => __( 'php', 'wpvr' ),
687
+ 'fab fa-pied-piper' => __( 'pied-piper', 'wpvr' ),
688
+ 'fab fa-pied-piper-alt' => __( 'pied-piper-alt', 'wpvr' ),
689
+ 'fab fa-pied-piper-hat' => __( 'pied-piper-hat', 'wpvr' ),
690
+ 'fab fa-pied-piper-pp' => __( 'pied-piper-pp', 'wpvr' ),
691
+ 'fas fa-piggy-bank' => __( 'piggy-bank', 'wpvr' ),
692
+ 'fas fa-pills' => __( 'pills', 'wpvr' ),
693
+ 'fab fa-pinterest' => __( 'pinterest', 'wpvr' ),
694
+ 'fab fa-pinterest-p' => __( 'pinterest-p', 'wpvr' ),
695
+ 'fab fa-pinterest-square' => __( 'pinterest-square', 'wpvr' ),
696
+ 'fas fa-plane' => __( 'plane', 'wpvr' ),
697
+ 'fas fa-play' => __( 'play', 'wpvr' ),
698
+ 'fas fa-play-circle' => __( 'play-circle', 'wpvr' ),
699
+ 'far fa-play-circle' => __( 'play-circle', 'wpvr' ),
700
+ 'fab fa-playstation' => __( 'playstation', 'wpvr' ),
701
+ 'fas fa-plug' => __( 'plug', 'wpvr' ),
702
+ 'fas fa-plus' => __( 'plus', 'wpvr' ),
703
+ 'fas fa-plus-circle' => __( 'plus-circle', 'wpvr' ),
704
+ 'fas fa-plus-square' => __( 'plus-square', 'wpvr' ),
705
+ 'far fa-plus-square' => __( 'plus-square', 'wpvr' ),
706
+ 'fas fa-podcast' => __( 'podcast', 'wpvr' ),
707
+ 'fas fa-poo' => __( 'poo', 'wpvr' ),
708
+ 'fas fa-pound-sign' => __( 'pound-sign', 'wpvr' ),
709
+ 'fas fa-power-off' => __( 'power-off', 'wpvr' ),
710
+ 'fas fa-prescription-bottle' => __( 'prescription-bottle', 'wpvr' ),
711
+ 'fas fa-prescription-bottle-alt' => __( 'prescription-bottle-alt', 'wpvr' ),
712
+ 'fas fa-print' => __( 'print', 'wpvr' ),
713
+ 'fas fa-procedures' => __( 'procedures', 'wpvr' ),
714
+ 'fab fa-product-hunt' => __( 'product-hunt', 'wpvr' ),
715
+ 'fab fa-pushed' => __( 'pushed', 'wpvr' ),
716
+ 'fas fa-puzzle-piece' => __( 'puzzle-piece', 'wpvr' ),
717
+ 'fab fa-python' => __( 'python', 'wpvr' ),
718
+ 'fab fa-qq' => __( 'qq', 'wpvr' ),
719
+ 'fas fa-qrcode' => __( 'qrcode', 'wpvr' ),
720
+ 'fas fa-question' => __( 'question', 'wpvr' ),
721
+ 'fas fa-question-circle' => __( 'question-circle', 'wpvr' ),
722
+ 'far fa-question-circle' => __( 'question-circle', 'wpvr' ),
723
+ 'fas fa-quidditch' => __( 'quidditch', 'wpvr' ),
724
+ 'fab fa-quinscape' => __( 'quinscape', 'wpvr' ),
725
+ 'fab fa-quora' => __( 'quora', 'wpvr' ),
726
+ 'fas fa-quote-left' => __( 'quote-left', 'wpvr' ),
727
+ 'fas fa-quote-right' => __( 'quote-right', 'wpvr' ),
728
+ 'fas fa-random' => __( 'random', 'wpvr' ),
729
+ 'fab fa-ravelry' => __( 'ravelry', 'wpvr' ),
730
+ 'fab fa-react' => __( 'react', 'wpvr' ),
731
+ 'fab fa-readme' => __( 'readme', 'wpvr' ),
732
+ 'fab fa-rebel' => __( 'rebel', 'wpvr' ),
733
+ 'fas fa-recycle' => __( 'recycle', 'wpvr' ),
734
+ 'fab fa-red-river' => __( 'red-river', 'wpvr' ),
735
+ 'fab fa-reddit' => __( 'reddit', 'wpvr' ),
736
+ 'fab fa-reddit-alien' => __( 'reddit-alien', 'wpvr' ),
737
+ 'fab fa-reddit-square' => __( 'reddit-square', 'wpvr' ),
738
+ 'fas fa-redo' => __( 'redo', 'wpvr' ),
739
+ 'fas fa-redo-alt' => __( 'redo-alt', 'wpvr' ),
740
+ 'fas fa-registered' => __( 'registered', 'wpvr' ),
741
+ 'far fa-registered' => __( 'registered', 'wpvr' ),
742
+ 'fab fa-rendact' => __( 'rendact', 'wpvr' ),
743
+ 'fab fa-renren' => __( 'renren', 'wpvr' ),
744
+ 'fas fa-reply' => __( 'reply', 'wpvr' ),
745
+ 'fas fa-reply-all' => __( 'reply-all', 'wpvr' ),
746
+ 'fab fa-replyd' => __( 'replyd', 'wpvr' ),
747
+ 'fab fa-resolving' => __( 'resolving', 'wpvr' ),
748
+ 'fas fa-retweet' => __( 'retweet', 'wpvr' ),
749
+ 'fas fa-ribbon' => __( 'ribbon', 'wpvr' ),
750
+ 'fas fa-road' => __( 'road', 'wpvr' ),
751
+ 'fas fa-rocket' => __( 'rocket', 'wpvr' ),
752
+ 'fab fa-rocketchat' => __( 'rocketchat', 'wpvr' ),
753
+ 'fab fa-rockrms' => __( 'rockrms', 'wpvr' ),
754
+ 'fas fa-rss' => __( 'rss', 'wpvr' ),
755
+ 'fas fa-rss-square' => __( 'rss-square', 'wpvr' ),
756
+ 'fas fa-ruble-sign' => __( 'ruble-sign', 'wpvr' ),
757
+ 'fas fa-rupee-sign' => __( 'rupee-sign', 'wpvr' ),
758
+ 'fab fa-safari' => __( 'safari', 'wpvr' ),
759
+ 'fab fa-sass' => __( 'sass', 'wpvr' ),
760
+ 'fas fa-save' => __( 'save', 'wpvr' ),
761
+ 'far fa-save' => __( 'save', 'wpvr' ),
762
+ 'fab fa-schlix' => __( 'schlix', 'wpvr' ),
763
+ 'fab fa-scribd' => __( 'scribd', 'wpvr' ),
764
+ 'fas fa-search' => __( 'search', 'wpvr' ),
765
+ 'fas fa-search-minus' => __( 'search-minus', 'wpvr' ),
766
+ 'fas fa-search-plus' => __( 'search-plus', 'wpvr' ),
767
+ 'fab fa-searchengin' => __( 'searchengin', 'wpvr' ),
768
+ 'fas fa-seedling' => __( 'seedling', 'wpvr' ),
769
+ 'fab fa-sellcast' => __( 'sellcast', 'wpvr' ),
770
+ 'fab fa-sellsy' => __( 'sellsy', 'wpvr' ),
771
+ 'fas fa-server' => __( 'server', 'wpvr' ),
772
+ 'fab fa-servicestack' => __( 'servicestack', 'wpvr' ),
773
+ 'fas fa-share' => __( 'share', 'wpvr' ),
774
+ 'fas fa-share-alt' => __( 'share-alt', 'wpvr' ),
775
+ 'fas fa-share-alt-square' => __( 'share-alt-square', 'wpvr' ),
776
+ 'fas fa-share-square' => __( 'share-square', 'wpvr' ),
777
+ 'far fa-share-square' => __( 'share-square', 'wpvr' ),
778
+ 'fas fa-shekel-sign' => __( 'shekel-sign', 'wpvr' ),
779
+ 'fas fa-shield-alt' => __( 'shield-alt', 'wpvr' ),
780
+ 'fas fa-ship' => __( 'ship', 'wpvr' ),
781
+ 'fas fa-shipping-fast' => __( 'shipping-fast', 'wpvr' ),
782
+ 'fab fa-shirtsinbulk' => __( 'shirtsinbulk', 'wpvr' ),
783
+ 'fas fa-shopping-bag' => __( 'shopping-bag', 'wpvr' ),
784
+ 'fas fa-shopping-basket' => __( 'shopping-basket', 'wpvr' ),
785
+ 'fas fa-shopping-cart' => __( 'shopping-cart', 'wpvr' ),
786
+ 'fas fa-shower' => __( 'shower', 'wpvr' ),
787
+ 'fas fa-sign' => __( 'sign', 'wpvr' ),
788
+ 'fas fa-sign-in-alt' => __( 'sign-in-alt', 'wpvr' ),
789
+ 'fas fa-sign-language' => __( 'sign-language', 'wpvr' ),
790
+ 'fas fa-sign-out-alt' => __( 'sign-out-alt', 'wpvr' ),
791
+ 'fas fa-signal' => __( 'signal', 'wpvr' ),
792
+ 'fab fa-simplybuilt' => __( 'simplybuilt', 'wpvr' ),
793
+ 'fab fa-sistrix' => __( 'sistrix', 'wpvr' ),
794
+ 'fas fa-sitemap' => __( 'sitemap', 'wpvr' ),
795
+ 'fab fa-skyatlas' => __( 'skyatlas', 'wpvr' ),
796
+ 'fab fa-skype' => __( 'skype', 'wpvr' ),
797
+ 'fab fa-slack' => __( 'slack', 'wpvr' ),
798
+ 'fab fa-slack-hash' => __( 'slack-hash', 'wpvr' ),
799
+ 'fas fa-sliders-h' => __( 'sliders-h', 'wpvr' ),
800
+ 'fab fa-slideshare' => __( 'slideshare', 'wpvr' ),
801
+ 'fas fa-smile' => __( 'smile', 'wpvr' ),
802
+ 'far fa-smile' => __( 'smile', 'wpvr' ),
803
+ 'fas fa-smoking' => __( 'smoking', 'wpvr' ),
804
+ 'fab fa-snapchat' => __( 'snapchat', 'wpvr' ),
805
+ 'fab fa-snapchat-ghost' => __( 'snapchat-ghost', 'wpvr' ),
806
+ 'fab fa-snapchat-square' => __( 'snapchat-square', 'wpvr' ),
807
+ 'fas fa-snowflake' => __( 'snowflake', 'wpvr' ),
808
+ 'far fa-snowflake' => __( 'snowflake', 'wpvr' ),
809
+ 'fas fa-sort' => __( 'sort', 'wpvr' ),
810
+ 'fas fa-sort-alpha-down' => __( 'sort-alpha-down', 'wpvr' ),
811
+ 'fas fa-sort-alpha-up' => __( 'sort-alpha-up', 'wpvr' ),
812
+ 'fas fa-sort-amount-down' => __( 'sort-amount-down', 'wpvr' ),
813
+ 'fas fa-sort-amount-up' => __( 'sort-amount-up', 'wpvr' ),
814
+ 'fas fa-sort-down' => __( 'sort-down', 'wpvr' ),
815
+ 'fas fa-sort-numeric-down' => __( 'sort-numeric-down', 'wpvr' ),
816
+ 'fas fa-sort-numeric-up' => __( 'sort-numeric-up', 'wpvr' ),
817
+ 'fas fa-sort-up' => __( 'sort-up', 'wpvr' ),
818
+ 'fab fa-soundcloud' => __( 'soundcloud', 'wpvr' ),
819
+ 'fas fa-space-shuttle' => __( 'space-shuttle', 'wpvr' ),
820
+ 'fab fa-speakap' => __( 'speakap', 'wpvr' ),
821
+ 'fas fa-spinner' => __( 'spinner', 'wpvr' ),
822
+ 'fab fa-spotify' => __( 'spotify', 'wpvr' ),
823
+ 'fas fa-square' => __( 'square', 'wpvr' ),
824
+ 'far fa-square' => __( 'square', 'wpvr' ),
825
+ 'fas fa-square-full' => __( 'square-full', 'wpvr' ),
826
+ 'fab fa-stack-exchange' => __( 'stack-exchange', 'wpvr' ),
827
+ 'fab fa-stack-overflow' => __( 'stack-overflow', 'wpvr' ),
828
+ 'fas fa-star' => __( 'star', 'wpvr' ),
829
+ 'far fa-star' => __( 'star', 'wpvr' ),
830
+ 'fas fa-star-half' => __( 'star-half', 'wpvr' ),
831
+ 'far fa-star-half' => __( 'star-half', 'wpvr' ),
832
+ 'fab fa-staylinked' => __( 'staylinked', 'wpvr' ),
833
+ 'fab fa-steam' => __( 'steam', 'wpvr' ),
834
+ 'fab fa-steam-square' => __( 'steam-square', 'wpvr' ),
835
+ 'fab fa-steam-symbol' => __( 'steam-symbol', 'wpvr' ),
836
+ 'fas fa-step-backward' => __( 'step-backward', 'wpvr' ),
837
+ 'fas fa-step-forward' => __( 'step-forward', 'wpvr' ),
838
+ 'fas fa-stethoscope' => __( 'stethoscope', 'wpvr' ),
839
+ 'fab fa-sticker-mule' => __( 'sticker-mule', 'wpvr' ),
840
+ 'fas fa-sticky-note' => __( 'sticky-note', 'wpvr' ),
841
+ 'far fa-sticky-note' => __( 'sticky-note', 'wpvr' ),
842
+ 'fas fa-stop' => __( 'stop', 'wpvr' ),
843
+ 'fas fa-stop-circle' => __( 'stop-circle', 'wpvr' ),
844
+ 'far fa-stop-circle' => __( 'stop-circle', 'wpvr' ),
845
+ 'fas fa-stopwatch' => __( 'stopwatch', 'wpvr' ),
846
+ 'fab fa-strava' => __( 'strava', 'wpvr' ),
847
+ 'fas fa-street-view' => __( 'street-view', 'wpvr' ),
848
+ 'fas fa-strikethrough' => __( 'strikethrough', 'wpvr' ),
849
+ 'fab fa-stripe' => __( 'stripe', 'wpvr' ),
850
+ 'fab fa-stripe-s' => __( 'stripe-s', 'wpvr' ),
851
+ 'fab fa-studiovinari' => __( 'studiovinari', 'wpvr' ),
852
+ 'fab fa-stumbleupon' => __( 'stumbleupon', 'wpvr' ),
853
+ 'fab fa-stumbleupon-circle' => __( 'stumbleupon-circle', 'wpvr' ),
854
+ 'fas fa-subscript' => __( 'subscript', 'wpvr' ),
855
+ 'fas fa-subway' => __( 'subway', 'wpvr' ),
856
+ 'fas fa-suitcase' => __( 'suitcase', 'wpvr' ),
857
+ 'fas fa-sun' => __( 'sun', 'wpvr' ),
858
+ 'far fa-sun' => __( 'sun', 'wpvr' ),
859
+ 'fab fa-superpowers' => __( 'superpowers', 'wpvr' ),
860
+ 'fas fa-superscript' => __( 'superscript', 'wpvr' ),
861
+ 'fab fa-supple' => __( 'supple', 'wpvr' ),
862
+ 'fas fa-sync' => __( 'sync', 'wpvr' ),
863
+ 'fas fa-sync-alt' => __( 'sync-alt', 'wpvr' ),
864
+ 'fas fa-syringe' => __( 'syringe', 'wpvr' ),
865
+ 'fas fa-table' => __( 'table', 'wpvr' ),
866
+ 'fas fa-table-tennis' => __( 'table-tennis', 'wpvr' ),
867
+ 'fas fa-tablet' => __( 'tablet', 'wpvr' ),
868
+ 'fas fa-tablet-alt' => __( 'tablet-alt', 'wpvr' ),
869
+ 'fas fa-tablets' => __( 'tablets', 'wpvr' ),
870
+ 'fas fa-tachometer-alt' => __( 'tachometer-alt', 'wpvr' ),
871
+ 'fas fa-tag' => __( 'tag', 'wpvr' ),
872
+ 'fas fa-tags' => __( 'tags', 'wpvr' ),
873
+ 'fas fa-tape' => __( 'tape', 'wpvr' ),
874
+ 'fas fa-tasks' => __( 'tasks', 'wpvr' ),
875
+ 'fas fa-taxi' => __( 'taxi', 'wpvr' ),
876
+ 'fab fa-telegram' => __( 'telegram', 'wpvr' ),
877
+ 'fab fa-telegram-plane' => __( 'telegram-plane', 'wpvr' ),
878
+ 'fab fa-tencent-weibo' => __( 'tencent-weibo', 'wpvr' ),
879
+ 'fas fa-terminal' => __( 'terminal', 'wpvr' ),
880
+ 'fas fa-text-height' => __( 'text-height', 'wpvr' ),
881
+ 'fas fa-text-width' => __( 'text-width', 'wpvr' ),
882
+ 'fas fa-th' => __( 'th', 'wpvr' ),
883
+ 'fas fa-th-large' => __( 'th-large', 'wpvr' ),
884
+ 'fas fa-th-list' => __( 'th-list', 'wpvr' ),
885
+ 'fab fa-themeisle' => __( 'themeisle', 'wpvr' ),
886
+ 'fas fa-thermometer' => __( 'thermometer', 'wpvr' ),
887
+ 'fas fa-thermometer-empty' => __( 'thermometer-empty', 'wpvr' ),
888
+ 'fas fa-thermometer-full' => __( 'thermometer-full', 'wpvr' ),
889
+ 'fas fa-thermometer-half' => __( 'thermometer-half', 'wpvr' ),
890
+ 'fas fa-thermometer-quarter' => __( 'thermometer-quarter', 'wpvr' ),
891
+ 'fas fa-thermometer-three-quarters' => __( 'thermometer-three-quarters', 'wpvr' ),
892
+ 'fas fa-thumbs-down' => __( 'thumbs-down', 'wpvr' ),
893
+ 'far fa-thumbs-down' => __( 'thumbs-down', 'wpvr' ),
894
+ 'fas fa-thumbs-up' => __( 'thumbs-up', 'wpvr' ),
895
+ 'far fa-thumbs-up' => __( 'thumbs-up', 'wpvr' ),
896
+ 'fas fa-thumbtack' => __( 'thumbtack', 'wpvr' ),
897
+ 'fas fa-ticket-alt' => __( 'ticket-alt', 'wpvr' ),
898
+ 'fas fa-times' => __( 'times', 'wpvr' ),
899
+ 'fas fa-times-circle' => __( 'times-circle', 'wpvr' ),
900
+ 'far fa-times-circle' => __( 'times-circle', 'wpvr' ),
901
+ 'fas fa-tint' => __( 'tint', 'wpvr' ),
902
+ 'fas fa-toggle-off' => __( 'toggle-off', 'wpvr' ),
903
+ 'fas fa-toggle-on' => __( 'toggle-on', 'wpvr' ),
904
+ 'fas fa-trademark' => __( 'trademark', 'wpvr' ),
905
+ 'fas fa-train' => __( 'train', 'wpvr' ),
906
+ 'fas fa-transgender' => __( 'transgender', 'wpvr' ),
907
+ 'fas fa-transgender-alt' => __( 'transgender-alt', 'wpvr' ),
908
+ 'fas fa-trash' => __( 'trash', 'wpvr' ),
909
+ 'fas fa-trash-alt' => __( 'trash-alt', 'wpvr' ),
910
+ 'far fa-trash-alt' => __( 'trash-alt', 'wpvr' ),
911
+ 'fas fa-tree' => __( 'tree', 'wpvr' ),
912
+ 'fab fa-trello' => __( 'trello', 'wpvr' ),
913
+ 'fab fa-tripadvisor' => __( 'tripadvisor', 'wpvr' ),
914
+ 'fas fa-trophy' => __( 'trophy', 'wpvr' ),
915
+ 'fas fa-truck' => __( 'truck', 'wpvr' ),
916
+ 'fas fa-truck-loading' => __( 'truck-loading', 'wpvr' ),
917
+ 'fas fa-truck-moving' => __( 'truck-moving', 'wpvr' ),
918
+ 'fas fa-tty' => __( 'tty', 'wpvr' ),
919
+ 'fab fa-tumblr' => __( 'tumblr', 'wpvr' ),
920
+ 'fab fa-tumblr-square' => __( 'tumblr-square', 'wpvr' ),
921
+ 'fas fa-tv' => __( 'tv', 'wpvr' ),
922
+ 'fab fa-twitch' => __( 'twitch', 'wpvr' ),
923
+ 'fab fa-twitter' => __( 'twitter', 'wpvr' ),
924
+ 'fab fa-twitter-square' => __( 'twitter-square', 'wpvr' ),
925
+ 'fab fa-typo3' => __( 'typo3', 'wpvr' ),
926
+ 'fab fa-uber' => __( 'uber', 'wpvr' ),
927
+ 'fab fa-uikit' => __( 'uikit', 'wpvr' ),
928
+ 'fas fa-umbrella' => __( 'umbrella', 'wpvr' ),
929
+ 'fas fa-underline' => __( 'underline', 'wpvr' ),
930
+ 'fas fa-undo' => __( 'undo', 'wpvr' ),
931
+ 'fas fa-undo-alt' => __( 'undo-alt', 'wpvr' ),
932
+ 'fab fa-uniregistry' => __( 'uniregistry', 'wpvr' ),
933
+ 'fas fa-universal-access' => __( 'universal-access', 'wpvr' ),
934
+ 'fas fa-university' => __( 'university', 'wpvr' ),
935
+ 'fas fa-unlink' => __( 'unlink', 'wpvr' ),
936
+ 'fas fa-unlock' => __( 'unlock', 'wpvr' ),
937
+ 'fas fa-unlock-alt' => __( 'unlock-alt', 'wpvr' ),
938
+ 'fab fa-untappd' => __( 'untappd', 'wpvr' ),
939
+ 'fas fa-upload' => __( 'upload', 'wpvr' ),
940
+ 'fab fa-usb' => __( 'usb', 'wpvr' ),
941
+ 'fas fa-user' => __( 'user', 'wpvr' ),
942
+ 'far fa-user' => __( 'user', 'wpvr' ),
943
+ 'fas fa-user-circle' => __( 'user-circle', 'wpvr' ),
944
+ 'far fa-user-circle' => __( 'user-circle', 'wpvr' ),
945
+ 'fas fa-user-md' => __( 'user-md', 'wpvr' ),
946
+ 'fas fa-user-plus' => __( 'user-plus', 'wpvr' ),
947
+ 'fas fa-user-secret' => __( 'user-secret', 'wpvr' ),
948
+ 'fas fa-user-times' => __( 'user-times', 'wpvr' ),
949
+ 'fas fa-users' => __( 'users', 'wpvr' ),
950
+ 'fab fa-ussunnah' => __( 'ussunnah', 'wpvr' ),
951
+ 'fas fa-utensil-spoon' => __( 'utensil-spoon', 'wpvr' ),
952
+ 'fas fa-utensils' => __( 'utensils', 'wpvr' ),
953
+ 'fab fa-vaadin' => __( 'vaadin', 'wpvr' ),
954
+ 'fas fa-venus' => __( 'venus', 'wpvr' ),
955
+ 'fas fa-venus-double' => __( 'venus-double', 'wpvr' ),
956
+ 'fas fa-venus-mars' => __( 'venus-mars', 'wpvr' ),
957
+ 'fab fa-viacoin' => __( 'viacoin', 'wpvr' ),
958
+ 'fab fa-viadeo' => __( 'viadeo', 'wpvr' ),
959
+ 'fab fa-viadeo-square' => __( 'viadeo-square', 'wpvr' ),
960
+ 'fas fa-vial' => __( 'vial', 'wpvr' ),
961
+ 'fas fa-vials' => __( 'vials', 'wpvr' ),
962
+ 'fab fa-viber' => __( 'viber', 'wpvr' ),
963
+ 'fas fa-video' => __( 'video', 'wpvr' ),
964
+ 'fas fa-video-slash' => __( 'video-slash', 'wpvr' ),
965
+ 'fab fa-vimeo' => __( 'vimeo', 'wpvr' ),
966
+ 'fab fa-vimeo-square' => __( 'vimeo-square', 'wpvr' ),
967
+ 'fab fa-vimeo-v' => __( 'vimeo-v', 'wpvr' ),
968
+ 'fab fa-vine' => __( 'vine', 'wpvr' ),
969
+ 'fab fa-vk' => __( 'vk', 'wpvr' ),
970
+ 'fab fa-vnv' => __( 'vnv', 'wpvr' ),
971
+ 'fas fa-volleyball-ball' => __( 'volleyball-ball', 'wpvr' ),
972
+ 'fas fa-volume-down' => __( 'volume-down', 'wpvr' ),
973
+ 'fas fa-volume-off' => __( 'volume-off', 'wpvr' ),
974
+ 'fas fa-volume-up' => __( 'volume-up', 'wpvr' ),
975
+ 'fab fa-vuejs' => __( 'vuejs', 'wpvr' ),
976
+ 'fas fa-warehouse' => __( 'warehouse', 'wpvr' ),
977
+ 'fab fa-weibo' => __( 'weibo', 'wpvr' ),
978
+ 'fas fa-weight' => __( 'weight', 'wpvr' ),
979
+ 'fab fa-weixin' => __( 'weixin', 'wpvr' ),
980
+ 'fab fa-whatsapp' => __( 'whatsapp', 'wpvr' ),
981
+ 'fab fa-whatsapp-square' => __( 'whatsapp-square', 'wpvr' ),
982
+ 'fas fa-wheelchair' => __( 'wheelchair', 'wpvr' ),
983
+ 'fab fa-whmcs' => __( 'whmcs', 'wpvr' ),
984
+ 'fas fa-wifi' => __( 'wifi', 'wpvr' ),
985
+ 'fab fa-wikipedia-w' => __( 'wikipedia-w', 'wpvr' ),
986
+ 'fas fa-window-close' => __( 'window-close', 'wpvr' ),
987
+ 'far fa-window-close' => __( 'window-close', 'wpvr' ),
988
+ 'fas fa-window-maximize' => __( 'window-maximize', 'wpvr' ),
989
+ 'far fa-window-maximize' => __( 'window-maximize', 'wpvr' ),
990
+ 'fas fa-window-minimize' => __( 'window-minimize', 'wpvr' ),
991
+ 'far fa-window-minimize' => __( 'window-minimize', 'wpvr' ),
992
+ 'fas fa-window-restore' => __( 'window-restore', 'wpvr' ),
993
+ 'far fa-window-restore' => __( 'window-restore', 'wpvr' ),
994
+ 'fab fa-windows' => __( 'windows', 'wpvr' ),
995
+ 'fas fa-wine-glass' => __( 'wine-glass', 'wpvr' ),
996
+ 'fas fa-won-sign' => __( 'won-sign', 'wpvr' ),
997
+ 'fab fa-wordpress' => __( 'wordpress', 'wpvr' ),
998
+ 'fab fa-wordpress-simple' => __( 'wordpress-simple', 'wpvr' ),
999
+ 'fab fa-wpbeginner' => __( 'wpbeginner', 'wpvr' ),
1000
+ 'fab fa-wpexplorer' => __( 'wpexplorer', 'wpvr' ),
1001
+ 'fab fa-wpforms' => __( 'wpforms', 'wpvr' ),
1002
+ 'fas fa-wrench' => __( 'wrench', 'wpvr' ),
1003
+ 'fas fa-x-ray' => __( 'x-ray', 'wpvr' ),
1004
+ 'fab fa-xbox' => __( 'xbox', 'wpvr' ),
1005
+ 'fab fa-xing' => __( 'xing', 'wpvr' ),
1006
+ 'fab fa-xing-square' => __( 'xing-square', 'wpvr' ),
1007
+ 'fab fa-y-combinator' => __( 'y-combinator', 'wpvr' ),
1008
+ 'fab fa-yahoo' => __( 'yahoo', 'wpvr' ),
1009
+ 'fab fa-yandex' => __( 'yandex', 'wpvr' ),
1010
+ 'fab fa-yandex-international' => __( 'yandex-international', 'wpvr' ),
1011
+ 'fab fa-yelp' => __( 'yelp', 'wpvr' ),
1012
+ 'fas fa-yen-sign' => __( 'yen-sign', 'wpvr' ),
1013
+ 'fab fa-yoast' => __( 'yoast', 'wpvr' ),
1014
+ 'fab fa-youtube' => __( 'youtube', 'wpvr' ),
1015
+ 'fab fa-youtube-square' => __( 'youtube-square', 'wpvr' ),
1016
+ );
1017
+ }
1018
+ }
1019
+
admin/css/font-awesome.min.css CHANGED
File without changes
admin/css/iconpicker.ttf ADDED
Binary file
admin/css/iconpicker.woff ADDED
Binary file
admin/css/jquery.fonticonpicker.grey.min.css ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /* Grey Theme file for fontIconPicker {@link https://github.com/micc83/fontIconPicker} */
2
+ .fip-grey.icons-selector{font-size:16px}.fip-grey.icons-selector .selector{border:1px solid #EDEDED;background-color:#fff}.fip-grey.icons-selector .selector-button{background-color:#F4F4F4;border-left:1px solid #E1E1E1}.fip-grey.icons-selector .selector-button:hover{background-color:#f1f1f1}.fip-grey.icons-selector .selector-button:hover i{color:#999}.fip-grey.icons-selector .selector-button i{color:#aaa;text-shadow:0 1px 0 #FFF}.fip-grey.icons-selector .selected-icon i{color:#404040}.fip-grey.icons-selector .selector-popup{-moz-box-shadow:0 1px 1px rgba(0,0,0,.04);-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #E5E5E5}.fip-grey.icons-selector .selector-category select,.fip-grey.icons-selector .selector-search input[type=text]{border:1px solid #EDEDED;color:#404040;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;outline:0}.fip-grey.icons-selector input::-webkit-input-placeholder{color:#ddd}.fip-grey.icons-selector input:-moz-placeholder{color:#ddd}.fip-grey.icons-selector input::-moz-placeholder{color:#ddd}.fip-grey.icons-selector input:-ms-input-placeholder{color:#ddd!important}.fip-grey.icons-selector .selector-search i{color:#eee}.fip-grey.icons-selector .fip-icons-container{background-color:#fff;border:1px solid #EDEDED}.fip-grey.icons-selector .fip-icons-container .loading{color:#eee}.fip-grey.icons-selector .fip-box{border:1px solid #EFEFEF}.fip-grey.icons-selector .fip-box:hover{background-color:#f6f6f6}.fip-grey.icons-selector .selector-footer,.fip-grey.icons-selector .selector-footer i{color:#ddd}.fip-grey.icons-selector .selector-arrows i:hover{color:#777}.fip-grey.icons-selector span.current-icon,.fip-grey.icons-selector span.current-icon:hover{background-color:#2EA2CC;color:#fff;border:1px solid #298CBA}.fip-grey.icons-selector .icons-picker-error i:before{color:#eee}
admin/css/jquery.fonticonpicker.min.css ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /* fontIconPicker main CSS file {@link https://github.com/micc83/fontIconPicker} */
2
+ .icons-selector *{margin:0;padding:0;border:0;vertical-align:baseline;}.icons-selector,.icons-selector *,.icons-selector :after,.icons-selector :before,.icons-selector:after,.icons-selector:before{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.icons-selector{display:inline-block;vertical-align:middle;text-align:left}.icons-selector .selector{width:100px;height:40px}.icons-selector .selector-button{width:39px;height:100%;display:block;text-align:center;cursor:pointer;float:left}.icons-selector .selector-button i{line-height:38px;text-align:center}.icons-selector .selected-icon{display:block;width:60px;height:100%;float:left;text-align:center}.icons-selector .selected-icon i{line-height:40px;font-size:18px;cursor:default}.icons-selector .selector-popup{position:absolute;z-index:10000;background-color:#fefefe;padding:5px;height:auto;width:342px;margin-top:-1px}.icons-selector .selector-category select,.icons-selector .selector-search input[type=text]{border:0;line-height:20px;padding:10px 2.5%;width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin-bottom:5px;font-size:12px;display:block}.icons-selector .selector-category select{height:40px}.icons-selector .selector-category select option{padding:10px}.icons-selector input::-webkit-input-placeholder{text-transform:uppercase}.icons-selector input:-moz-placeholder{text-transform:uppercase}.icons-selector input::-moz-placeholder{text-transform:uppercase}.icons-selector input:-ms-input-placeholder{text-transform:uppercase}.icons-selector .selector-search{position:relative}.icons-selector .selector-search i{position:absolute;right:10px;top:7px}.icons-selector .fip-icons-container{width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:5px}.icons-selector .fip-icons-container .loading{font-size:24px;margin:0 auto;padding:20px 0;text-align:center;width:100%}.icons-selector .fip-box{display:inline-block;margin:2px;width:60px;line-height:42px;text-align:center;cursor:pointer;vertical-align:top;height:40px}.icons-selector .selector-footer{line-height:12px;padding:5px 5px 0;text-align:center}.icons-selector .selector-footer,.icons-selector .selector-footer i{font-size:14px}.icons-selector .selector-arrows{float:right}.icons-selector .selector-pages{font-size:11px;float:left}.icons-selector .selector-arrows i{cursor:pointer}.icons-selector .selector-footer em{font-style:italic}.icons-selector .icons-picker-error i:before{color:#eee}@font-face{font-family:iconpicker;src:url(iconpicker.eot?90190138);src:url(iconpicker.eot?90190138#iefix) format('embedded-opentype'),url(iconpicker.woff?90190138) format('woff'),url(iconpicker.ttf?90190138) format('truetype'),url(iconpicker.svg?90190138#iconpicker) format('svg');font-weight:400;font-style:normal}.icons-selector [class*=" fip-icon-"]:before,.icons-selector [class^=fip-icon-]:before{font-family:iconpicker;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em}.icons-selector .fip-icon-search:before{content:'\e812';cursor:default}.icons-selector .fip-icon-cancel:before{content:'\e814';cursor:pointer}.icons-selector .fip-icon-block:before{content:'\e84e';color:#fed0d0}.icons-selector .fip-icon-down-dir:before{content:'\e800'}.icons-selector .fip-icon-up-dir:before{content:'\e813'}.icons-selector .fip-icon-left-dir:before{content:'\e801'}.icons-selector .fip-icon-right-dir:before{content:'\e802'}.icons-selector .fip-icon-spin3:before{content:'\e815'}.icons-selector .fip-icon-spin3{-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;display:inline-block}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-o-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-ms-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}
admin/css/materialize.css CHANGED
File without changes
admin/css/materialize.min.css CHANGED
File without changes
admin/css/wpvr-admin.css CHANGED
@@ -42,7 +42,9 @@ div.custom-tooltip:hover span:after {
42
  z-index: 99;
43
  width: 90%;
44
  }
45
-
 
 
46
  .iframe-wrapper {
47
  max-width: 600px;
48
  position: relative;
@@ -338,6 +340,7 @@ div.custom-tooltip:hover span:after {
338
  .rex-pano-tabs .rex-pano-tab-nav li.video span i,
339
  .rex-pano-tabs .rex-pano-tab-nav li.scene span i {
340
  margin-right: 18px;
 
341
  }
342
  .rex-pano-tabs .rex-pano-tab-nav li:hover > span,
343
  .rex-pano-tabs .rex-pano-tab-nav li.active > span {
@@ -519,7 +522,7 @@ div.custom-tooltip:hover span:after {
519
  font-size: 16px;
520
  display: block;
521
  color: #555555;
522
- font-weight: 600;
523
  }
524
  .rex-pano-tab.general .single-settings span {
525
  min-width: 240px;
@@ -548,14 +551,24 @@ div.custom-tooltip:hover span:after {
548
  }
549
 
550
  /*------------input field tooltip-----------*/
 
 
 
551
  .rex-pano-tab.general .single-settings .field-tooltip {
552
  position: relative;
553
  padding-left: 10px;
554
  }
 
 
 
 
 
 
555
  .rex-pano-tab.general .single-settings .field-tooltip i {
556
  font-size: 20px;
557
  cursor: help;
558
  }
 
559
  .rex-pano-tab.general .single-settings .field-tooltip span {
560
  position: absolute;
561
  top: 50%;
@@ -571,6 +584,7 @@ div.custom-tooltip:hover span:after {
571
  left: 40px;
572
  line-height: 20px;
573
  border-radius: 3px;
 
574
  opacity: 0;
575
  visibility: hidden;
576
  -webkit-transform: translateY(-50%);
@@ -585,6 +599,7 @@ div.custom-tooltip:hover span:after {
585
  -o-transition: all 0.5s ease;
586
  transition: all 0.5s ease;
587
  }
 
588
  .rex-pano-tab.general .single-settings .field-tooltip span:before {
589
  content: "";
590
  position: absolute;
@@ -601,6 +616,7 @@ div.custom-tooltip:hover span:after {
601
  -o-transform: translateY(-50%);
602
  transform: translateY(-50%);
603
  }
 
604
  .rex-pano-tab.general .single-settings .field-tooltip:hover span {
605
  opacity: 1;
606
  visibility: visible;
@@ -706,11 +722,47 @@ div.custom-tooltip:hover span:after {
706
  .single-scene .scene-setting {
707
  margin-bottom: 21px;
708
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
709
  .single-hotspot .hotspot-setting label,
710
  .single-scene .scene-setting label {
711
  color: #494b51;
712
  font-size: 18px;
713
- font-weight: 500;
714
  display: block;
715
  margin-bottom: 10px;
716
  }
@@ -817,6 +869,10 @@ div.custom-tooltip:hover span:after {
817
  .single-hotspot .hotspot-setting input{
818
  max-width: 100%;
819
  }
 
 
 
 
820
  .single-hotspot .hotspot-type .hotspot-scene,
821
  .single-hotspot .hotspot-type .hotspot-hover,
822
  .single-hotspot .hotspot-type .hotspot-content,
@@ -1462,3 +1518,32 @@ button.delete-hotspot{
1462
  }
1463
 
1464
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  z-index: 99;
43
  width: 90%;
44
  }
45
+ .icons-selector .selector {
46
+ width: 100%;
47
+ }
48
  .iframe-wrapper {
49
  max-width: 600px;
50
  position: relative;
340
  .rex-pano-tabs .rex-pano-tab-nav li.video span i,
341
  .rex-pano-tabs .rex-pano-tab-nav li.scene span i {
342
  margin-right: 18px;
343
+ vertical-align: middle;
344
  }
345
  .rex-pano-tabs .rex-pano-tab-nav li:hover > span,
346
  .rex-pano-tabs .rex-pano-tab-nav li.active > span {
522
  font-size: 16px;
523
  display: block;
524
  color: #555555;
525
+ /*font-weight: 600;*/
526
  }
527
  .rex-pano-tab.general .single-settings span {
528
  min-width: 240px;
551
  }
552
 
553
  /*------------input field tooltip-----------*/
554
+ .hotspot-icon input {
555
+ width: 20% !important;
556
+ }
557
  .rex-pano-tab.general .single-settings .field-tooltip {
558
  position: relative;
559
  padding-left: 10px;
560
  }
561
+ .hotspot-setup .hotspot-setting.custom-icon .field-tooltip {
562
+ position: absolute;
563
+ right: 0;
564
+ bottom: 13px;
565
+ }
566
+ .hotspot-setup .hotspot-setting.custom-icon .field-tooltip i,
567
  .rex-pano-tab.general .single-settings .field-tooltip i {
568
  font-size: 20px;
569
  cursor: help;
570
  }
571
+ .hotspot-setup .hotspot-setting.custom-icon .field-tooltip span,
572
  .rex-pano-tab.general .single-settings .field-tooltip span {
573
  position: absolute;
574
  top: 50%;
584
  left: 40px;
585
  line-height: 20px;
586
  border-radius: 3px;
587
+ z-index: 1;
588
  opacity: 0;
589
  visibility: hidden;
590
  -webkit-transform: translateY(-50%);
599
  -o-transition: all 0.5s ease;
600
  transition: all 0.5s ease;
601
  }
602
+ .hotspot-setup .hotspot-setting.custom-icon .field-tooltip span:before,
603
  .rex-pano-tab.general .single-settings .field-tooltip span:before {
604
  content: "";
605
  position: absolute;
616
  -o-transform: translateY(-50%);
617
  transform: translateY(-50%);
618
  }
619
+ .hotspot-setup .hotspot-setting.custom-icon .field-tooltip:hover span,
620
  .rex-pano-tab.general .single-settings .field-tooltip:hover span {
621
  opacity: 1;
622
  visibility: visible;
722
  .single-scene .scene-setting {
723
  margin-bottom: 21px;
724
  }
725
+ .single-hotspot .hotspot-setting{
726
+ position: relative;
727
+ }
728
+ .single-hotspot .hotspot-setting .change-icon {
729
+ position: absolute;
730
+ bottom: 14px;
731
+ right: 50px;
732
+ font-size: 18px;
733
+ }
734
+ .single-hotspot .hotspot-setting .change-icon .custom-icon {
735
+ width: 20px;
736
+ height: 20px;
737
+ display: block;
738
+ }
739
+
740
+ .pnlm-hotspot-base.icon1,
741
+ .single-hotspot .hotspot-setting .change-icon .icon1 {
742
+ background: url(../icon/audio.png) no-repeat center center / 100% 100%;
743
+ }
744
+ .pnlm-hotspot-base.icon2,
745
+ .single-hotspot .hotspot-setting .change-icon .icon2 {
746
+ background: url(../icon/video.png) no-repeat center center / 100% 100%;
747
+ }
748
+ .pnlm-hotspot-base.icon3,
749
+ .single-hotspot .hotspot-setting .change-icon .icon3 {
750
+ background: url(../icon/gallery.png) no-repeat center center / 100% 100%;
751
+ }
752
+ .pnlm-hotspot-base.icon4,
753
+ .single-hotspot .hotspot-setting .change-icon .icon4 {
754
+ background: url(../icon/info.png) no-repeat center center / 100% 100%;
755
+ }
756
+ .pnlm-hotspot-base.icon5,
757
+ .single-hotspot .hotspot-setting .change-icon .icon5 {
758
+ background: url(../icon/link.png) no-repeat center center / 100% 100%;
759
+ }
760
+
761
  .single-hotspot .hotspot-setting label,
762
  .single-scene .scene-setting label {
763
  color: #494b51;
764
  font-size: 18px;
765
+ /*font-weight: 500;*/
766
  display: block;
767
  margin-bottom: 10px;
768
  }
869
  .single-hotspot .hotspot-setting input{
870
  max-width: 100%;
871
  }
872
+ .hotspot-setup .hotspot-setting.custom-icon select {
873
+ max-width: calc(100% - 30px);
874
+ }
875
+
876
  .single-hotspot .hotspot-type .hotspot-scene,
877
  .single-hotspot .hotspot-type .hotspot-hover,
878
  .single-hotspot .hotspot-type .hotspot-content,
1518
  }
1519
 
1520
  }
1521
+
1522
+ @media (max-width: 991px){
1523
+ .single-hotspot .hotspot-setting select{
1524
+ height: 46px!important;
1525
+ }
1526
+ .hotspot-setup .hotspot-setting.custom-icon .field-tooltip span {
1527
+ top: inherit;
1528
+ left: inherit;
1529
+ right: -5px;
1530
+ -webkit-transform: inherit;
1531
+ -moz-transform: inherit;
1532
+ -ms-transform: inherit;
1533
+ -o-transform: inherit;
1534
+ transform: inherit;
1535
+ bottom: 42px;
1536
+ }
1537
+ .hotspot-setup .hotspot-setting.custom-icon .field-tooltip span:before {
1538
+ left: inherit;
1539
+ top: inherit;
1540
+ -webkit-transform: translateY(0) rotate(-90deg);
1541
+ -moz-transform: translateY(0) rotate(-90deg);
1542
+ -ms-transform: translateY(0) rotate(-90deg);
1543
+ -o-transform: translateY(0) rotate(-90deg);
1544
+ transform: translateY(0) rotate(-90deg);
1545
+ bottom: -10px;
1546
+ right: 10px;
1547
+ }
1548
+
1549
+ }
admin/icon/Document.png CHANGED
File without changes
admin/icon/Feedback.png CHANGED
File without changes
admin/icon/Heart.png CHANGED
File without changes
admin/icon/Rating.png CHANGED
File without changes
admin/icon/Social_Booster_Banner.png CHANGED
File without changes
admin/icon/Support.png CHANGED
File without changes
admin/icon/banner.png CHANGED
File without changes
admin/icon/icon-128x128.png CHANGED
File without changes
admin/icon/icon.png CHANGED
File without changes
admin/index.php CHANGED
File without changes
admin/js/jquery.repeater.min.js CHANGED
File without changes
admin/js/materialize.js CHANGED
File without changes
admin/js/materialize.min.js CHANGED
File without changes
admin/js/video.js CHANGED
File without changes
admin/js/wpvr-admin.js CHANGED
@@ -1,6 +1,8 @@
1
  (function( $ ) {
2
  'use strict';
3
  var j= 1;
 
 
4
  /**
5
  * All of the code for your admin-facing JavaScript source
6
  * should reside in this file.
@@ -29,8 +31,6 @@
29
  * practising this, we should strive to set a better example in our own work.
30
  */
31
 
32
-
33
-
34
  jQuery(document).ready(function($){
35
 
36
 
@@ -40,11 +40,12 @@
40
  e.preventDefault();
41
  var postid = $("#post_ID").val();
42
  var autoload = $("input[name='autoload']:checked").val();
 
43
  var control = $("input[name='controls']:checked").val();
44
  var defaultscene = $("input[name='default-scene-id']").val();
45
  var preview = $("input[name='preview-attachment-url']").val();
46
  var scenefadeduration = $("input[name='scene-fade-duration']").val();
47
-
48
  var autorotation = $("input[name='auto-rotation']").val();
49
  var autorotationinactivedelay = $("input[name='auto-rotation-inactive-delay']").val();
50
  var autorotationstopdelay = $("input[name='auto-rotation-stop-delay']").val();
@@ -56,11 +57,12 @@
56
  data: {
57
  action: "wpvr_preview",
58
  postid: postid,
 
59
  control: control,
60
  autoload: autoload,
61
  panodata: panodata,
62
  defaultscene: defaultscene,
63
-
64
  autorotation: autorotation,
65
  autorotationinactivedelay: autorotationinactivedelay,
66
  autorotationstopdelay: autorotationstopdelay,
@@ -157,9 +159,10 @@
157
  var videourl = $("input[name='video-attachment-url']").val();
158
  var autoload = $("input[name='autoload']:checked").val();
159
  var control = $("input[name='controls']:checked").val();
 
160
  var defaultscene = $("input[name='default-scene-id']").val();
161
  var preview = $("input[name='preview-attachment-url']").val();
162
-
163
  var autorotation = $("input[name='auto-rotation']").val();
164
  var autorotationinactivedelay = $("input[name='auto-rotation-inactive-delay']").val();
165
  var autorotationstopdelay = $("input[name='auto-rotation-stop-delay']").val();
@@ -181,10 +184,12 @@
181
  panovideo: panovideo,
182
  videourl: videourl,
183
  control: control,
 
184
  autoload: autoload,
185
  panodata: panodata,
186
  defaultscene: defaultscene,
187
  preview: preview,
 
188
  autorotation: autorotation,
189
  autorotationinactivedelay: autorotationinactivedelay,
190
  autorotationstopdelay: autorotationstopdelay,
@@ -238,9 +243,16 @@
238
  var videourl = $("input[name='video-attachment-url']").val();
239
  var autoload = $("input[name='autoload']:checked").val();
240
  var control = $("input[name='controls']:checked").val();
 
241
  var defaultscene = $("input[name='default-scene-id']").val();
242
  var preview = $("input[name='preview-attachment-url']").val();
 
 
 
 
 
243
  var scenefadeduration = $("input[name='scene-fade-duration']").val();
 
244
  if ($('.scene-setup')[0]) {
245
  var panodata = $('.scene-setup').repeaterVal();
246
  } else {
@@ -256,10 +268,15 @@
256
  panovideo: panovideo,
257
  videourl: videourl,
258
  control: control,
 
259
  autoload: autoload,
260
  panodata: panodata,
261
  defaultscene: defaultscene,
262
  preview: preview,
 
 
 
 
263
  scenefadeduration: scenefadeduration,
264
  },
265
 
@@ -269,6 +286,7 @@
269
  $('#error_occured').html(response.data);
270
  $('#error_occuredpub').show();
271
  $('#error_occuredpub').html(response.data);
 
272
  $('body').addClass('error-overlay');
273
  $('html, body').animate({
274
  scrollTop: $("#error_occured").offset().top
@@ -280,7 +298,7 @@
280
  }
281
  }
282
  });
283
- }
284
  // }
285
  });
286
  });
@@ -298,7 +316,7 @@
298
  args = args.replace(/\\/g, "");
299
  span.innerHTML = args;
300
  hotSpotDiv.appendChild(span);
301
- span.style.width = span.scrollWidth - 20 + 'px';
302
  span.style.marginLeft = -(span.scrollWidth - hotSpotDiv.offsetWidth) / 2 + 'px';
303
  span.style.marginTop = -span.scrollHeight - 12 + 'px';
304
  }
@@ -337,12 +355,13 @@
337
 
338
  $(this).find(".title .scene-num").html(i);
339
 
340
- $('<li><span data-index="'+ i +'" data-href="#'+ scene +'"><i class="fa fa-photo"></i></span></li>').insertBefore($(this).parent().parent('.scene-setup').find('.scene-nav ul li:last-child'));
341
 
342
  $(this).attr('id', scene);
343
  changehotspotid(i);
344
  $(this).siblings('.active').removeClass('active');
345
  $(this).addClass('active');
 
346
  } else {
347
  $('.pano-alert > p').html('You can only add 5 scenes for free version');
348
  $('.pano-alert').show();
@@ -358,7 +377,7 @@
358
 
359
  $(this).find(".title .scene-num").html(i);
360
 
361
- $('<li><span data-index="'+ i +'" data-href="#'+ scene +'"><i class="fa fa-photo"></i></span></li>').insertBefore($(this).parent().parent('.scene-setup').find('.scene-nav ul li:last-child'));
362
 
363
  $(this).attr('id', scene);
364
  changehotspotid(i);
@@ -388,7 +407,7 @@
388
  $(this).parent().parent('.scene-setup').find('.scene-nav li span[data-href="'+hide_id+'"]').parent("li").prev().children("span").trigger( "click" );
389
  }
390
  $(this).parent().parent('.scene-setup').find('.scene-nav li span[data-href="'+hide_id+'"]').parent("li").remove();
391
- setTimeout(deleteinfodata, 1000)
392
  }
393
  },
394
 
@@ -396,6 +415,7 @@
396
  selector: '.hotspot-setup',
397
  defaultValues: {
398
  'hotspot-type': 'info',
 
399
  },
400
  show: function () {
401
 
@@ -417,10 +437,11 @@
417
  $(this).find(".title .hotspot-num").html(j);
418
  $(this).find(".title .scene-num").html(replace_string);
419
 
420
- $('<li><span data-index="'+ j +'" data-href="#'+ hotspot +'"><i class="fa fa-dot-circle-o"></i></span></li>').insertBefore($(this).parent().parent('.hotspot-setup').find('.hotspot-nav ul li:last-child'));
421
 
422
  $(this).attr('id', hotspot);
423
 
 
424
  } else {
425
  $('.pano-alert > p').html('You can only add 5 hotspots for free version');
426
  $('.pano-alert').show();
@@ -439,7 +460,7 @@
439
  $(this).find(".title .hotspot-num").html(j);
440
  $(this).find(".title .scene-num").html(replace_string);
441
 
442
- $('<li><span data-index="'+ j +'" data-href="#'+ hotspot +'"><i class="fa fa-dot-circle-o"></i></span></li>').insertBefore($(this).parent().parent('.hotspot-setup').find('.hotspot-nav ul li:last-child'));
443
 
444
  $(this).attr('id', hotspot);
445
  }
@@ -621,7 +642,31 @@ $(document).on("change","input[type=radio][name=panovideo]",function(event) {
621
  }
622
  });
623
 
 
 
 
 
 
624
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
625
 
626
  //------------panolens tab js------------------
627
 
@@ -654,7 +699,8 @@ $(document).on("change","input[type=radio][name=panovideo]",function(event) {
654
  $('.hotspotscene').append("<option value='" + optiondata + "'>"+optiondata+"</option>");
655
  }
656
  }
657
-
 
658
  });
659
 
660
  //end add click
@@ -678,6 +724,9 @@ $(document).on("change","input[type=radio][name=panovideo]",function(event) {
678
  }
679
  }
680
  $('.trtr').trigger('change');
 
 
 
681
  });
682
 
683
  function changehotspotid(id){
@@ -755,7 +804,7 @@ $(document).on("change","input[type=radio][name=panovideo]",function(event) {
755
  }
756
 
757
  $(document).on("change",".hotspotscene",function() {
758
- console.log($(this).val());
759
  var chanheghtptpval = $(this).val();
760
  if(chanheghtptpval != "none") {
761
  $(this).parent('.hotspot-scene').siblings('.hotspot-scene').children('.hotspotsceneinfodata').val(chanheghtptpval);
@@ -801,10 +850,35 @@ $(document).on("change","input[type=radio][name=panovideo]",function(event) {
801
  var pitch = pitchsplit.split(':');
802
  var yawsplit = datacoords[1];
803
  var yaw = yawsplit.split(':');
804
- console.log(pitch);
805
  $('div.single-scene.rex-pano-tab.active').children('div.hotspot-setup.rex-pano-sub-tabs').children('div.rex-pano-tab-content').children('div.single-hotspot.rex-pano-tab.active.clearfix').find('.hotspot-pitch').val(pitch[1]);
806
  $('div.single-scene.rex-pano-tab.active').children('div.hotspot-setup.rex-pano-sub-tabs').children('div.rex-pano-tab-content').children('div.single-hotspot.rex-pano-tab.active.clearfix').find('.hotspot-yaw').val(yaw[1]);
807
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
808
 
 
 
 
 
 
 
 
 
 
809
 
810
- })( jQuery );
1
  (function( $ ) {
2
  'use strict';
3
  var j= 1;
4
+ var color='#00b4ff';
5
+
6
  /**
7
  * All of the code for your admin-facing JavaScript source
8
  * should reside in this file.
31
  * practising this, we should strive to set a better example in our own work.
32
  */
33
 
 
 
34
  jQuery(document).ready(function($){
35
 
36
 
40
  e.preventDefault();
41
  var postid = $("#post_ID").val();
42
  var autoload = $("input[name='autoload']:checked").val();
43
+ var compass = $("input[name='compass']:checked").val();
44
  var control = $("input[name='controls']:checked").val();
45
  var defaultscene = $("input[name='default-scene-id']").val();
46
  var preview = $("input[name='preview-attachment-url']").val();
47
  var scenefadeduration = $("input[name='scene-fade-duration']").val();
48
+ var rotation = $("input[name='autorotation']:checked").val();
49
  var autorotation = $("input[name='auto-rotation']").val();
50
  var autorotationinactivedelay = $("input[name='auto-rotation-inactive-delay']").val();
51
  var autorotationstopdelay = $("input[name='auto-rotation-stop-delay']").val();
57
  data: {
58
  action: "wpvr_preview",
59
  postid: postid,
60
+ compass: compass,
61
  control: control,
62
  autoload: autoload,
63
  panodata: panodata,
64
  defaultscene: defaultscene,
65
+ rotation: rotation,
66
  autorotation: autorotation,
67
  autorotationinactivedelay: autorotationinactivedelay,
68
  autorotationstopdelay: autorotationstopdelay,
159
  var videourl = $("input[name='video-attachment-url']").val();
160
  var autoload = $("input[name='autoload']:checked").val();
161
  var control = $("input[name='controls']:checked").val();
162
+ var compass = $("input[name='compass']:checked").val();
163
  var defaultscene = $("input[name='default-scene-id']").val();
164
  var preview = $("input[name='preview-attachment-url']").val();
165
+ var rotation = $("input[name='autorotation']:checked").val();
166
  var autorotation = $("input[name='auto-rotation']").val();
167
  var autorotationinactivedelay = $("input[name='auto-rotation-inactive-delay']").val();
168
  var autorotationstopdelay = $("input[name='auto-rotation-stop-delay']").val();
184
  panovideo: panovideo,
185
  videourl: videourl,
186
  control: control,
187
+ compass: compass,
188
  autoload: autoload,
189
  panodata: panodata,
190
  defaultscene: defaultscene,
191
  preview: preview,
192
+ rotation: rotation,
193
  autorotation: autorotation,
194
  autorotationinactivedelay: autorotationinactivedelay,
195
  autorotationstopdelay: autorotationstopdelay,
243
  var videourl = $("input[name='video-attachment-url']").val();
244
  var autoload = $("input[name='autoload']:checked").val();
245
  var control = $("input[name='controls']:checked").val();
246
+ var compass = $("input[name='compass']:checked").val();
247
  var defaultscene = $("input[name='default-scene-id']").val();
248
  var preview = $("input[name='preview-attachment-url']").val();
249
+ var rotation = $("input[name='autorotation']").val();
250
+ var autorotation = $("input[name='auto-rotation']").val();
251
+ var autorotationinactivedelay = $("input[name='auto-rotation-inactive-delay']").val();
252
+ var autorotationstopdelay = $("input[name='auto-rotation-stop-delay']").val();
253
+
254
  var scenefadeduration = $("input[name='scene-fade-duration']").val();
255
+
256
  if ($('.scene-setup')[0]) {
257
  var panodata = $('.scene-setup').repeaterVal();
258
  } else {
268
  panovideo: panovideo,
269
  videourl: videourl,
270
  control: control,
271
+ compass: compass,
272
  autoload: autoload,
273
  panodata: panodata,
274
  defaultscene: defaultscene,
275
  preview: preview,
276
+ rotation: rotation,
277
+ autorotation: autorotation,
278
+ autorotationinactivedelay: autorotationinactivedelay,
279
+ autorotationstopdelay: autorotationstopdelay,
280
  scenefadeduration: scenefadeduration,
281
  },
282
 
286
  $('#error_occured').html(response.data);
287
  $('#error_occuredpub').show();
288
  $('#error_occuredpub').html(response.data);
289
+
290
  $('body').addClass('error-overlay');
291
  $('html, body').animate({
292
  scrollTop: $("#error_occured").offset().top
298
  }
299
  }
300
  });
301
+ }
302
  // }
303
  });
304
  });
316
  args = args.replace(/\\/g, "");
317
  span.innerHTML = args;
318
  hotSpotDiv.appendChild(span);
319
+ // span.style.width = span.scrollWidth - 20 + 'px';
320
  span.style.marginLeft = -(span.scrollWidth - hotSpotDiv.offsetWidth) / 2 + 'px';
321
  span.style.marginTop = -span.scrollHeight - 12 + 'px';
322
  }
355
 
356
  $(this).find(".title .scene-num").html(i);
357
 
358
+ $('<li><span data-index="'+ i +'" data-href="#'+ scene +'"><i class="fa fa-image"></i></span></li>').insertBefore($(this).parent().parent('.scene-setup').find('.scene-nav ul li:last-child'));
359
 
360
  $(this).attr('id', scene);
361
  changehotspotid(i);
362
  $(this).siblings('.active').removeClass('active');
363
  $(this).addClass('active');
364
+ setTimeout(changeicon, 1000);
365
  } else {
366
  $('.pano-alert > p').html('You can only add 5 scenes for free version');
367
  $('.pano-alert').show();
377
 
378
  $(this).find(".title .scene-num").html(i);
379
 
380
+ $('<li><span data-index="'+ i +'" data-href="#'+ scene +'"><i class="fa fa-image"></i></span></li>').insertBefore($(this).parent().parent('.scene-setup').find('.scene-nav ul li:last-child'));
381
 
382
  $(this).attr('id', scene);
383
  changehotspotid(i);
407
  $(this).parent().parent('.scene-setup').find('.scene-nav li span[data-href="'+hide_id+'"]').parent("li").prev().children("span").trigger( "click" );
408
  }
409
  $(this).parent().parent('.scene-setup').find('.scene-nav li span[data-href="'+hide_id+'"]').parent("li").remove();
410
+ setTimeout(deleteinfodata, 1000);
411
  }
412
  },
413
 
415
  selector: '.hotspot-setup',
416
  defaultValues: {
417
  'hotspot-type': 'info',
418
+ 'hotspot-customclass-pro': 'none',
419
  },
420
  show: function () {
421
 
437
  $(this).find(".title .hotspot-num").html(j);
438
  $(this).find(".title .scene-num").html(replace_string);
439
 
440
+ $('<li><span data-index="'+ j +'" data-href="#'+ hotspot +'"><i class="far fa-dot-circle"></i></span></li>').insertBefore($(this).parent().parent('.hotspot-setup').find('.hotspot-nav ul li:last-child'));
441
 
442
  $(this).attr('id', hotspot);
443
 
444
+ setTimeout(changeicon, 1000);
445
  } else {
446
  $('.pano-alert > p').html('You can only add 5 hotspots for free version');
447
  $('.pano-alert').show();
460
  $(this).find(".title .hotspot-num").html(j);
461
  $(this).find(".title .scene-num").html(replace_string);
462
 
463
+ $('<li><span data-index="'+ j +'" data-href="#'+ hotspot +'"><i class="far fa-dot-circle"></i></span></li>').insertBefore($(this).parent().parent('.hotspot-setup').find('.hotspot-nav ul li:last-child'));
464
 
465
  $(this).attr('id', hotspot);
466
  }
642
  }
643
  });
644
 
645
+ $(document).on("change","select[name*=hotspot-customclass-pro]",function(event) {
646
+ var getval = $(this).val();
647
+ $(this).parent('.hotspot-setting').children('span.change-icon').html('<i class="'+getval+'"></i>');
648
+
649
+ });
650
 
651
+ $(document).on("change",".hotspot-customclass-color",function(event) {
652
+ var getcolor = $(this).val();
653
+ color = getcolor;
654
+ $('.hotspot-customclass-color-icon-value').val(getcolor);
655
+ $('.hotspot-customclass-color').val(getcolor);
656
+ });
657
+
658
+ jQuery(document).ready(function($){
659
+ if ($(".icon-found-value")[0]){
660
+ color = $('.hotspot-customclass-color-icon-value.icon-found-value').val();
661
+ } else {
662
+ color = '#00b4ff';
663
+ }
664
+ });
665
+
666
+ function changeicon(){
667
+ $('.hotspot-customclass-color-icon-value').val(color);
668
+ $('.hotspot-customclass-color').val(color);
669
+ }
670
 
671
  //------------panolens tab js------------------
672
 
699
  $('.hotspotscene').append("<option value='" + optiondata + "'>"+optiondata+"</option>");
700
  }
701
  }
702
+ $('.hotspot-customclass-pro-select').fontIconPicker();
703
+ $('span.change-icon').hide();
704
  });
705
 
706
  //end add click
724
  }
725
  }
726
  $('.trtr').trigger('change');
727
+ $('.hotspot-customclass-pro-select').fontIconPicker();
728
+ $('span.change-icon').hide();
729
+
730
  });
731
 
732
  function changehotspotid(id){
804
  }
805
 
806
  $(document).on("change",".hotspotscene",function() {
807
+
808
  var chanheghtptpval = $(this).val();
809
  if(chanheghtptpval != "none") {
810
  $(this).parent('.hotspot-scene').siblings('.hotspot-scene').children('.hotspotsceneinfodata').val(chanheghtptpval);
850
  var pitch = pitchsplit.split(':');
851
  var yawsplit = datacoords[1];
852
  var yaw = yawsplit.split(':');
853
+
854
  $('div.single-scene.rex-pano-tab.active').children('div.hotspot-setup.rex-pano-sub-tabs').children('div.rex-pano-tab-content').children('div.single-hotspot.rex-pano-tab.active.clearfix').find('.hotspot-pitch').val(pitch[1]);
855
  $('div.single-scene.rex-pano-tab.active').children('div.hotspot-setup.rex-pano-sub-tabs').children('div.rex-pano-tab-content').children('div.single-hotspot.rex-pano-tab.active.clearfix').find('.hotspot-yaw').val(yaw[1]);
856
  });
857
+ jQuery(document).ready(function($) {
858
+ $('.hotspot-customclass-pro-select').fontIconPicker();
859
+ });
860
+ jQuery(document).ready(function($) {
861
+ $('span.change-icon').hide();
862
+ });
863
+
864
+ jQuery(document).ready(function($) {
865
+ var autrotateset = $("input[name='autorotation']:checked").val();
866
+ if (autrotateset == 'off') {
867
+ $('.autorotationdata').hide();
868
+ }
869
+ else {
870
+ $('.autorotationdata').show();
871
+ }
872
+ });
873
 
874
+ $(document).on("change","input[name='autorotation']",function(event) {
875
+ var autrotateset = $(this).val();
876
+ if (autrotateset == 'off') {
877
+ $('.autorotationdata').hide();
878
+ }
879
+ else {
880
+ $('.autorotationdata').show();
881
+ }
882
+ });
883
 
884
+ })( jQuery );
admin/lib/jquery.fonticonpicker.min.js ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * jQuery fontIconPicker - v2.0.0
3
+ *
4
+ * An icon picker built on top of font icons and jQuery
5
+ *
6
+ * http://codeb.it/fontIconPicker
7
+ *
8
+ * Made by Alessandro Benoit & Swashata
9
+ * Under MIT License
10
+ *
11
+ * {@link https://github.com/micc83/fontIconPicker}
12
+ */
13
+ !function(a){"use strict";function c(c,d){this.element=a(c),this.settings=a.extend({},b,d),this.settings.emptyIcon&&this.settings.iconsPerPage--,this.iconPicker=a("<div/>",{"class":"icons-selector",style:"position: relative",html:'<div class="selector"><span class="selected-icon"><i class="fip-icon-block"></i></span><span class="selector-button"><i class="fip-icon-down-dir"></i></span></div><div class="selector-popup" style="display: none;">'+(this.settings.hasSearch?'<div class="selector-search"><input type="text" name="" value="" placeholder="Search icon" class="icons-search-input"/><i class="fip-icon-search"></i></div>':"")+'<div class="selector-category">'+'<select name="" class="icon-category-select" style="display: none">'+"</select>"+"</div>"+'<div class="fip-icons-container"></div>'+'<div class="selector-footer" style="display:none;">'+'<span class="selector-pages">1/2</span>'+'<span class="selector-arrows">'+'<span class="selector-arrow-left" style="display:none;">'+'<i class="fip-icon-left-dir"></i>'+"</span>"+'<span class="selector-arrow-right">'+'<i class="fip-icon-right-dir"></i>'+"</span>"+"</span>"+"</div>"+"</div>"}),this.iconContainer=this.iconPicker.find(".fip-icons-container"),this.searchIcon=this.iconPicker.find(".selector-search i"),this.iconsSearched=[],this.isSearch=!1,this.totalPage=1,this.currentPage=1,this.currentIcon=!1,this.iconsCount=0,this.open=!1,this.searchValues=[],this.availableCategoriesSearch=[],this.triggerEvent=null,this.backupSource=[],this.backupSearch=[],this.isCategorized=!1,this.selectCategory=this.iconPicker.find(".icon-category-select"),this.selectedCategory=!1,this.availableCategories=[],this.unCategorizedKey=null,this.init()}var b={theme:"fip-grey",source:!1,emptyIcon:!0,emptyIconValue:"",iconsPerPage:20,hasSearch:!0,searchSource:!1,useAttribute:!1,attributeName:"data-icon",convertToHex:!0,allCategoryText:"From all categories",unCategorizedText:"Uncategorized"};c.prototype={init:function(){this.iconPicker.addClass(this.settings.theme),this.iconPicker.css({left:-9999}).appendTo("body");var b=this.iconPicker.outerHeight(),c=this.iconPicker.outerWidth();if(this.iconPicker.css({left:""}),this.element.before(this.iconPicker),this.element.css({visibility:"hidden",top:0,position:"relative",zIndex:"-1",left:"-"+c+"px",display:"inline-block",height:b+"px",width:c+"px",padding:"0",margin:"0 -"+c+"px 0 0",border:"0 none",verticalAlign:"top"}),!this.element.is("select")){var d=function(){for(var a=3,b=document.createElement("div"),c=b.all||[];b.innerHTML="<!--[if gt IE "+ ++a+"]><br><![endif]-->",c[0];);return a>4?a:!a}(),e=document.createElement("div");this.triggerEvent=9!==d&&"oninput"in e?["input","keyup"]:["keyup"]}!this.settings.source&&this.element.is("select")?(this.settings.source=[],this.settings.searchSource=[],this.element.find("optgroup").length?(this.isCategorized=!0,this.element.find("optgroup").each(a.proxy(function(b,c){var d=this.availableCategories.length,e=a("<option />");e.attr("value",d),e.html(a(c).attr("label")),this.selectCategory.append(e),this.availableCategories[d]=[],this.availableCategoriesSearch[d]=[],a(c).find("option").each(a.proxy(function(b,c){var e=a(c).val(),f=a(c).html();e&&e!==this.settings.emptyIconValue&&(this.settings.source.push(e),this.availableCategories[d].push(e),this.searchValues.push(f),this.availableCategoriesSearch[d].push(f))},this))},this)),this.element.find("> option").length&&this.element.find("> option").each(a.proxy(function(b,c){var d=a(c).val(),e=a(c).html();return d&&""!==d&&d!=this.settings.emptyIconValue?(null===this.unCategorizedKey&&(this.unCategorizedKey=this.availableCategories.length,this.availableCategories[this.unCategorizedKey]=[],this.availableCategoriesSearch[this.unCategorizedKey]=[],a("<option />").attr("value",this.unCategorizedKey).html(this.settings.unCategorizedText).appendTo(this.selectCategory)),this.settings.source.push(d),this.availableCategories[this.unCategorizedKey].push(d),this.searchValues.push(e),this.availableCategoriesSearch[this.unCategorizedKey].push(e),void 0):!0},this))):this.element.find("option").each(a.proxy(function(b,c){var d=a(c).val(),e=a(c).html();d&&(this.settings.source.push(d),this.searchValues.push(e))},this)),this.backupSource=this.settings.source.slice(0),this.backupSearch=this.searchValues.slice(0),this.loadCategories()):this.initSourceIndex(),this.loadIcons(),this.selectCategory.on("change keyup",a.proxy(function(b){if(this.isCategorized===!1)return!1;var c=a(b.currentTarget),d=c.val();if("all"===c.val())this.settings.source=this.backupSource,this.searchValues=this.backupSearch;else{var e=parseInt(d,10);this.availableCategories[e]&&(this.settings.source=this.availableCategories[e],this.searchValues=this.availableCategoriesSearch[e])}this.resetSearch(),this.loadIcons()},this)),this.iconPicker.find(".selector-button").click(a.proxy(function(){this.toggleIconSelector()},this)),this.iconPicker.find(".selector-arrow-right").click(a.proxy(function(b){this.currentPage<this.totalPage&&(this.iconPicker.find(".selector-arrow-left").show(),this.currentPage=this.currentPage+1,this.renderIconContainer()),this.currentPage===this.totalPage&&a(b.currentTarget).hide()},this)),this.iconPicker.find(".selector-arrow-left").click(a.proxy(function(b){this.currentPage>1&&(this.iconPicker.find(".selector-arrow-right").show(),this.currentPage=this.currentPage-1,this.renderIconContainer()),1===this.currentPage&&a(b.currentTarget).hide()},this)),this.iconPicker.find(".icons-search-input").keyup(a.proxy(function(b){var c=a(b.currentTarget).val();return""===c?(this.resetSearch(),void 0):(this.searchIcon.removeClass("fip-icon-search"),this.searchIcon.addClass("fip-icon-cancel"),this.isSearch=!0,this.currentPage=1,this.iconsSearched=[],a.grep(this.searchValues,a.proxy(function(a,b){return a.toLowerCase().search(c.toLowerCase())>=0?(this.iconsSearched[this.iconsSearched.length]=this.settings.source[b],!0):void 0},this)),this.renderIconContainer(),void 0)},this)),this.iconPicker.find(".selector-search").on("click",".fip-icon-cancel",a.proxy(function(){this.iconPicker.find(".icons-search-input").focus(),this.resetSearch()},this)),this.iconContainer.on("click",".fip-box",a.proxy(function(b){this.setSelectedIcon(a(b.currentTarget).find("i").attr("data-fip-value")),this.toggleIconSelector()},this)),this.iconPicker.click(function(a){return a.stopPropagation(),!1}),a("html").click(a.proxy(function(){this.open&&this.toggleIconSelector()},this))},initSourceIndex:function(){if("object"==typeof this.settings.source){if(a.isArray(this.settings.source))this.isCategorized=!1,this.selectCategory.html("").hide(),this.settings.source=a.map(this.settings.source,function(a){return"function"==typeof a.toString?a.toString():a}),this.searchValues=a.isArray(this.settings.searchSource)?a.map(this.settings.searchSource,function(a){return"function"==typeof a.toString?a.toString():a}):this.settings.source.slice(0);else{var b=a.extend(!0,{},this.settings.source);this.settings.source=[],this.searchValues=[],this.availableCategoriesSearch=[],this.selectedCategory=!1,this.availableCategories=[],this.unCategorizedKey=null,this.isCategorized=!0,this.selectCategory.html("");for(var c in b){var d=this.availableCategories.length,e=a("<option />");e.attr("value",d),e.html(c),this.selectCategory.append(e),this.availableCategories[d]=[],this.availableCategoriesSearch[d]=[];for(var f in b[c]){var g=b[c][f],h=this.settings.searchSource&&this.settings.searchSource[c]&&this.settings.searchSource[c][f]?this.settings.searchSource[c][f]:g;"function"==typeof g.toString&&(g=g.toString()),g&&g!==this.settings.emptyIconValue&&(this.settings.source.push(g),this.availableCategories[d].push(g),this.searchValues.push(h),this.availableCategoriesSearch[d].push(h))}}}this.backupSource=this.settings.source.slice(0),this.backupSearch=this.searchValues.slice(0),this.loadCategories()}},loadCategories:function(){this.isCategorized!==!1&&(a('<option value="all">'+this.settings.allCategoryText+"</option>").prependTo(this.selectCategory),this.selectCategory.show().val("all").trigger("change"))},loadIcons:function(){this.iconContainer.html('<i class="fip-icon-spin3 animate-spin loading"></i>'),this.settings.source instanceof Array&&this.renderIconContainer()},renderIconContainer:function(){var b,c=[];if(c=this.isSearch?this.iconsSearched:this.settings.source,this.iconsCount=c.length,this.totalPage=Math.ceil(this.iconsCount/this.settings.iconsPerPage),this.totalPage>1?this.iconPicker.find(".selector-footer").show():this.iconPicker.find(".selector-footer").hide(),this.iconPicker.find(".selector-pages").html(this.currentPage+"/"+this.totalPage+" <em>("+this.iconsCount+")</em>"),b=(this.currentPage-1)*this.settings.iconsPerPage,this.settings.emptyIcon)this.iconContainer.html('<span class="fip-box"><i class="fip-icon-block" data-fip-value="fip-icon-block"></i></span>');else{if(c.length<1)return this.iconContainer.html('<span class="icons-picker-error"><i class="fip-icon-block" data-fip-value="fip-icon-block"></i></span>'),void 0;this.iconContainer.html("")}c=c.slice(b,b+this.settings.iconsPerPage);for(var e,d=0;e=c[d++];){var f=e;a.grep(this.settings.source,a.proxy(function(a,b){return a===e?(f=this.searchValues[b],!0):!1},this)),a("<span/>",{html:'<i data-fip-value="'+e+'" '+(this.settings.useAttribute?this.settings.attributeName+'="'+(this.settings.convertToHex?"&#x"+parseInt(e,10).toString(16)+";":e)+'"':'class="'+e+'"')+"></i>","class":"fip-box",title:f}).appendTo(this.iconContainer)}this.settings.emptyIcon||this.element.val()&&-1!==a.inArray(this.element.val(),this.settings.source)?-1===a.inArray(this.element.val(),this.settings.source)?this.setSelectedIcon():this.setSelectedIcon(this.element.val()):this.setSelectedIcon(c[0])},setHighlightedIcon:function(){this.iconContainer.find(".current-icon").removeClass("current-icon"),this.currentIcon&&this.iconContainer.find('[data-fip-value="'+this.currentIcon+'"]').parent("span").addClass("current-icon")},setSelectedIcon:function(a){if("fip-icon-block"===a&&(a=""),this.settings.useAttribute?a?this.iconPicker.find(".selected-icon").html("<i "+this.settings.attributeName+'="'+(this.settings.convertToHex?"&#x"+parseInt(a,10).toString(16)+";":a)+'"></i>'):this.iconPicker.find(".selected-icon").html('<i class="fip-icon-block"></i>'):this.iconPicker.find(".selected-icon").html('<i class="'+(a||"fip-icon-block")+'"></i>'),this.element.val(""===a?this.settings.emptyIconValue:a).trigger("change"),null!==this.triggerEvent)for(var b in this.triggerEvent)this.element.trigger(this.triggerEvent[b]);this.currentIcon=a,this.setHighlightedIcon()},toggleIconSelector:function(){this.open=this.open?0:1,this.iconPicker.find(".selector-popup").slideToggle(300),this.iconPicker.find(".selector-button i").toggleClass("fip-icon-down-dir"),this.iconPicker.find(".selector-button i").toggleClass("fip-icon-up-dir"),this.open&&this.iconPicker.find(".icons-search-input").focus().select()},resetSearch:function(){this.iconPicker.find(".icons-search-input").val(""),this.searchIcon.removeClass("fip-icon-cancel"),this.searchIcon.addClass("fip-icon-search"),this.iconPicker.find(".selector-arrow-left").hide(),this.currentPage=1,this.isSearch=!1,this.renderIconContainer(),this.totalPage>1&&this.iconPicker.find(".selector-arrow-right").show()}},a.fn.fontIconPicker=function(b){return this.each(function(){a.data(this,"fontIconPicker")||a.data(this,"fontIconPicker",new c(this,b))}),this.setIcons=a.proxy(function(b,c){void 0===b&&(b=!1),void 0===c&&(c=!1),this.each(function(){a.data(this,"fontIconPicker").settings.source=b,a.data(this,"fontIconPicker").settings.searchSource=c,a.data(this,"fontIconPicker").initSourceIndex(),a.data(this,"fontIconPicker").resetSearch(),a.data(this,"fontIconPicker").loadIcons()})},this),this.destroyPicker=a.proxy(function(){this.each(function(){a.data(this,"fontIconPicker")&&(a.data(this,"fontIconPicker").iconPicker.remove(),a.data(this,"fontIconPicker").element.css({visibility:"",top:"",position:"",zIndex:"",left:"",display:"",height:"",width:"",padding:"",margin:"",border:"",verticalAlign:""}),a.removeData(this,"fontIconPicker"))})},this),this.refreshPicker=a.proxy(function(d){d||(d=b),this.destroyPicker(),this.each(function(){a.data(this,"fontIconPicker")||a.data(this,"fontIconPicker",new c(this,d))})},this),this}}(jQuery);
admin/lib/pannellum/.gitignore CHANGED
File without changes
admin/lib/pannellum/.npmignore CHANGED
File without changes
admin/lib/pannellum/src/css/img/background.svg CHANGED
File without changes
admin/lib/pannellum/src/css/img/compass.svg CHANGED
File without changes
admin/lib/pannellum/src/css/img/grab.svg CHANGED
File without changes
admin/lib/pannellum/src/css/img/grabbing.svg CHANGED
File without changes
admin/lib/pannellum/src/css/img/sprites.svg CHANGED
File without changes
admin/lib/pannellum/src/css/pannellum.css CHANGED
File without changes
admin/lib/pannellum/src/js/RequestAnimationFrame.js CHANGED
File without changes
admin/lib/pannellum/src/js/libpannellum.js CHANGED
File without changes
admin/lib/pannellum/src/js/pannellum.js CHANGED
File without changes
admin/partials/wpvr-admin-display.php CHANGED
File without changes
admin/partials/wpvr-meta-box-builder-display.php CHANGED
@@ -62,10 +62,14 @@ if (isset($postdata['vidid'])) {
62
  <?php
63
  }
64
  else {
65
- $control = false;
66
  if (isset($postdata['showControls'])) {
67
  $control = $postdata['showControls'];
68
  }
 
 
 
 
69
  $autoload = false;
70
  if (isset($postdata['autoLoad'])) {
71
  $autoload = $postdata['autoLoad'];
@@ -145,7 +149,7 @@ if (isset($postdata['panodata'])) {
145
  $pano_id_array = array();
146
  $pano_id_array = array(__( "panoid" )=>$panoid);
147
  $pano_response = array();
148
- $pano_response = array(__( "autoLoad" )=>$autoload,__( "showControls" )=>$control,__( "preview" )=>$preview,__( "autoRotate" )=>$autorotation,__( "autoRotateInactivityDelay" )=>$autorotationinactivedelay,__( "autoRotateStopDelay" )=>$autorotationstopdelay,__( "default" )=>$default_data,__( "scenes" )=>$scene_data);
149
 
150
  if (empty($autorotation)) {
151
  unset($pano_response['autoRotate']);
@@ -227,7 +231,7 @@ if (isset($postdata['panodata'])) {
227
  }
228
  span.innerHTML = args;
229
  hotSpotDiv.appendChild(span);
230
- span.style.width = span.scrollWidth - 20 + 'px';
231
  span.style.marginLeft = -(span.scrollWidth - hotSpotDiv.offsetWidth) / 2 + 'px';
232
  span.style.marginTop = -span.scrollHeight - 12 + 'px';
233
  }
62
  <?php
63
  }
64
  else {
65
+ $control = false;
66
  if (isset($postdata['showControls'])) {
67
  $control = $postdata['showControls'];
68
  }
69
+ $compass = false;
70
+ if (isset($postdata['compass'])) {
71
+ $compass = $postdata['compass'];
72
+ }
73
  $autoload = false;
74
  if (isset($postdata['autoLoad'])) {
75
  $autoload = $postdata['autoLoad'];
149
  $pano_id_array = array();
150
  $pano_id_array = array(__( "panoid" )=>$panoid);
151
  $pano_response = array();
152
+ $pano_response = array(__( "autoLoad" )=>$autoload,__( "showControls" )=>$control,__( 'compass' )=>$compass,__( "preview" )=>$preview,__( "autoRotate" )=>$autorotation,__( "autoRotateInactivityDelay" )=>$autorotationinactivedelay,__( "autoRotateStopDelay" )=>$autorotationstopdelay,__( "default" )=>$default_data,__( "scenes" )=>$scene_data);
153
 
154
  if (empty($autorotation)) {
155
  unset($pano_response['autoRotate']);
231
  }
232
  span.innerHTML = args;
233
  hotSpotDiv.appendChild(span);
234
+ // span.style.width = span.scrollWidth - 20 + 'px';
235
  span.style.marginLeft = -(span.scrollWidth - hotSpotDiv.offsetWidth) / 2 + 'px';
236
  span.style.marginTop = -span.scrollHeight - 12 + 'px';
237
  }
admin/partials/wpvr-meta-box-shortcode-display.php CHANGED
@@ -23,5 +23,5 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
23
  <p><code>[wpvr id="<?php echo $id; ?>"]</code><?php ($slug ? 'or' : '') ?></p>
24
  <p><?php echo __('For gutenberg:', 'wpvr'); ?></p>
25
  <p>use id:<code><?php echo $id; ?></code>on wpvr block setting</p>
26
- <p><?php echo __('Check how to use:', 'wpvr'); ?><a href="https://rextheme.com/docs/wpvr-360-panorama-and-virtual-tour-creator-for-wordpress/gutenberg-block/" target="blank">wpvr block</a></p>
27
  <!-- <div id="error_occuredpub" style="color: red;"></div> -->
23
  <p><code>[wpvr id="<?php echo $id; ?>"]</code><?php ($slug ? 'or' : '') ?></p>
24
  <p><?php echo __('For gutenberg:', 'wpvr'); ?></p>
25
  <p>use id:<code><?php echo $id; ?></code>on wpvr block setting</p>
26
+ <p><?php echo __('Check how to use:', 'wpvr'); ?><a href="https://rextheme.com/docs/wp-vr/gutenberg-block/" target="blank">wpvr block</a></p>
27
  <!-- <div id="error_occuredpub" style="color: red;"></div> -->
admin/partials/wpvr_documentation.php CHANGED
@@ -47,7 +47,7 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
47
  ?>
48
  </p>
49
 
50
- <a class="waves-effect waves-light btn wpvr-btn" href="https://rextheme.com/docs/wpvr-360-panorama-and-virtual-tour-creator-for-wordpress/" target="_blank"><?php _e('View Documentation','wpvr'); ?></a>
51
  </div>
52
  </div>
53
  </div>
@@ -86,7 +86,7 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
86
  ?>
87
  </p>
88
 
89
- <a class="waves-effect waves-light btn wpvr-btn" href="#" target="_blank"><?php _e('Suggest','wpvr'); ?></a>
90
  </div>
91
  </div>
92
  </div>
@@ -141,9 +141,11 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
141
  <div class="parent">
142
  <div class="item"><?php _e('Unlimited scenes','wpvr'); ?></div>
143
  <div class="item"><?php _e('Unlimited hotspots','wpvr'); ?></div>
 
 
144
  <div class="item"><?php _e('Personalized support on both support forum and our support e-mail.','wpvr'); ?></div>
145
  </div>
146
- <a href="https://rextheme.com/wp-vr-360-panorama-and-virtual-tour-creator-for-wordpress/" target="_blank" class="waves-effect waves-light btn wpvr-btn"><?php _e('Get Premium Version','wpvr'); ?></a>
147
  </div>
148
  </div>
149
  </div>
@@ -152,7 +154,7 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
152
  <div class="right">
153
  <div class="rex-banner">
154
  <img src="<?php echo WPVR_PLUGIN_DIR_URL . 'admin/icon/icon-128x128.png'?>" class="banner-logo" alt="logo">
155
- <a href="https://rextheme.com/wp-vr-360-panorama-and-virtual-tour-creator-for-wordpress/" class="update-btn" target="_blank"><?php _e('Upgrade to Pro','wpvr');?></a>
156
  <a href="https://wordpress.org/plugins/social-booster/" target="_blank"><img src="<?php echo WPVR_PLUGIN_DIR_URL . 'admin/icon/Social_Booster_Banner.png'?>" alt="rex-banner"></a>
157
  </div>
158
  </div>
47
  ?>
48
  </p>
49
 
50
+ <a class="waves-effect waves-light btn wpvr-btn" href="https://rextheme.com/docs/wp-vr/" target="_blank"><?php _e('View Documentation','wpvr'); ?></a>
51
  </div>
52
  </div>
53
  </div>
86
  ?>
87
  </p>
88
 
89
+ <a class="waves-effect waves-light btn wpvr-btn" href="https://rextheme.com/wpvr/" target="_blank"><?php _e('Suggest','wpvr'); ?></a>
90
  </div>
91
  </div>
92
  </div>
141
  <div class="parent">
142
  <div class="item"><?php _e('Unlimited scenes','wpvr'); ?></div>
143
  <div class="item"><?php _e('Unlimited hotspots','wpvr'); ?></div>
144
+ <div class="item"><?php _e('Customized Hotspot Icon','wpvr'); ?></div>
145
+ <div class="item"><?php _e('Dynamic Icon background color hotspot','wpvr'); ?></div>
146
  <div class="item"><?php _e('Personalized support on both support forum and our support e-mail.','wpvr'); ?></div>
147
  </div>
148
+ <a href="https://rextheme.com/wpvr/" target="_blank" class="waves-effect waves-light btn wpvr-btn"><?php _e('Get Premium Version','wpvr'); ?></a>
149
  </div>
150
  </div>
151
  </div>
154
  <div class="right">
155
  <div class="rex-banner">
156
  <img src="<?php echo WPVR_PLUGIN_DIR_URL . 'admin/icon/icon-128x128.png'?>" class="banner-logo" alt="logo">
157
+ <a href="https://rextheme.com/wpvr/" class="update-btn" target="_blank"><?php _e('Upgrade to Pro','wpvr');?></a>
158
  <a href="https://wordpress.org/plugins/social-booster/" target="_blank"><img src="<?php echo WPVR_PLUGIN_DIR_URL . 'admin/icon/Social_Booster_Banner.png'?>" alt="rex-banner"></a>
159
  </div>
160
  </div>
admin/partials/wpvr_license.php CHANGED
File without changes
build/index.build.js CHANGED
File without changes
images/icon.png CHANGED
File without changes
includes/class-wpvr-activator.php CHANGED
File without changes
includes/class-wpvr-deactivator.php CHANGED
File without changes
includes/class-wpvr-i18n.php CHANGED
File without changes
includes/class-wpvr-loader.php CHANGED
File without changes
includes/class-wpvr.php CHANGED
@@ -133,6 +133,10 @@ class Wpvr {
133
  * The class responsible for defining all JQuery Ajax.
134
  */
135
  require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wpvr-ajax.php';
 
 
 
 
136
 
137
  /**
138
  * The class responsible for defining all actions that occur in the public-facing
133
  * The class responsible for defining all JQuery Ajax.
134
  */
135
  require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wpvr-ajax.php';
136
+ /**
137
+ * The class responsible for defining all JQuery Ajax.
138
+ */
139
+ require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wpvr-icon.php';
140
 
141
  /**
142
  * The class responsible for defining all actions that occur in the public-facing
includes/index.php CHANGED
File without changes
index.php CHANGED
File without changes
insights.php CHANGED
File without changes
languages/de.mo CHANGED
File without changes
languages/de.po CHANGED
File without changes
languages/es.mo CHANGED
File without changes
languages/es.po CHANGED
File without changes
languages/it.mo CHANGED
File without changes
languages/it.po CHANGED
File without changes
package-lock.json CHANGED
File without changes
package.json CHANGED
File without changes
public/class-wpvr-public.php CHANGED
@@ -73,7 +73,8 @@ class Wpvr_Public {
73
  * class.
74
  */
75
  $plugin_url = plugin_dir_url( dirname(__FILE__) );
76
- wp_enqueue_style( $this->plugin_name . 'fontawesome', 'https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css', array(), $this->version, 'all' );
 
77
  wp_enqueue_style('panellium-css', plugin_dir_url( __FILE__ ) . 'lib/pannellum/src/css/pannellum.css', array(), true);
78
  wp_enqueue_style('videojs-css', 'https://vjs.zencdn.net/7.1.0/video-js.css', array(), true);
79
  wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/wpvr-public.css', array(), $this->version, 'all' );
@@ -193,6 +194,11 @@ class Wpvr_Public {
193
  if (isset($postdata['showControls'])) {
194
  $control = $postdata['showControls'];
195
  }
 
 
 
 
 
196
 
197
  $autoload = false;
198
 
@@ -232,7 +238,7 @@ class Wpvr_Public {
232
  if (isset($postdata['panodata'])) {
233
  $panodata = $postdata['panodata'];
234
  }
235
-
236
 
237
  $default_data = array();
238
  $default_data = array(__( "firstScene" )=>$default_scene,__( "sceneFadeDuration" )=>$scene_fade_duration);
@@ -248,6 +254,14 @@ class Wpvr_Public {
248
  $hotspots = array();
249
  foreach ($hotspot_datas as $hotspot_data) {
250
 
 
 
 
 
 
 
 
 
251
  $hotspot_info = array(
252
  __( "text" )=>$hotspot_data["hotspot-title"],
253
  __( "pitch" )=>$hotspot_data["hotspot-pitch"],
@@ -258,6 +272,9 @@ class Wpvr_Public {
258
  __( "clickHandlerArgs" )=>$hotspot_data["hotspot-content"],
259
  __( "createTooltipArgs" )=>$hotspot_data["hotspot-hover"],
260
  __( "sceneId" )=>$hotspot_data["hotspot-scene"]);
 
 
 
261
  array_push($hotspots, $hotspot_info);
262
  }
263
 
@@ -274,7 +291,7 @@ class Wpvr_Public {
274
  $pano_id_array = array();
275
  $pano_id_array = array(__( "panoid" )=>$panoid);
276
  $pano_response = array();
277
- $pano_response = array(__( "autoLoad" )=>$autoload,__( "showControls" )=>$control,__( "preview" )=>$preview,__( "autoRotate" )=>$autorotation,__( "autoRotateInactivityDelay" )=>$autorotationinactivedelay,__( "autoRotateStopDelay" )=>$autorotationstopdelay,__( "default" )=>$default_data,__( "scenes" )=>$scene_data);
278
 
279
  if (empty($autorotation)) {
280
  unset($pano_response['autoRotate']);
@@ -298,7 +315,47 @@ class Wpvr_Public {
298
  if (empty($height)) {
299
  $height = '400px';
300
  }
301
- $html = '';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
302
 
303
  $html .= '<div id="pano'.$id.'" class="pano-wrap" style="text-align: center; max-width: '.$width.'; height: '.$height.'; margin: 0 auto;">';
304
  $html .= '<i class="fa fa-times" id="cross"></i>';
73
  * class.
74
  */
75
  $plugin_url = plugin_dir_url( dirname(__FILE__) );
76
+ // wp_enqueue_style( $this->plugin_name . 'fontawesome', 'https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css', array(), $this->version, 'all' );
77
+ wp_enqueue_style( $this->plugin_name . 'fontawesome', 'https://use.fontawesome.com/releases/v5.7.2/css/all.css', array(), $this->version, 'all' );
78
  wp_enqueue_style('panellium-css', plugin_dir_url( __FILE__ ) . 'lib/pannellum/src/css/pannellum.css', array(), true);
79
  wp_enqueue_style('videojs-css', 'https://vjs.zencdn.net/7.1.0/video-js.css', array(), true);
80
  wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/wpvr-public.css', array(), $this->version, 'all' );
194
  if (isset($postdata['showControls'])) {
195
  $control = $postdata['showControls'];
196
  }
197
+
198
+ $compass = false;
199
+ if (isset($postdata['compass'])) {
200
+ $compass = $postdata['compass'];
201
+ }
202
 
203
  $autoload = false;
204
 
238
  if (isset($postdata['panodata'])) {
239
  $panodata = $postdata['panodata'];
240
  }
241
+ $hotspoticoncolor = '#00b4ff';
242
 
243
  $default_data = array();
244
  $default_data = array(__( "firstScene" )=>$default_scene,__( "sceneFadeDuration" )=>$scene_fade_duration);
254
  $hotspots = array();
255
  foreach ($hotspot_datas as $hotspot_data) {
256
 
257
+ $status = get_option( 'wpvr_edd_license_status' );
258
+ if( $status !== false && $status == 'valid' ) {
259
+ if (isset($hotspot_data["hotspot-customclass-pro"]) && $hotspot_data["hotspot-customclass-pro"] != 'none') {
260
+ $hotspot_data["hotspot-customclass"] = $hotspot_data["hotspot-customclass-pro"];
261
+ $hotspoticoncolor = $hotspot_data["hotspot-customclass-color-icon-value"];
262
+ }
263
+ }
264
+
265
  $hotspot_info = array(
266
  __( "text" )=>$hotspot_data["hotspot-title"],
267
  __( "pitch" )=>$hotspot_data["hotspot-pitch"],
272
  __( "clickHandlerArgs" )=>$hotspot_data["hotspot-content"],
273
  __( "createTooltipArgs" )=>$hotspot_data["hotspot-hover"],
274
  __( "sceneId" )=>$hotspot_data["hotspot-scene"]);
275
+ if ($hotspot_data["hotspot-customclass"] == 'none' || $hotspot_data["hotspot-customclass"] == '') {
276
+ unset($hotspot_info["cssClass"]);
277
+ }
278
  array_push($hotspots, $hotspot_info);
279
  }
280
 
291
  $pano_id_array = array();
292
  $pano_id_array = array(__( "panoid" )=>$panoid);
293
  $pano_response = array();
294
+ $pano_response = array(__( "autoLoad" )=>$autoload,__( "showControls" )=>$control,__( "compass" )=>$compass,__( "preview" )=>$preview,__( "autoRotate" )=>$autorotation,__( "autoRotateInactivityDelay" )=>$autorotationinactivedelay,__( "autoRotateStopDelay" )=>$autorotationstopdelay,__( "default" )=>$default_data,__( "scenes" )=>$scene_data);
295
 
296
  if (empty($autorotation)) {
297
  unset($pano_response['autoRotate']);
315
  if (empty($height)) {
316
  $height = '400px';
317
  }
318
+ $foreground_color = '#fff';
319
+ $pulse_color = wpvr_hex2rgb($hotspoticoncolor);
320
+ $rgb = wpvr_HTMLToRGB($hotspoticoncolor);
321
+ $hsl = wpvr_RGBToHSL($rgb);
322
+ if($hsl->lightness > 200) {
323
+ $foreground_color = '#000000';
324
+ }
325
+ else {
326
+ $foreground_color = '#fff';
327
+ }
328
+
329
+ $html = '';
330
+ $html .= '<style>';
331
+ $html .= 'div.pnlm-hotspot-base.fas,
332
+ div.pnlm-hotspot-base.fab,
333
+ div.pnlm-hotspot-base.far {
334
+ display: block !important;
335
+ background-color: '.$hotspoticoncolor.';
336
+ color: '.$foreground_color.';
337
+ border-radius: 100%;
338
+ width: 30px;
339
+ height: 30px;
340
+ animation: icon-pulse 1.5s infinite cubic-bezier(.25, 0, 0, 1);
341
+ }';
342
+ $html .= '@-webkit-keyframes icon-pulse {
343
+ 0% {
344
+ box-shadow: 0 0 0 0px rgba('.$pulse_color[0].', 1);
345
+ }
346
+ 100% {
347
+ box-shadow: 0 0 0 10px rgba('.$pulse_color[0].', 0);
348
+ }
349
+ }
350
+ @keyframes icon-pulse {
351
+ 0% {
352
+ box-shadow: 0 0 0 0px rgba('.$pulse_color[0].', 1);
353
+ }
354
+ 100% {
355
+ box-shadow: 0 0 0 10px rgba('.$pulse_color[0].', 0);
356
+ }
357
+ }';
358
+ $html .= '</style>';
359
 
360
  $html .= '<div id="pano'.$id.'" class="pano-wrap" style="text-align: center; max-width: '.$width.'; height: '.$height.'; margin: 0 auto;">';
361
  $html .= '<i class="fa fa-times" id="cross"></i>';
public/css/font-awesome.min.css CHANGED
File without changes
public/css/wpvr-public.css CHANGED
@@ -2,11 +2,77 @@
2
  * All of the CSS for your public-facing functionality should be
3
  * included in this file.
4
  */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
 
6
  .pnlm-container iframe {
7
  max-width: inherit;
8
  margin-bottom: 0;
9
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  div.custom-tooltip span {
11
  visibility: hidden;
12
  position: absolute;
@@ -18,8 +84,8 @@ div.custom-tooltip span {
18
  cursor: default;
19
  margin: 0!important;
20
  bottom: 40px!important;
21
- min-width: 200px;
22
  transform: translateX(-50%);
 
23
  }
24
  div.custom-tooltip span img{
25
  max-width: inherit;
@@ -93,19 +159,15 @@ div#custom-ifram {
93
  visibility: visible;
94
  }
95
 
96
- #custom-ifram p {
97
- background-color: #fff;
98
- padding: 10px;
99
- margin: auto;
100
- border-radius: 5px;
101
- }
102
-
103
  .custom-tooltip p {
104
  background-color: #fff;
105
- padding: 10px;
106
  margin: auto;
107
  border-radius: 5px;
108
- width: 500px;
 
 
109
  }
110
 
111
  #custom-ifram img {
2
  * All of the CSS for your public-facing functionality should be
3
  * included in this file.
4
  */
5
+ /*div.pnlm-hotspot-base.fas {
6
+ background-color: #00b4ff;
7
+ color: #fff;
8
+ }
9
+ div.pnlm-hotspot-base.fab {
10
+ background-color: #00b4ff;
11
+ color: #fff;
12
+ }
13
+ div.pnlm-hotspot-base.far{
14
+ background-color: #00b4ff;
15
+ color: #fff;
16
+ }*/
17
+
18
+ /*div.pnlm-hotspot-base.fas,
19
+ div.pnlm-hotspot-base.fab,
20
+ div.pnlm-hotspot-base.far {
21
+ display: block !important;
22
+ background-color: #00b4ff;
23
+ color: #fff;
24
+ border-radius: 100%;
25
+ width: 30px;
26
+ height: 30px;
27
+ animation: icon-pulse 2.5s infinite cubic-bezier(.25, 0, 0, 1);
28
+ }*/
29
+ div.pnlm-hotspot-base.fas:before,
30
+ div.pnlm-hotspot-base.fab:before,
31
+ div.pnlm-hotspot-base.far:before{
32
+ font-size: 14px;
33
+ position: absolute;
34
+ left: 50%;
35
+ top: 50%;
36
+ transform: translate(-50%, -50%);
37
+ }
38
 
39
  .pnlm-container iframe {
40
  max-width: inherit;
41
  margin-bottom: 0;
42
  }
43
+
44
+ .pnlm-hotspot-base.custom-icon {
45
+ width: 30px;
46
+ height: 30px;
47
+ display: block;
48
+ cursor: pointer;
49
+ border-radius: 100%;
50
+ }
51
+ .pnlm-hotspot-base.custom-icon:hover{
52
+ z-index: 9;
53
+ }
54
+
55
+
56
+ /*-------icon pulse-------*/
57
+ /*@-webkit-keyframes icon-pulse {
58
+ 0% {
59
+ box-shadow: 0 0 0 0px rgba(0, 180, 255, 1);
60
+ }
61
+ 100% {
62
+ box-shadow: 0 0 0 10px rgba(0, 180, 255, 0);
63
+ }
64
+ }
65
+ @keyframes icon-pulse {
66
+ 0% {
67
+ box-shadow: 0 0 0 0px rgba(0, 180, 255, 1);
68
+ }
69
+ 100% {
70
+ box-shadow: 0 0 0 10px rgba(0, 180, 255, 0);
71
+ }
72
+ }*/
73
+
74
+
75
+
76
  div.custom-tooltip span {
77
  visibility: hidden;
78
  position: absolute;
84
  cursor: default;
85
  margin: 0!important;
86
  bottom: 40px!important;
 
87
  transform: translateX(-50%);
88
+ min-width: 300px;
89
  }
90
  div.custom-tooltip span img{
91
  max-width: inherit;
159
  visibility: visible;
160
  }
161
 
162
+ #custom-ifram p,
 
 
 
 
 
 
163
  .custom-tooltip p {
164
  background-color: #fff;
165
+ padding: 10px 0;
166
  margin: auto;
167
  border-radius: 5px;
168
+ font-size: 16px;
169
+ line-height: 1.4;
170
+ font-family: Helvetica, "Nimbus Sans L", "Liberation Sans", Arial, sans-serif;
171
  }
172
 
173
  #custom-ifram img {
public/index.php CHANGED
File without changes
public/js/wpvr-public.js CHANGED
@@ -45,7 +45,7 @@ function wpvrtooltip(hotSpotDiv, args) {
45
  args = args.replace(/\\/g, "");
46
  span.innerHTML = args;
47
  hotSpotDiv.appendChild(span);
48
- span.style.width = span.scrollWidth - 20 + 'px';
49
  span.style.marginLeft = -(span.scrollWidth - hotSpotDiv.offsetWidth) / 2 + 'px';
50
  span.style.marginTop = -span.scrollHeight - 12 + 'px';
51
  }
@@ -57,4 +57,8 @@ jQuery(document).ready(function($){
57
  $(".pano-wrap").removeClass("show-modal");
58
  $('iframe').attr('src', $('iframe').attr('src'));
59
  });
60
- });
 
 
 
 
45
  args = args.replace(/\\/g, "");
46
  span.innerHTML = args;
47
  hotSpotDiv.appendChild(span);
48
+ // span.style.width = span.scrollWidth - 20 + 'px';
49
  span.style.marginLeft = -(span.scrollWidth - hotSpotDiv.offsetWidth) / 2 + 'px';
50
  span.style.marginTop = -span.scrollHeight - 12 + 'px';
51
  }
57
  $(".pano-wrap").removeClass("show-modal");
58
  $('iframe').attr('src', $('iframe').attr('src'));
59
  });
60
+ });
61
+
62
+
63
+
64
+
public/lib/pannellum/.gitignore CHANGED
File without changes
public/lib/pannellum/.npmignore CHANGED
File without changes
public/lib/pannellum/src/css/img/background.svg CHANGED
File without changes
public/lib/pannellum/src/css/img/compass.svg CHANGED
File without changes
public/lib/pannellum/src/css/img/grab.svg CHANGED
File without changes
public/lib/pannellum/src/css/img/grabbing.svg CHANGED
File without changes
public/lib/pannellum/src/css/img/sprites.svg CHANGED
File without changes
public/lib/pannellum/src/css/pannellum.css CHANGED
File without changes
public/lib/pannellum/src/js/RequestAnimationFrame.js CHANGED
File without changes
public/lib/pannellum/src/js/libpannellum.js CHANGED
File without changes
public/lib/pannellum/src/js/pannellum.js CHANGED
File without changes
public/partials/wpvr-public-display.php CHANGED
File without changes
src/index.js CHANGED
File without changes
src/view.css CHANGED
File without changes
uninstall.php CHANGED
File without changes
webpack.config.js CHANGED
File without changes
wpvr.php CHANGED
@@ -16,7 +16,7 @@
16
  * Plugin Name: WP VR
17
  * Plugin URI: https://rextheme.com/wp-vr-360-panorama-and-virtual-tour-creator-for-wordpress/
18
  * Description: WP VR - 360 Panorama and virtual tour creator for WordPress is a customized panaroma & virtual builder tool for WordPress Website.
19
- * Version: 2.1.0
20
  * Author: Rextheme
21
  * Author URI: http://rextheme.com/
22
  * License: GPL-2.0+
@@ -117,7 +117,7 @@ function wpvr_admin_notice_example_notice(){
117
  if ($screen->id=="toplevel_page_wpvr") {
118
  ?>
119
  <div class="notice notice-warning ">
120
- <p>Celebrating 1k active installations of WP Vr. Use coupon code wpvr1k to get 20% off from the Pro version until March 7th.</p>
121
  </div>
122
  <?php
123
  }
@@ -156,7 +156,8 @@ function wpvr_block() {
156
  array( 'wp-edit-blocks' )
157
  );
158
 
159
- register_block_type( 'wpvr/wpvr-block', array(
 
160
  'attributes' => array(
161
  'id' => array(
162
  'type' => 'string',
@@ -175,7 +176,8 @@ function wpvr_block() {
175
  ),
176
  'editor_script' => 'wpvr-block',
177
  'render_callback' => 'wpvr_block_render',
178
- ) );
 
179
  }
180
  add_action( 'init', 'wpvr_block' );
181
 
@@ -240,6 +242,11 @@ function wpvr_block_render( $attributes ) {
240
  $control = $postdata['showControls'];
241
  }
242
 
 
 
 
 
 
243
  $autoload = false;
244
 
245
  if (isset($postdata['autoLoad'])) {
@@ -278,7 +285,7 @@ function wpvr_block_render( $attributes ) {
278
  if (isset($postdata['panodata'])) {
279
  $panodata = $postdata['panodata'];
280
  }
281
-
282
 
283
  $default_data = array();
284
  $default_data = array(__( 'firstScene' )=>$default_scene,__( 'sceneFadeDuration' )=>$scene_fade_duration);
@@ -293,7 +300,13 @@ function wpvr_block_render( $attributes ) {
293
 
294
  $hotspots = array();
295
  foreach ($hotspot_datas as $hotspot_data) {
296
-
 
 
 
 
 
 
297
  $hotspot_info = array(
298
  __( 'text' )=>$hotspot_data['hotspot-title'],
299
  __( 'pitch' )=>$hotspot_data['hotspot-pitch'],
@@ -304,6 +317,9 @@ function wpvr_block_render( $attributes ) {
304
  __( 'clickHandlerArgs' )=>$hotspot_data['hotspot-content'],
305
  __( 'createTooltipArgs' )=>$hotspot_data['hotspot-hover'],
306
  __( 'sceneId' )=>$hotspot_data['hotspot-scene']);
 
 
 
307
  array_push($hotspots, $hotspot_info);
308
  }
309
 
@@ -320,7 +336,7 @@ function wpvr_block_render( $attributes ) {
320
  $pano_id_array = array();
321
  $pano_id_array = array(__( 'panoid' )=>$panoid);
322
  $pano_response = array();
323
- $pano_response = array(__( 'autoLoad' )=>$autoload,__( 'showControls' )=>$control,__( "preview" )=>$preview,__( "autoRotate" )=>$autorotation,__( "autoRotateInactivityDelay" )=>$autorotationinactivedelay,__( "autoRotateStopDelay" )=>$autorotationstopdelay,__( 'default' )=>$default_data,__( 'scenes' )=>$scene_data);
324
  if (empty($autorotation)) {
325
  unset($pano_response['autoRotate']);
326
  unset($pano_response['autoRotateInactivityDelay']);
@@ -344,9 +360,50 @@ function wpvr_block_render( $attributes ) {
344
  if (empty($height)) {
345
  $height = '400';
346
  }
 
 
 
 
 
 
 
 
 
 
 
 
347
  $class = 'myclass';
348
  $html = 'test';
349
  $html = '';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
350
 
351
  $html .= '<div id="pano'.$id.'" class="pano-wrap" style="text-align: center; max-width: '.$width.'px; height: '.$height.'px; margin: 0 auto;">';
352
  $html .= '<i class="fa fa-times" id="cross"></i>';
@@ -485,3 +542,84 @@ function wpvr_upgrade_to_pro_link( $links ) {
485
  return $links;
486
  }
487
  add_action( 'plugin_action_links_' . plugin_basename( __FILE__ ), 'wpvr_upgrade_to_pro_link' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  * Plugin Name: WP VR
17
  * Plugin URI: https://rextheme.com/wp-vr-360-panorama-and-virtual-tour-creator-for-wordpress/
18
  * Description: WP VR - 360 Panorama and virtual tour creator for WordPress is a customized panaroma & virtual builder tool for WordPress Website.
19
+ * Version: 2.1.1
20
  * Author: Rextheme
21
  * Author URI: http://rextheme.com/
22
  * License: GPL-2.0+
117
  if ($screen->id=="toplevel_page_wpvr") {
118
  ?>
119
  <div class="notice notice-warning ">
120
+ <p>Celebrating 1k active installations of WP Vr. Use coupon code wpvr1k to get 20% off from the Pro version until March 7th.<a href="https://rextheme.com/wpvr/?discount=wpvr1k"> Click Here</a></p>
121
  </div>
122
  <?php
123
  }
156
  array( 'wp-edit-blocks' )
157
  );
158
 
159
+ if (function_exists('register_block_type')) {
160
+ register_block_type( 'wpvr/wpvr-block', array(
161
  'attributes' => array(
162
  'id' => array(
163
  'type' => 'string',
176
  ),
177
  'editor_script' => 'wpvr-block',
178
  'render_callback' => 'wpvr_block_render',
179
+ ) );
180
+ }
181
  }
182
  add_action( 'init', 'wpvr_block' );
183
 
242
  $control = $postdata['showControls'];
243
  }
244
 
245
+ $compass = false;
246
+ if (isset($postdata['compass'])) {
247
+ $compass = $postdata['compass'];
248
+ }
249
+
250
  $autoload = false;
251
 
252
  if (isset($postdata['autoLoad'])) {
285
  if (isset($postdata['panodata'])) {
286
  $panodata = $postdata['panodata'];
287
  }
288
+ $hotspoticoncolor = '#00b4ff';
289
 
290
  $default_data = array();
291
  $default_data = array(__( 'firstScene' )=>$default_scene,__( 'sceneFadeDuration' )=>$scene_fade_duration);
300
 
301
  $hotspots = array();
302
  foreach ($hotspot_datas as $hotspot_data) {
303
+ $status = get_option( 'wpvr_edd_license_status' );
304
+ if( $status !== false && $status == 'valid' ) {
305
+ if (isset($hotspot_data["hotspot-customclass-pro"]) && $hotspot_data["hotspot-customclass-pro"] != 'none') {
306
+ $hotspot_data["hotspot-customclass"] = $hotspot_data["hotspot-customclass-pro"];
307
+ $hotspoticoncolor = $hotspot_data["hotspot-customclass-color-icon-value"];
308
+ }
309
+ }
310
  $hotspot_info = array(
311
  __( 'text' )=>$hotspot_data['hotspot-title'],
312
  __( 'pitch' )=>$hotspot_data['hotspot-pitch'],
317
  __( 'clickHandlerArgs' )=>$hotspot_data['hotspot-content'],
318
  __( 'createTooltipArgs' )=>$hotspot_data['hotspot-hover'],
319
  __( 'sceneId' )=>$hotspot_data['hotspot-scene']);
320
+ if ($hotspot_data["hotspot-customclass"] == 'none' || $hotspot_data["hotspot-customclass"] == '') {
321
+ unset($hotspot_info["cssClass"]);
322
+ }
323
  array_push($hotspots, $hotspot_info);
324
  }
325
 
336
  $pano_id_array = array();
337
  $pano_id_array = array(__( 'panoid' )=>$panoid);
338
  $pano_response = array();
339
+ $pano_response = array(__( 'autoLoad' )=>$autoload,__( 'showControls' )=>$control,__( 'compass' )=>$compass,__( "preview" )=>$preview,__( "autoRotate" )=>$autorotation,__( "autoRotateInactivityDelay" )=>$autorotationinactivedelay,__( "autoRotateStopDelay" )=>$autorotationstopdelay,__( 'default' )=>$default_data,__( 'scenes' )=>$scene_data);
340
  if (empty($autorotation)) {
341
  unset($pano_response['autoRotate']);
342
  unset($pano_response['autoRotateInactivityDelay']);
360
  if (empty($height)) {
361
  $height = '400';
362
  }
363
+
364
+ $foreground_color = '#fff';
365
+ $pulse_color = wpvr_hex2rgb($hotspoticoncolor);
366
+ $rgb = wpvr_HTMLToRGB($hotspoticoncolor);
367
+ $hsl = wpvr_RGBToHSL($rgb);
368
+ if($hsl->lightness > 200) {
369
+ $foreground_color = '#000000';
370
+ }
371
+ else {
372
+ $foreground_color = '#fff';
373
+ }
374
+
375
  $class = 'myclass';
376
  $html = 'test';
377
  $html = '';
378
+ $html .= '<style>';
379
+ $html .= 'div.pnlm-hotspot-base.fas,
380
+ div.pnlm-hotspot-base.fab,
381
+ div.pnlm-hotspot-base.far {
382
+ display: block !important;
383
+ background-color: '.$hotspoticoncolor.';
384
+ color: '.$foreground_color.';
385
+ border-radius: 100%;
386
+ width: 30px;
387
+ height: 30px;
388
+ animation: icon-pulse 1.5s infinite cubic-bezier(.25, 0, 0, 1);
389
+ }';
390
+ $html .= '@-webkit-keyframes icon-pulse {
391
+ 0% {
392
+ box-shadow: 0 0 0 0px rgba('.$pulse_color[0].', 1);
393
+ }
394
+ 100% {
395
+ box-shadow: 0 0 0 10px rgba('.$pulse_color[0].', 0);
396
+ }
397
+ }
398
+ @keyframes icon-pulse {
399
+ 0% {
400
+ box-shadow: 0 0 0 0px rgba('.$pulse_color[0].', 1);
401
+ }
402
+ 100% {
403
+ box-shadow: 0 0 0 10px rgba('.$pulse_color[0].', 0);
404
+ }
405
+ }';
406
+ $html .= '</style>';
407
 
408
  $html .= '<div id="pano'.$id.'" class="pano-wrap" style="text-align: center; max-width: '.$width.'px; height: '.$height.'px; margin: 0 auto;">';
409
  $html .= '<i class="fa fa-times" id="cross"></i>';
542
  return $links;
543
  }
544
  add_action( 'plugin_action_links_' . plugin_basename( __FILE__ ), 'wpvr_upgrade_to_pro_link' );
545
+
546
+
547
+ function wpvr_hex2rgb( $colour ) {
548
+ if ( $colour[0] == '#' ) {
549
+ $colour = substr( $colour, 1 );
550
+ }
551
+ if ( strlen( $colour ) == 6 ) {
552
+ list( $r, $g, $b ) = array( $colour[0] . $colour[1], $colour[2] . $colour[3], $colour[4] . $colour[5] );
553
+ } elseif ( strlen( $colour ) == 3 ) {
554
+ list( $r, $g, $b ) = array( $colour[0] . $colour[0], $colour[1] . $colour[1], $colour[2] . $colour[2] );
555
+ } else {
556
+ return false;
557
+ }
558
+ $r = hexdec( $r );
559
+ $g = hexdec( $g );
560
+ $b = hexdec( $b );
561
+ return array( $r.', '.$g.', '.$b );
562
+ }
563
+
564
+ function wpvr_HTMLToRGB($htmlCode)
565
+ {
566
+ if($htmlCode[0] == '#')
567
+ $htmlCode = substr($htmlCode, 1);
568
+
569
+ if (strlen($htmlCode) == 3)
570
+ {
571
+ $htmlCode = $htmlCode[0] . $htmlCode[0] . $htmlCode[1] . $htmlCode[1] . $htmlCode[2] . $htmlCode[2];
572
+ }
573
+
574
+ $r = hexdec($htmlCode[0] . $htmlCode[1]);
575
+ $g = hexdec($htmlCode[2] . $htmlCode[3]);
576
+ $b = hexdec($htmlCode[4] . $htmlCode[5]);
577
+
578
+ return $b + ($g << 0x8) + ($r << 0x10);
579
+ }
580
+
581
+ function wpvr_RGBToHSL($RGB) {
582
+ $r = 0xFF & ($RGB >> 0x10);
583
+ $g = 0xFF & ($RGB >> 0x8);
584
+ $b = 0xFF & $RGB;
585
+
586
+ $r = ((float)$r) / 255.0;
587
+ $g = ((float)$g) / 255.0;
588
+ $b = ((float)$b) / 255.0;
589
+
590
+ $maxC = max($r, $g, $b);
591
+ $minC = min($r, $g, $b);
592
+
593
+ $l = ($maxC + $minC) / 2.0;
594
+
595
+ if($maxC == $minC)
596
+ {
597
+ $s = 0;
598
+ $h = 0;
599
+ }
600
+ else
601
+ {
602
+ if($l < .5)
603
+ {
604
+ $s = ($maxC - $minC) / ($maxC + $minC);
605
+ }
606
+ else
607
+ {
608
+ $s = ($maxC - $minC) / (2.0 - $maxC - $minC);
609
+ }
610
+ if($r == $maxC)
611
+ $h = ($g - $b) / ($maxC - $minC);
612
+ if($g == $maxC)
613
+ $h = 2.0 + ($b - $r) / ($maxC - $minC);
614
+ if($b == $maxC)
615
+ $h = 4.0 + ($r - $g) / ($maxC - $minC);
616
+
617
+ $h = $h / 6.0;
618
+ }
619
+
620
+ $h = (int)round(255.0 * $h);
621
+ $s = (int)round(255.0 * $s);
622
+ $l = (int)round(255.0 * $l);
623
+
624
+ return (object) Array('hue' => $h, 'saturation' => $s, 'lightness' => $l);
625
+ }