WD Google Maps – Google Maps builder Plugin - Version 1.0.31

Version Description

  • Added: Overview page
Download this release

Release Info

Developer webdorado
Plugin Icon 128x128 WD Google Maps – Google Maps builder Plugin
Version 1.0.31
Comparing to
See all releases

Code changes from version 1.0.30 to 1.0.31

Files changed (99) hide show
  1. admin/controllers/GMWDControllerUninstall_gmwd.php +9 -0
  2. admin/views/GMWDViewShortcode_gmwd.php +46 -43
  3. admin/views/GMWDViewUninstall_gmwd.php +2 -1
  4. css/bootstrap-theme.css +583 -0
  5. featured/featured.php +0 -184
  6. featured/featured_themes.php +0 -92
  7. featured/images/best_magazine.jpg +0 -0
  8. featured/images/business_elite.jpg +0 -0
  9. featured/images/business_world.jpg +0 -0
  10. featured/images/catalog.png +0 -0
  11. featured/images/contact.builder.png +0 -0
  12. featured/images/contact.maker.png +0 -0
  13. featured/images/contacts.png +0 -0
  14. featured/images/download_plugins.png +0 -0
  15. featured/images/download_themes.png +0 -0
  16. featured/images/ecommerce.png +0 -0
  17. featured/images/exclusive.jpg +0 -0
  18. featured/images/expert.jpg +0 -0
  19. featured/images/facebook-feed.png +0 -0
  20. featured/images/facebook.png +0 -0
  21. featured/images/faq.png +0 -0
  22. featured/images/faq_wd.png +0 -0
  23. featured/images/flash.calendar.png +0 -0
  24. featured/images/fm-import.png +0 -0
  25. featured/images/folder.menu.png +0 -0
  26. featured/images/magazine.jpg +0 -0
  27. featured/images/mailchimp.png +0 -0
  28. featured/images/mottomag.jpg +0 -0
  29. featured/images/player.png +0 -0
  30. featured/images/portfolio.png +0 -0
  31. featured/images/post-slider.png +0 -0
  32. featured/images/random.post.png +0 -0
  33. featured/images/sauron.jpg +0 -0
  34. featured/images/twittertools.png +0 -0
  35. featured/images/wedding.jpg +0 -0
  36. featured/images/wedding_style.jpg +0 -0
  37. featured/images/zoom.png +0 -0
  38. featured/style.css +0 -203
  39. featured/themes_style.css +0 -187
  40. framework/functions.php +1 -2
  41. gmwd_admin_class.php +29 -28
  42. js/admin_main.js +39 -38
  43. js/init_map_admin.js +3 -3
  44. notices/gmwd-notices.php +0 -236
  45. readme.txt +6 -3
  46. wd-google-maps.php +140 -1
  47. wd/assets/css/deactivate_popup.css +45 -0
  48. wd/assets/css/img/allow&continue.png +0 -0
  49. wd/assets/css/img/coupon_bg.png +0 -0
  50. wd/assets/css/img/plugins_header_bg.png +0 -0
  51. wd/assets/css/img/skip.png +0 -0
  52. wd/assets/css/img/themes_headrer_bg.png +0 -0
  53. wd/assets/css/img/ug-icon-1.png +0 -0
  54. wd/assets/css/img/ug-icon-2.png +0 -0
  55. wd/assets/css/img/ug-icon-3.png +0 -0
  56. wd/assets/css/img/ug-icon-4.png +0 -0
  57. wd/assets/css/img/ug-icon-5.png +0 -0
  58. wd/assets/css/img/welcome_bg.png +0 -0
  59. wd/assets/css/notices.css +89 -0
  60. wd/assets/css/overview.css +452 -0
  61. wd/assets/css/subscribe.css +114 -0
  62. wd/assets/img/loader.gif +0 -0
  63. wd/assets/img/main_plugin.png +0 -0
  64. wd/assets/img/marker_clusters.png +0 -0
  65. wd/assets/img/notice_img.png +0 -0
  66. wd/assets/img/plugins/business_elite.png +0 -0
  67. wd/assets/img/plugins/business_world.png +0 -0
  68. featured/images/events-wd.png → wd/assets/img/plugins/event-calendar-wd.png +0 -0
  69. featured/images/form.png → wd/assets/img/plugins/form-maker.png +0 -0
  70. {featured/images → wd/assets/img/plugins}/photo-gallery.png +0 -0
  71. wd/assets/img/plugins/portfolio_gallery.png +0 -0
  72. wd/assets/img/plugins/sauron.png +0 -0
  73. featured/images/slider.png → wd/assets/img/plugins/slider-wd.png +0 -0
  74. featured/images/spider.calendar.png → wd/assets/img/plugins/spider-event-calendar.png +0 -0
  75. wd/assets/img/plugins/wd-google-maps.png +0 -0
  76. featured/images/instagram_feed.png → wd/assets/img/plugins/wd-instagram-feed.png +0 -0
  77. wd/assets/img/sub_1.png +0 -0
  78. wd/assets/img/sub_2.png +0 -0
  79. wd/assets/img/sub_4.png +0 -0
  80. wd/assets/img/wp_logo.png +0 -0
  81. wd/assets/js/deactivate_popup.js +61 -0
  82. wd/assets/js/overview.js +56 -0
  83. wd/assets/js/subsribe.js +36 -0
  84. wd/config.php +50 -0
  85. wd/includes/api.php +79 -0
  86. wd/includes/deactivate.php +163 -0
  87. wd/includes/notices.php +251 -0
  88. wd/includes/overview.php +306 -0
  89. wd/includes/subscribe.php +114 -0
  90. wd/require.php +14 -0
  91. wd/start.php +36 -0
  92. wd/templates/display_deactivation_popup.php +27 -0
  93. wd/templates/display_overview.php +33 -0
  94. wd/templates/display_overview_deals.php +88 -0
  95. wd/templates/display_overview_support.php +34 -0
  96. wd/templates/display_overview_user_guide.php +43 -0
  97. wd/templates/display_overview_welcome.php +23 -0
  98. wd/templates/display_subscribe.php +47 -0
  99. wd/wd.php +193 -0
admin/controllers/GMWDControllerUninstall_gmwd.php CHANGED
@@ -13,6 +13,14 @@ class GMWDControllerUninstall_gmwd extends GMWDController{
13
  ////////////////////////////////////////////////////////////////////////////////////////
14
  // Constructor & Destructor //
15
  ////////////////////////////////////////////////////////////////////////////////////////
 
 
 
 
 
 
 
 
16
  ////////////////////////////////////////////////////////////////////////////////////////
17
  // Public Methods //
18
  ////////////////////////////////////////////////////////////////////////////////////////
@@ -39,6 +47,7 @@ class GMWDControllerUninstall_gmwd extends GMWDController{
39
  delete_option('gmwd_download_markers');
40
  delete_option('gmwd_pro');
41
  delete_option('gmwd_admin_notice');
 
42
 
43
  $this->view->complete_uninstalation();
44
 
13
  ////////////////////////////////////////////////////////////////////////////////////////
14
  // Constructor & Destructor //
15
  ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct(){
17
+ parent::__construct();
18
+ include_once (GMWD_DIR . "/wd/includes/deactivate.php");
19
+ $deactivate_reasons = new WDDeactivate();
20
+ $deactivate_reasons->add_deactivation_feedback_dialog_box();
21
+ $deactivate_reasons->submit_and_deactivate();
22
+
23
+ }
24
  ////////////////////////////////////////////////////////////////////////////////////////
25
  // Public Methods //
26
  ////////////////////////////////////////////////////////////////////////////////////////
47
  delete_option('gmwd_download_markers');
48
  delete_option('gmwd_pro');
49
  delete_option('gmwd_admin_notice');
50
+ delete_option('gmwd_subscribe_done');
51
 
52
  $this->view->complete_uninstalation();
53
 
admin/views/GMWDViewShortcode_gmwd.php CHANGED
@@ -128,7 +128,8 @@ class GMWDViewShortcode_gmwd extends GMWDView{
128
  center: {lat: Number(<?php echo gmwd_get_option("center_lat");?>), lng: Number(<?php echo gmwd_get_option("center_lng");?>)},
129
  zoom: Number(<?php echo gmwd_get_option("zoom_level");?>)
130
  });
131
- }
 
132
  }
133
 
134
  function gmwdInitShortcodeMap(mapId){
@@ -140,51 +141,53 @@ class GMWDViewShortcode_gmwd extends GMWDView{
140
  data.ajax = 1;
141
 
142
  jQuery.post(ajax_url, data, function (data){
143
- data = JSON.parse(data);
144
- zoom = Number(data.zoom_level);
145
- mapType = data.type;
146
- maxZoom = Number(data.max_zoom);
147
- minZoom = Number(data.min_zoom);
148
- mapWhellScrolling = Number(data.whell_scrolling) == 1 ? true : false;
149
- mapDragable = Number(data.map_draggable) == 1 ? true : false;
150
- mapDbClickZoom = Number(data.map_db_click_zoom) == 1 ? true : false;
151
- enableZoomControl = Number(data.enable_zoom_control) == 1 ? true : false;
152
- enableMapTypeControl = Number(data.enable_map_type_control) == 1 ? true : false;
153
- mapTypeControlOptions = {};
154
- enableScaleControl = Number(data.enable_scale_control) == 1 ? true : false;
155
- enableStreetViewControl = Number(data.enable_street_view_control) == 1 ? true : false;
156
- enableFullscreenControl = Number(data.enable_fullscreen_control) == 1 ? true : false;
157
- enableRotateControl = Number(data.enable_rotate_control) == 1 ? true : false;
158
- mapTypeControlPosition = Number(data.map_type_control_position);
159
- fullscreenControlPosition = Number(data.fullscreen_control_position);
160
- zoomControlPosition = Number(data.zoom_control_position);
161
- streetViewControlPosition = Number(data.street_view_control_position);
162
- mapTypeControlStyle = Number(data.map_type_control_style);
163
- mapBorderRadius = data.border_radius;
164
- enableBykeLayer = Number(data.enable_bicycle_layer);
165
- enableTrafficLayer = Number(data.enable_traffic_layer);
166
- enableTransitLayer = Number(data.enable_transit_layer);
167
- geoRSSURL = data.georss_url;
168
- KMLURL = data.kml_url;
169
- fusionTableId = data.fusion_table_id;
170
- mapMarkers = data.all_markers;
171
- mapCircles = data.all_circles;
172
- mapRectangles = data.all_rectangles;
173
- mapPolygons = data.all_polygons;
174
- mapPolylines = data.all_polylines;
175
- infoWindowInfo = data.info_window_info;
176
- centerLat = Number(data.center_lat);
177
- centerLng = Number(data.center_lng);
178
- mapTheme = htmlspecialchars_decode(data.map_theme_code);
179
 
180
- GMWD_URL = "<?php echo GMWD_URL;?>";
181
- enableDirections = data.enable_directions;
182
- markerListingType = data.marker_listing_type;
183
- markerDefaultIcon = "<?php echo gmwd_get_option("marker_default_icon");?>";
184
- gmwdInitMainMap("wd-map-container", false);
 
 
 
 
185
  });
186
  }
187
- function gmwdShortcodeEdit(){
 
188
 
189
  var shortcodeParams = gmwdShortcodeParams();
190
 
128
  center: {lat: Number(<?php echo gmwd_get_option("center_lat");?>), lng: Number(<?php echo gmwd_get_option("center_lng");?>)},
129
  zoom: Number(<?php echo gmwd_get_option("zoom_level");?>)
130
  });
131
+ }
132
+
133
  }
134
 
135
  function gmwdInitShortcodeMap(mapId){
141
  data.ajax = 1;
142
 
143
  jQuery.post(ajax_url, data, function (data){
144
+ data = JSON.parse(data);
145
+ zoom = Number(data.zoom_level);
146
+ mapType = data.type;
147
+ maxZoom = Number(data.max_zoom);
148
+ minZoom = Number(data.min_zoom);
149
+ mapWhellScrolling = Number(data.whell_scrolling) == 1 ? true : false;
150
+ mapDragable = Number(data.map_draggable) == 1 ? true : false;
151
+ mapDbClickZoom = Number(data.map_db_click_zoom) == 1 ? true : false;
152
+ enableZoomControl = Number(data.enable_zoom_control) == 1 ? true : false;
153
+ enableMapTypeControl = Number(data.enable_map_type_control) == 1 ? true : false;
154
+ mapTypeControlOptions = {};
155
+ enableScaleControl = Number(data.enable_scale_control) == 1 ? true : false;
156
+ enableStreetViewControl = Number(data.enable_street_view_control) == 1 ? true : false;
157
+ enableFullscreenControl = Number(data.enable_fullscreen_control) == 1 ? true : false;
158
+ enableRotateControl = Number(data.enable_rotate_control) == 1 ? true : false;
159
+ mapTypeControlPosition = Number(data.map_type_control_position);
160
+ fullscreenControlPosition = Number(data.fullscreen_control_position);
161
+ zoomControlPosition = Number(data.zoom_control_position);
162
+ streetViewControlPosition = Number(data.street_view_control_position);
163
+ mapTypeControlStyle = Number(data.map_type_control_style);
164
+ mapBorderRadius = data.border_radius;
165
+ enableBykeLayer = Number(data.enable_bicycle_layer);
166
+ enableTrafficLayer = Number(data.enable_traffic_layer);
167
+ enableTransitLayer = Number(data.enable_transit_layer);
168
+ geoRSSURL = data.georss_url;
169
+ KMLURL = data.kml_url;
170
+ fusionTableId = data.fusion_table_id;
171
+ mapMarkers = data.all_markers;
172
+ mapCircles = data.all_circles;
173
+ mapRectangles = data.all_rectangles;
174
+ mapPolygons = data.all_polygons;
175
+ mapPolylines = data.all_polylines;
176
+ infoWindowInfo = data.info_window_info;
 
 
 
177
 
178
+ centerLat = Number(data.center_lat);
179
+ centerLng = Number(data.center_lng);
180
+ mapTheme = htmlspecialchars_decode(data.map_theme_code);
181
+
182
+ GMWD_URL = "<?php echo GMWD_URL;?>";
183
+ enableDirections = data.enable_directions;
184
+ markerListingType = data.marker_listing_type;
185
+ markerDefaultIcon = "<?php echo gmwd_get_option("marker_default_icon");?>";
186
+ gmwdInitMainMap("wd-map-container", false);
187
  });
188
  }
189
+
190
+ function gmwdShortcodeEdit(){
191
 
192
  var shortcodeParams = gmwdShortcodeParams();
193
 
admin/views/GMWDViewUninstall_gmwd.php CHANGED
@@ -99,6 +99,7 @@ class GMWDViewUninstall_gmwd extends GMWDView{
99
 
100
  $prefix = $wpdb->prefix;
101
  $deactivate_url = wp_nonce_url('plugins.php?action=deactivate&amp;plugin='.GMWD_NAME.'/wd-google-maps.php', 'deactivate-plugin_'.GMWD_NAME.'/wd-google-maps.php');
 
102
  ?>
103
  <div id="message" class="updated fade">
104
  <p><?php _e("The following Database Tables successfully deleted:","gmwd"); ?></p>
@@ -111,7 +112,7 @@ class GMWDViewUninstall_gmwd extends GMWDView{
111
  </div>
112
  <div class="wrap">
113
  <h2><?php _e("Uninstall Google Maps WD","gmwd"); ?></h2>
114
- <p><strong><a href="<?php echo $deactivate_url; ?>"><?php _e("Click Here","gmwd"); ?></a><?php _e(" To Finish the Uninstallation and Google Maps WD will be Deactivated Automatically.","gmwd"); ?></strong></p>
115
 
116
  </div>
117
  <?php
99
 
100
  $prefix = $wpdb->prefix;
101
  $deactivate_url = wp_nonce_url('plugins.php?action=deactivate&amp;plugin='.GMWD_NAME.'/wd-google-maps.php', 'deactivate-plugin_'.GMWD_NAME.'/wd-google-maps.php');
102
+
103
  ?>
104
  <div id="message" class="updated fade">
105
  <p><?php _e("The following Database Tables successfully deleted:","gmwd"); ?></p>
112
  </div>
113
  <div class="wrap">
114
  <h2><?php _e("Uninstall Google Maps WD","gmwd"); ?></h2>
115
+ <p><strong><a href="<?php echo $deactivate_url; ?>" class="gmwd_deactivate_link"><?php _e("Click Here","gmwd"); ?></a><?php _e(" To Finish the Uninstallation and Google Maps WD will be Deactivated Automatically.","gmwd"); ?></strong></p>
116
 
117
  </div>
118
  <?php
css/bootstrap-theme.css ADDED
@@ -0,0 +1,583 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap v3.3.6 (http://getbootstrap.com)
3
+ * Copyright 2011-2015 Twitter, Inc.
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
+ */
6
+ .btn-default,
7
+ .btn-primary,
8
+ .btn-success,
9
+ .btn-info,
10
+ .btn-warning,
11
+ .btn-danger {
12
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
13
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
14
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
15
+ }
16
+ .btn-default:active,
17
+ .btn-primary:active,
18
+ .btn-success:active,
19
+ .btn-info:active,
20
+ .btn-warning:active,
21
+ .btn-danger:active,
22
+ .btn-default.active,
23
+ .btn-primary.active,
24
+ .btn-success.active,
25
+ .btn-info.active,
26
+ .btn-warning.active,
27
+ .btn-danger.active {
28
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
29
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
30
+ }
31
+ .btn-default.disabled,
32
+ .btn-primary.disabled,
33
+ .btn-success.disabled,
34
+ .btn-info.disabled,
35
+ .btn-warning.disabled,
36
+ .btn-danger.disabled,
37
+ .btn-default[disabled],
38
+ .btn-primary[disabled],
39
+ .btn-success[disabled],
40
+ .btn-info[disabled],
41
+ .btn-warning[disabled],
42
+ .btn-danger[disabled],
43
+ fieldset[disabled] .btn-default,
44
+ fieldset[disabled] .btn-primary,
45
+ fieldset[disabled] .btn-success,
46
+ fieldset[disabled] .btn-info,
47
+ fieldset[disabled] .btn-warning,
48
+ fieldset[disabled] .btn-danger {
49
+ -webkit-box-shadow: none;
50
+ box-shadow: none;
51
+ }
52
+ .btn-default .badge,
53
+ .btn-primary .badge,
54
+ .btn-success .badge,
55
+ .btn-info .badge,
56
+ .btn-warning .badge,
57
+ .btn-danger .badge {
58
+ text-shadow: none;
59
+ }
60
+ .btn:active,
61
+ .btn.active {
62
+ background-image: none;
63
+ }
64
+ .btn-default {
65
+ text-shadow: 0 1px 0 #fff;
66
+ background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
67
+ background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);
68
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));
69
+ background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
70
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
71
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
72
+ background-repeat: repeat-x;
73
+ border-color: #dbdbdb;
74
+ border-color: #ccc;
75
+ }
76
+ .btn-default:hover,
77
+ .btn-default:focus {
78
+ background-color: #e0e0e0;
79
+ background-position: 0 -15px;
80
+ }
81
+ .btn-default:active,
82
+ .btn-default.active {
83
+ background-color: #e0e0e0;
84
+ border-color: #dbdbdb;
85
+ }
86
+ .btn-default.disabled,
87
+ .btn-default[disabled],
88
+ fieldset[disabled] .btn-default,
89
+ .btn-default.disabled:hover,
90
+ .btn-default[disabled]:hover,
91
+ fieldset[disabled] .btn-default:hover,
92
+ .btn-default.disabled:focus,
93
+ .btn-default[disabled]:focus,
94
+ fieldset[disabled] .btn-default:focus,
95
+ .btn-default.disabled.focus,
96
+ .btn-default[disabled].focus,
97
+ fieldset[disabled] .btn-default.focus,
98
+ .btn-default.disabled:active,
99
+ .btn-default[disabled]:active,
100
+ fieldset[disabled] .btn-default:active,
101
+ .btn-default.disabled.active,
102
+ .btn-default[disabled].active,
103
+ fieldset[disabled] .btn-default.active {
104
+ background-color: #e0e0e0;
105
+ background-image: none;
106
+ }
107
+ .btn-primary {
108
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);
109
+ background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);
110
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88));
111
+ background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);
112
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);
113
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
114
+ background-repeat: repeat-x;
115
+ border-color: #245580;
116
+ }
117
+ .btn-primary:hover,
118
+ .btn-primary:focus {
119
+ background-color: #265a88;
120
+ background-position: 0 -15px;
121
+ }
122
+ .btn-primary:active,
123
+ .btn-primary.active {
124
+ background-color: #265a88;
125
+ border-color: #245580;
126
+ }
127
+ .btn-primary.disabled,
128
+ .btn-primary[disabled],
129
+ fieldset[disabled] .btn-primary,
130
+ .btn-primary.disabled:hover,
131
+ .btn-primary[disabled]:hover,
132
+ fieldset[disabled] .btn-primary:hover,
133
+ .btn-primary.disabled:focus,
134
+ .btn-primary[disabled]:focus,
135
+ fieldset[disabled] .btn-primary:focus,
136
+ .btn-primary.disabled.focus,
137
+ .btn-primary[disabled].focus,
138
+ fieldset[disabled] .btn-primary.focus,
139
+ .btn-primary.disabled:active,
140
+ .btn-primary[disabled]:active,
141
+ fieldset[disabled] .btn-primary:active,
142
+ .btn-primary.disabled.active,
143
+ .btn-primary[disabled].active,
144
+ fieldset[disabled] .btn-primary.active {
145
+ background-color: #265a88;
146
+ background-image: none;
147
+ }
148
+ .btn-success {
149
+ background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
150
+ background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
151
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));
152
+ background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
153
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
154
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
155
+ background-repeat: repeat-x;
156
+ border-color: #3e8f3e;
157
+ }
158
+ .btn-success:hover,
159
+ .btn-success:focus {
160
+ background-color: #419641;
161
+ background-position: 0 -15px;
162
+ }
163
+ .btn-success:active,
164
+ .btn-success.active {
165
+ background-color: #419641;
166
+ border-color: #3e8f3e;
167
+ }
168
+ .btn-success.disabled,
169
+ .btn-success[disabled],
170
+ fieldset[disabled] .btn-success,
171
+ .btn-success.disabled:hover,
172
+ .btn-success[disabled]:hover,
173
+ fieldset[disabled] .btn-success:hover,
174
+ .btn-success.disabled:focus,
175
+ .btn-success[disabled]:focus,
176
+ fieldset[disabled] .btn-success:focus,
177
+ .btn-success.disabled.focus,
178
+ .btn-success[disabled].focus,
179
+ fieldset[disabled] .btn-success.focus,
180
+ .btn-success.disabled:active,
181
+ .btn-success[disabled]:active,
182
+ fieldset[disabled] .btn-success:active,
183
+ .btn-success.disabled.active,
184
+ .btn-success[disabled].active,
185
+ fieldset[disabled] .btn-success.active {
186
+ background-color: #419641;
187
+ background-image: none;
188
+ }
189
+ .btn-info {
190
+ background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
191
+ background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
192
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));
193
+ background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
194
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
195
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
196
+ background-repeat: repeat-x;
197
+ border-color: #28a4c9;
198
+ }
199
+ .btn-info:hover,
200
+ .btn-info:focus {
201
+ background-color: #2aabd2;
202
+ background-position: 0 -15px;
203
+ }
204
+ .btn-info:active,
205
+ .btn-info.active {
206
+ background-color: #2aabd2;
207
+ border-color: #28a4c9;
208
+ }
209
+ .btn-info.disabled,
210
+ .btn-info[disabled],
211
+ fieldset[disabled] .btn-info,
212
+ .btn-info.disabled:hover,
213
+ .btn-info[disabled]:hover,
214
+ fieldset[disabled] .btn-info:hover,
215
+ .btn-info.disabled:focus,
216
+ .btn-info[disabled]:focus,
217
+ fieldset[disabled] .btn-info:focus,
218
+ .btn-info.disabled.focus,
219
+ .btn-info[disabled].focus,
220
+ fieldset[disabled] .btn-info.focus,
221
+ .btn-info.disabled:active,
222
+ .btn-info[disabled]:active,
223
+ fieldset[disabled] .btn-info:active,
224
+ .btn-info.disabled.active,
225
+ .btn-info[disabled].active,
226
+ fieldset[disabled] .btn-info.active {
227
+ background-color: #2aabd2;
228
+ background-image: none;
229
+ }
230
+ .btn-warning {
231
+ background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
232
+ background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
233
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));
234
+ background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
235
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
236
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
237
+ background-repeat: repeat-x;
238
+ border-color: #e38d13;
239
+ }
240
+ .btn-warning:hover,
241
+ .btn-warning:focus {
242
+ background-color: #eb9316;
243
+ background-position: 0 -15px;
244
+ }
245
+ .btn-warning:active,
246
+ .btn-warning.active {
247
+ background-color: #eb9316;
248
+ border-color: #e38d13;
249
+ }
250
+ .btn-warning.disabled,
251
+ .btn-warning[disabled],
252
+ fieldset[disabled] .btn-warning,
253
+ .btn-warning.disabled:hover,
254
+ .btn-warning[disabled]:hover,
255
+ fieldset[disabled] .btn-warning:hover,
256
+ .btn-warning.disabled:focus,
257
+ .btn-warning[disabled]:focus,
258
+ fieldset[disabled] .btn-warning:focus,
259
+ .btn-warning.disabled.focus,
260
+ .btn-warning[disabled].focus,
261
+ fieldset[disabled] .btn-warning.focus,
262
+ .btn-warning.disabled:active,
263
+ .btn-warning[disabled]:active,
264
+ fieldset[disabled] .btn-warning:active,
265
+ .btn-warning.disabled.active,
266
+ .btn-warning[disabled].active,
267
+ fieldset[disabled] .btn-warning.active {
268
+ background-color: #eb9316;
269
+ background-image: none;
270
+ }
271
+ .btn-danger {
272
+ background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
273
+ background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
274
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));
275
+ background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
276
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
277
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
278
+ background-repeat: repeat-x;
279
+ border-color: #b92c28;
280
+ }
281
+ .btn-danger:hover,
282
+ .btn-danger:focus {
283
+ background-color: #c12e2a;
284
+ background-position: 0 -15px;
285
+ }
286
+ .btn-danger:active,
287
+ .btn-danger.active {
288
+ background-color: #c12e2a;
289
+ border-color: #b92c28;
290
+ }
291
+ .btn-danger.disabled,
292
+ .btn-danger[disabled],
293
+ fieldset[disabled] .btn-danger,
294
+ .btn-danger.disabled:hover,
295
+ .btn-danger[disabled]:hover,
296
+ fieldset[disabled] .btn-danger:hover,
297
+ .btn-danger.disabled:focus,
298
+ .btn-danger[disabled]:focus,
299
+ fieldset[disabled] .btn-danger:focus,
300
+ .btn-danger.disabled.focus,
301
+ .btn-danger[disabled].focus,
302
+ fieldset[disabled] .btn-danger.focus,
303
+ .btn-danger.disabled:active,
304
+ .btn-danger[disabled]:active,
305
+ fieldset[disabled] .btn-danger:active,
306
+ .btn-danger.disabled.active,
307
+ .btn-danger[disabled].active,
308
+ fieldset[disabled] .btn-danger.active {
309
+ background-color: #c12e2a;
310
+ background-image: none;
311
+ }
312
+ .thumbnail,
313
+ .img-thumbnail {
314
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
315
+ box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
316
+ }
317
+ .dropdown-menu > li > a:hover,
318
+ .dropdown-menu > li > a:focus {
319
+ background-color: #e8e8e8;
320
+ background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
321
+ background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
322
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
323
+ background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
324
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
325
+ background-repeat: repeat-x;
326
+ }
327
+ .dropdown-menu > .active > a,
328
+ .dropdown-menu > .active > a:hover,
329
+ .dropdown-menu > .active > a:focus {
330
+ background-color: #2e6da4;
331
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
332
+ background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
333
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
334
+ background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
335
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
336
+ background-repeat: repeat-x;
337
+ }
338
+ .navbar-default {
339
+ background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
340
+ background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);
341
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8));
342
+ background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
343
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
344
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
345
+ background-repeat: repeat-x;
346
+ border-radius: 4px;
347
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
348
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
349
+ }
350
+ .navbar-default .navbar-nav > .open > a,
351
+ .navbar-default .navbar-nav > .active > a {
352
+ background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
353
+ background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
354
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));
355
+ background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);
356
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);
357
+ background-repeat: repeat-x;
358
+ -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
359
+ box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
360
+ }
361
+ .navbar-brand,
362
+ .navbar-nav > li > a {
363
+ text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
364
+ }
365
+ .navbar-inverse {
366
+
367
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
368
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
369
+
370
+ }
371
+ .navbar-inverse .navbar-nav > .open > a,
372
+ .navbar-inverse .navbar-nav > .active > a {
373
+ background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);
374
+ background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);
375
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));
376
+ background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
377
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);
378
+ background-repeat: repeat-x;
379
+ -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
380
+ box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
381
+ }
382
+ .navbar-inverse .navbar-brand,
383
+ .navbar-inverse .navbar-nav > li > a {
384
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
385
+ }
386
+ .navbar-static-top,
387
+ .navbar-fixed-top,
388
+ .navbar-fixed-bottom {
389
+ border-radius: 0;
390
+ }
391
+ @media (max-width: 767px) {
392
+ .navbar .navbar-nav .open .dropdown-menu > .active > a,
393
+ .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,
394
+ .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
395
+ color: #fff;
396
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
397
+ background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
398
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
399
+ background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
400
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
401
+ background-repeat: repeat-x;
402
+ }
403
+ }
404
+ .alert {
405
+ text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
406
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
407
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
408
+ }
409
+ .alert-success {
410
+ background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
411
+ background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
412
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
413
+ background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
414
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
415
+ background-repeat: repeat-x;
416
+ border-color: #b2dba1;
417
+ }
418
+ .alert-info {
419
+ background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
420
+ background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
421
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));
422
+ background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
423
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
424
+ background-repeat: repeat-x;
425
+ border-color: #9acfea;
426
+ }
427
+ .alert-warning {
428
+ background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
429
+ background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
430
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));
431
+ background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
432
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
433
+ background-repeat: repeat-x;
434
+ border-color: #f5e79e;
435
+ }
436
+ .alert-danger {
437
+ background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
438
+ background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
439
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));
440
+ background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
441
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
442
+ background-repeat: repeat-x;
443
+ border-color: #dca7a7;
444
+ }
445
+ .progress {
446
+ background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
447
+ background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
448
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));
449
+ background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
450
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
451
+ background-repeat: repeat-x;
452
+ }
453
+ .progress-bar {
454
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);
455
+ background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);
456
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090));
457
+ background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);
458
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);
459
+ background-repeat: repeat-x;
460
+ }
461
+ .progress-bar-success {
462
+ background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
463
+ background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
464
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));
465
+ background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
466
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
467
+ background-repeat: repeat-x;
468
+ }
469
+ .progress-bar-info {
470
+ background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
471
+ background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
472
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));
473
+ background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
474
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
475
+ background-repeat: repeat-x;
476
+ }
477
+ .progress-bar-warning {
478
+ background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
479
+ background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
480
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));
481
+ background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
482
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
483
+ background-repeat: repeat-x;
484
+ }
485
+ .progress-bar-danger {
486
+ background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
487
+ background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
488
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));
489
+ background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
490
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
491
+ background-repeat: repeat-x;
492
+ }
493
+ .progress-bar-striped {
494
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
495
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
496
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
497
+ }
498
+ .list-group {
499
+ border-radius: 4px;
500
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
501
+ box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
502
+ }
503
+ .list-group-item.active,
504
+ .list-group-item.active:hover,
505
+ .list-group-item.active:focus {
506
+ text-shadow: 0 -1px 0 #286090;
507
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);
508
+ background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);
509
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a));
510
+ background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);
511
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);
512
+ background-repeat: repeat-x;
513
+ border-color: #2b669a;
514
+ }
515
+ .list-group-item.active .badge,
516
+ .list-group-item.active:hover .badge,
517
+ .list-group-item.active:focus .badge {
518
+ text-shadow: none;
519
+ }
520
+ .panel {
521
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
522
+ box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
523
+ }
524
+ .panel-default > .panel-heading {
525
+ background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
526
+ background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
527
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
528
+ background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
529
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
530
+ background-repeat: repeat-x;
531
+ }
532
+ .panel-primary > .panel-heading {
533
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
534
+ background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
535
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
536
+ background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
537
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
538
+ background-repeat: repeat-x;
539
+ }
540
+ .panel-success > .panel-heading {
541
+ background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
542
+ background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
543
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));
544
+ background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
545
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
546
+ background-repeat: repeat-x;
547
+ }
548
+ .panel-info > .panel-heading {
549
+ background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
550
+ background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
551
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));
552
+ background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
553
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
554
+ background-repeat: repeat-x;
555
+ }
556
+ .panel-warning > .panel-heading {
557
+ background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
558
+ background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
559
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));
560
+ background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
561
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
562
+ background-repeat: repeat-x;
563
+ }
564
+ .panel-danger > .panel-heading {
565
+ background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
566
+ background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
567
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));
568
+ background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
569
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
570
+ background-repeat: repeat-x;
571
+ }
572
+ .well {
573
+ background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
574
+ background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
575
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));
576
+ background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
577
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
578
+ background-repeat: repeat-x;
579
+ border-color: #dcdcdc;
580
+ -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
581
+ box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
582
+ }
583
+ /*# sourceMappingURL=bootstrap-theme.css.map */
featured/featured.php DELETED
@@ -1,184 +0,0 @@
1
- <?php
2
- function spider_featured($current_plugin = '') {
3
- $plugins = array(
4
- "form-maker" => array(
5
- 'title' => 'Form Maker',
6
- 'text' => 'Wordpress form builder plugin',
7
- 'content' => 'Form Maker is a modern and advanced tool for creating WordPress forms easily and fast.',
8
- 'href' => 'https://web-dorado.com/products/wordpress-form.html'
9
- ),
10
- "mailchimp" => array(
11
- 'title' => 'MailChimp WD',
12
- 'text' => 'MailChimp WD plugin',
13
- 'content' => 'MailChimp WD is a functional plugin developed to create MailChimp subscribe/unsubscribe forms and manage lists from your WordPress site.',
14
- 'href' => 'https://web-dorado.com/products/wordpress-mailchimp-wd.html'
15
- ),
16
- "photo-gallery" => array(
17
- 'title' => 'Photo Gallery',
18
- 'text' => 'WordPress Photo Gallery plugin',
19
- 'content' => 'Photo Gallery is a fully responsive WordPress Gallery plugin with advanced functionality.',
20
- 'href' => 'https://web-dorado.com/products/wordpress-photo-gallery-plugin.html'
21
- ),
22
- "contact_form_bulder" => array(
23
- 'title' => 'Contact Form Builder',
24
- 'text' => 'WordPress contact form builder plugin',
25
- 'content' => 'Contact Form Builder is the best tool for quickly arranging a contact form for your clients and visitors.',
26
- 'href' => 'https://web-dorado.com/products/wordpress-contact-form-builder.html'
27
- ),
28
- "slider_wd" => array(
29
- 'title' => 'Slider WD',
30
- 'text' => 'WordPress slider plugin',
31
- 'content' => 'Create responsive, highly configurable sliders with various effects for your WordPress site.',
32
- 'href' => 'https://web-dorado.com/products/wordpress-slider-plugin.html'
33
- ),
34
- "events-wd" => array(
35
- 'title' => 'Event Calendar WD',
36
- 'text' => 'WordPress calendar plugin',
37
- 'content' => 'Organize and publish your events in an easy and elegant way using Event Calendar WD.',
38
- 'href' => 'https://web-dorado.com/products/wordpress-event-calendar-wd.html'
39
- ),
40
- "contact-maker" => array(
41
- 'title' => 'Contact Form Maker',
42
- 'text' => 'WordPress contact form maker plugin',
43
- 'content' => 'WordPress Contact Form Maker is an advanced and easy-to-use tool for creating forms.',
44
- 'href' => 'https://web-dorado.com/products/wordpress-contact-form-maker-plugin.html'
45
- ),
46
- "spider-calendar" => array(
47
- 'title' => 'Spider Calendar',
48
- 'text' => 'WordPress event calendar plugin',
49
- 'content' => 'Spider Event Calendar is a highly configurable product which allows you to have multiple organized events.',
50
- 'href' => 'https://web-dorado.com/products/wordpress-calendar.html'
51
- ),
52
- "catalog" => array(
53
- 'title' => 'Spider Catalog',
54
- 'text' => 'WordPress product catalog plugin',
55
- 'content' => 'Spider Catalog for WordPress is a convenient tool for organizing the products represented on your website into catalogs.',
56
- 'href' => 'https://web-dorado.com/products/wordpress-catalog.html'
57
- ),
58
- "player" => array(
59
- 'title' => 'Video Player',
60
- 'text' => 'WordPress Video player plugin',
61
- 'content' => 'Spider Video Player for WordPress is a Flash & HTML5 video player plugin that allows you to easily add videos to your website with the possibility.',
62
- 'href' => 'https://web-dorado.com/products/wordpress-player.html'
63
- ),
64
- "contacts" => array(
65
- 'title' => 'Spider Contacts',
66
- 'text' => 'Wordpress staff list plugin',
67
- 'content' => 'Spider Contacts helps you to display information about the group of people more intelligible, effective and convenient.',
68
- 'href' => 'https://web-dorado.com/products/wordpress-contacts-plugin.html'
69
- ),
70
- "facebook" => array(
71
- 'title' => 'Spider Facebook',
72
- 'text' => 'WordPress Facebook plugin',
73
- 'content' => 'Spider Facebook is a WordPress integration tool for Facebook.It includes all the available Facebook social plugins and widgets.',
74
- 'href' => 'https://web-dorado.com/products/wordpress-facebook.html'
75
- ),
76
- "twitter-widget" => array(
77
- 'title' => 'Widget Twitter',
78
- 'text' => 'WordPress Widget Twitter plugin',
79
- 'content' => 'The Widget Twitter plugin lets you to fully integrate your WordPress site with your Twitter account.',
80
- 'href' => 'https://web-dorado.com/products/wordpress-twitter-integration-plugin.html'
81
- ),
82
- "faq" => array(
83
- 'title' => 'Spider FAQ',
84
- 'text' => 'WordPress FAQ Plugin',
85
- 'content' => 'The Spider FAQ WordPress plugin is for creating an FAQ (Frequently Asked Questions) section for your website.',
86
- 'href' => 'https://web-dorado.com/products/wordpress-faq-plugin.html'
87
- ),
88
- "zoom" => array(
89
- 'title' => 'Zoom',
90
- 'text' => 'WordPress text zoom plugin',
91
- 'content' => 'Zoom enables site users to resize the predefined areas of the web site.',
92
- 'href' => 'https://web-dorado.com/products/wordpress-zoom.html'
93
- ),
94
- "flash-calendar" => array(
95
- 'title' => 'Flash Calendar',
96
- 'text' => 'WordPress flash calendar plugin',
97
- 'content' => 'Spider Flash Calendar is a highly configurable Flash calendar plugin which allows you to have multiple organized events.',
98
- 'href' => 'https://web-dorado.com/products/wordpress-events-calendar.html'
99
- ),
100
- "folder_menu" => array(
101
- 'title' => 'Folder Menu',
102
- 'text' => 'WordPress folder menu plugin',
103
- 'content' => 'Folder Menu Vertical is a WordPress Flash menu module for your website, designed to meet your needs and preferences.',
104
- 'href' => 'https://web-dorado.com/products/wordpress-menu-vertical.html'
105
- ),
106
- "random_post" => array(
107
- 'title' => 'Random post',
108
- 'text' => 'WordPress random post plugin',
109
- 'content' => 'Spider Random Post is a small but very smart solution for your WordPress web site.',
110
- 'href' => 'https://web-dorado.com/products/wordpress-random-post.html'
111
- ),
112
- "faq_wd" => array(
113
- 'title' => 'FAQ WD',
114
- 'text' => 'WordPress FAQ plugin',
115
- 'content' => 'Organize and publish your FAQs in an easy and elegant way using FAQ WD.',
116
- 'href' => 'https://web-dorado.com/products/wordpress-faq-wd.html'
117
- ),
118
- "instagram_feed" => array(
119
- 'title' => 'Instagram Feed WD',
120
- 'text' => 'WordPress Instagram Feed plugin',
121
- 'content' => 'WD Instagram Feed is a user-friendly tool for displaying user or hashtag-based feeds on your website.',
122
- 'href' => 'https://web-dorado.com/products/wordpress-instagram-feed-wd.html'
123
- ),
124
- "post-slider" => array(
125
- 'title' => 'Post Slider',
126
- 'text' => 'WordPress Post Slider plugin',
127
- 'content' => 'Post Slider WD is designed to show off the selected posts of your website in a slider.',
128
- 'href' => 'https://web-dorado.com/products/wordpress-post-slider-plugin.html'
129
- ),
130
- "wd-google-maps" => array(
131
- 'title' => 'WD Google Maps',
132
- 'text' => 'WD Google Maps plugin',
133
- 'content' => 'Google Maps WD is an intuitive tool for creating Google maps with advanced markers, custom layers and overlays for your website.',
134
- 'href' => 'https://web-dorado.com/products/wordpress-google-maps-plugin.html'
135
- ),
136
- "facebook-feed" => array(
137
- 'title' => 'Facebook Feed WD',
138
- 'text' => 'Facebook Feed WD plugin',
139
- 'content' => 'Facebook Feed WD is a comprehensive tool for displaying Facebook feed, events and photos in your website.',
140
- 'href' => 'https://web-dorado.com/products/wordpress-facebook-feed-plugin.html'
141
- ),
142
- "ecommerce-wd" => array(
143
- 'title' => 'Ecommerce',
144
- 'text' => 'Wordpress ecommerce plugin',
145
- 'content' => 'Ecommerce WD is a highly-functional, user friendly WordPress Ecommerce plugin, which is perfect for developing online stores for any level of complexity.',
146
- 'href' => 'https://web-dorado.com/products/wordpress-ecommerce.html'
147
- ),
148
-
149
- );
150
- ?>
151
- <div id="main_featured_plugins_page">
152
- <h3>Featured Plugins</h3>
153
- <div class="featured_header">
154
- <a target="_blank" href="https://web-dorado.com/wordpress-plugins.html?source=<?php echo $current_plugin; ?>">
155
- <h1>GET <?php echo $plugins[$current_plugin]["title"]; ?> +18 PLUGINS</h1>
156
- <h1 class="get_plugins">FOR $100 ONLY <span>- SAVE 70%</span></h1>
157
- <div class="try-now">
158
- <span>TRY NOW</span>
159
- </div>
160
- </a>
161
- </div>
162
- <ul id="featured-plugins-list">
163
- <?php
164
- foreach ($plugins as $key => $plugins) {
165
- if ($current_plugin != $key) {
166
- ?>
167
- <li class="<?php echo $key; ?>">
168
- <div class="product"></div>
169
- <div class="title">
170
- <strong class="heading"><?php echo $plugins['title']; ?></strong>
171
- </div>
172
- <div class="description">
173
- <p><?php echo $plugins['content']; ?></p>
174
- </div>
175
- <a target="_blank" href="<?php echo $plugins['href']; ?>?source=<?php echo $current_plugin; ?>" class="download">Download Plugin &#9658;</a>
176
- </li>
177
- <?php
178
- }
179
- }
180
- ?>
181
- </ul>
182
- </div>
183
- <?php
184
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
featured/featured_themes.php DELETED
@@ -1,92 +0,0 @@
1
- <?php
2
- function spider_featured_themes($current_plugin = '') {
3
- $themes = array(
4
- "portfolio_gallery" => array(
5
- 'title' => 'Portfolio Gallery Theme',
6
- 'content' => 'Portfolio Gallery helps to display images using various color schemes and layouts combined with elegant fonts and content parts.',
7
- 'href' => 'https://web-dorado.com/wordpress-themes/portfolio-gallery.html'
8
- ),
9
- "business_elite" => array(
10
- 'title' => 'Business Elite Theme',
11
- 'content' => 'Business Elite is a robust parallax theme for business websites. The theme uses smooth transitions and many functional sections.',
12
- 'href' => 'https://web-dorado.com/wordpress-themes/business-elite.html'
13
- ),
14
- "sauron" => array(
15
- 'title' => 'Sauron Theme',
16
- 'content' => 'Sauron is a multipurpose parallax theme, which uses multiple interactive sections designed for the client-engagement.',
17
- 'href' => 'https://web-dorado.com/wordpress-themes/sauron.html'
18
- ),
19
- "mottomag" => array(
20
- 'title' => 'MottoMag Theme',
21
- 'content' => 'MottoMag is a vibrant, responsive theme which is a perfect choice for the combination of textual content with videos and images.',
22
- 'href' => 'https://web-dorado.com/wordpress-themes/mottomag.html'
23
- ),
24
- "business_world" => array(
25
- 'title' => 'Business World Theme',
26
- 'content' => 'Business World is an innovative WordPress theme great for Business websites.',
27
- 'href' => 'https://web-dorado.com/wordpress-themes/business-world.html'
28
- ),
29
- "best_magazine" => array(
30
- 'title' => 'Best Magazine Theme',
31
- 'content' => 'Best Magazine is an ultimate selection when you are dealing with multi-category news websites.',
32
- 'href' => 'https://web-dorado.com/wordpress-themes/best-magazine.html'
33
- ),
34
- "wedding_style" => array(
35
- 'title' => 'Wedding Style Theme',
36
- 'content' => 'Wedding style is a responsive theme designed for the organization and maintenance of wedding websites and blogs.',
37
- 'href' => 'https://web-dorado.com/wordpress-themes/wedding-style.html'
38
- ),
39
- "magazine" => array(
40
- 'title' => 'Magazine Theme',
41
- 'content' => 'Magazine theme is a perfect solution when creating news and informational websites. It comes with a wide range of layout options.',
42
- 'href' => 'https://web-dorado.com/wordpress-themes/news-magazine.html'
43
- ),
44
- "weddings" => array(
45
- 'title' => 'Weddings Theme',
46
- 'content' => 'Weddings is an elegant, responsive WordPress theme designed for wedding websites. The theme includes multiple pages, homepage slider and gallery support.',
47
- 'href' => 'https://web-dorado.com/wordpress-themes/wedding.html'
48
- ),
49
- "exclusive" => array(
50
- 'title' => 'Exclusive Theme',
51
- 'content' => 'Exclusive is a unique theme designed to best fit business style websites. It comes with a large list of customizable features.',
52
- 'href' => 'https://web-dorado.com/wordpress-themes/exclusive.html'
53
- ),
54
- "expert" => array(
55
- 'title' => 'Expert Theme',
56
- 'content' => 'WordPress Expert is a modern, user-friendly and stylish theme. It has a list of customizable layout, style, colors and fonts.',
57
- 'href' => 'https://web-dorado.com/wordpress-themes/business-responsive.html'
58
- ),
59
- );
60
- ?>
61
- <div id="main_featured_themes_page">
62
- <h3>Featured Themes</h3>
63
- <div class="featured_header">
64
- <a href="https://web-dorado.com/wordpress-themes.html?source=<?php echo $current_plugin; ?>" target="_blank">
65
- <h1>WORDPRESS THEMES</h1>
66
- <h1 class="get_plugins">FOR $40 ONLY <span>- SAVE 80%</span></h1>
67
- <div class="try-now">
68
- <span>TRY NOW</span>
69
- </div>
70
- </a>
71
- </div>
72
- <ul id="featured-plugins-list">
73
- <?php
74
- foreach ($themes as $key => $themes) {
75
- ?>
76
- <li class="<?php echo $key; ?>">
77
- <div class="product"></div>
78
- <div class="title">
79
- <strong class="heading"><?php echo $themes['title']; ?></strong>
80
- </div>
81
- <div class="description">
82
- <p><?php echo $themes['content']; ?></p>
83
- </div>
84
- <a target="_blank" href="<?php echo $themes['href']; ?>?source=<?php echo $current_plugin; ?>" class="download">Download theme &#9658;</a>
85
- </li>
86
- <?php
87
- }
88
- ?>
89
- </ul>
90
- </div>
91
- <?php
92
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
featured/images/best_magazine.jpg DELETED
Binary file
featured/images/business_elite.jpg DELETED
Binary file
featured/images/business_world.jpg DELETED
Binary file
featured/images/catalog.png DELETED
Binary file
featured/images/contact.builder.png DELETED
Binary file
featured/images/contact.maker.png DELETED
Binary file
featured/images/contacts.png DELETED
Binary file
featured/images/download_plugins.png DELETED
Binary file
featured/images/download_themes.png DELETED
Binary file
featured/images/ecommerce.png DELETED
Binary file
featured/images/exclusive.jpg DELETED
Binary file
featured/images/expert.jpg DELETED
Binary file
featured/images/facebook-feed.png DELETED
Binary file
featured/images/facebook.png DELETED
Binary file
featured/images/faq.png DELETED
Binary file
featured/images/faq_wd.png DELETED
Binary file
featured/images/flash.calendar.png DELETED
Binary file
featured/images/fm-import.png DELETED
Binary file
featured/images/folder.menu.png DELETED
Binary file
featured/images/magazine.jpg DELETED
Binary file
featured/images/mailchimp.png DELETED
Binary file
featured/images/mottomag.jpg DELETED
Binary file
featured/images/player.png DELETED
Binary file
featured/images/portfolio.png DELETED
Binary file
featured/images/post-slider.png DELETED
Binary file
featured/images/random.post.png DELETED
Binary file
featured/images/sauron.jpg DELETED
Binary file
featured/images/twittertools.png DELETED
Binary file
featured/images/wedding.jpg DELETED
Binary file
featured/images/wedding_style.jpg DELETED
Binary file
featured/images/zoom.png DELETED
Binary file
featured/style.css DELETED
@@ -1,203 +0,0 @@
1
- @import url(https://fonts.googleapis.com/css?family=Oswald);
2
-
3
- #main_featured_plugins_page {
4
- font-family: Oswald;
5
- width: 90%;
6
- margin: 15px auto 0px auto;
7
- }
8
-
9
- #main_featured_plugins_page h3 {
10
- border-bottom: 2px solid #CECECE;
11
- color: rgb(111, 111, 111);
12
- font-family: Segoe UI;
13
- font-size: 18px;
14
- margin: 0px auto 15px auto;
15
- padding: 20px 0;
16
- }
17
-
18
- #main_featured_plugins_page #featured-plugins-list {
19
- position:relative;
20
- margin:0px auto;
21
- height:auto;
22
- display:table;
23
- list-style:none;
24
- text-align: center;
25
- width: 100%;
26
- }
27
-
28
- #main_featured_plugins_page #featured-plugins-list li {
29
- display: inline-table;
30
- width: 200px;
31
- margin: 20px 10px 0px 10px;
32
- background: #FFFFFF;
33
- border-right: 3px solid #E5E5E5;
34
- height: 335px;
35
- border-bottom: 3px solid #E5E5E5;
36
- position: relative;
37
- }
38
-
39
- #main_featured_plugins_page #featured-plugins-list li .product {
40
- position:relative;
41
- height:113px;
42
- background-color: transparent !important;
43
- background-position-x: 50% !important;
44
- margin: 7px;
45
- border-radius: 3px;
46
- background-size: 115px !important;
47
- }
48
-
49
- #main_featured_plugins_page #featured-plugins-list li .title {
50
- width: 90%;
51
- text-align: center;
52
- margin: 0 auto;
53
- }
54
-
55
- #main_featured_plugins_page #featured-plugins-list li.form-maker .product {background:url("images/form.png") center center no-repeat;}
56
- #main_featured_plugins_page #featured-plugins-list li.catalog .product {background:url("images/catalog.png") center center no-repeat;}
57
- #main_featured_plugins_page #featured-plugins-list li.contact-maker .product {background:url("images/contact.maker.png") center center no-repeat;}
58
- #main_featured_plugins_page #featured-plugins-list li.contacts .product {background:url("images/contacts.png") center center no-repeat;}
59
- #main_featured_plugins_page #featured-plugins-list li.facebook .product {background:url("images/facebook.png") center center no-repeat;}
60
- #main_featured_plugins_page #featured-plugins-list li.faq .product {background:url("images/faq.png") center center no-repeat;}
61
- #main_featured_plugins_page #featured-plugins-list li.flash-calendar .product {background:url("images/flash.calendar.png") center center no-repeat;}
62
- #main_featured_plugins_page #featured-plugins-list li.player .product {background:url("images/player.png") center center no-repeat; }
63
- #main_featured_plugins_page #featured-plugins-list li.spider-calendar .product {background:url("images/spider.calendar.png") center center no-repeat;}
64
- #main_featured_plugins_page #featured-plugins-list li.contact_form_bulder .product {background:url("images/contact.builder.png") center center no-repeat;}
65
- #main_featured_plugins_page #featured-plugins-list li.random_post .product {background:url("images/random.post.png") center center no-repeat;}
66
- #main_featured_plugins_page #featured-plugins-list li.slider_wd .product {background:url("images/slider.png") center center no-repeat;}
67
- #main_featured_plugins_page #featured-plugins-list li.folder_menu .product {background:url("images/folder.menu.png") center center no-repeat;}
68
- #main_featured_plugins_page #featured-plugins-list li.zoom .product {background:url("images/zoom.png") center center no-repeat;}
69
- #main_featured_plugins_page #featured-plugins-list li.fm-import .product {background:url("images/fm-import.png") center center no-repeat;}
70
- #main_featured_plugins_page #featured-plugins-list li.photo-gallery .product {background:url("images/photo-gallery.png") center center no-repeat;}
71
- #main_featured_plugins_page #featured-plugins-list li.twitter-widget .product {background:url("images/twittertools.png") center center no-repeat;}
72
- #main_featured_plugins_page #featured-plugins-list li.events-wd .product {background:url("images/events-wd.png") center center no-repeat;}
73
- #main_featured_plugins_page #featured-plugins-list li.faq_wd .product {background:url("images/faq_wd.png") center center no-repeat;}
74
- #main_featured_plugins_page #featured-plugins-list li.instagram_feed .product {background:url("images/instagram_feed.png") center center no-repeat;}
75
- #main_featured_plugins_page #featured-plugins-list li.post-slider .product {background:url("images/post-slider.png") center center no-repeat;}
76
- #main_featured_plugins_page #featured-plugins-list li.facebook-feed .product {background:url("images/facebook-feed.png") center center no-repeat;}
77
- #main_featured_plugins_page #featured-plugins-list li.mailchimp .product {background:url("images/mailchimp.png") center center no-repeat;}
78
- #main_featured_plugins_page #featured-plugins-list li.ecommerce-wd .product {background:url("images/ecommerce.png") center center no-repeat;}
79
- #main_featured_plugins_page #featured-plugins-list li .title .heading {
80
- display: block;
81
- position: relative;
82
- font-size: 17px;
83
- color: #767676;
84
- margin: 13px 0px 13px 0px;
85
- text-transform: uppercase;
86
- }
87
-
88
- #main_featured_plugins_page #featured-plugins-list li .title p {
89
- font-size:14px;
90
- color:#444;
91
- margin-left:20px;
92
- }
93
-
94
- #main_featured_plugins_page #featured-plugins-list li .description {
95
- height: 127px;
96
- width: 90%;
97
- margin: 0 auto;
98
- }
99
-
100
- #main_featured_plugins_page #featured-plugins-list li .description p {
101
- text-align: center;
102
- width: 100%;
103
- color: #9A9A9A;
104
- font-family: Segoe UI Light;
105
- }
106
-
107
- #featured-plugins-list li a.download {
108
- display: block;
109
- border-top: 1px solid #CACACA;
110
- outline: none;
111
- width: 90%;
112
- margin: 0 auto;
113
- font-size: 14px;
114
- line-height: 40px;
115
- text-decoration: none;
116
- font-weight: bolder;
117
- text-align: center;
118
- color: #134D68;
119
- position: absolute;
120
- text-transform: uppercase;
121
- bottom: 0;
122
- left: 10px;
123
- font-family: Segoe UI Black;
124
- text-shadow: 1px 0;
125
- }
126
-
127
- #featured-plugins-list li a.download:hover {
128
- color: #F47629;
129
- }
130
-
131
- .featured_header {
132
- background: #11465F;
133
- border-right: 3px solid #E5E5E5;
134
- border-bottom: 3px solid #E5E5E5;
135
- position: relative;
136
- padding: 20px 0;
137
- }
138
-
139
- .featured_header .old_price {
140
- color: rgba(180, 180, 180, 0.3);
141
- text-decoration: line-through;
142
- font-family: Oswald;
143
- }
144
-
145
- .featured_header h1.get_plugins {
146
- color: #FFFFFF;
147
- height: 85px;
148
- margin: 0;
149
- background-size: 85% 100%;
150
- background-position: center;
151
- line-height: 60px;
152
- }
153
-
154
- .featured_header .try-now {
155
- text-align: center;
156
- }
157
-
158
- .featured_header .try-now span {
159
- display: inline-block;
160
- padding: 7px 16px;
161
- background: #F47629;
162
- border-radius: 10px;
163
- color: #ffffff;
164
- font-size: 23px;
165
- }
166
-
167
- .featured_header h1 {
168
- font-size: 50px;
169
- text-align: center;
170
- color: #FFFFFF;
171
- letter-spacing: 3px;
172
- text-transform: uppercase;
173
- }
174
-
175
- .featured_header a {
176
- text-decoration: none;
177
- }
178
-
179
- @media screen and (max-width: 1105px) {
180
- .featured_header h1 {
181
- font-size: 37px;
182
- line-height: 0;
183
- }
184
- }
185
-
186
- @media screen and (max-width: 835px) {
187
- .get_plugins span {
188
- display: none;
189
- }
190
- }
191
-
192
- @media screen and (max-width: 700px) {
193
- .featured_header h1 {
194
- line-height: 40px;
195
- }
196
- }
197
-
198
- @media screen and (max-width: 435px) {
199
- .featured_header h1 {
200
- font-size: 20px;
201
- line-height: 25px;
202
- }
203
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
featured/themes_style.css DELETED
@@ -1,187 +0,0 @@
1
- @import url(http://fonts.googleapis.com/css?family=Oswald);
2
-
3
- #main_featured_themes_page #featured-plugins-list {
4
- position: relative;
5
- margin: 0px auto;
6
- height: auto;
7
- display: table;
8
- list-style: none;
9
- text-align: center;
10
- width: 100%;
11
- }
12
-
13
- #main_featured_themes_page #featured-plugins-list li {
14
- display: inline-table;
15
- width: 245px;
16
- margin: 20px 10px 0px 10px;
17
- background: #FFFFFF;
18
- border-right: 3px solid #E5E5E5;
19
- height: 405px;
20
- border-bottom: 3px solid #E5E5E5;
21
- position: relative;
22
- }
23
-
24
- #main_featured_themes_page #featured-plugins-list li .product {
25
- position:relative;
26
- height: 168px;
27
- background-color: #F1F1F1 !important;
28
- background-size: 100% !important;
29
- }
30
-
31
- #main_featured_themes_page #featured-plugins-list li .title {
32
- width: 91%;
33
- text-align: center;
34
- margin: 0 auto;
35
- }
36
-
37
- #main_featured_themes_page {
38
- font-family: Oswald;
39
- width: 90%;
40
- margin: 15px auto 0px auto;
41
- }
42
-
43
- #main_featured_themes_page h3 {
44
- border-bottom: 2px solid #CECECE;
45
- color: rgb(111, 111, 111);
46
- font-family: Segoe UI;
47
- font-size: 18pt;
48
- margin: 0px auto 15px auto;
49
- padding: 20px 0;
50
- }
51
-
52
- #main_featured_themes_page #featured-plugins-list li.sauron .product {background:url("images/sauron.jpg") left center no-repeat;}
53
- #main_featured_themes_page #featured-plugins-list li.portfolio_gallery .product {background:url("images/portfolio.png") left center no-repeat;}
54
- #main_featured_themes_page #featured-plugins-list li.business_elite .product {background:url("images/business_elite.jpg") left center no-repeat;}
55
- #main_featured_themes_page #featured-plugins-list li.mottomag .product {background:url("images/mottomag.jpg") left center no-repeat; }
56
- #main_featured_themes_page #featured-plugins-list li.business_world .product {background:url("images/business_world.jpg") left center no-repeat;}
57
- #main_featured_themes_page #featured-plugins-list li.best_magazine .product {background:url("images/best_magazine.jpg") left center no-repeat;}
58
- #main_featured_themes_page #featured-plugins-list li.wedding_style .product {background:url("images/wedding_style.jpg") left center no-repeat;}
59
- #main_featured_themes_page #featured-plugins-list li.magazine .product {background:url("images/magazine.jpg") left center no-repeat;}
60
- #main_featured_themes_page #featured-plugins-list li.weddings .product {background:url("images/wedding.jpg") left center no-repeat;}
61
- #main_featured_themes_page #featured-plugins-list li.exclusive .product {background:url("images/exclusive.jpg") left center no-repeat;}
62
- #main_featured_themes_page #featured-plugins-list li.expert .product {background:url("images/expert.jpg") left center no-repeat; background-size: 80%;}
63
-
64
- #main_featured_themes_page #featured-plugins-list li .title .heading {
65
- display: block;
66
- position: relative;
67
- font-size: 17px;
68
- color: #767676;
69
- margin: 13px 0px 13px 0px;
70
- text-transform: uppercase;
71
- }
72
-
73
- #main_featured_themes_page #featured-plugins-list li .title p {
74
- font-size:14px;
75
- color:#444;
76
- margin-left:20px;
77
- }
78
-
79
- #main_featured_themes_page #featured-plugins-list li .description {
80
- height:130px;
81
- width: 90%;
82
- margin: 0 auto;
83
- }
84
-
85
- #main_featured_themes_page #featured-plugins-list li .description p {
86
- text-align: center;
87
- width: 100%;
88
- color: #9A9A9A;
89
- font-family: "Open Sans",sans-serif;
90
- }
91
-
92
- #featured-plugins-list li a.download {
93
- display: block;
94
- border-top: 1px solid #CACACA;
95
- outline: none;
96
- width: 90%;
97
- margin: 0 auto;
98
- font-size: 14px;
99
- line-height: 40px;
100
- text-decoration: none;
101
- font-weight: bolder;
102
- text-align: center;
103
- color: #134D68;
104
- position: absolute;
105
- text-transform: uppercase;
106
- bottom: 0;
107
- left: 10px;
108
- font-family: "Open Sans",sans-serif;
109
- text-shadow: 1px 0;
110
- }
111
-
112
- #featured-plugins-list li a.download:hover {
113
- color: #F47629;
114
- }
115
-
116
- .featured_header {
117
- background: #11465F;
118
- border-right: 3px solid #E5E5E5;
119
- border-bottom: 3px solid #E5E5E5;
120
- position: relative;
121
- padding: 20px 0;
122
- }
123
-
124
- .featured_header .old_price {
125
- color: rgba(180, 180, 180, 0.3);
126
- text-decoration: line-through;
127
- font-family: Oswald;
128
- }
129
-
130
- .featured_header h1.get_plugins {
131
- color: #FFFFFF;
132
- height: 85px;
133
- margin: 0;
134
- background-size: 85% 100%;
135
- background-position: center;
136
- line-height: 60px;
137
- }
138
-
139
- .featured_header .try-now{
140
- text-align: center;
141
- }
142
-
143
- .featured_header .try-now span {
144
- display: inline-block;
145
- padding: 7px 16px;
146
- background: #F47629;
147
- border-radius: 10px;
148
- color: #ffffff;
149
- font-size: 23px;
150
- }
151
-
152
- .featured_header h1 {
153
- font-size: 50px;
154
- text-align: center;
155
- color: #FFFFFF;
156
- letter-spacing: 3px;
157
- text-transform: uppercase;
158
- }
159
-
160
- .featured_header a {
161
- text-decoration: none;
162
- }
163
-
164
- .featured_header .old-price {
165
- color: #889CA8;
166
- text-decoration: line-through;
167
- }
168
-
169
- @media screen and (max-width: 1035px) {
170
- .featured_header h1 {
171
- font-size: 37px;
172
- line-height: 0;
173
- }
174
- }
175
-
176
- @media screen and (max-width: 835px) {
177
- .get_plugins span {
178
- display: none;
179
- }
180
- }
181
-
182
- @media screen and (max-width: 435px) {
183
- .featured_header h1 {
184
- font-size: 20px;
185
- line-height: 17px;
186
- }
187
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
framework/functions.php CHANGED
@@ -14,10 +14,9 @@ function gmwd_get_option($option_name){
14
  $options->$name = $value;
15
  }
16
 
17
- return $options->$option_name;
18
  }
19
  return false;
20
-
21
  }
22
  function upgrade_pro($text = false){
23
  ?>
14
  $options->$name = $value;
15
  }
16
 
17
+ return $options->$option_name;
18
  }
19
  return false;
 
20
  }
21
  function upgrade_pro($text = false){
22
  ?>
gmwd_admin_class.php CHANGED
@@ -11,7 +11,7 @@ class GMWDAdmin{
11
  // Variables //
12
  ////////////////////////////////////////////////////////////////////////////////////////
13
  protected static $instance = null;
14
- private static $version = '1.0.30';
15
  ////////////////////////////////////////////////////////////////////////////////////////
16
  // Constructor & Destructor //
17
  ////////////////////////////////////////////////////////////////////////////////////////
@@ -106,30 +106,32 @@ class GMWDAdmin{
106
  public function setup_redirect() {
107
  if (get_option('gmwd_do_activation_set_up_redirect')) {
108
  update_option('gmwd_do_activation_set_up_redirect',0);
109
- wp_safe_redirect( admin_url( 'index.php?page=gmwd_setup' ) );
 
110
  exit;
111
  }
112
  }
113
  // Admin menu
114
  public function gmwd_options_panel() {
115
- $gmwd_page = add_menu_page('Google Maps WD', 'Google Maps WD', 'manage_options', 'maps_gmwd', array($this,'gmwd'), GMWD_URL . '/images/icon-map-20.png',11);
 
 
 
 
116
 
117
- $gmwd_page = add_submenu_page('maps_gmwd', __('Maps','gmwd'), __('Maps','gmwd'), 'manage_options', 'maps_gmwd', array($this,'gmwd'));
118
- add_action('load-' . $gmwd_page, array($this,'gmwd_maps_per_page_option'));
119
 
120
- $gmwd_marker_categories_page = add_submenu_page('maps_gmwd', __('Marker Categories','gmwd'), __('Marker Categories','gmwd'), 'manage_options', 'markercategories_gmwd', array($this,'gmwd'));
121
- add_action('load-' . $gmwd_marker_categories_page, array($this,'gmwd_markercategories_per_page_option'));
122
 
123
- $gmwd_themes_page = add_submenu_page('maps_gmwd', __('Themes','gmwd'), __('Themes','gmwd'), 'manage_options', 'themes_gmwd', array($this,'gmwd'));
124
- add_action('load-' . $gmwd_themes_page, array($this,'gmwd_themes_per_page_option'));
125
 
126
- $gmwd_options_page = add_submenu_page('maps_gmwd', __('Options','gmwd'), __('Options','gmwd'), 'manage_options', 'options_gmwd', array($this,'gmwd'));
127
- $gmwd_featured_plugins_page = add_submenu_page('maps_gmwd', __('Featured Plugins','gmwd'), __('Featured Plugins','gmwd'), 'manage_options', 'featured_plugins_gmwd', array($this,'gmwd_featured_plugins'));
128
 
129
- $gmwd_featured_themes_page = add_submenu_page('maps_gmwd', __('Featured Themes','gmwd'), __('Featured Themes','gmwd'), 'manage_options', 'featured_themes_gmwd', array($this,'gmwd_featured_themes'));
130
- $gmwd_uninstall_page = add_submenu_page('maps_gmwd', __('Uninstall','gmwd'), __('Uninstall','gmwd'), 'manage_options', 'uninstall_gmwd', array($this,'gmwd'));
131
 
132
- add_menu_page(__('Google Maps WD','gmwd'), __('Google Maps WD Add-ons','gmwd'), 'manage_options', 'gmwd_addons', array($this, "gmwd_addons"), GMWD_URL . '/addons/images/add-ons-icon.png',12);
133
 
134
  }
135
 
@@ -170,7 +172,6 @@ class GMWDAdmin{
170
  if ($page == 'gmwd_preview' ) {
171
  require_once( 'preview.php' );
172
  }
173
- include_once(GMWD_DIR . '/notices/gmwd-notices.php');
174
 
175
  }
176
 
@@ -182,6 +183,9 @@ class GMWDAdmin{
182
  wp_enqueue_style( 'gmwd_admin_main-css', GMWD_URL . '/css/admin_main.css', array(), self::$version);
183
  wp_enqueue_style( 'gmwd_simple_slider-css', GMWD_URL . '/css/simple-slider.css', array(), self::$version);
184
  }
 
 
 
185
 
186
  }
187
 
@@ -230,6 +234,16 @@ class GMWDAdmin{
230
  wp_enqueue_script( 'gmwd_init_map_admin-js', GMWD_URL . '/js/init_map_admin.js', array(), self::$version, false);
231
 
232
  }
 
 
 
 
 
 
 
 
 
 
233
 
234
  }
235
 
@@ -299,19 +313,6 @@ class GMWDAdmin{
299
  return $plugin_array;
300
  }
301
 
302
- public function gmwd_featured_plugins(){
303
- require_once(GMWD_DIR . '/featured/featured.php');
304
- wp_register_style('gmwd_featured', GMWD_URL . '/featured/style.css', array(), array($this,"gmwd_version"));
305
- wp_print_styles('gmwd_featured');
306
- spider_featured('wd-google-maps');
307
- }
308
-
309
- public function gmwd_featured_themes(){
310
- require_once(GMWD_DIR . '/featured/featured_themes.php');
311
- wp_register_style('gmwd_featured_themes', GMWD_URL . '/featured/themes_style.css', array(), array($this,"gmwd_version"));
312
- wp_print_styles('gmwd_featured_themes');
313
- spider_featured_themes('wd-google-maps');
314
- }
315
 
316
  public function gmwd_addons(){
317
  require_once(GMWD_DIR . '/addons/addons.php');
11
  // Variables //
12
  ////////////////////////////////////////////////////////////////////////////////////////
13
  protected static $instance = null;
14
+ private static $version = '1.0.31';
15
  ////////////////////////////////////////////////////////////////////////////////////////
16
  // Constructor & Destructor //
17
  ////////////////////////////////////////////////////////////////////////////////////////
106
  public function setup_redirect() {
107
  if (get_option('gmwd_do_activation_set_up_redirect')) {
108
  update_option('gmwd_do_activation_set_up_redirect',0);
109
+ //wp_safe_redirect( admin_url( 'index.php?page=gmwd_setup' ) );
110
+ wp_safe_redirect( admin_url( 'index.php?page=gmwd_subscribe' ) );
111
  exit;
112
  }
113
  }
114
  // Admin menu
115
  public function gmwd_options_panel() {
116
+ //$gmwd_page = add_menu_page('Google Maps WD', 'Google Maps WD', 'manage_options', 'maps_gmwd', array($this,'gmwd'), GMWD_URL . '/images/icon-map-20.png',11);
117
+
118
+ if( get_option( "gmwd_subscribe_done" ) == 1 || (isset($_GET["page"]) && $_GET["page"] == "uninstall_gmwd")){
119
+ $gmwd_page = add_submenu_page('overview_gmwd', __('Maps','gmwd'), __('Maps','gmwd'), 'manage_options', 'maps_gmwd', array($this,'gmwd'));
120
+ add_action('load-' . $gmwd_page, array($this,'gmwd_maps_per_page_option'));
121
 
122
+ $gmwd_marker_categories_page = add_submenu_page('overview_gmwd', __('Marker Categories','gmwd'), __('Marker Categories','gmwd'), 'manage_options', 'markercategories_gmwd', array($this,'gmwd'));
123
+ add_action('load-' . $gmwd_marker_categories_page, array($this,'gmwd_markercategories_per_page_option'));
124
 
125
+ $gmwd_themes_page = add_submenu_page('overview_gmwd', __('Themes','gmwd'), __('Themes','gmwd'), 'manage_options', 'themes_gmwd', array($this,'gmwd'));
126
+ add_action('load-' . $gmwd_themes_page, array($this,'gmwd_themes_per_page_option'));
127
 
128
+ $gmwd_options_page = add_submenu_page('overview_gmwd', __('Options','gmwd'), __('Options','gmwd'), 'manage_options', 'options_gmwd', array($this,'gmwd'));
 
129
 
130
+ $gmwd_uninstall_page = add_submenu_page('overview_gmwd', __('Uninstall','gmwd'), __('Uninstall','gmwd'), 'manage_options', 'uninstall_gmwd', array($this,'gmwd'));
 
131
 
132
+ add_menu_page(__('Google Maps WD','gmwd'), __('Google Maps WD Add-ons','gmwd'), 'manage_options', 'gmwd_addons', array($this, "gmwd_addons"), GMWD_URL . '/addons/images/add-ons-icon.png',12);
133
+ }
134
 
 
135
 
136
  }
137
 
172
  if ($page == 'gmwd_preview' ) {
173
  require_once( 'preview.php' );
174
  }
 
175
 
176
  }
177
 
183
  wp_enqueue_style( 'gmwd_admin_main-css', GMWD_URL . '/css/admin_main.css', array(), self::$version);
184
  wp_enqueue_style( 'gmwd_simple_slider-css', GMWD_URL . '/css/simple-slider.css', array(), self::$version);
185
  }
186
+ if($page == "uninstall_gmwd") {
187
+ wp_enqueue_style('gmwd_deactivate-css', GMWD_URL . '/wd/assets/css/deactivate_popup.css', array(), self::$version);
188
+ }
189
 
190
  }
191
 
234
  wp_enqueue_script( 'gmwd_init_map_admin-js', GMWD_URL . '/js/init_map_admin.js', array(), self::$version, false);
235
 
236
  }
237
+ if($page == "uninstall_gmwd") {
238
+ wp_enqueue_script('gmwd-deactivate-popup', GMWD_URL.'/wd/assets/js/deactivate_popup.js', array(), self::$version, true );
239
+
240
+ wp_localize_script( 'gmwd-deactivate-popup', 'WDDeactivateVars', array(
241
+ "prefix" => "gmwd" ,
242
+ "deactivate_class" => 'gmwd_deactivate_link',
243
+ "plugin_slug" => "wd-google-maps",
244
+ "site_url" => site_url(),
245
+ ));
246
+ }
247
 
248
  }
249
 
313
  return $plugin_array;
314
  }
315
 
 
 
 
 
 
 
 
 
 
 
 
 
 
316
 
317
  public function gmwd_addons(){
318
  require_once(GMWD_DIR . '/addons/addons.php');
js/admin_main.js CHANGED
@@ -114,51 +114,52 @@ function checkFields(fieldClass){
114
  return true;
115
  }
116
  function htmlspecialchars_decode(string, quote_style) {
117
- if(string){
118
- var optTemp = 0,
119
  i = 0,
120
  noquotes = false;
121
- if (typeof quote_style === 'undefined') {
122
- quote_style = 2;
123
- }
124
- string = string.toString()
125
  .replace(/&lt;/g, '<')
126
  .replace(/&gt;/g, '>');
127
- var OPTS = {
128
- 'ENT_NOQUOTES': 0,
129
- 'ENT_HTML_QUOTE_SINGLE': 1,
130
- 'ENT_HTML_QUOTE_DOUBLE': 2,
131
- 'ENT_COMPAT': 2,
132
- 'ENT_QUOTES': 3,
133
- 'ENT_IGNORE': 4
134
- };
135
- if (quote_style === 0) {
 
 
 
 
 
 
 
136
  noquotes = true;
 
 
 
137
  }
138
- if (typeof quote_style !== 'number') { // Allow for a single string or an array of string flags
139
- quote_style = [].concat(quote_style);
140
- for (i = 0; i < quote_style.length; i++) {
141
- // Resolve string input to bitwise e.g. 'PATHINFO_EXTENSION' becomes 4
142
- if (OPTS[quote_style[i]] === 0) {
143
- noquotes = true;
144
- } else if (OPTS[quote_style[i]]) {
145
- optTemp = optTemp | OPTS[quote_style[i]];
146
- }
147
- }
148
- quote_style = optTemp;
149
- }
150
- if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) {
151
- string = string.replace(/&#0*39;/g, "'"); // PHP doesn't currently escape if more than one 0, but it should
152
- // string = string.replace(/&apos;|&#x0*27;/g, "'"); // This would also be useful here, but not a part of PHP
153
- }
154
- if (!noquotes) {
155
- string = string.replace(/&quot;/g, '"');
156
- }
157
- // Put this in last place to avoid escape being double-decoded
158
- string = string.replace(/&amp;/g, '&');
159
- }
160
 
161
- return string;
162
  }
163
 
164
 
114
  return true;
115
  }
116
  function htmlspecialchars_decode(string, quote_style) {
117
+ if(string){
118
+ var optTemp = 0,
119
  i = 0,
120
  noquotes = false;
121
+ if (typeof quote_style === 'undefined') {
122
+ quote_style = 2;
123
+ }
124
+ string = string.toString()
125
  .replace(/&lt;/g, '<')
126
  .replace(/&gt;/g, '>');
127
+ var OPTS = {
128
+ 'ENT_NOQUOTES': 0,
129
+ 'ENT_HTML_QUOTE_SINGLE': 1,
130
+ 'ENT_HTML_QUOTE_DOUBLE': 2,
131
+ 'ENT_COMPAT': 2,
132
+ 'ENT_QUOTES': 3,
133
+ 'ENT_IGNORE': 4
134
+ };
135
+ if (quote_style === 0) {
136
+ noquotes = true;
137
+ }
138
+ if (typeof quote_style !== 'number') { // Allow for a single string or an array of string flags
139
+ quote_style = [].concat(quote_style);
140
+ for (i = 0; i < quote_style.length; i++) {
141
+ // Resolve string input to bitwise e.g. 'PATHINFO_EXTENSION' becomes 4
142
+ if (OPTS[quote_style[i]] === 0) {
143
  noquotes = true;
144
+ } else if (OPTS[quote_style[i]]) {
145
+ optTemp = optTemp | OPTS[quote_style[i]];
146
+ }
147
  }
148
+ quote_style = optTemp;
149
+ }
150
+ if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) {
151
+ string = string.replace(/&#0*39;/g, "'"); // PHP doesn't currently escape if more than one 0, but it should
152
+ // string = string.replace(/&apos;|&#x0*27;/g, "'"); // This would also be useful here, but not a part of PHP
153
+ }
154
+ if (!noquotes) {
155
+ string = string.replace(/&quot;/g, '"');
156
+ }
157
+ // Put this in last place to avoid escape being double-decoded
158
+ string = string.replace(/&amp;/g, '&');
159
+
160
+ return string;
161
+ }
 
 
 
 
 
 
 
 
162
 
 
163
  }
164
 
165
 
js/init_map_admin.js CHANGED
@@ -27,7 +27,7 @@ function gmwdInitMainMap(el, excludeOverlays){
27
  minZoom: minZoom,
28
  scrollwheel: mapWhellScrolling,
29
  draggable: mapDragable,
30
- disableDoubleClickZoom: mapDbClickZoom,
31
  zoomControl: enableZoomControl,
32
  mapTypeControl: enableMapTypeControl,
33
  scaleControl: enableScaleControl,
@@ -61,8 +61,8 @@ function gmwdInitMainMap(el, excludeOverlays){
61
  gmwdSetLayers("transit");
62
 
63
  if(excludeOverlays == false){
64
- // overlays
65
  infoWindowInfo = jQuery("[name=info_window_info]").length > 0 ? jQuery("[name=info_window_info]").val() : infoWindowInfo;
 
66
  gmwdSetMapMarkers();
67
  gmwdSetMapPolygons();
68
  gmwdSetMapPolylines();
@@ -124,7 +124,7 @@ function gmwdSetMapMarkers(){
124
  allMarkers.push(marker);
125
  var infoWindow;
126
  if(mapMarker.enable_info_window == 1){
127
- //var infoWindowInfo = jQuery("[name=info_window_info]").val();
128
  contentString = "";
129
  if(infoWindowInfo.indexOf("title") != -1){
130
  contentString += mapMarker.title;
27
  minZoom: minZoom,
28
  scrollwheel: mapWhellScrolling,
29
  draggable: mapDragable,
30
+ disableDoubleClickZoom: mapDbClickZoom,
31
  zoomControl: enableZoomControl,
32
  mapTypeControl: enableMapTypeControl,
33
  scaleControl: enableScaleControl,
61
  gmwdSetLayers("transit");
62
 
63
  if(excludeOverlays == false){
 
64
  infoWindowInfo = jQuery("[name=info_window_info]").length > 0 ? jQuery("[name=info_window_info]").val() : infoWindowInfo;
65
+ // overlays
66
  gmwdSetMapMarkers();
67
  gmwdSetMapPolygons();
68
  gmwdSetMapPolylines();
124
  allMarkers.push(marker);
125
  var infoWindow;
126
  if(mapMarker.enable_info_window == 1){
127
+ //var infoWindowInfo = jQuery("[name=info_window_info]").val() ;
128
  contentString = "";
129
  if(infoWindowInfo.indexOf("title") != -1){
130
  contentString += mapMarker.title;
notices/gmwd-notices.php DELETED
@@ -1,236 +0,0 @@
1
- <?php
2
- if (!defined('ABSPATH')) {
3
- exit;
4
- }
5
-
6
- class GMWD_Notices {
7
- protected $prefix = 'gmwd';
8
- protected $plugin_url = GMWD_URL;
9
- protected $plugin_version = "gmwd_version";
10
- protected $plugin_name = 'Google Maps WD';
11
- protected $promo_link = '';
12
-
13
- public $notice_spam = 0;
14
- public $notice_spam_max = 1;
15
-
16
- // Basic actions to run
17
- public function __construct() {
18
-
19
- // Runs the admin notice ignore function incase a dismiss button has been clicked
20
- add_action('admin_init', array($this, 'admin_notice_ignore'));
21
- // Runs the admin notice temp ignore function incase a temp dismiss link has been clicked
22
- add_action('admin_init', array($this, 'admin_notice_temp_ignore'));
23
- add_action('admin_notices', array($this, 'wd_admin_notices'));
24
- }
25
-
26
- // Checks to ensure notices aren't disabled and the user has the correct permissions.
27
- public function wd_admin_notice() {
28
- $settings = get_option($this->prefix . '_admin_notice');
29
- if (!isset($settings['disable_admin_notices']) || (isset($settings['disable_admin_notices']) && $settings['disable_admin_notices'] == 0)) {
30
- if (current_user_can('manage_options')) {
31
- return true;
32
- }
33
- }
34
- return false;
35
- }
36
-
37
- // Primary notice function that can be called from an outside function sending necessary variables
38
- public function admin_notice($admin_notices) {
39
-
40
- // Check options
41
- if (!$this->wd_admin_notice()) {
42
- return false;
43
- }
44
- foreach ($admin_notices as $slug => $admin_notice) {
45
- // Call for spam protection
46
- if ($this->anti_notice_spam()) {
47
- return false;
48
- }
49
-
50
- // Check for proper page to display on
51
- if (isset( $admin_notices[$slug]['pages']) && is_array( $admin_notices[$slug]['pages'])) {
52
- if (!$this->admin_notice_pages($admin_notices[$slug]['pages'])) {
53
- return false;
54
- }
55
- }
56
-
57
- // Check for required fields
58
- if (!$this->required_fields($admin_notices[$slug])) {
59
-
60
- // Get the current date then set start date to either passed value or current date value and add interval
61
- $current_date = current_time("n/j/Y");
62
- $start = (isset($admin_notices[$slug]['start']) ? $admin_notices[$slug]['start'] : $current_date);
63
- $start = date("n/j/Y", strtotime($start));
64
- $date_array = explode('/', $start);
65
- $interval = (isset($admin_notices[$slug]['int']) ? $admin_notices[$slug]['int'] : 0);
66
-
67
- $date_array[1] += $interval;
68
- $start = date("n/j/Y", mktime(0, 0, 0, $date_array[0], $date_array[1], $date_array[2]));
69
-
70
- // This is the main notices storage option
71
- $admin_notices_option = get_option($this->prefix . '_admin_notice', array());
72
- // Check if the message is already stored and if so just grab the key otherwise store the message and its associated date information
73
- if (!array_key_exists( $slug, $admin_notices_option)) {
74
- $admin_notices_option[$slug]['start'] = $start;
75
- $admin_notices_option[$slug]['int'] = $interval;
76
- update_option($this->prefix . '_admin_notice', $admin_notices_option);
77
- }
78
-
79
- // Sanity check to ensure we have accurate information
80
- // New date information will not overwrite old date information
81
- $admin_display_check = (isset($admin_notices_option[$slug]['dismissed']) ? $admin_notices_option[$slug]['dismissed'] : 0);
82
- $admin_display_start = (isset($admin_notices_option[$slug]['start']) ? $admin_notices_option[$slug]['start'] : $start);
83
- $admin_display_interval = (isset($admin_notices_option[$slug]['int']) ? $admin_notices_option[$slug]['int'] : $interval);
84
- $admin_display_msg = (isset($admin_notices[$slug]['msg']) ? $admin_notices[$slug]['msg'] : '');
85
- $admin_display_title = (isset($admin_notices[$slug]['title']) ? $admin_notices[$slug]['title'] : '');
86
- $admin_display_link = (isset($admin_notices[$slug]['link']) ? $admin_notices[$slug]['link'] : '');
87
- $output_css = false;
88
-
89
- // Ensure the notice hasn't been hidden and that the current date is after the start date
90
- if ($admin_display_check == 0 && strtotime($admin_display_start) <= strtotime($current_date)) {
91
-
92
- // Get remaining query string
93
- $query_str = (isset($admin_notices[$slug]['later_link']) ? $admin_notices[$slug]['later_link'] : esc_url(add_query_arg($this->prefix . '_admin_notice_ignore', $slug)));
94
- if (strpos($slug, 'promo') === FALSE) {
95
- // Admin notice display output
96
- echo '<div class="update-nag wd-admin-notice">
97
- <div class="' . $this->prefix . '-notice-logo"></div>
98
- <p class="wd-notice-title">' . $admin_display_title . '</p>
99
- <p class="wd-notice-body">' . $admin_display_msg . '</p>
100
- <ul class="wd-notice-body wd-blue">' . $admin_display_link . '</ul>
101
- <a href="' . $query_str . '" class="dashicons dashicons-dismiss"></a>
102
- </div>';
103
- }
104
- else {
105
- echo '<div class="admin-notice-promo">';
106
- echo $admin_display_msg;
107
- echo '<ul class="notice-body-promo blue">
108
- ' . $admin_display_link . '
109
- </ul>';
110
- echo '<a href="' . $query_str . '" class="dashicons dashicons-dismiss close-promo"></a>';
111
- echo '</div>';
112
- }
113
- $this->notice_spam += 1;
114
- $output_css = true;
115
- }
116
- if ($output_css) {
117
- wp_enqueue_style($this->prefix . '-admin-notices', $this->plugin_url . '/css/notices.css', array(), get_option($this->plugin_version));
118
- }
119
- }
120
- }
121
- }
122
-
123
- // Spam protection check
124
- public function anti_notice_spam() {
125
- if ($this->notice_spam >= $this->notice_spam_max) {
126
- return true;
127
- }
128
- return false;
129
- }
130
-
131
- // Ignore function that gets ran at admin init to ensure any messages that were dismissed get marked
132
- public function admin_notice_ignore() {
133
- // If user clicks to ignore the notice, update the option to not show it again
134
- if (isset($_GET[$this->prefix . '_admin_notice_ignore'])) {
135
- $admin_notices_option = get_option($this->prefix . '_admin_notice', array());
136
- $admin_notices_option[$_GET[$this->prefix . '_admin_notice_ignore']]['dismissed'] = 1;
137
- update_option($this->prefix . '_admin_notice', $admin_notices_option);
138
- $query_str = remove_query_arg($this->prefix . '_admin_notice_ignore');
139
- wp_redirect($query_str);
140
- exit;
141
- }
142
- }
143
-
144
- // Temp Ignore function that gets ran at admin init to ensure any messages that were temp dismissed get their start date changed
145
- public function admin_notice_temp_ignore() {
146
- // If user clicks to temp ignore the notice, update the option to change the start date - default interval of 14 days
147
- if (isset($_GET[$this->prefix . '_admin_notice_temp_ignore'])) {
148
- $admin_notices_option = get_option($this->prefix . '_admin_notice', array());
149
- $current_date = current_time("n/j/Y");
150
- $date_array = explode('/', $current_date);
151
- $interval = (isset($_GET['wd_int']) ? $_GET['wd_int'] : 14);
152
- $date_array[1] += $interval;
153
- $new_start = date("n/j/Y", mktime(0, 0, 0, $date_array[0], $date_array[1], $date_array[2]));
154
-
155
- $admin_notices_option[$_GET[$this->prefix . '_admin_notice_temp_ignore']]['start'] = $new_start;
156
- $admin_notices_option[$_GET[$this->prefix . '_admin_notice_temp_ignore']]['dismissed'] = 0;
157
- update_option($this->prefix . '_admin_notice', $admin_notices_option);
158
- $query_str = remove_query_arg(array($this->prefix . '_admin_notice_temp_ignore', 'wd_int'));
159
- wp_redirect( $query_str );
160
- exit;
161
- }
162
- }
163
-
164
- public function admin_notice_pages($pages) {
165
- foreach ($pages as $key => $page) {
166
- if (is_array($page)) {
167
- if (isset($_GET['page']) && $_GET['page'] == $page[0] && isset($_GET['tab']) && $_GET['tab'] == $page[1]) {
168
- return true;
169
- }
170
- }
171
- else {
172
- if ($page == 'all') {
173
- return true;
174
- }
175
- if (get_current_screen()->id === $page) {
176
- return true;
177
- }
178
- if (isset($_GET['page']) && $_GET['page'] == $page) {
179
- return true;
180
- }
181
- }
182
- return false;
183
- }
184
- }
185
-
186
- // Required fields check
187
- public function required_fields( $fields ) {
188
- if (!isset( $fields['msg']) || (isset($fields['msg']) && empty($fields['msg']))) {
189
- return true;
190
- }
191
- if (!isset( $fields['title']) || (isset($fields['title']) && empty($fields['title']))) {
192
- return true;
193
- }
194
- return false;
195
- }
196
-
197
- // Special parameters function that is to be used in any extension of this class
198
- public function special_parameters($admin_notices) {
199
- // Intentionally left blank
200
- }
201
-
202
- public function wd_admin_notices() {
203
- $two_week_review_ignore = add_query_arg(array($this->prefix . '_admin_notice_ignore' => 'two_week_review'));
204
- $two_week_review_temp = add_query_arg(array($this->prefix . '_admin_notice_temp_ignore' => 'two_week_review', 'int' => 14));
205
- $promo_close = add_query_arg(array($this->prefix . '_admin_notice_ignore' => 'ecommerce_promo'));
206
-
207
- /*$notices['ecommerce_promo'] = array(
208
- 'title' => __('Hey! How\'s It Going?', $this->prefix),
209
- 'msg' => '<div class="promo" style="background-image: url(' . $this->plugin_url . '/images/Gallery-E-Commerce-banner.png);"><a href="' . $this->promo_link . '" target="_blank"></a></div>',
210
- 'link' => '<li><span class="dashicons dashicons-dismiss"></span><a href="' . $promo_close . '">' . __('Never show again', $this->prefix) . '</a></li>',
211
- 'int' => 3
212
- ); */
213
-
214
- $notices['two_week_review'] = array(
215
- 'title' => __('Leave A Review?', $this->prefix),
216
- 'msg' => sprintf(__('We hope you\'ve enjoyed using WordPress %s! Would you consider leaving us a review on WordPress.org?', $this->prefix), $this->plugin_name),
217
- 'link' => '<li><span class="dashicons dashicons-external"></span><a href="https://wordpress.org/support/view/plugin-reviews/wd-google-maps?filter=5" target="_blank">' . __('Sure! I\'d love to!', $this->prefix) . '</a></li>
218
- <li><span class="dashicons dashicons-smiley"></span><a href="' . $two_week_review_ignore . '"> ' . __('I\'ve already left a review', $this->prefix) . '</a></li>
219
- <li><span class="dashicons dashicons-calendar-alt"></span><a href="' . $two_week_review_temp . '">' . __('Maybe Later', $this->prefix) . '</a></li>
220
- <li><span class="dashicons dashicons-dismiss"></span><a href="' . $two_week_review_ignore . '">' . __('Never show again', $this->prefix) . '</a></li>',
221
- 'later_link' => $two_week_review_temp,
222
- 'int' => 14
223
- );
224
- $one_week_support = add_query_arg(array($this->prefix . '_admin_notice_ignore' => 'one_week_support'));
225
- $notices['one_week_support'] = array(
226
- 'title' => __('Hey! How\'s It Going?', $this->prefix),
227
- 'msg' => sprintf(__('Thank you for using WordPress %s! We hope that you\'ve found everything you need, but if you have any questions:', $this->prefix), $this->plugin_name),
228
- 'link' => '<li><span class="dashicons dashicons-media-text"></span><a target="_blank" href="https://web-dorado.com/wordpress-google-maps/installing.html">' . __('Check out User Guide', $this->prefix) . '</a></li>
229
- <li><span class="dashicons dashicons-sos"></span><a target="_blank" href="https://web-dorado.com/forum/wordpress-google-maps-wd.html">' . __('Get Some Help', $this->prefix) . '</a></li>
230
- <li><span class="dashicons dashicons-dismiss"></span><a href="' . $one_week_support . '">' . __('Never show again', $this->prefix) . '</a></li>',
231
- 'int' => 7
232
- );
233
- $this->admin_notice($notices);
234
- }
235
- }
236
- new GMWD_Notices();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://web-dorado.com/products/wordpress-google-maps-plugin.html
4
  Tags: directions, google map, google map plugin, google maps, google maps plugin, map, map markers, map plugin, map widget, maps, wp google map, wp google maps
5
  Requires at least: 3.4
6
  Tested up to: 4.7
7
- Stable tag: 1.0.30
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -113,9 +113,12 @@ After downloading the ZIP file of the Google Maps WD plugin,
113
 
114
  == Changelog ==
115
 
 
 
 
116
  = 1.0.30 =
117
- Fixed: Styles
118
- Changed: Featured plugins
119
 
120
  = 1.0.29 =
121
  * Removed: Bootstrap
4
  Tags: directions, google map, google map plugin, google maps, google maps plugin, map, map markers, map plugin, map widget, maps, wp google map, wp google maps
5
  Requires at least: 3.4
6
  Tested up to: 4.7
7
+ Stable tag: 1.0.31
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
113
 
114
  == Changelog ==
115
 
116
+ = 1.0.31 =
117
+ * Added: Overview page
118
+
119
  = 1.0.30 =
120
+ * Fixed: Styles
121
+ * Changed: Featured plugins
122
 
123
  = 1.0.29 =
124
  * Removed: Bootstrap
wd-google-maps.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin Name: Google Maps WD
5
  * Plugin URI: https://web-dorado.com/products/wordpress-google-maps-plugin.html
6
  * Description: Google Maps WD is an intuitive tool for creating Google maps with advanced markers, custom layers and overlays for your website.
7
- * Version: 1.0.30
8
  * Author: WebDorado
9
  * Author URI: http://web-dorado.com/
10
  * License: GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
@@ -53,6 +53,145 @@ function gmwd_map($shortcode_id, $map_id ){
53
  }
54
  require_once( GMWD_DIR. '/widgets.php' );
55
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
 
57
 
58
 
4
  * Plugin Name: Google Maps WD
5
  * Plugin URI: https://web-dorado.com/products/wordpress-google-maps-plugin.html
6
  * Description: Google Maps WD is an intuitive tool for creating Google maps with advanced markers, custom layers and overlays for your website.
7
+ * Version: 1.0.31
8
  * Author: WebDorado
9
  * Author URI: http://web-dorado.com/
10
  * License: GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
53
  }
54
  require_once( GMWD_DIR. '/widgets.php' );
55
 
56
+ if(!isset($_REQUEST['ajax'])){
57
+ require_once(GMWD_DIR . '/wd/start.php');
58
+ wd_init( array (
59
+ "prefix" => "gmwd",
60
+ "wd_plugin_id" => 147,
61
+ "plugin_wd_zip_name" => "google-maps-wd.zip", // to do
62
+ "plugin_title" => "Google Maps WD",
63
+ "plugin_wordpress_slug" => "wd-google-maps",
64
+ "plugin_dir" => GMWD_DIR,
65
+ "plugin_url" => GMWD_URL,
66
+ "plugin_main_file" => __FILE__,
67
+ "wd_plugin_name_personal" => "Google Maps WD Personal (WordPress)",
68
+ "wd_plugin_name_business" => "Google Maps WD Business (WordPress)",
69
+ "wd_plugin_name_developer" => "Google Maps WD Developer (WordPress)",
70
+ "plugin_menu_parent_slug" => "overview_gmwd",
71
+ "description" => __('Plugin for creating Google maps with advanced markers, custom layers and overlays for your website.', 'gmwd'),
72
+ "addons" => array(
73
+ "wd-google-maps-marker-clustering" => array(
74
+ "id" => 160,
75
+ "description" => __('GMWD Marker Clustering is designed for grouping close markers for more user-friendly display over the map.', 'gmwd'),
76
+ "image" => GMWD_URL . '/wd/assets/img/marker_clusters.png'
77
+ )
78
+ ),
79
+ // from web-dorado.com
80
+ "plugin_features" => array(
81
+ 0 => array(
82
+ "title" => __("Easy set up", "gmwd"),
83
+ "description" => __("After installation a set-up guide will help you configure general options and get started on the dashboard. The plugin also displays tooltips in the whole admin area and settings. Moreover, you get instant live previews of changes you make in the working area, so you don’t have to save and publish maps to see the results.", "gmwd"),
84
+ ),
85
+ 1 => array(
86
+ "title" => __("Unlimited Everything", "gmwd"),
87
+ "description" => __("Display unlimited maps on any page or post. Same is true for markers, rectangles, circles, polygons and polylines.", "gmwd"),
88
+ ),
89
+ 2 => array(
90
+ "title" => __("100+ Marker Icons", "gmwd"),
91
+ "description" => __("Choose from 100+ readymade marker icons with different shapes and colors. Can’t find what you need? Create your own icons with the icon marker editor, setting background color and icon color or upload your own image.", "gmwd"),
92
+ ),
93
+ 3 => array(
94
+ "title" => __("Beautiful Maps Theme", "gmwd"),
95
+ "description" => __("Select or create a beautiful map theme that best fits your business and website needs. Choose from readymade themes or design your own map skin, by using the advanced editor.", "gmwd"),
96
+ ),
97
+ 4 => array(
98
+ "title" => __("Multilevel Marker Categories", "gmwd"),
99
+ "description" => __("Do you have a large number of markers on locations? Then the marker clustering option is for you! Add multiple marker categories and subcategories. Assign categories to markers quickly and easily by choosing from a dropdown menu.", "gmwd"),
100
+ )
101
+ ),
102
+ // user guide from web-dorado.com
103
+ "user_guide" => array(
104
+ 0 => array(
105
+ "main_title" => __("Installation Wizard/ Options Menu", "gmwd"),
106
+ "url" => "https://web-dorado.com/wordpress-google-maps/installation-wizard-options-menu.html",
107
+ "titles" => array(
108
+ array(
109
+ "title" => __("Configuring Map API Key", "gmwd"),
110
+ "url" => "https://web-dorado.com/wordpress-google-maps/installation-wizard-options-menu/configuring-api-key.html"
111
+ )
112
+ )
113
+ ),
114
+ 1 => array(
115
+ "main_title" => __("Creating Map", "gmwd"),
116
+ "url" => "https://web-dorado.com/wordpress-google-maps/creating-map.html",
117
+ "titles" => array()
118
+ ),
119
+ 2 => array(
120
+ "main_title" => __("Settings", "gmwd"),
121
+ "url" => "https://web-dorado.com/wordpress-google-maps/settings.html",
122
+ "titles" => array(
123
+ array(
124
+ "title" => __("General", "gmwd"),
125
+ "url" => "https://web-dorado.com/wordpress-google-maps/settings/general.html",
126
+ ),
127
+ array(
128
+ "title" => __("Controls", "gmwd"),
129
+ "url" => "https://web-dorado.com/wordpress-google-maps/settings/controls.html",
130
+ ),
131
+ array(
132
+ "title" => __("Layers", "gmwd"),
133
+ "url" => "https://web-dorado.com/wordpress-google-maps/settings/layers.html",
134
+ ),
135
+ array(
136
+ "title" => __("Directions", "gmwd"),
137
+ "url" => "https://web-dorado.com/wordpress-google-maps/settings/directions.html",
138
+ ),
139
+ array(
140
+ "title" => __("Store Locator", "gmwd"),
141
+ "url" => "https://web-dorado.com/wordpress-google-maps/settings/store-locator.html",
142
+ ),
143
+ array(
144
+ "title" => __("Marker Listing", "gmwd"),
145
+ "url" => "https://web-dorado.com/wordpress-google-maps/settings/marker-listing.html",
146
+ ),
147
+ )
148
+ ),
149
+ 3 => array(
150
+ "main_title" => __("Map", "gmwd"),
151
+ "url" => "https://web-dorado.com/wordpress-google-maps/map.html",
152
+ "titles" => array(
153
+ array(
154
+ "title" => __("Adding Marker", "gmwd"),
155
+ "url" => "https://web-dorado.com/wordpress-google-maps/map/adding-marker.html",
156
+ ),
157
+ array(
158
+ "title" => __("Adding Circle", "gmwd"),
159
+ "url" => "https://web-dorado.com/wordpress-google-maps/map/adding-circle.html",
160
+ ),
161
+ array(
162
+ "title" => __("Adding Rectangle", "gmwd"),
163
+ "url" => "https://web-dorado.com/wordpress-google-maps/map/adding-rectangle.html",
164
+ ),
165
+ array(
166
+ "title" => __("Adding Polygon", "gmwd"),
167
+ "url" => "https://web-dorado.com/wordpress-google-maps/map/adding-polygon.html",
168
+ ),
169
+ array(
170
+ "title" => __("Adding Polylines", "gmwd"),
171
+ "url" => "https://web-dorado.com/wordpress-google-maps/map/adding-polylines.html",
172
+ ),
173
+ )
174
+ ),
175
+ 4 => array(
176
+ "main_title" => __("Preview/Themes", "gmwd"),
177
+ "url" => "https://web-dorado.com/wordpress-google-maps/preview-themes.html",
178
+ "titles" => array()
179
+ ),
180
+ 5 => array(
181
+ "main_title" => __("Creating Marker Categories", "gmwd"),
182
+ "url" => "https://web-dorado.com/wordpress-google-maps/creating-marker-categories.html",
183
+ "titles" => array()
184
+ ),
185
+ ),
186
+ "video_youtube_id" => "acaexefeP7o", // e.g. https://www.youtube.com/watch?v=acaexefeP7o youtube id is the acaexefeP7o
187
+ "plugin_wd_url" => "https://web-dorado.com/products/wordpress-google-maps-plugin.html",
188
+ "plugin_wd_demo_link" => "http://wpdemo.web-dorado.com/google-maps/?_ga=1.55907819.1794949467.1468394897",
189
+ "plugin_wd_forum_link" => "https://web-dorado.com/forum/wordpress-google-maps-wd.html",
190
+ "plugin_wd_addons_link" => "https://web-dorado.com/products/wordpress-google-maps-plugin/add-ons/marker-clustering.html",
191
+ "after_subscribe" => "overview_gmwd", // this can be plagin overview page or set up page
192
+ ));
193
+
194
+ }
195
 
196
 
197
 
wd/assets/css/deactivate_popup.css ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .wd-opacity{
2
+ position: fixed;
3
+ top: 0px;
4
+ bottom: 0px;
5
+ left: 0px;
6
+ right: 0px;
7
+ z-index: 9999;
8
+ background: #000;
9
+ opacity: 0.5;
10
+ display: none;
11
+ }
12
+
13
+ .wd-deactivate-popup{
14
+ position: fixed;
15
+ top: 0px;
16
+ bottom: 0px;
17
+ left: 0px;
18
+ right: 0px;
19
+ background: #fff;
20
+ z-index: 999999;
21
+ width: 600px;
22
+ height: 470px;
23
+ margin: auto;
24
+ display: none;
25
+ box-sizing: border-box;
26
+ }
27
+ .wd-deactivate-popup-header{
28
+ border-bottom: 1px solid #ccc;
29
+ padding: 18px 40px;
30
+ font-size: 16px;
31
+ background: rgba(221, 221, 221, 0.14);
32
+ }
33
+ .wd-deactivate-popup-body{
34
+ padding: 20px 40px;
35
+ border-bottom: 1px solid #ccc;
36
+ }
37
+ .wd-btns{
38
+ padding: 20px 40px;
39
+ text-align: right;
40
+
41
+ }
42
+
43
+ .additional_details_wrap{
44
+ margin-top: 20px;
45
+ }
wd/assets/css/img/allow&continue.png ADDED
Binary file
wd/assets/css/img/coupon_bg.png ADDED
Binary file
wd/assets/css/img/plugins_header_bg.png ADDED
Binary file
wd/assets/css/img/skip.png ADDED
Binary file
wd/assets/css/img/themes_headrer_bg.png ADDED
Binary file
wd/assets/css/img/ug-icon-1.png ADDED
Binary file
wd/assets/css/img/ug-icon-2.png ADDED
Binary file
wd/assets/css/img/ug-icon-3.png ADDED
Binary file
wd/assets/css/img/ug-icon-4.png ADDED
Binary file
wd/assets/css/img/ug-icon-5.png ADDED
Binary file
wd/assets/css/img/welcome_bg.png ADDED
Binary file
wd/assets/css/notices.css ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .wd-admin-notice {
2
+ background: #fff;
3
+ border: 4px;
4
+ display: block;
5
+ min-height: 68px;
6
+ padding: 10px 40px 10px 125px;
7
+ position: relative;
8
+ }
9
+ .wd-admin-notice a {
10
+ color: #10738B;
11
+ }
12
+ .gmwd-notice-logo {
13
+ clear: both;
14
+ content: "";
15
+ display: block;
16
+ background-image: url("../img/notice_img.png");
17
+ background-size: 108px auto;
18
+ background-repeat: no-repeat;
19
+ background-position: 0 45%;
20
+ width: 125px;
21
+ position: absolute;
22
+ top: 0;
23
+ bottom: 0;
24
+ left: 5px;
25
+ }
26
+ .wd-admin-notice > .dashicons {
27
+ color: #424242;
28
+ position: absolute;
29
+ right: 20px;
30
+ top: 40%;
31
+ }
32
+ .wd-notice-title {
33
+ font-size: 24px;
34
+ margin: 0;
35
+ }
36
+ .wd-notice-body {
37
+ font-weight: normal;
38
+ margin: 5px 0;
39
+ }
40
+ .wd-notice-body:after {
41
+ clear: both;
42
+ content: "";
43
+ display: block;
44
+ }
45
+ .wd-notice-body li {
46
+ float: left;
47
+ margin-right: 20px;
48
+ }
49
+ .wd-notice-body .dashicons {
50
+ font-size: 17px;
51
+ }
52
+ .wd-blue {
53
+ color: #10738B;
54
+ }
55
+
56
+ .admin-notice-promo {
57
+ background: #fff;
58
+ border-top: 4px;
59
+ display: block;
60
+ min-height: 68px;
61
+ padding: 10px 40px 0px 10px;
62
+ margin: 10px 0;
63
+ position: relative;
64
+ }
65
+
66
+ .admin-notice-promo:after {
67
+ content: '';
68
+ display: table;
69
+ clear: both;
70
+ }
71
+
72
+ .close-promo {
73
+ position: absolute;
74
+ top: 5px;
75
+ right: 5px;
76
+ }
77
+
78
+ .promo {
79
+ background-position: center;
80
+ background-repeat: no-repeat;
81
+ background-size: 972px 200px;
82
+ height: 200px;
83
+ max-width: 100%;
84
+ }
85
+
86
+ .promo a {
87
+ display: block;
88
+ height: 100%;
89
+ }
wd/assets/css/overview.css ADDED
@@ -0,0 +1,452 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* general */
2
+ .wd-table{
3
+ display: table;
4
+ width: 100%;
5
+ }
6
+ .wd-cell{
7
+ display: table-cell;
8
+ }
9
+ .wd-valign-top{
10
+ vertical-align: top;
11
+ }
12
+ .wd-valign-middle{
13
+ vertical-align: middle;
14
+ }
15
+ .wd-valign-bottom{
16
+ vertical-align: bottom;
17
+ }
18
+ .wd-text-right{
19
+ text-align: right;
20
+ }
21
+ .wd-text-center{
22
+ text-align: center;
23
+ }
24
+ .hide{
25
+ display: none;
26
+ }
27
+ a:focus{
28
+ border: none !important;
29
+ outline: none !important;
30
+ box-shadow: none !important;
31
+ }
32
+
33
+ /*end general */
34
+ .overview_welcome{
35
+ background: url(img/welcome_bg.png) no-repeat;
36
+ margin: 21px 0px;
37
+ background-size: 100% 100%;
38
+ line-height: 28px;
39
+ }
40
+ .overview_welcome .wd-cell{
41
+ padding: 15px;
42
+ }
43
+ .overview_welcome .wd-cell:first-child{
44
+ position: relative;
45
+ }
46
+
47
+ .overview_welcome h2{
48
+ text-transform: uppercase;
49
+ font-size: 33px;
50
+ margin-top: 0;
51
+ margin-bottom: 24px;
52
+ color: #424141;
53
+ }
54
+ .overview_welcome img{
55
+ width: 120px;
56
+ padding-right: 100px;
57
+ padding-left: 25px;
58
+ }
59
+ .overview_wrap{
60
+ width: 935px;
61
+ background: #fff;
62
+ }
63
+ .overview_welcome .overview_welcome_text{
64
+ font-size: 15px;
65
+ color: #424141;
66
+ }
67
+ .overview_tabs:after, .deals_content:after, .deal_desc_footer:after{
68
+ content: "";
69
+ display: table;
70
+ clear: both;
71
+ }
72
+ .overview_tabs li{
73
+ float: left;
74
+ width: 16.666%;
75
+ }
76
+
77
+ .overview_tabs li a{
78
+ text-decoration: none !important;
79
+ color: #000;
80
+ background: #D6D6D6;
81
+ background: -webkit-linear-gradient(#D6D6D6, #D7D7D7, #D6D6D6); /* For Safari 5.1 to 6.0 */
82
+ background: -o-linear-gradient(#D6D6D6, #D7D7D7, #D6D6D6); /* For Opera 11.1 to 12.0 */
83
+ background: -moz-linear-gradient(#D6D6D6, #D7D7D7, #D6D6D6); /* For Firefox 3.6 to 15 */
84
+ background: linear-gradient(#D6D6D6, #D7D7D7, #D6D6D6); /* Standard syntax */
85
+ text-transform: uppercase;
86
+ display: block;
87
+ padding: 7px 10px;
88
+ text-align: center;
89
+ font-weight: bold;
90
+ border-top: 4px solid #F1F1F1;
91
+ position: relative;
92
+ top: -4px;
93
+ }
94
+ .overview_tabs li a:hover,.overview_tabs li a:active, .overview_tabs li a:focus, .overview_tab_active{
95
+ background: #fff !important;
96
+ border-top: 4px solid #2A495F !important;
97
+
98
+ }
99
+ #welcome, #user_guide, #support, .deals_content{
100
+ padding: 15px 10px;
101
+ background: #fff;
102
+ }
103
+ .plugin_feature_title{
104
+ font-size: 19px;
105
+ }
106
+ .more_features_wrap{
107
+ margin-top: 25px;
108
+ text-align: right;
109
+ }
110
+ .more_features, .more_features:hover, .more_features:focus{
111
+ color: #fff;
112
+ background: #00384F;
113
+ padding: 3px 15px;
114
+ text-decoration: none;
115
+ }
116
+ .user_guide_item{
117
+ margin-bottom: 19px;
118
+ }
119
+ .user_guide_title, .user_guide_title:hover, .user_guide_title:focus{
120
+ font-size: 16px;
121
+ color: #192D3B;
122
+ font-weight: bold;
123
+ margin-bottom: 5px;
124
+ text-decoration: none;
125
+ }
126
+ .user_guide_titles, .user_guide_titles:hover, .user_guide_titles:focus{
127
+ color: #192D3B;
128
+ text-decoration: none;
129
+ }
130
+ .user_guide_demo, .user_guide_plugin, .user_guide_support_forum, .user_guide_addons, .user_guide_faq,
131
+ .user_guide_demo:hover, .user_guide_plugin:hover, .user_guide_support_forum:hover, .user_guide_addons:hover, .user_guide_faq:hover{
132
+ background-color: #F5F5F5;
133
+ background-repeat: no-repeat;
134
+ background-position: right -4px center;
135
+ border-top-left-radius: 25px;
136
+ border-bottom-left-radius: 25px;
137
+ padding: 3px 23px 3px 16px;
138
+ width: 144px;
139
+ font-weight: bold;
140
+ text-transform: uppercase;
141
+ color: #192D3B;
142
+ margin-bottom: 7px;
143
+ display: block;
144
+ text-decoration: none;
145
+ }
146
+ .user_guide_demo{
147
+ background-image: url(img/ug-icon-1.png);
148
+ }
149
+ .user_guide_plugin{
150
+ background-image: url(img/ug-icon-2.png);
151
+ }
152
+ .user_guide_support_forum{
153
+ background-image: url(img/ug-icon-3.png);
154
+ }
155
+ .user_guide_addons{
156
+ background-image: url(img/ug-icon-4.png);
157
+ }
158
+ .user_guide_faq{
159
+ background-image: url(img/ug-icon-5.png);
160
+ }
161
+
162
+ #support .wd-support-main{
163
+ width: 800px;
164
+ margin: 0 auto;
165
+ font-size: 16px;
166
+ text-align: center;
167
+ margin-bottom: 15px;
168
+
169
+ }
170
+ .wd-overview-site-deatils{
171
+ width: 800px;
172
+ background: #FBFBFB;
173
+ padding: 10px;
174
+ margin: 0 auto;
175
+ }
176
+ .wd-overview-site-deatils h2, .wd-overview-site-deatils p{
177
+ text-align: center;
178
+ }
179
+ .wd-overview-site-deatils p{
180
+ font-size: 16px;
181
+ }
182
+ .contact_us, .contact_us:hover, .contact_us:focus{
183
+ display: block;
184
+ background: #27475D;
185
+ color: #fff;
186
+ text-decoration: none;
187
+ width: 173px;
188
+ padding: 8px 0px;
189
+ text-align: center;
190
+ margin-bottom: 5px;
191
+ font-size: 16px;
192
+ margin-left: 8px;
193
+ border: 1px solid #B7B7B7;
194
+ text-transform: uppercase;
195
+ }
196
+
197
+ .support_email{
198
+ color: #F47A31;
199
+ }
200
+ .wd-site-deatils{
201
+ padding: 23px;
202
+ background: #f1f1f1;
203
+ box-sizing: border-box;
204
+ }
205
+ .wd-site-deatils textarea{
206
+ width: 100%;
207
+ }
208
+ .contact_us{
209
+ margin-left: auto !important;
210
+ margin-right: auto;
211
+ margin-top: 10px;
212
+ }
213
+ #wd-copy{
214
+ display: block;
215
+ background: #27475D;
216
+ color: #fff;
217
+ padding: 5px 8px;
218
+ text-align: center;
219
+ margin-bottom: 5px;
220
+ font-size: 14px;
221
+ border: 1px solid #B7B7B7;
222
+ cursor: pointer;
223
+ }
224
+ #plugins{
225
+ padding-bottom: 15px;
226
+ background: #fff;
227
+ }
228
+
229
+ .deals_header_plugins{
230
+ background: url(img/plugins_header_bg.png) #fff no-repeat;
231
+ }
232
+ .deals_header_themes{
233
+ background: url(img/themes_headrer_bg.png) #fff no-repeat;
234
+ }
235
+ .deals_header{
236
+ background-size: cover;
237
+ height: 241px;
238
+ }
239
+ .deals_header .wd-table .wd-cell{
240
+ position: relative;
241
+ }
242
+ .deals_header_plugins .wd-table .wd-cell{
243
+ padding: 27px 10px 10px;
244
+ }
245
+ .deals_header_themes .wd-table .wd-cell{
246
+ padding: 0px 10px 10px;
247
+ }
248
+ .deals_header_plugins .wd-table .wd-cell:first-child{
249
+ padding-left: 23px;
250
+ width: 30%;
251
+ }
252
+ .deals_header_themes .wd-table .wd-cell:first-child{
253
+ padding-left: 23px;
254
+ width: 36%;
255
+ }
256
+ .deals_header_themes .wd-table{
257
+ height: 100%
258
+ }
259
+
260
+ .titles_wrap{
261
+ display: inline-block;
262
+ }
263
+ .deals_main_title, .deals_secondary_title{
264
+ color: #00425A;
265
+ font-weight: bold;
266
+ line-height: 55px;
267
+ text-align: center;
268
+ text-transform: uppercase;
269
+ }
270
+
271
+ .deals_main_title{
272
+ font-size: 39px;
273
+ }
274
+ .deals_secondary_title{
275
+ font-size: 30px;
276
+ }
277
+
278
+ .higlight{
279
+ color: #E5682E;
280
+ }
281
+
282
+ .deals_save{
283
+ position: absolute;
284
+ right: 87px;
285
+ -webkit-transform: rotate(-27deg);
286
+ transform: rotate(-30deg);
287
+ font-weight: bold;
288
+ font-size: 39px;
289
+ color: #E5682E;
290
+ text-transform: uppercase;
291
+ }
292
+ .deals_header_plugins .deals_save{
293
+ bottom: 37px;
294
+ }
295
+ .deals_header_themes .deals_save{
296
+ bottom: 76px;
297
+ }
298
+ .deal_block{
299
+ width: 31.2%;
300
+ display: inline-block;
301
+ vertical-align: top;
302
+ margin: 5px;
303
+ }
304
+ .deal_title{
305
+ text-align: center;
306
+ text-transform: uppercase;
307
+ font-size: 20px;
308
+ background: #FAFAFA;
309
+ padding: 10px 5px;
310
+ line-height: 23px;
311
+ }
312
+ .deal_title a, .deal_title a:hover, .deal_title a:focus{
313
+ text-decoration: none !important;
314
+ color: #000 !important;
315
+ }
316
+ .deal_desc{
317
+ background: #F5F5F5;
318
+ padding: 10px 5px;
319
+ }
320
+ .deal_desc p{
321
+ margin-bottom: 15px;
322
+ }
323
+
324
+ .deal_desc_footer .downloads{
325
+ float: left;
326
+ }
327
+ .deal_desc_footer .download_btn{
328
+ /*float: right;*/
329
+ margin-top: 10px;
330
+ text-align: center;
331
+ }
332
+ .deal_desc_footer .downloads .spans span:first-child{
333
+ background: #26455A;
334
+ color: #fff;
335
+ text-transform: uppercase;
336
+ padding: 5px;
337
+ display: inline-block;
338
+ }
339
+ .deal_desc_footer .downloads .spans span:last-child{
340
+ background: #fff;
341
+ padding: 5px;
342
+ border-top-right-radius: 25px;
343
+ border-bottom-right-radius: 25px;
344
+ margin-left: -3px;
345
+ }
346
+
347
+ .download_btn a, .download_btn a:hover, .download_btn a:focus{
348
+ color: #fff !important;
349
+ background: #E97025;
350
+ text-decoration: none;
351
+ padding: 4px 16px;
352
+ display: inline-block;
353
+ margin-top: 10px;
354
+ border-radius: 13px;
355
+ text-transform: uppercase;
356
+ }
357
+
358
+ .stars-container {
359
+ position: relative;
360
+ display: inline-block;
361
+ color: transparent;
362
+ font-size: 21px;
363
+ }
364
+
365
+ .stars-container:before {
366
+ position: absolute;
367
+ top: 0;
368
+ left: 0;
369
+ content: '★★★★★';
370
+ color: #F4AB7F;
371
+ }
372
+
373
+ .stars-container:after {
374
+ position: absolute;
375
+ top: 0;
376
+ left: 0;
377
+ content: '★★★★★';
378
+ color: #F4762A;
379
+ overflow: hidden;
380
+ }
381
+
382
+ .get_all_deals{
383
+ margin: 15px 0px;
384
+ text-align: center;
385
+ }
386
+ .get_all_deals a, .get_all_deals a:hover, .get_all_deals a:active, .get_all_deals a:focus {
387
+ color: #fff !important;
388
+ background: #E97025;
389
+ text-decoration: none;
390
+ padding: 8px 21px;
391
+ display: inline-block;
392
+ margin-top: 10px;
393
+ text-transform: uppercase;
394
+ border: 2px solid #D2631E;
395
+ font-size: 21px;
396
+ }
397
+
398
+ #themes{
399
+ border-top: 35px solid #F1F1F1;
400
+ padding-bottom: 15px;
401
+ }
402
+
403
+ .theme_block{
404
+ width: 48%;
405
+ margin: 5px;
406
+ border: 1px solid #ECE9E9;
407
+ float: left;
408
+ }
409
+ .theme_block a, .theme_block a:hover, .theme_block a:focus{
410
+ display: block;
411
+ text-decoration: none !important;
412
+ background: #F7F7F7;
413
+ color: #000 !important;
414
+ padding: 5px;
415
+ }
416
+
417
+ /* noteices */
418
+ .notice_wrap{
419
+ padding: 15px;
420
+ border: 1px solid #C4C4C4;
421
+ width: 98%;
422
+ margin: 10px auto;
423
+ box-sizing: border-box;
424
+
425
+ }
426
+ .notice_wrap .notice_title, .notice_wrap .notice_title:hover, .notice_wrap .notice_title:focus{
427
+ color: #E5682E !important;
428
+ text-decoration: none;
429
+ margin-bottom: 17px;
430
+ font-size: 20px;
431
+ display: block;
432
+ }
433
+
434
+ .notice_wrap .notice_txt{
435
+ font-size: 15px;
436
+ }
437
+
438
+
439
+ .wd-tour{
440
+ text-align: right;
441
+ }
442
+ .wd-tour-btn, .wd-tour-btn:hover, .wd-tour-btn:focus{
443
+ background: #F47629;
444
+ color: #fff;
445
+ text-decoration: none;
446
+ padding: 5px;
447
+ display: inline-block;
448
+ font-size: 16px;
449
+ }
450
+
451
+
452
+
wd/assets/css/subscribe.css ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ body {
2
+ color: #444;
3
+ font-family: "Open Sans",sans-serif;
4
+ line-height: 1.4em;
5
+ min-width: 600px;
6
+ }
7
+
8
+ .wd-subscribe{
9
+ background: #fff;
10
+ border: 2px solid #E2E5EC;
11
+ width: 55%;
12
+ margin-top: 40px;
13
+ }
14
+ .wd-subscribe-content{
15
+ padding: 30px 92px;
16
+ }
17
+ .imgs{
18
+ text-align: center;
19
+ }
20
+ .imgs img{
21
+ vertical-align: middle;
22
+ width: 125px;
23
+ }
24
+ .imgs span {
25
+ color: #21759B;
26
+ font-weight: bold;
27
+ font-size: 52px;
28
+ padding: 0px 28px;
29
+ }
30
+ .texts{
31
+ margin-top: 10px;
32
+ margin-bottom: 25px;
33
+ }
34
+
35
+ .btns .allow_and_continue, .btns .allow_and_continue:hover, .btns .allow_and_continue:focus{
36
+ display: inline-block;
37
+ background: url(img/allow&continue.png) no-repeat;
38
+ width: 279px;
39
+ height: 61px;
40
+ border: none;
41
+
42
+ }
43
+ .btns .skip, .btns .skip:hover, .btns .skip:focus{
44
+ margin-left: 66px;
45
+ display: inline-block;
46
+ background: url(img/skip.png) no-repeat;
47
+ width: 76px;
48
+ height: 59px;
49
+ }
50
+ .permissions{
51
+ color: #525252 !important;
52
+ }
53
+ .list{
54
+ margin-top: 15px;
55
+ display:none;
56
+ }
57
+ .list_item{
58
+ display: table;
59
+ margin-bottom: 15px;
60
+ }
61
+ .list_item:after{
62
+ content: "";
63
+ clear: both;
64
+ display: table;
65
+ }
66
+ .list_img_wrap{
67
+ float: left;
68
+ }
69
+ .list_img_wrap img{
70
+ width: 27px;
71
+ }
72
+ .list_text_wrap{
73
+ margin-left: 33px;
74
+ float: right;
75
+ }
76
+ .list_title, .list_text{
77
+ color: #525252;
78
+ font-size: 13px;
79
+ }
80
+ .wd_loader{
81
+ vertical-align: top;
82
+ width: 30px;
83
+ margin-top: 11px;
84
+ visibility: hidden;
85
+ }
86
+ .wd-subscribe-footer{
87
+ text-align: center;
88
+ padding: 4px 0px;
89
+ border-top: 1px solid rgba(204, 204, 204, 0.52);
90
+ }
91
+ .wd-footer-menu {
92
+ display: inline-block;
93
+ list-style-type: none;
94
+ padding: 0;
95
+ margin: 0;
96
+ }
97
+ .wd-footer-menu li{
98
+ float: left;
99
+ }
100
+ .wd-footer-menu li, .wd-footer-menu li a{
101
+ color: rgba(62, 60, 60, 0.57) !important;
102
+ text-decoration: none;
103
+ font-size: 12px;
104
+ padding: 2px;
105
+ font-weight: bold;
106
+ display: inline-block;
107
+ vertical-align: middle;
108
+ }
109
+
110
+
111
+ .wd-footer-menu li a:hover{
112
+ color: rgba(62, 60, 60, 0.57) !important;
113
+ text-decoration: underline;
114
+ }
wd/assets/img/loader.gif ADDED
Binary file
wd/assets/img/main_plugin.png ADDED
Binary file
wd/assets/img/marker_clusters.png ADDED
Binary file
wd/assets/img/notice_img.png ADDED
Binary file
wd/assets/img/plugins/business_elite.png ADDED
Binary file
wd/assets/img/plugins/business_world.png ADDED
Binary file
featured/images/events-wd.png → wd/assets/img/plugins/event-calendar-wd.png RENAMED
File without changes
featured/images/form.png → wd/assets/img/plugins/form-maker.png RENAMED
File without changes
{featured/images → wd/assets/img/plugins}/photo-gallery.png RENAMED
File without changes
wd/assets/img/plugins/portfolio_gallery.png ADDED
Binary file
wd/assets/img/plugins/sauron.png ADDED
Binary file
featured/images/slider.png → wd/assets/img/plugins/slider-wd.png RENAMED
File without changes
featured/images/spider.calendar.png → wd/assets/img/plugins/spider-event-calendar.png RENAMED
File without changes
wd/assets/img/plugins/wd-google-maps.png ADDED
Binary file
featured/images/instagram_feed.png → wd/assets/img/plugins/wd-instagram-feed.png RENAMED
File without changes
wd/assets/img/sub_1.png ADDED
Binary file
wd/assets/img/sub_2.png ADDED
Binary file
wd/assets/img/sub_4.png ADDED
Binary file
wd/assets/img/wp_logo.png ADDED
Binary file
wd/assets/js/deactivate_popup.js ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ////////////////////////////////////////////////////////////////////////////////////////
2
+ // Events //
3
+ ////////////////////////////////////////////////////////////////////////////////////////
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Constants //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Variables //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ var deactivated = false;
11
+ ////////////////////////////////////////////////////////////////////////////////////////
12
+ // Constructor & Destructor //
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ jQuery(document).ready(function () {
15
+ jQuery(document).on("click", "." + WDDeactivateVars.deactivate_class, function(){
16
+ jQuery(".wd-" + WDDeactivateVars.prefix + "-opacity").show();
17
+ jQuery(".wd-" + WDDeactivateVars.prefix + "-deactivate-popup").show();
18
+ return false;
19
+ });
20
+
21
+ jQuery(document).on("change", "[name=" + WDDeactivateVars.prefix + "_reasons]", function(){
22
+ jQuery("#wd-" + WDDeactivateVars.prefix + "-deactivate").hide();
23
+ jQuery("#wd-" + WDDeactivateVars.prefix + "-submit-and-deactivate").show();
24
+
25
+ });
26
+ jQuery(document).on("keyup", "[name=" + WDDeactivateVars.prefix + "_additional_details]", function(){
27
+ if(jQuery(this).val().trim() || jQuery("[name=" + WDDeactivateVars.prefix + "_reasons]:checked").length > 0){
28
+ jQuery("#wd-" + WDDeactivateVars.prefix + "-deactivate").hide();
29
+ jQuery("#wd-" + WDDeactivateVars.prefix + "-submit-and-deactivate").show();
30
+ }
31
+ else{
32
+ jQuery("#wd-" + WDDeactivateVars.prefix + "-deactivate").show();
33
+ jQuery("#wd-" + WDDeactivateVars.prefix + "-submit-and-deactivate").hide();
34
+ }
35
+
36
+ });
37
+ jQuery(document).on("click", ".wd-" + WDDeactivateVars.prefix + "-deactivate", function(){
38
+ jQuery("[name=" + WDDeactivateVars.prefix + "_submit_and_deactivate]").val(jQuery(this).attr("data-val"));
39
+ jQuery("#" + WDDeactivateVars.prefix + "_deactivate_form").submit();
40
+ return false;
41
+ });
42
+
43
+ jQuery(document).on("click", ".wd-" + WDDeactivateVars.prefix + "-cancel, .wd-opacity", function(){
44
+ jQuery(".wd-" + WDDeactivateVars.prefix + "-opacity").hide();
45
+ jQuery(".wd-" + WDDeactivateVars.prefix + "-deactivate-popup").hide();
46
+ return false;
47
+ });
48
+ });
49
+
50
+ ////////////////////////////////////////////////////////////////////////////////////////
51
+ // Public Methods //
52
+ ////////////////////////////////////////////////////////////////////////////////////////
53
+ ////////////////////////////////////////////////////////////////////////////////////////
54
+ // Getters & Setters //
55
+ ////////////////////////////////////////////////////////////////////////////////////////
56
+ ////////////////////////////////////////////////////////////////////////////////////////
57
+ // Private Methods //
58
+ ////////////////////////////////////////////////////////////////////////////////////////
59
+ ////////////////////////////////////////////////////////////////////////////////////////
60
+ // Listeners //
61
+ ////////////////////////////////////////////////////////////////////////////////////////
wd/assets/js/overview.js ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ////////////////////////////////////////////////////////////////////////////////////////
2
+ // Events //
3
+ ////////////////////////////////////////////////////////////////////////////////////////
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Constants //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Variables //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Constructor & Destructor //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ jQuery(document).ready(function () {
14
+ jQuery(".overview_content > div:not(#welcome)").hide();
15
+ jQuery(".overview_tabs li a:not(.not_tab)").click(function(){
16
+ jQuery(".overview_tabs li a").removeClass("overview_tab_active");
17
+ jQuery(this).addClass("overview_tab_active");
18
+ jQuery(".overview_content > div").hide();
19
+ var id = jQuery(this).attr("href");
20
+ jQuery(id).show();
21
+ return false;
22
+ });
23
+
24
+ // rating
25
+ // jQuery(".rating").each(function(){
26
+ // var rate = jQuery(this).attr("data-rating");
27
+ // jQuery("<span class='stars-container'>")
28
+ // .addClass("stars-" + rate.toString())
29
+ // .text("★★★★★")
30
+ // .appendTo(jQuery(this));
31
+ // jQuery("body").append('<style>.stars-' + rate.toString() + ':after{width:' + rate + '%;}</style>');
32
+ // });
33
+
34
+ jQuery("#wd-copy").click(function(){
35
+ var selector = document.querySelector('#wd-site-deatils-textarea');
36
+ selector.select();
37
+ document.execCommand('copy');
38
+
39
+ return false;
40
+
41
+ });
42
+
43
+ });
44
+
45
+ ////////////////////////////////////////////////////////////////////////////////////////
46
+ // Public Methods //
47
+ ////////////////////////////////////////////////////////////////////////////////////////
48
+ ////////////////////////////////////////////////////////////////////////////////////////
49
+ // Getters & Setters //
50
+ ////////////////////////////////////////////////////////////////////////////////////////
51
+ ////////////////////////////////////////////////////////////////////////////////////////
52
+ // Private Methods //
53
+ ////////////////////////////////////////////////////////////////////////////////////////
54
+ ////////////////////////////////////////////////////////////////////////////////////////
55
+ // Listeners //
56
+ ////////////////////////////////////////////////////////////////////////////////////////
wd/assets/js/subsribe.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ////////////////////////////////////////////////////////////////////////////////////////
2
+ // Events //
3
+ ////////////////////////////////////////////////////////////////////////////////////////
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Constants //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Variables //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Constructor & Destructor //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ jQuery(document).ready(function () {
14
+ jQuery(".permissions").click(function(){
15
+ jQuery(".list").toggle();
16
+ return false;
17
+ });
18
+
19
+ jQuery(".allow_and_continue").click(function(){
20
+ jQuery(this).css("opacity", "0.5");
21
+ jQuery(".wd_loader").css("visibility", "visible");
22
+ });
23
+ });
24
+
25
+ ////////////////////////////////////////////////////////////////////////////////////////
26
+ // Public Methods //
27
+ ////////////////////////////////////////////////////////////////////////////////////////
28
+ ////////////////////////////////////////////////////////////////////////////////////////
29
+ // Getters & Setters //
30
+ ////////////////////////////////////////////////////////////////////////////////////////
31
+ ////////////////////////////////////////////////////////////////////////////////////////
32
+ // Private Methods //
33
+ ////////////////////////////////////////////////////////////////////////////////////////
34
+ ////////////////////////////////////////////////////////////////////////////////////////
35
+ // Listeners //
36
+ ////////////////////////////////////////////////////////////////////////////////////////
wd/config.php ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+
6
+ /**
7
+ * Directories
8
+ */
9
+
10
+ define( 'WD_DIR', dirname( __FILE__ ) );
11
+ define( 'WD_DIR_INCLUDES', WD_DIR . '/includes' );
12
+ define( 'WD_DIR_TEMPLATES', WD_DIR . '/templates' );
13
+ define( 'WD_DIR_ASSETS', WD_DIR . '/assets' );
14
+ define( 'WD_URL_CSS', plugins_url( plugin_basename( dirname( __FILE__ ) ) ) . '/assets/css' );
15
+ define( 'WD_URL_JS', plugins_url( plugin_basename( dirname( __FILE__ ) ) ) . '/assets/js' );
16
+ define( 'WD_URL_IMG', plugins_url( plugin_basename( dirname( __FILE__ ) ) ) . '/assets/img' );
17
+
18
+ /**
19
+ * Domain / URL / Address
20
+ */
21
+
22
+ define( 'WD_API_PLUGIN_DATA_PATH', 'http://api.web-dorado.com/v2/_id_/plugindata' );
23
+
24
+ // global options
25
+ global $wd_options;
26
+ $wd_options = new StdClass();
27
+ $wd_options->prefix = null;
28
+ $wd_options->wd_plugin_id = null;
29
+ $wd_options->plugin_wd_zip_name = null;
30
+ $wd_options->plugin_title = null;
31
+ $wd_options->plugin_wordpress_slug = null;
32
+ $wd_options->plugin_dir = null;
33
+ $wd_options->plugin_url = null;
34
+ $wd_options->plugin_main_file = null;
35
+ $wd_options->wd_plugin_name_personal = null;
36
+ $wd_options->wd_plugin_name_business = null;
37
+ $wd_options->wd_plugin_name_developer = null;
38
+ $wd_options->plugin_menu_parent_slug = null;
39
+ $wd_options->description = null;
40
+ $wd_options->addons = null;
41
+ $wd_options->plugin_features = null;
42
+ $wd_options->user_guide = null;
43
+ $wd_options->video_youtube_id = null;
44
+ $wd_options->plugin_wd_url = null;
45
+ $wd_options->plugin_wd_demo_link = null;
46
+ $wd_options->plugin_wd_forum_link = null;
47
+ $wd_options->plugin_wd_addons_link = null;
48
+ $wd_options->after_subscribe = null;
49
+
50
+
wd/includes/api.php ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( !defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+
6
+ class WDApi{
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Events //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Constants //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Variables //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+
17
+ public $userhash = array();
18
+
19
+
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ // Constructor & Destructor //
22
+ ////////////////////////////////////////////////////////////////////////////////////////
23
+ public function __construct() {
24
+ $this->userhash = $this->get_userhash();
25
+ }
26
+ ////////////////////////////////////////////////////////////////////////////////////////
27
+ // Public Methods //
28
+ ////////////////////////////////////////////////////////////////////////////////////////
29
+
30
+
31
+ public function get_remote_data( $id ) {
32
+ $remote_data_path = WD_API_PLUGIN_DATA_PATH . '/' . $this->userhash;
33
+ $request = wp_remote_get( ( str_replace( '_id_', $id, $remote_data_path ) ) );
34
+
35
+ if ( !is_wp_error($request) || wp_remote_retrieve_response_code($request) === 200 ) {
36
+ return json_decode($request['body'], true);
37
+ }
38
+ return false;
39
+ }
40
+
41
+
42
+ public function get_userhash(){
43
+ global $wd_options;
44
+ $userhash = 'nohash';
45
+ if ( file_exists( $wd_options->plugin_dir . '/.keep') && is_readable( $wd_options->plugin_dir . '/.keep' ) ) {
46
+ $f = fopen( $wd_options->plugin_dir . '/.keep', 'r' );
47
+ $userhash = fgets( $f );
48
+ fclose( $f );
49
+ }
50
+ return $userhash;
51
+ }
52
+
53
+ public function get_hash(){
54
+ $response = wp_remote_get("http://api.web-dorado.com/hash/" . $_SERVER['REMOTE_ADDR'] . "/" . $_SERVER['HTTP_HOST']);
55
+
56
+ $response_body = isset($response["body"]) ? json_decode($response["body"], true) : null;
57
+
58
+ if(is_array($response_body)){
59
+ $hash = $response_body["body"]["hash"];
60
+ }
61
+ else{
62
+ $hash = null;
63
+ }
64
+
65
+ return $hash;
66
+ }
67
+
68
+
69
+ ////////////////////////////////////////////////////////////////////////////////////////
70
+ // Getters & Setters //
71
+ ////////////////////////////////////////////////////////////////////////////////////////
72
+ ////////////////////////////////////////////////////////////////////////////////////////
73
+ // Private Methods //
74
+ ////////////////////////////////////////////////////////////////////////////////////////
75
+ ////////////////////////////////////////////////////////////////////////////////////////
76
+ // Listeners //
77
+ ////////////////////////////////////////////////////////////////////////////////////////
78
+
79
+ }
wd/includes/deactivate.php ADDED
@@ -0,0 +1,163 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+
6
+ class WDDeactivate{
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Events //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Constants //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Variables //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public $deactivate_reasons = array();
17
+ // Reason IDs
18
+ const REASON_TEMPORARY_DEACTIVATION = 1;
19
+ const UPGRADING_TO_PRO_VERSION_DEACTIVATION = 2;
20
+ const REASON_USING_ANOTHER_PLUGIN = 3;
21
+ const REASON_PLUGIN_IS_DIFFICULT_TO_USE = 4;
22
+ const REASON_NO_LONGER_NEED_THE_PLUGIN = 5;
23
+ const REASON_TECHNICAL_PROBLEMS_POOR_QUALITY = 6;
24
+ const REASON_BAD_NO_SUPPORT_BY_DEVELOPER = 7;
25
+ const REASON_OTHER = 8;
26
+ const REASON_DONT_LIKE_TO_SHARE_MY_INFORMATION = 9;
27
+
28
+
29
+ ////////////////////////////////////////////////////////////////////////////////////////
30
+ // Constructor & Destructor //
31
+ ////////////////////////////////////////////////////////////////////////////////////////
32
+ public function __construct() {
33
+ global $wd_options;
34
+ $this->deactivate_reasons = array(
35
+ "reason-temporary-deactivation" => array(
36
+ 'id' => self::REASON_TEMPORARY_DEACTIVATION,
37
+ 'text' => __( 'Temporary deactivation', $wd_options->prefix ),
38
+ ),
39
+ "reason-upgrading-to-pro-version" => array(
40
+ 'id' => self::UPGRADING_TO_PRO_VERSION_DEACTIVATION,
41
+ 'text' => __( 'Upgrading to Pro version', $wd_options->prefix ),
42
+ ),
43
+
44
+ "reason-using-another-plugin" => array(
45
+ 'id' => self::REASON_USING_ANOTHER_PLUGIN,
46
+ 'text' => __( 'Using another plugin', $wd_options->prefix ),
47
+ ),
48
+ "reason-plugin-is-difficult-to-use" => array(
49
+ 'id' => self::REASON_PLUGIN_IS_DIFFICULT_TO_USE,
50
+ 'text' => __( 'Plugin is difficult to use', $wd_options->prefix ),
51
+ ),
52
+ "reason-no-longer-need-the-plugin" => array(
53
+ 'id' => self::REASON_NO_LONGER_NEED_THE_PLUGIN,
54
+ 'text' => __( 'No longer need the plugin', $wd_options->prefix ),
55
+ ),
56
+ "reason-technical-problems-poor-quality" => array(
57
+ 'id' => self::REASON_TECHNICAL_PROBLEMS_POOR_QUALITY,
58
+ 'text' => __( 'Technical problems/Poor quality', $wd_options->prefix ),
59
+ ),
60
+ "reason-bad-no-support-by-developer" => array(
61
+ 'id' => self::REASON_BAD_NO_SUPPORT_BY_DEVELOPER,
62
+ 'text' => __( 'Bad/No Support by developer', $wd_options->prefix ),
63
+ ),
64
+
65
+ "reason-other" => array(
66
+ 'id' => self::REASON_OTHER,
67
+ 'text' => __( 'Other', $wd_options->prefix ),
68
+ ),
69
+ "reason-dont-like-to-share-my-information" => array(
70
+ 'id' => self::REASON_DONT_LIKE_TO_SHARE_MY_INFORMATION,
71
+ 'text' => __( 'Don\'t like to share my information', $wd_options->prefix ),
72
+ ),
73
+ );
74
+
75
+ add_action( 'admin_footer', array( $this, 'add_deactivation_feedback_dialog_box' ) );
76
+ add_action( 'admin_init', array( $this, 'submit_and_deactivate' ) );
77
+
78
+ add_action( 'admin_enqueue_scripts', array( $this, 'scripts' ) );
79
+
80
+ }
81
+ ////////////////////////////////////////////////////////////////////////////////////////
82
+ // Public Methods //
83
+ ////////////////////////////////////////////////////////////////////////////////////////
84
+
85
+ public function add_deactivation_feedback_dialog_box(){
86
+ $deactivate_reasons = $this->deactivate_reasons;
87
+ global $wd_options;
88
+ require_once( WD_DIR_TEMPLATES . '/display_deactivation_popup.php' );
89
+ }
90
+
91
+ public function scripts(){
92
+ global $wd_options;
93
+ wp_enqueue_style( $wd_options->prefix . '-deactivate-popup', WD_URL_CSS . '/deactivate_popup.css', array(), get_option($wd_options->prefix . "_version" ) );
94
+ wp_enqueue_script( $wd_options->prefix . '-deactivate-popup', WD_URL_JS . '/deactivate_popup.js');
95
+
96
+ wp_localize_script( $wd_options->prefix . '-deactivate-popup', 'WDDeactivateVars', array(
97
+ "prefix" => $wd_options->prefix ,
98
+ "deactivate_class" => $wd_options->prefix . '_deactivate_link'
99
+ ));
100
+
101
+ }
102
+ public function submit_and_deactivate(){
103
+ global $wd_options;
104
+ if( isset( $_POST[$wd_options->prefix . "_submit_and_deactivate"] ) ){
105
+
106
+ if( $_POST[$wd_options->prefix . "_submit_and_deactivate"] == 2 ){
107
+ $api = new WDApi();
108
+ $hash = $api->get_hash();
109
+ if($hash != null){
110
+ $data = array();
111
+
112
+ $data["reason"] = isset($_POST[$wd_options->prefix . "_reasons"]) ? $_POST[$wd_options->prefix . "_reasons"] : "";
113
+ $data["site_url"] = site_url();
114
+ $data["plugin_slug"] = $wd_options->plugin_wordpress_slug;
115
+ $data["additional_details"] = isset($_POST[$wd_options->prefix . "_additional_details"]) ? $_POST[$wd_options->prefix . "_additional_details"] : "";
116
+ $data["hash"] = $hash;
117
+ $response = wp_remote_post( "http://api.web-dorado.com/deactivatereasons", array(
118
+ 'method' => 'POST',
119
+ 'timeout' => 45,
120
+ 'redirection' => 5,
121
+ 'httpversion' => '1.0',
122
+ 'blocking' => true,
123
+ 'headers' => array(),
124
+ 'body' => json_encode($data),
125
+ 'cookies' => array()
126
+ )
127
+ );
128
+
129
+ $response_body = isset( $response["body"] ) ? json_decode( $response["body"], true ) : null;
130
+ if( is_array( $response_body ) && $response_body["body"]["msg"] == "Access" ) {
131
+
132
+ }
133
+ }
134
+ }
135
+
136
+ $deactivate_url =
137
+ add_query_arg(
138
+ array(
139
+ 'action' => 'deactivate',
140
+ 'plugin' => $wd_options->plugin_wordpress_slug . '/' . $wd_options->plugin_wordpress_slug . '.php',
141
+ '_wpnonce' => wp_create_nonce( 'deactivate-plugin_' . $wd_options->plugin_wordpress_slug. '/' . $wd_options->plugin_wordpress_slug . '.php')
142
+ ),
143
+ admin_url( 'plugins.php' )
144
+ );
145
+ wp_redirect( $deactivate_url );
146
+
147
+ }
148
+ }
149
+
150
+ ////////////////////////////////////////////////////////////////////////////////////////
151
+ // Getters & Setters //
152
+ ////////////////////////////////////////////////////////////////////////////////////////
153
+ ////////////////////////////////////////////////////////////////////////////////////////
154
+ // Private Methods //
155
+ ////////////////////////////////////////////////////////////////////////////////////////
156
+
157
+ ////////////////////////////////////////////////////////////////////////////////////////
158
+ // Listeners //
159
+ ////////////////////////////////////////////////////////////////////////////////////////
160
+
161
+ }
162
+ new WDDeactivate();
163
+
wd/includes/notices.php ADDED
@@ -0,0 +1,251 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( !defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+
6
+ class WDNotices {
7
+
8
+ protected $promo_link = '';
9
+
10
+ public $notice_spam = 0;
11
+ public $notice_spam_max = 2;
12
+
13
+ // Basic actions to run
14
+ public function __construct() {
15
+
16
+ // Runs the admin notice ignore function incase a dismiss button has been clicked
17
+ add_action( 'admin_init', array( $this, 'admin_notice_ignore' ) );
18
+ // Runs the admin notice temp ignore function incase a temp dismiss link has been clicked
19
+ add_action( 'admin_init', array( $this, 'admin_notice_temp_ignore' ) );
20
+ add_action( 'admin_notices', array( $this, 'wd_admin_notices' ) );
21
+ }
22
+
23
+ // Checks to ensure notices aren't disabled and the user has the correct permissions.
24
+ public function wd_admin_notice() {
25
+ global $wd_options;
26
+ $settings = get_option($wd_options->prefix . '_admin_notice');
27
+ if ( !isset( $settings['disable_admin_notices'] ) || ( isset( $settings['disable_admin_notices'] ) && $settings['disable_admin_notices'] == 0 ) ) {
28
+ if ( current_user_can( 'manage_options' ) ) {
29
+ return true;
30
+ }
31
+ }
32
+ return false;
33
+ }
34
+
35
+ // Primary notice function that can be called from an outside function sending necessary variables
36
+ public function admin_notice( $admin_notices ) {
37
+ global $wd_options;
38
+ // Check options
39
+ if ( !$this->wd_admin_notice() ) {
40
+ return false;
41
+ }
42
+ foreach ( $admin_notices as $slug => $admin_notice ) {
43
+ // Call for spam protection
44
+ if ( $this->anti_notice_spam() ) {
45
+ return false;
46
+ }
47
+
48
+ // Check for proper page to display on
49
+ if (isset( $admin_notices[$slug]['pages']) && is_array( $admin_notices[$slug]['pages'])) {
50
+ if ( !$this->admin_notice_pages( $admin_notices[$slug]['pages'] ) ) {
51
+ return false;
52
+ }
53
+ }
54
+
55
+ // Check for required fields
56
+ if ( !$this->required_fields( $admin_notices[$slug] ) ) {
57
+
58
+ // Get the current date then set start date to either passed value or current date value and add interval
59
+ $current_date = current_time( "n/j/Y" );
60
+ $start = ( isset( $admin_notices[$slug]['start'] ) ? $admin_notices[$slug]['start'] : $current_date );
61
+ $start = date( "n/j/Y", strtotime( $start ) );
62
+ $date_array = explode( '/', $start );
63
+ $interval = ( isset( $admin_notices[$slug]['int'] ) ? $admin_notices[$slug]['int'] : 0 );
64
+
65
+ $date_array[1] += $interval;
66
+ $start = date( "n/j/Y", mktime( 0, 0, 0, $date_array[0], $date_array[1], $date_array[2] ) );
67
+
68
+ // This is the main notices storage option
69
+ $admin_notices_option = get_option( $wd_options->prefix . '_admin_notice', array() );
70
+ // Check if the message is already stored and if so just grab the key otherwise store the message and its associated date information
71
+ if ( !array_key_exists( $slug, $admin_notices_option ) ) {
72
+ $admin_notices_option[$slug]['start'] = $start;
73
+ $admin_notices_option[$slug]['int'] = $interval;
74
+ update_option( $wd_options->prefix . '_admin_notice', $admin_notices_option );
75
+ }
76
+
77
+ // Sanity check to ensure we have accurate information
78
+ // New date information will not overwrite old date information
79
+ $admin_display_check = ( isset( $admin_notices_option[$slug]['dismissed'] ) ? $admin_notices_option[$slug]['dismissed'] : 0 );
80
+ $admin_display_start = ( isset( $admin_notices_option[$slug]['start'] ) ? $admin_notices_option[$slug]['start'] : $start );
81
+ $admin_display_interval = ( isset($admin_notices_option[$slug]['int'] ) ? $admin_notices_option[$slug]['int'] : $interval );
82
+ $admin_display_msg = ( isset($admin_notices[$slug]['msg'] ) ? $admin_notices[$slug]['msg'] : '' );
83
+ $admin_display_title = ( isset($admin_notices[$slug]['title'] ) ? $admin_notices[$slug]['title'] : '' );
84
+ $admin_display_link = ( isset( $admin_notices[$slug]['link'] ) ? $admin_notices[$slug]['link'] : '' );
85
+ $output_css = false;
86
+
87
+ // Ensure the notice hasn't been hidden and that the current date is after the start date
88
+ if ( $admin_display_check == 0 && strtotime($admin_display_start) <= strtotime($current_date ) ) {
89
+
90
+ // Get remaining query string
91
+ $query_str = ( isset( $admin_notices[$slug]['later_link'] ) ? $admin_notices[$slug]['later_link'] : esc_url(add_query_arg( $wd_options->prefix . '_admin_notice_ignore', $slug ) ) );
92
+ if ( strpos($slug, 'promo' ) === FALSE ) {
93
+ // Admin notice display output
94
+ echo '<div class="update-nag wd-admin-notice">
95
+ <div class="' . $wd_options->prefix . '-notice-logo"></div>
96
+ <p class="wd-notice-title">' . $admin_display_title . '</p>
97
+ <p class="wd-notice-body">' . $admin_display_msg . '</p>
98
+ <ul class="wd-notice-body wd-blue">' . $admin_display_link . '</ul>
99
+ <a href="' . $query_str . '" class="dashicons dashicons-dismiss"></a>
100
+ </div>';
101
+ }
102
+ else {
103
+ echo '<div class="admin-notice-promo">';
104
+ echo $admin_display_msg;
105
+ echo '<ul class="notice-body-promo blue">
106
+ ' . $admin_display_link . '
107
+ </ul>';
108
+ echo '<a href="' . $query_str . '" class="dashicons dashicons-dismiss close-promo"></a>';
109
+ echo '</div>';
110
+ }
111
+ $this->notice_spam += 1;
112
+ $output_css = true;
113
+ }
114
+ if ( $output_css ) {
115
+ wp_enqueue_style( $wd_options->prefix . '-admin-notices', WD_URL_CSS . '/notices.css', array(), get_option($wd_options->prefix . "_version" ) );
116
+ }
117
+ }
118
+ }
119
+ }
120
+
121
+ // Spam protection check
122
+ public function anti_notice_spam() {
123
+ if ( $this->notice_spam >= $this->notice_spam_max ) {
124
+ return true;
125
+ }
126
+ return false;
127
+ }
128
+
129
+ // Ignore function that gets ran at admin init to ensure any messages that were dismissed get marked
130
+ public function admin_notice_ignore() {
131
+ global $wd_options;
132
+ // If user clicks to ignore the notice, update the option to not show it again
133
+ if ( isset( $_GET[$wd_options->prefix . '_admin_notice_ignore'] ) ) {
134
+ $admin_notices_option = get_option( $wd_options->prefix . '_admin_notice', array() );
135
+ $admin_notices_option[$_GET[$wd_options->prefix . '_admin_notice_ignore']]['dismissed'] = 1;
136
+ update_option( $wd_options->prefix . '_admin_notice', $admin_notices_option );
137
+ $query_str = remove_query_arg( $wd_options->prefix . '_admin_notice_ignore' );
138
+ wp_redirect( $query_str );
139
+ exit;
140
+ }
141
+ }
142
+
143
+ // Temp Ignore function that gets ran at admin init to ensure any messages that were temp dismissed get their start date changed
144
+ public function admin_notice_temp_ignore() {
145
+ global $wd_options;
146
+ // If user clicks to temp ignore the notice, update the option to change the start date - default interval of 14 days
147
+ if ( isset( $_GET[$wd_options->prefix . '_admin_notice_temp_ignore'] ) ) {
148
+ $admin_notices_option = get_option( $wd_options->prefix . '_admin_notice', array() );
149
+ $current_date = current_time( "n/j/Y" );
150
+ $date_array = explode( '/', $current_date );
151
+ $interval = (isset($_GET['wd_int']) ? $_GET['wd_int'] : 14);
152
+ $date_array[1] += $interval;
153
+ $new_start = date( "n/j/Y", mktime( 0, 0, 0, $date_array[0], $date_array[1], $date_array[2] ) );
154
+
155
+ $admin_notices_option[$_GET[$wd_options->prefix . '_admin_notice_temp_ignore']]['start'] = $new_start;
156
+ $admin_notices_option[$_GET[$wd_options->prefix . '_admin_notice_temp_ignore']]['dismissed'] = 0;
157
+ update_option( $wd_options->prefix . '_admin_notice', $admin_notices_option );
158
+ $query_str = remove_query_arg( array( $wd_options->prefix . '_admin_notice_temp_ignore', 'wd_int' ) );
159
+ wp_redirect( $query_str );
160
+ exit;
161
+ }
162
+ }
163
+
164
+ public function admin_notice_pages($pages) {
165
+ global $wd_options;
166
+ foreach ( $pages as $key => $page ) {
167
+ if (is_array($page)) {
168
+ if ( isset( $_GET['page'] ) && $_GET['page'] == $page[0] && isset($_GET['tab']) && $_GET['tab'] == $page[1] ) {
169
+ return true;
170
+ }
171
+ }
172
+ else {
173
+ if ( $page == 'all' ) {
174
+ return true;
175
+ }
176
+ if ( get_current_screen()->id === $page ) {
177
+ return true;
178
+ }
179
+ if ( isset($_GET['page']) && $_GET['page'] == $page ) {
180
+ return true;
181
+ }
182
+ }
183
+ return false;
184
+ }
185
+ }
186
+
187
+ // Required fields check
188
+ public function required_fields( $fields ) {
189
+ if ( !isset( $fields['msg'] ) || ( isset($fields['msg'] ) && empty( $fields['msg'] ) ) ) {
190
+ return true;
191
+ }
192
+ if ( !isset( $fields['title'] ) || ( isset( $fields['title'] ) && empty( $fields['title'] ) ) ) {
193
+ return true;
194
+ }
195
+ return false;
196
+ }
197
+
198
+ // Special parameters function that is to be used in any extension of this class
199
+ public function special_parameters($admin_notices) {
200
+ // Intentionally left blank
201
+ }
202
+
203
+ public function wd_admin_notices() {
204
+ global $wd_options;
205
+ $two_week_review_ignore = add_query_arg( array( $wd_options->prefix . '_admin_notice_ignore' => 'two_week_review' ) );
206
+ $two_week_review_temp = add_query_arg( array( $wd_options->prefix . '_admin_notice_temp_ignore' => 'two_week_review', 'int' => 14 ) );
207
+ $promo_close = add_query_arg( array( $wd_options->prefix . '_admin_notice_ignore' => 'ecommerce_promo' ) );
208
+
209
+ $notices['two_week_review'] = array(
210
+ 'title' => __('Leave A Review?', $wd_options->prefix),
211
+ 'msg' => sprintf(__('We hope you\'ve enjoyed using WordPress %s! Would you consider leaving us a review on WordPress.org?', $wd_options->prefix), $wd_options->plugin_title),
212
+ 'link' => '<li><span class="dashicons dashicons-external"></span><a href="https://wordpress.org/support/view/plugin-reviews/wd-google-maps?filter=5" target="_blank">' . __('Sure! I\'d love to!', $wd_options->prefix) . '</a></li>
213
+ <li><span class="dashicons dashicons-smiley"></span><a href="' . $two_week_review_ignore . '"> ' . __('I\'ve already left a review', $wd_options->prefix) . '</a></li>
214
+ <li><span class="dashicons dashicons-calendar-alt"></span><a href="' . $two_week_review_temp . '">' . __('Maybe Later', $wd_options->prefix) . '</a></li>
215
+ <li><span class="dashicons dashicons-dismiss"></span><a href="' . $two_week_review_ignore . '">' . __('Never show again', $wd_options->prefix) . '</a></li>',
216
+ 'later_link' => $two_week_review_temp,
217
+ 'int' => 14
218
+ );
219
+ // $remote_agreement_data = get_transient( $wd_options->prefix . '_remote_data' );
220
+ // if( isset( $remote_agreement_data["agreements"] ) && $remote_agreement_data["agreements"] ){
221
+ // $date_diff = floor(strtotime(date("Y-m-d H:i:s")) - strtotime($remote_agreement_data["agreements"][0]["subscr_date"]))/3600/24;
222
+ // if( ( $remote_agreement_data["agreements"][0]["item_name"] == $wd_options->wd_plugin_name_business || $remote_agreement_data["item_name"] == $wd_options->wd_plugin_name_personal ) && $date_diff <= 15 ){
223
+ // $upsell_ignore = add_query_arg( array( $wd_options->prefix . '_admin_notice_ignore' => 'upsell_higher_plan' ) );
224
+ // $upsell_ignore_temp = add_query_arg( array( $wd_options->prefix . '_admin_notice_temp_ignore' => 'upsell_higher_plan', 'wd_int' => 1 ) );
225
+
226
+ // $notices['upsell_higher_plan'] = array(
227
+ // 'title' => __( 'Buy Higher Price Plan', $wd_options->prefix ),
228
+ // 'msg' => sprintf( __( 'We hope you\'ve enjoyed using WordPress %s! Would you consider buy higher price plan?', $wd_options->prefix ), $wd_options->plugin_title ),
229
+ // 'link' => '<li><span class="dashicons dashicons-external"></span><a href="https://web-dorado.com/subscriptions.html" target="_blank">' . __( 'Sure! I\'d love to!', $wd_options->prefix ) . '</a></li>
230
+ // <li><span class="dashicons dashicons-calendar-alt"></span><a href="' . $upsell_ignore_temp . '">' . __('Maybe Later', $wd_options->prefix ) . '</a></li>
231
+ // <li><span class="dashicons dashicons-dismiss"></span><a href="' . $upsell_ignore . '">' . __( 'Never show again', $wd_options->prefix ) . '</a></li>',
232
+ // 'later_link' => $upsell_ignore_temp,
233
+ // 'int' => 1
234
+ // );
235
+ // }
236
+ // }
237
+ /*$one_week_support = add_query_arg(array($wd_options->prefix . '_admin_notice_ignore' => 'one_week_support'));
238
+ $notices['one_week_support'] = array(
239
+ 'title' => __('Hey! How\'s It Going?', $wd_options->prefix),
240
+ 'msg' => sprintf(__('Thank you for using WordPress %s! We hope that you\'ve found everything you need, but if you have any questions:', $wd_options->prefix), $this->plugin_name),
241
+ 'link' => '<li><span class="dashicons dashicons-media-text"></span><a target="_blank" href="https://web-dorado.com/wordpress-google-maps/installing.html">' . __('Check out User Guide', $wd_options->prefix) . '</a></li>
242
+ <li><span class="dashicons dashicons-sos"></span><a target="_blank" href="https://web-dorado.com/forum/wordpress-google-maps-wd.html">' . __('Get Some Help', $wd_options->prefix) . '</a></li>
243
+ <li><span class="dashicons dashicons-dismiss"></span><a href="' . $one_week_support . '">' . __('Never show again', $wd_options->prefix) . '</a></li>',
244
+ 'int' => 7
245
+ );*/
246
+
247
+ $this->admin_notice($notices);
248
+ }
249
+ }
250
+
251
+ new WDNotices();
wd/includes/overview.php ADDED
@@ -0,0 +1,306 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( !defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+
6
+ class WDOverview{
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Events //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Constants //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Variables //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ private $tabs = array();
17
+ ////////////////////////////////////////////////////////////////////////////////////////
18
+ // Constructor & Destructor //
19
+ ////////////////////////////////////////////////////////////////////////////////////////
20
+ public function __construct() {
21
+ global $wd_options;
22
+ $this->tabs = array(
23
+ 'welcome' => array(
24
+ 'name' => __( "Welcome", $wd_options->prefix ),
25
+ 'view' => array( $this, 'wd_overview_welcome' )
26
+ ),
27
+ 'user_guide' => array(
28
+ 'name' => __( "User Guide", $wd_options->prefix ),
29
+ 'view' => array( $this, 'wd_overview_user_guide' )
30
+ ),
31
+ 'deals' => array(
32
+ 'name' => __( 'Deals', $wd_options->prefix ),
33
+ 'view' => array( $this, 'wd_overview_deals' )
34
+ ),
35
+ 'support' => array(
36
+ 'name' => __( "Support", $wd_options->prefix ),
37
+ 'view' => array( $this, 'wd_overview_support' )
38
+ ),
39
+ 'https://web-dorado.com/support/submit-your-idea.html' => array(
40
+ 'name' => __( "Submit Your Idea", $wd_options->prefix ),
41
+ 'view' => false
42
+ ),
43
+ 'https://web-dorado.com/support/solutions.html' => array(
44
+ 'name' => __( "Solutions", $wd_options->prefix ),
45
+ 'view' => false
46
+ )
47
+ );
48
+
49
+
50
+
51
+ }
52
+ ////////////////////////////////////////////////////////////////////////////////////////
53
+ // Public Methods //
54
+ ////////////////////////////////////////////////////////////////////////////////////////
55
+ public function display_overview_page(){
56
+ global $wd_options;
57
+ $tabs = $this->tabs;
58
+ require_once( WD_DIR_TEMPLATES . "/display_overview.php" );
59
+ }
60
+ public function wd_overview_welcome(){
61
+ global $wd_options;
62
+ //http://api.wordpress.org/plugins/info/1.0/wd-google-maps
63
+ require_once( WD_DIR_TEMPLATES . "/display_overview_welcome.php" );
64
+ }
65
+ public function wd_overview_user_guide(){
66
+ global $wd_options;
67
+ $user_guide = $wd_options->user_guide;
68
+ require_once( WD_DIR_TEMPLATES . "/display_overview_user_guide.php" );
69
+ }
70
+ public function wd_overview_deals(){
71
+
72
+ global $wd_options;
73
+ $plugins = array(
74
+ "form-maker" => array(
75
+ 'title' => 'Form Maker',
76
+ 'text' => __( 'Wordpress form builder plugin', $wd_options->prefix ),
77
+ 'content' => __( 'Form Maker is a modern and advanced tool for creating WordPress forms easily and fast.', $wd_options->prefix ),
78
+ 'href' => 'https://web-dorado.com/products/wordpress-form.html'
79
+ ),
80
+ "photo-gallery" => array(
81
+ 'title' => 'Photo Gallery',
82
+ 'text' => __( 'WordPress Photo Gallery plugin', $wd_options->prefix ),
83
+ 'content' => __( 'Photo Gallery is a fully responsive WordPress Gallery plugin with advanced functionality.', $wd_options->prefix ),
84
+ 'href' => 'https://web-dorado.com/products/wordpress-photo-gallery-plugin.html'
85
+ ),
86
+ "event-calendar-wd" => array(
87
+ 'title' => 'Event Calendar WD',
88
+ 'text' => __( 'WordPress calendar plugin', $wd_options->prefix ),
89
+ 'content' => __( 'Organize and publish your events in an easy and elegant way using Event Calendar WD.', $wd_options->prefix ),
90
+ 'href' => 'https://web-dorado.com/products/wordpress-event-calendar-wd.html'
91
+ ),
92
+ "wd-google-maps" => array(
93
+ 'title' => 'WD Google Maps',
94
+ 'text' => __( 'WD Google Maps plugin', $wd_options->prefix ),
95
+ 'content' => __( 'Google Maps WD is an intuitive tool for creating Google maps with advanced markers, custom layers and overlays for your website.', $wd_options->prefix ),
96
+ 'href' => 'https://web-dorado.com/products/wordpress-google-maps-plugin.html'
97
+ ),
98
+ "slider-wd" => array(
99
+ 'title' => 'Slider WD',
100
+ 'text' => __( 'WordPress slider plugin', $wd_options->prefix ),
101
+ 'content' => __( 'Create responsive, highly configurable sliders with various effects for your WordPress site.', $wd_options->prefix ),
102
+ 'href' => 'https://web-dorado.com/products/wordpress-slider-plugin.html'
103
+ ),
104
+ "spider-event-calendar" => array(
105
+ 'title' => 'Spider Calendar',
106
+ 'text' => __( 'WordPress event calendar plugin', $wd_options->prefix ),
107
+ 'content' => __( 'Spider Event Calendar is a highly configurable product which allows you to have multiple organized events.', $wd_options->prefix ),
108
+ 'href' => 'https://web-dorado.com/products/wordpress-calendar.html'
109
+ ),
110
+ "wd-instagram-feed" => array(
111
+ 'title' => 'Instagram Feed WD',
112
+ 'text' => __( 'WordPress Instagram Feed plugin', $wd_options->prefix ),
113
+ 'content' => __( 'WD Instagram Feed is a user-friendly tool for displaying user or hashtag-based feeds on your website.', $wd_options->prefix ),
114
+ 'href' => 'https://web-dorado.com/products/wordpress-instagram-feed-wd.html'
115
+ ),
116
+ );
117
+ unset($plugins[$wd_options->plugin_wordpress_slug]) ;
118
+
119
+ // foreach ( $plugins as $wp_slug => &$plugin ){
120
+ // $wp_data = $this->remote_get($wp_slug);
121
+ // $plugin["downloaded"] = $wp_data["downloaded"];
122
+ // $plugin["rating"] = $wp_data["rating"];
123
+ // }
124
+
125
+ $themes = array(
126
+ "business_elite" => array(
127
+ 'title' => 'Business Elite Theme',
128
+ 'href' => 'https://web-dorado.com/wordpress-themes/business-elite.html'
129
+ ),
130
+ "portfolio_gallery" => array(
131
+ 'title' => 'Portfolio Gallery Theme',
132
+ 'href' => 'https://web-dorado.com/wordpress-themes/portfolio-gallery.html'
133
+ ),
134
+ "sauron" => array(
135
+ 'title' => 'Sauron Theme',
136
+ 'href' => 'https://web-dorado.com/wordpress-themes/sauron.html'
137
+ ),
138
+ "business_world" => array(
139
+ 'title' => 'Business World Theme',
140
+ 'href' => 'https://web-dorado.com/wordpress-themes/business-world.html'
141
+ ),
142
+ );
143
+
144
+ require_once( WD_DIR_TEMPLATES . "/display_overview_deals.php" );
145
+ }
146
+ public function wd_overview_support(){
147
+ global $wpdb, $wd_options;
148
+ $server_info = array();
149
+
150
+ // Get PHP Version
151
+ $server_info["Operating System"] = PHP_OS . " (" . ( PHP_INT_SIZE * 8 ) . ")";
152
+ $server_info["PHP Version"] = PHP_VERSION;
153
+ $server_info["Server"] = $_SERVER["SERVER_SOFTWARE"];
154
+
155
+ // Get MYSQL Version
156
+ $sql_version = $wpdb->get_var( "SELECT VERSION() AS version" );
157
+ $server_info["MySQL Version"] = $sql_version;
158
+
159
+ // GET SQL Mode
160
+ $mysqlinfo = $wpdb->get_results( "SHOW VARIABLES LIKE 'sql_mode'" );
161
+ if ( is_array( $mysqlinfo ) )
162
+ $sql_mode = $mysqlinfo[0]->Value;
163
+ if ( empty( $sql_mode ) )
164
+ $sql_mode = __( 'Not set', $wd_options->prefix );
165
+ $server_info["SQL Mode"] = $sql_mode;
166
+
167
+ // Get PHP Safe Mode
168
+ if( ini_get( 'safe_mode' ) )
169
+ $safe_mode = __( 'On', $wd_options->prefix );
170
+ else
171
+ $safe_mode = __( 'Off', $wd_options->prefix );
172
+ $server_info["PHP Safe Mode"] = $safe_mode;
173
+
174
+ // Get PHP allow_url_fopen
175
+ if( ini_get( 'allow_url_fopen' ) )
176
+ $allow_url_fopen = __( 'On', $wd_options->prefix );
177
+ else
178
+ $allow_url_fopen = __( 'Off', $wd_options->prefix );
179
+ $server_info["PHP Allow URL fopen"] = $allow_url_fopen;
180
+
181
+ // Get PHP Max Upload Size
182
+ if (function_exists('wp_max_upload_size'))
183
+ $upload_max = strval(round((int) wp_max_upload_size() / (1024 * 1024))) . 'M';
184
+ else if(ini_get('upload_max_filesize'))
185
+ $upload_max = ini_get('upload_max_filesize');
186
+ else
187
+ $upload_max = __('N/A', $wd_options->prefix);
188
+
189
+ $server_info["PHP Max Upload Size"] = $upload_max;
190
+
191
+ // Get PHP Output buffer Size
192
+ if( ini_get( 'pcre.backtrack_limit' ) )
193
+ $backtrack_limit = ini_get( 'pcre.backtrack_limit' );
194
+ else
195
+ $backtrack_limit = __( 'N/A', $wd_options->prefix );
196
+ $server_info["PCRE Backtracking Limit"] = $backtrack_limit;
197
+
198
+ // Get PHP Max Post Size
199
+ if( ini_get( 'post_max_size' ) )
200
+ $post_max = ini_get( 'post_max_size' );
201
+ else
202
+ $post_max = __( 'N/A', $wd_options->prefix );
203
+ $server_info["PHP Max Post Size"] = $post_max;
204
+
205
+ // Get PHP Max execution time
206
+ if( ini_get( 'max_execution_time' ) )
207
+ $max_execute = ini_get( 'max_execution_time' );
208
+ else
209
+ $max_execute = __( 'N/A', $wd_options->prefix );
210
+ $server_info["PHP Max Script Execute Time"] = $max_execute;
211
+
212
+
213
+ // Get PHP Memory Limit
214
+ if( ini_get( 'memory_limit' ) )
215
+ $memory_limit = ini_get( 'memory_limit' );
216
+ else
217
+ $memory_limit = __( 'N/A', $wd_options->prefix );
218
+ $server_info["PHP Memory Limit"] = $memory_limit;
219
+
220
+ // Get actual memory_get_usage
221
+ if ( function_exists( 'memory_get_usage' ) )
222
+ $memory_usage = round( memory_get_usage() / 1024 / 1024, 2 ) . __( ' MByte', $wd_options->prefix );
223
+ else
224
+ $memory_usage = __( 'N/A', $wd_options->prefix );
225
+ $server_info["Memory usage"] = $memory_usage;
226
+
227
+ // required for EXIF read
228
+ if ( is_callable( 'exif_read_data' ) )
229
+ $exif = __( 'Yes', $wd_options->prefix ). " (V" . substr( phpversion( 'exif' ), 0, 4 ) . ")" ;
230
+ else
231
+ $exif = __( 'No', $wd_options->prefix );
232
+ $server_info["PHP Exif support"] = $exif;
233
+
234
+ // required for meta data
235
+ if ( is_callable( 'iptcparse' ) )
236
+ $iptc = __( 'Yes', $wd_options->prefix );
237
+ else
238
+ $iptc = __( 'No', $wd_options->prefix );
239
+ $server_info["PHP IPTC support"] = $iptc;
240
+
241
+ // required for meta data
242
+ if ( is_callable( 'xml_parser_create' ) )
243
+ $xml = __( 'Yes', $wd_options->prefix );
244
+ else
245
+ $xml = __( 'No', $wd_options->prefix );
246
+ $server_info["PHP XML support"] = $xml;
247
+
248
+ $gd_info = array( "GD support" => __( 'No', $wd_options->prefix ) );
249
+ if( function_exists( "gd_info" ) ){
250
+ $gd_info = array();
251
+ foreach( gd_info() as $key => $val ){
252
+ if( is_bool($val) ){
253
+ $gd_info[$key] = $val ? __( 'Yes', $wd_options->prefix ) : __( 'No', $wd_options->prefix );
254
+ }
255
+ else{
256
+ $gd_info[$key] = $val;
257
+ }
258
+ }
259
+ }
260
+
261
+ require_once( WD_DIR_TEMPLATES . "/display_overview_support.php" );
262
+ }
263
+
264
+ public function overview_styles() {
265
+ global $wd_options;
266
+ $version = get_option( $wd_options->prefix . "_version" );
267
+ wp_enqueue_style( $wd_options->prefix . '_overview_css', WD_URL_CSS . '/overview.css', array(), $version );
268
+
269
+ }
270
+ public function overview_scripts() {
271
+ global $wd_options;
272
+ $version = get_option( $wd_options->prefix . "_version" );
273
+ wp_enqueue_script( $wd_options->prefix . '_overview_js', WD_URL_JS . '/overview.js', array(), $version );
274
+
275
+ }
276
+ ////////////////////////////////////////////////////////////////////////////////////////
277
+ // Getters & Setters //
278
+ ////////////////////////////////////////////////////////////////////////////////////////
279
+ ////////////////////////////////////////////////////////////////////////////////////////
280
+ // Private Methods //
281
+ ////////////////////////////////////////////////////////////////////////////////////////
282
+ private function remote_get($plugin_wp_slug){
283
+ $request = wp_remote_get(" http://api.wordpress.org/plugins/info/1.0/" . $plugin_wp_slug);
284
+ $data = array();
285
+ if (!is_wp_error($request) || wp_remote_retrieve_response_code($request) === 200) {
286
+ $body = unserialize($request['body']);
287
+ $data["downloaded"] = $body->downloaded;
288
+ $ratings = $body->ratings;
289
+ if( $ratings[5] == 0 && $ratings[4] == 0 && $ratings[3] == 0 && $ratings[2] == 0 && $ratings[1] == 0){
290
+ $data["rating"] = 100;
291
+ }
292
+ else{
293
+ $data["rating"] = round( ( ( $ratings[5] * 5 + $ratings[4] * 4 + $ratings[3] * 3 + $ratings[2] * 2 + $ratings[1] * 1 ) / $body->num_ratings ) , 1 );
294
+
295
+ $data["rating"] = round( ( $data["rating"] / 5 ) * 100 );
296
+ }
297
+ return $data;
298
+ }
299
+ return false;
300
+
301
+ }
302
+ ////////////////////////////////////////////////////////////////////////////////////////
303
+ // Listeners //
304
+ ////////////////////////////////////////////////////////////////////////////////////////
305
+
306
+ }
wd/includes/subscribe.php ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+ class WDSubscribe {
6
+ // //////////////////////////////////////////////////////////////////////////////////////
7
+ // Events //
8
+ // //////////////////////////////////////////////////////////////////////////////////////
9
+ // //////////////////////////////////////////////////////////////////////////////////////
10
+ // Constants //
11
+ // //////////////////////////////////////////////////////////////////////////////////////
12
+ // //////////////////////////////////////////////////////////////////////////////////////
13
+ // Variables //
14
+ // //////////////////////////////////////////////////////////////////////////////////////
15
+ // //////////////////////////////////////////////////////////////////////////////////////
16
+ // Constructor & Destructor //
17
+ // //////////////////////////////////////////////////////////////////////////////////////
18
+ public function __construct(){
19
+ add_action( 'admin_init', array( $this, 'after_subscribe' ) );
20
+ }
21
+ // //////////////////////////////////////////////////////////////////////////////////////
22
+ // Public Methods //
23
+ // //////////////////////////////////////////////////////////////////////////////////////
24
+
25
+ public function subscribe_scripts() {
26
+ global $wd_options;
27
+ wp_register_script ( 'subscribe_js', WD_URL_JS . '/subsribe.js' );
28
+ wp_enqueue_script ( 'subscribe_js' );
29
+
30
+ }
31
+ public function subscribe_styles() {
32
+ global $wd_options;
33
+ wp_enqueue_style( $wd_options->prefix . 'subscribe', WD_URL_CSS . '/subscribe.css' );
34
+
35
+ }
36
+
37
+ public function subscribe_display_page() {
38
+ global $wd_options;
39
+ $list = array(
40
+ 0 => array(
41
+ "title" => __( "Your name &", $wd_options->prefix ),
42
+ "small_text" => __( "Email address", $wd_options->prefix ),
43
+ "img" => WD_URL_IMG . '/sub_1.png',
44
+ ),
45
+ 1 => array(
46
+ "title" => __( "Site URL", $wd_options->prefix ),
47
+ "small_text" => __( "Wordpress version", $wd_options->prefix ),
48
+ "img" => WD_URL_IMG . '/sub_2.png',
49
+ ),
50
+ 2 => array(
51
+ "title" => __( "Plugin activation", $wd_options->prefix ),
52
+ "small_text" => __( "Deactivation and uninstall", $wd_options->prefix ),
53
+ "img" => WD_URL_IMG . '/sub_4.png',
54
+ ),
55
+ );
56
+
57
+ require_once ( WD_DIR_TEMPLATES . "/display_subscribe.php" );
58
+ }
59
+ public function after_subscribe(){
60
+ if( isset( $_GET["sub_action"] ) ){
61
+ global $wd_options;
62
+ if( $_GET["sub_action"] == "allow" ){
63
+ $api = new WDApi();
64
+ $hash = $api->get_hash();
65
+
66
+ if( $hash != null ){
67
+ $data = array();
68
+ $data["site_url"] = site_url();
69
+
70
+ $admin_data = wp_get_current_user();
71
+
72
+ $user_first_name = get_user_meta( $admin_data->ID, "first_name", true );
73
+ $user_last_name = get_user_meta( $admin_data->ID, "last_name", true );
74
+
75
+ $data["name"] = $user_first_name || $user_last_name ? $user_first_name . " " . $user_last_name : $admin_data->data->user_login;
76
+
77
+ $data["email"] = $admin_data->data->user_email;
78
+ $data["wp_version"] = get_bloginfo( 'version' );
79
+ $data["plugin_id"] = $wd_options->wd_plugin_id;
80
+ $data["hash"] = $hash;
81
+
82
+ $response = wp_remote_post( "http://api.web-dorado.com/collectuserdata", array(
83
+ 'method' => 'POST',
84
+ 'timeout' => 45,
85
+ 'redirection' => 5,
86
+ 'httpversion' => '1.0',
87
+ 'blocking' => true,
88
+ 'headers' => array(),
89
+ 'body' => json_encode($data),
90
+ 'cookies' => array()
91
+ )
92
+ );
93
+
94
+ $response_body = isset( $response["body"] ) ? json_decode( $response["body"], true ) : null;
95
+ if( is_array( $response_body ) && $response_body["body"]["msg"] == "Access" ) {
96
+
97
+ }
98
+ }
99
+ }
100
+ add_option( $wd_options->prefix . "_subscribe_done" , "1", '', 'no');
101
+ wp_safe_redirect( "admin.php?page=" . $wd_options->after_subscribe );
102
+ }
103
+
104
+ }
105
+ // //////////////////////////////////////////////////////////////////////////////////////
106
+ // Getters & Setters //
107
+ // //////////////////////////////////////////////////////////////////////////////////////
108
+ // //////////////////////////////////////////////////////////////////////////////////////
109
+ // Private Methods //
110
+ // //////////////////////////////////////////////////////////////////////////////////////
111
+ // //////////////////////////////////////////////////////////////////////////////////////
112
+ // Listeners //
113
+ // //////////////////////////////////////////////////////////////////////////////////////
114
+ }
wd/require.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+ // configuration should be loaded first.
6
+ require_once dirname( __FILE__ ) . '/config.php';
7
+
8
+ // load other files
9
+ require_once WD_DIR . '/wd.php';
10
+ // notices
11
+ require_once WD_DIR_INCLUDES . '/api.php';
12
+ require_once WD_DIR_INCLUDES . '/notices.php';
13
+
14
+
wd/start.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+
6
+
7
+ // load files
8
+ require_once dirname( __FILE__ ) . '/require.php';
9
+
10
+ /**
11
+ * @param options for Plugin details.
12
+ * prefix;
13
+ * wd_plugin_id;
14
+ * plugin_wd_zip_name;
15
+ * plugin_title;
16
+ * plugin_dir;
17
+ * plugin_url;
18
+ * wd_plugin_name_personal;
19
+ * wd_plugin_name_business;
20
+ * wd_plugin_name_developer;
21
+ * plugin_menu_parent_slug;
22
+ * description;
23
+ * addons;
24
+ * plugin_features;
25
+ * user_guide;
26
+ */
27
+
28
+ function wd_init( $options ) {
29
+ $wd = WD::get_instance();
30
+ $wd->wd_init( $options );
31
+
32
+ }
33
+
34
+
35
+
36
+
wd/templates/display_deactivation_popup.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="wd-opacity wd-<?php echo $wd_options->prefix; ?>-opacity"></div>
2
+ <div class="wd-deactivate-popup wd-<?php echo $wd_options->prefix; ?>-deactivate-popup">
3
+ <form method="post" id="<?php echo $wd_options->prefix; ?>_deactivate_form">
4
+ <div class="wd-deactivate-popup-header">
5
+ <?php _e( "If you have a moment, please let us know why you are deactivating", $wd_options->prefix ); ?>:
6
+ </div>
7
+
8
+ <div class="wd-deactivate-popup-body">
9
+ <?php foreach( $deactivate_reasons as $deactivate_reason_slug => $deactivate_reason ) { ?>
10
+ <div class="wd-<?php echo $wd_options->prefix; ?>-reasons">
11
+ <input type="radio" value="<?php echo $deactivate_reason["id"];?>" id="<?php echo $deactivate_reason_slug; ?>" name="<?php echo $wd_options->prefix; ?>_reasons" >
12
+ <label for="<?php echo $deactivate_reason_slug; ?>"><?php echo $deactivate_reason["text"];?></label>
13
+ </div>
14
+ <?php } ?>
15
+ <div class="additional_details_wrap">
16
+ <label for="additional_details"><?php echo __( "Additional details", $wd_options->prefix );?></label><br>
17
+ <textarea id="additional_details" cols="70" rows="4" name="<?php echo $wd_options->prefix; ?>_additional_details"></textarea>
18
+ </div>
19
+ </div>
20
+ <div class="wd-btns">
21
+ <a href="#" class="button button-secondary wd-<?php echo $wd_options->prefix; ?>-cancel"><?php _e( "Cancel" , $wd_options->prefix ); ?></a>
22
+ <a href="#" data-val="1" class="button button-primary button-close wd-<?php echo $wd_options->prefix; ?>-deactivate" id="wd-<?php echo $wd_options->prefix; ?>-deactivate"><?php _e( "Deactivate" , $wd_options->prefix ); ?></a>
23
+ <a href="#" data-val="2" class="button button-primary button-close wd-<?php echo $wd_options->prefix; ?>-deactivate" id="wd-<?php echo $wd_options->prefix; ?>-submit-and-deactivate" style="display:none;"><?php _e( "Submit and deactivate" , $wd_options->prefix ); ?></a>
24
+ </div>
25
+ <input type="hidden" name="<?php echo $wd_options->prefix . "_submit_and_deactivate"; ?>" value="" >
26
+ </form>
27
+ </div>
wd/templates/display_overview.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="overview_welcome">
2
+ <div class="wd-cell wd-valign-middle">
3
+ <a href="<?php echo $wd_options->plugin_wd_url; ?>" target="_blank"><img src="<?php echo WD_URL_IMG . '/main_plugin.png'; ?>"></a>
4
+ </div>
5
+ <div class="wd-cell wd-valign-middle">
6
+ <h2><?php echo sprintf( __( "Welcome to %s", $wd_options->prefix ), $wd_options->plugin_title ); ?></h2>
7
+ <div class="overview_welcome_text">
8
+ <div><?php echo sprintf( __( "CONGRATS! You've successfully installed %s WordPress plugin.", $wd_options->prefix ), $wd_options->plugin_title ) ; ?></div>
9
+ <div><?php echo $wd_options->description ; ?></div>
10
+ </div>
11
+ </div>
12
+ </div>
13
+ <div class="overview_wrap">
14
+ <ul class="overview_tabs">
15
+ <?php
16
+ foreach ( $tabs as $tab_key => $tab ) {
17
+ $href = $tab['view'] !== false ? "#" . $tab_key : $tab_key;
18
+ $target = $tab['view'] == false ? 'target="_blank" class="not_tab"' : '';
19
+ $overview_tab_active_class = $tab_key == 'welcome' ? 'class="overview_tab_active"' : ''
20
+ ?>
21
+ <li class=""><a href="<?php echo $href; ?>" <?php echo $overview_tab_active_class; ?> <?php echo $target; ?>><?php echo esc_html( $tab['name'] ); ?></a></li>
22
+ <?php } ?>
23
+ </ul>
24
+ <div class="overview_content">
25
+ <?php
26
+ foreach ( $tabs as $tab_key => $tab ) {
27
+ if( $tab['view'] !== false ){
28
+ echo call_user_func( $tab['view'] );
29
+ }
30
+ }
31
+ ?>
32
+ </div>
33
+ </div>
wd/templates/display_overview_deals.php ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div id="deals">
2
+
3
+ <div id="plugins">
4
+ <div class="deals_header deals_header_plugins">
5
+ <a href="https://web-dorado.com/wordpress-plugins-bundle.html" target="_blank">
6
+ <div class="wd-table">
7
+ <div class="wd-cell wd-text-right wd-valign-middle">
8
+ <img src="<?php echo WD_URL_IMG . '/main_plugin.png'; ?>" width="100px">
9
+ </div>
10
+ <div class="wd-cell wd-valign-middle">
11
+ <div class="titles_wrap">
12
+ <div class="deals_main_title"><?php echo sprintf( __( "Get %s", $wd_options->prefix ), $wd_options->plugin_title ); ?></div>
13
+ <div class="deals_main_title"><span class="higlight">+27 </span><?php echo __( "plugins", $wd_options->prefix ); ?></div>
14
+ <div class="deals_secondary_title"><?php echo __( "for", $wd_options->prefix ); ?><span class="higlight"> $99 </span><?php echo __( "only", $wd_options->prefix ); ?></div>
15
+ </div>
16
+ <div class="deals_save"><?php echo __( "Save 80%", $wd_options->prefix ); ?></div>
17
+ </div>
18
+ </div>
19
+ </a>
20
+ </div>
21
+ <div class="deals_content">
22
+ <?php foreach( $plugins as $wp_slug => &$plugin ){ ?>
23
+
24
+ <div class="deal_block">
25
+ <div class="deal_title">
26
+ <a href="<?php echo $plugin["href"]; ?>" target="_blank" >
27
+ <img src = "<?php echo WD_URL_IMG . '/plugins/' . $wp_slug . '.png'; ?>">
28
+ <h2><?php echo $plugin["title"]; ?></h2>
29
+ </a>
30
+ </div>
31
+ <div class="deal_desc">
32
+ <p><?php echo $plugin["content"]; ?></p>
33
+ <div class="deal_desc_footer">
34
+ <!--<div class="downloads">
35
+ <div class="rating" data-rating="<?php echo $plugin["rating"]; ?>"></div>
36
+ <div class="spans">
37
+ <span><?php _e( "Downloads", $wd_options->prefix ); ?></span>
38
+ <span><?php echo number_format($plugin["downloaded"], 0); ?></span>
39
+ </div>
40
+ </div>-->
41
+ <div class="download_btn">
42
+ <a href="<?php echo $plugin["href"]; ?>" target="_blank" ><?php _e( "Download", $wd_options->prefix ); ?></a>
43
+ </div>
44
+ </div>
45
+ </div>
46
+
47
+ </div>
48
+ <?php } ?>
49
+ </div>
50
+ <div class="get_all_deals">
51
+ <a href="https://web-dorado.com/wordpress-plugins-bundle.html" target="_blank" >
52
+ <?php _e( "Get all plugins", $wd_options->prefix ); ?>
53
+ </a>
54
+ </div>
55
+ </div>
56
+ <div id="themes">
57
+ <div class="deals_header deals_header_themes">
58
+ <a href="https://web-dorado.com/wordpress-themes-bundle.html" target="_blank">
59
+ <div class="wd-table">
60
+ <div class="wd-cell wd-text-right wd-valign-middle">
61
+ </div>
62
+ <div class="wd-cell wd-valign-middle">
63
+ <div class="titles_wrap">
64
+ <div class="deals_main_title"><?php echo __( "Get all 11 themes", $wd_options->prefix ); ?></div>
65
+ <div class="deals_main_title"><?php echo __( "for", $wd_options->prefix ); ?><span class="higlight"> $40 </span><?php echo __( "only", $wd_options->prefix ); ?></div>
66
+ </div>
67
+ <div class="deals_save"><?php echo __( "Save 70%", $wd_options->prefix ); ?></div>
68
+ </div>
69
+ </div>
70
+ </a>
71
+ </div>
72
+ <div class="deals_content">
73
+ <?php foreach( $themes as $slug => $theme ){ ?>
74
+ <div class="theme_block">
75
+ <a href="<?php echo $theme["href"]; ?>" target="_blank" >
76
+ <img src = "<?php echo WD_URL_IMG . '/plugins/' . $slug . '.png'; ?>" width="100%;">
77
+ <div><?php echo $theme["title"]; ?></div>
78
+ </a>
79
+ </div>
80
+ <?php } ?>
81
+ </div>
82
+ <div class="get_all_deals">
83
+ <a href="https://web-dorado.com/wordpress-themes-bundle.html" target="_blank" >
84
+ <?php _e( "Find out more", $wd_options->prefix ); ?>
85
+ </a>
86
+ </div>
87
+ </div>
88
+ </div>
wd/templates/display_overview_support.php ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div id="support">
2
+ <p class="wd-support-main">
3
+ <?php echo sprintf( __("You may contact us by filling in this form or by email %s any time you need professional support or have any questions. You can also fill in the form to leave your comments or feedback.", $wd_options->prefix), "<span class='support_email'>(support@web-dorado.com)</span>") ;?>
4
+ </p>
5
+ <div class="wd-overview-site-deatils">
6
+ <h2><?php _e( "Site Deatils", $wd_options->prefix ); ?></h2>
7
+ <p>
8
+ <?php _e( "When contacting support, consider copying and pasting this information in your support request.", $wd_options->prefix ); ?>
9
+ <br>
10
+ <?php _e( "It helps us troubleshoot more quickly.", $wd_options->prefix ); ?>
11
+ </p>
12
+ <div class="wd-site-deatils wd-table">
13
+ <button id="wd-copy"><?php _e( "Copy to Clipboard", $wd_options->prefix ); ?></button>
14
+ <div id="wd-site-deatils">
15
+ <textarea rows="10" id="wd-site-deatils-textarea"><?php
16
+ _e( "Server Settings", $wd_options->prefix );
17
+ echo '&#13;&#10;&#13;&#10;';
18
+ foreach( $server_info as $key => $val ){
19
+ echo $key . ": " . $val . '&#13;&#10;';
20
+ }
21
+ echo '&#13;&#10;';
22
+ _e( "Graphic Library", $wd_options->prefix );
23
+ echo '&#13;&#10;&#13;&#10;';
24
+ foreach( $gd_info as $key => $val ){
25
+ echo $key . ": " . $val . '&#13;&#10;';
26
+ }
27
+ ?></textarea>
28
+ </div>
29
+ </div>
30
+ </div>
31
+ <div class="contact_us_wrap">
32
+ <a href="https://web-dorado.com/support/contact-us.html" target="_blank" class="contact_us"><?php _e("Contact us", $wd_options->prefix); ?></a>
33
+ </div>
34
+ </div>
wd/templates/display_overview_user_guide.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div id="user_guide">
2
+ <div class="wd-table">
3
+ <div class="wd-cell">
4
+ <?php for( $i = 0; $i < ceil( count($user_guide) / 2 ); $i++) { ?>
5
+ <div class="user_guide_item">
6
+ <a href="<?php echo $user_guide[$i]["url"]; ?>" class="user_guide_title" target="_blank"><?php echo $user_guide[$i]["main_title"]; ?></a>
7
+ <?php foreach( $user_guide[$i]["titles"] as $title ) { ?>
8
+ <div><a href="<?php echo $title["url"]; ?>" target="_blank" class="user_guide_titles"><?php echo $title["title"]; ?></a></div>
9
+ <?php } ?>
10
+ </div>
11
+ <?php } ?>
12
+ </div>
13
+ <div class="wd-cell">
14
+ <?php for( $i = $i; $i < count($user_guide); $i++) { ?>
15
+ <div class="user_guide_item">
16
+ <a href="<?php echo $user_guide[$i]["url"]; ?>" class="user_guide_title" target="_blank"><?php echo $user_guide[$i]["main_title"]; ?></a>
17
+ <?php foreach( $user_guide[$i]["titles"] as $title ) { ?>
18
+ <div><a href="<?php echo $title["url"]; ?>" target="_blank" class="user_guide_titles"><?php echo $title["title"]; ?></a></div>
19
+ <?php } ?>
20
+ </div>
21
+ <?php } ?>
22
+ </div>
23
+ <div class="wd-cell">
24
+ <a href="<?php echo $wd_options->plugin_wd_demo_link; ?>" class="user_guide_demo" target="_blank">
25
+ <?php _e( "Demo", $wd_options->prefix ); ?>
26
+ </a>
27
+ <a href="<?php echo $wd_options->plugin_wd_url; ?>" class="user_guide_plugin" target="_blank">
28
+ <?php echo $wd_options->plugin_title; ?>
29
+ </a>
30
+ <a href="<?php echo $wd_options->plugin_wd_forum_link; ?>" class="user_guide_support_forum" target="_blank">
31
+ <?php _e( "Support Forum", $wd_options->prefix ); ?>
32
+ </a>
33
+ <a href="https://web-dorado.com/support/faq.html" class="user_guide_faq" target="_blank">
34
+ <?php _e( "FAQ", $wd_options->prefix ); ?>
35
+ </a>
36
+ <a href="<?php echo $wd_options->plugin_wd_addons_link; ?>" class="user_guide_addons" target="_blank">
37
+ <?php _e( "Addons", $wd_options->prefix ); ?>
38
+ </a>
39
+
40
+ </div>
41
+ </div>
42
+ </div>
43
+
wd/templates/display_overview_welcome.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div id="welcome">
2
+ <!-- display plugin video -->
3
+ <?php if( $wd_options->video_youtube_id ){ ?>
4
+ <iframe width="100%" height="400px" src="//www.youtube.com/embed/<?php echo $wd_options->video_youtube_id; ?>?rel=0" frameborder="0" allowfullscreen></iframe>
5
+ <?php } ?>
6
+
7
+ <!-- display plugin features -->
8
+ <div class="plugin_features">
9
+ <!-- if your plugin has a wizard-->
10
+ <div class="wd-tour">
11
+ <a class="wd-tour-btn" href="<?php echo admin_url( 'index.php?page=gmwd_setup' );?>"><?php _e( "Run Install Wizard ",$wd_options->prefix); ?></a>
12
+ </div>
13
+ <?php foreach( $wd_options->plugin_features as $feature ){ ?>
14
+ <h2 class="plugin_feature_title"><?php echo $feature["title"]; ?></h2>
15
+ <div class="plugin_feature_description"><?php echo $feature["description"]; ?></div>
16
+ <?php } ?>
17
+ <div class="more_features_wrap">
18
+ <a href="<?php echo $wd_options->plugin_wd_url; ?>" class="more_features" target="_blank"><?php _e( "More features", $wd_options->prefix ); ?></a>
19
+ </div>
20
+ </div>
21
+
22
+ </div>
23
+
wd/templates/display_subscribe.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="wd-subscribe">
2
+ <div class="wd-subscribe-content">
3
+ <div class="imgs">
4
+ <img src="<?php echo WD_URL_IMG . '/wp_logo.png'; ?>">
5
+ <span>+</span>
6
+ <img src="<?php echo WD_URL_IMG . '/main_plugin.png'; ?>">
7
+ </div>
8
+ <div class="texts">
9
+ <p><?php _e( "Hi there", $wd_options->prefix ); ?>,</p>
10
+ <p>
11
+ <?php echo sprintf( __( "Allow %s to collect some usage data . This will allow you to get more out of your plugin experience – get awesome customer support, receive exclusive deals and discounts on premium products and more. You can choose to skip this step, %s will still work just fine.", $wd_options->prefix ), '<strong>Web-Dorado</strong>', $wd_options->plugin_title ); ?>
12
+ </p>
13
+ </div>
14
+ <div class="btns">
15
+ <a href="<?php echo "admin.php?page=" . $wd_options->prefix . "_subscribe&sub_action=allow" ;?>" class="allow_and_continue"></a>
16
+ <img src="<?php echo WD_URL_IMG . '/loader.gif';?>" class="wd_loader">
17
+ <a href="<?php echo "admin.php?page=" . $wd_options->prefix . "_subscribe&sub_action=skip" ;?>" class="skip" ></a>
18
+ </div>
19
+ <a href="#" class="permissions"><?php _e( "What permissions are being granted?" , $wd_options->prefix ); ?></a>
20
+ <div class="list">
21
+ <?php foreach( $list as $list_item ) { ?>
22
+ <div class="list_item">
23
+ <div class="list_img_wrap"><img src="<?php echo $list_item["img"]; ?>"></div>
24
+ <div class="list_text_wrap">
25
+ <div class="list_title"><?php echo $list_item["title"]; ?></div>
26
+ <div class="list_text"><?php echo $list_item["small_text"]; ?></div>
27
+ </div>
28
+ </div>
29
+ <?php } ?>
30
+ </div>
31
+ </div>
32
+ <div class="wd-subscribe-footer">
33
+ <ul class="wd-footer-menu">
34
+ <li>
35
+ <a href="https://web-dorado.com/web-dorado-privacy-statement.html" target="_blank">
36
+ <?php _e( "Privacy Policy", $wd_options->prefix ); ?>
37
+ </a>
38
+ <span>.</span>
39
+ </li>
40
+ <li>
41
+ <a href="https://web-dorado.com/terms-of-service.html" target="_blank">
42
+ <?php _e( "Terms of Use", $wd_options->prefix ); ?>
43
+ </a>
44
+ </li>
45
+ </ul>
46
+ </div>
47
+ </div>
wd/wd.php ADDED
@@ -0,0 +1,193 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+
6
+ class WD{
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Events //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Constants //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Variables //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public static $instance;
17
+ public $overview_instance;
18
+ public $subscribe_instance;
19
+
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ // Constructor & Destructor //
22
+ ////////////////////////////////////////////////////////////////////////////////////////
23
+ protected function __construct() {
24
+ // Add menu for Overview page
25
+ add_action( 'admin_menu', array( $this, 'wd_overview_menu_page' ), 10 );
26
+
27
+ }
28
+ ////////////////////////////////////////////////////////////////////////////////////////
29
+ // Public Methods //
30
+ ////////////////////////////////////////////////////////////////////////////////////////
31
+
32
+ // Return an instance of this class.
33
+ public static function get_instance() {
34
+ if ( null == self::$instance ) {
35
+ self::$instance = new self;
36
+ }
37
+ return self::$instance;
38
+ }
39
+
40
+ // Init plugin data
41
+ public function wd_init( $options ) {
42
+ if(!is_array($options)){
43
+ return false;
44
+ }
45
+ global $wd_options;
46
+
47
+ if(isset( $options["prefix"] )) {
48
+ $wd_options->prefix = $options["prefix"];
49
+ }
50
+ if(isset( $options["wd_plugin_id"] )) {
51
+ $wd_options->wd_plugin_id = $options["wd_plugin_id"];
52
+ }
53
+ if(isset( $options["plugin_wd_zip_name"] )) {
54
+ $wd_options->plugin_wd_zip_name = $options["plugin_wd_zip_name"];
55
+ }
56
+ if(isset( $options["plugin_title"] )) {
57
+ $wd_options->plugin_title = $options["plugin_title"];
58
+ }
59
+ if(isset( $options["plugin_wordpress_slug"] )) {
60
+ $wd_options->plugin_wordpress_slug = $options["plugin_wordpress_slug"];
61
+ }
62
+ if(isset( $options["plugin_dir"] )) {
63
+ $wd_options->plugin_dir = $options["plugin_dir"];
64
+ }
65
+ if(isset( $options["plugin_url"] )) {
66
+ $wd_options->plugin_url = $options["plugin_url"];
67
+ }
68
+ if(isset( $options["plugin_main_file"] )) {
69
+ $wd_options->plugin_main_file = $options["plugin_main_file"];
70
+ }
71
+
72
+ if(isset( $options["wd_plugin_name_personal"] )) {
73
+ $wd_options->wd_plugin_name_personal = $options["wd_plugin_name_personal"];
74
+ }
75
+ if(isset( $options["wd_plugin_name_business"] )) {
76
+ $wd_options->wd_plugin_name_business = $options["wd_plugin_name_business"];
77
+ }
78
+ if(isset( $options["wd_plugin_name_developer"] )) {
79
+ $wd_options->wd_plugin_name_developer = $options["wd_plugin_name_developer"];
80
+ }
81
+
82
+ if(isset( $options["plugin_menu_parent_slug"] )) {
83
+ $wd_options->plugin_menu_parent_slug = $options["plugin_menu_parent_slug"];
84
+ }
85
+ if(isset( $options["description"] )) {
86
+ $wd_options->description = $options["description"];
87
+ }
88
+ if(isset( $options["addons"] )) {
89
+ $wd_options->addons = $options["addons"];
90
+ }
91
+ if(isset( $options["plugin_features"] )) {
92
+ $wd_options->plugin_features = $options["plugin_features"];
93
+ }
94
+ if(isset( $options["user_guide"] )) {
95
+ $wd_options->user_guide = $options["user_guide"];
96
+ }
97
+ if(isset( $options["video_youtube_id"] )) {
98
+ $wd_options->video_youtube_id = $options["video_youtube_id"];
99
+ }
100
+ if(isset( $options["plugin_wd_url"] )) {
101
+ $wd_options->plugin_wd_url = $options["plugin_wd_url"];
102
+ }
103
+ if(isset( $options["plugin_wd_demo_link"] )) {
104
+ $wd_options->plugin_wd_demo_link = $options["plugin_wd_demo_link"];
105
+ }
106
+ if(isset( $options["plugin_wd_forum_link"] )) {
107
+ $wd_options->plugin_wd_forum_link = $options["plugin_wd_forum_link"];
108
+ }
109
+ if(isset( $options["plugin_wd_addons_link"] )) {
110
+ $wd_options->plugin_wd_addons_link = $options["plugin_wd_addons_link"];
111
+ }
112
+ if(isset( $options["after_subscribe"] )) {
113
+ $wd_options->after_subscribe = $options["after_subscribe"];
114
+ }
115
+
116
+ $this->wd_includes();
117
+ $this->register_hooks();
118
+ }
119
+
120
+ // Create overview menu page
121
+ public function wd_overview_menu_page() {
122
+ global $wd_options;
123
+
124
+ if( get_option( $wd_options->prefix . "_subscribe_done" ) == 1 ){
125
+ $overview_page = add_menu_page( 'Google Maps WD', 'Google Maps WD', 'manage_options', 'overview_' . $wd_options->prefix , array( $this, 'display_overview_page' ), $wd_options->plugin_url . '/images/icon-map-20.png', 11 );
126
+
127
+ $overview_page = add_submenu_page( $wd_options->plugin_menu_parent_slug, __( 'Overview', $wd_options->prefix ), __( 'Overview', $wd_options->prefix ), 'manage_options', 'overview_' . $wd_options->prefix, array( $this, 'display_overview_page' ));
128
+
129
+ require_once ( WD_DIR_INCLUDES . "/overview.php" );
130
+ $overview_instance = new WDOverview();
131
+ $this->overview_instance = $overview_instance;
132
+ add_action( 'admin_print_styles-' . $overview_page, array( $overview_instance, 'overview_styles' ) );
133
+ add_action( 'admin_print_scripts-' . $overview_page, array( $overview_instance, 'overview_scripts' ) );
134
+ }
135
+ else{
136
+ $subscribe_page = add_menu_page( 'Google Maps WD', 'Google Maps WD', 'manage_options', $wd_options->prefix . '_subscribe' , array( $this, 'display_subscribew_page' ), $wd_options->plugin_url . '/images/icon-map-20.png', 11 );
137
+
138
+ require_once ( WD_DIR_INCLUDES . "/subscribe.php" );
139
+ $subscribe_instance = new WDSubscribe();
140
+ $this->subscribe_instance = $subscribe_instance;
141
+ add_action( 'admin_print_styles-' . $subscribe_page, array( $subscribe_instance, 'subscribe_styles' ) );
142
+ add_action( 'admin_print_scripts-' . $subscribe_page, array( $subscribe_instance, 'subscribe_scripts' ) );
143
+ }
144
+ }
145
+
146
+ public function display_subscribew_page(){
147
+ $this->subscribe_instance->subscribe_display_page();
148
+ }
149
+
150
+ // Display overview page
151
+ public function display_overview_page() {
152
+ $this->overview_instance->display_overview_page();
153
+ }
154
+
155
+
156
+ // Includs
157
+ public function wd_includes(){
158
+ global $wd_options;
159
+ $current_url = $_SERVER['REQUEST_URI'];
160
+ if(strpos( $current_url, "plugins.php" ) !== false ){
161
+ require_once( WD_DIR_INCLUDES . '/deactivate.php' );
162
+ }
163
+ }
164
+
165
+ public function register_hooks(){
166
+ global $wd_options;
167
+
168
+ add_filter( 'plugin_action_links_' . plugin_basename( $wd_options->plugin_main_file ), array( $this, 'change_deactivation_link' ) );
169
+
170
+ }
171
+
172
+
173
+ public function change_deactivation_link ( $links ) {
174
+ global $wd_options;
175
+
176
+ $links["deactivate"] = '<a href="#" class="' . $wd_options->prefix . '_deactivate_link">Deactivate</a>';
177
+ return $links;
178
+ }
179
+ ////////////////////////////////////////////////////////////////////////////////////////
180
+ // Getters & Setters //
181
+ ////////////////////////////////////////////////////////////////////////////////////////
182
+ ////////////////////////////////////////////////////////////////////////////////////////
183
+ // Private Methods //
184
+ ////////////////////////////////////////////////////////////////////////////////////////
185
+
186
+ ////////////////////////////////////////////////////////////////////////////////////////
187
+ // Listeners //
188
+ ////////////////////////////////////////////////////////////////////////////////////////
189
+
190
+ }
191
+
192
+
193
+