WD Facebook Feed – Custom Facebook Feed Plugin - Version 1.0.17

Version Description

  • Added: Overview page
  • Changed: Deactivation
Download this release

Release Info

Developer webdorado
Plugin Icon 128x128 WD Facebook Feed – Custom Facebook Feed Plugin
Version 1.0.17
Comparing to
See all releases

Code changes from version 1.0.16 to 1.0.17

Files changed (125) hide show
  1. admin/controllers/FFWDControllerUninstall_ffwd.php +12 -0
  2. admin/models/FFWDModelUninstall_ffwd.php +1 -0
  3. admin/views/FFWDViewInfo_ffwd.php +1 -1
  4. admin/views/FFWDViewUninstall_ffwd.php +1 -1
  5. facebook-feed-wd.php +667 -503
  6. featured/featured.php +0 -184
  7. featured/featured_themes.php +0 -92
  8. featured/images/ad-manager-wd.png +0 -0
  9. featured/images/best_magazine.jpg +0 -0
  10. featured/images/business_elite.jpg +0 -0
  11. featured/images/business_world.jpg +0 -0
  12. featured/images/catalog.jpg +0 -0
  13. featured/images/catalog.png +0 -0
  14. featured/images/contact-form-builder.jpg +0 -0
  15. featured/images/contact-form-maker.jpg +0 -0
  16. featured/images/contact.builder.png +0 -0
  17. featured/images/contact.maker.png +0 -0
  18. featured/images/contacts.jpg +0 -0
  19. featured/images/contacts.png +0 -0
  20. featured/images/download.jpg +0 -0
  21. featured/images/download_plugins.png +0 -0
  22. featured/images/download_themes.png +0 -0
  23. featured/images/ecommerce.png +0 -0
  24. featured/images/exclusive.jpg +0 -0
  25. featured/images/expert.jpg +0 -0
  26. featured/images/facebook.jpg +0 -0
  27. featured/images/facebook.png +0 -0
  28. featured/images/faq.jpg +0 -0
  29. featured/images/faq.png +0 -0
  30. featured/images/faq_wd.png +0 -0
  31. featured/images/flash.calendar.jpg +0 -0
  32. featured/images/flash.calendar.png +0 -0
  33. featured/images/fm-import.png +0 -0
  34. featured/images/folder.menu.jpg +0 -0
  35. featured/images/folder.menu.png +0 -0
  36. featured/images/form.jpg +0 -0
  37. featured/images/magazine.jpg +0 -0
  38. featured/images/mottomag.jpg +0 -0
  39. featured/images/photo-gallery.jpg +0 -0
  40. featured/images/player.jpg +0 -0
  41. featured/images/player.png +0 -0
  42. featured/images/portfolio.png +0 -0
  43. featured/images/post-slider.png +0 -0
  44. featured/images/random.post.png +0 -0
  45. featured/images/sauron.jpg +0 -0
  46. featured/images/slider.jpg +0 -0
  47. featured/images/spider-calendar.jpg +0 -0
  48. featured/images/twitter-widget.jpg +0 -0
  49. featured/images/twittertools.png +0 -0
  50. featured/images/wedding.jpg +0 -0
  51. featured/images/wedding_style.jpg +0 -0
  52. featured/images/zoom.jpg +0 -0
  53. featured/images/zoom.png +0 -0
  54. featured/style.css +0 -204
  55. featured/themes_style.css +0 -187
  56. framework/WDFacebookFeed.php +8 -8
  57. readme.txt +5 -1
  58. wd/README.md +129 -0
  59. wd/assets/css/deactivate_popup.css +86 -0
  60. wd/assets/css/img/allow&continue.png +0 -0
  61. wd/assets/css/img/coupon_bg.png +0 -0
  62. wd/assets/css/img/plugins_header_bg.png +0 -0
  63. wd/assets/css/img/skip.png +0 -0
  64. wd/assets/css/img/themes_headrer_bg.png +0 -0
  65. wd/assets/css/img/ug-icon-1.png +0 -0
  66. wd/assets/css/img/ug-icon-2.png +0 -0
  67. wd/assets/css/img/ug-icon-3.png +0 -0
  68. wd/assets/css/img/ug-icon-4.png +0 -0
  69. wd/assets/css/img/ug-icon-5.png +0 -0
  70. wd/assets/css/img/welcome_bg.png +0 -0
  71. wd/assets/css/notices.css +88 -0
  72. wd/assets/css/overview.css +455 -0
  73. wd/assets/css/subscribe.css +114 -0
  74. wd/assets/img/bwg_main_plugin.png +0 -0
  75. wd/assets/img/ecwd_main_plugin.png +0 -0
  76. wd/assets/img/ewd_main_plugin.png +0 -0
  77. wd/assets/img/faqwd_main_plugin.png +0 -0
  78. wd/assets/img/ffwd_main_plugin.png +0 -0
  79. wd/assets/img/fwd_main_plugin.png +0 -0
  80. wd/assets/img/gawd_main_plugin.png +0 -0
  81. wd/assets/img/gmwd_main_plugin.png +0 -0
  82. wd/assets/img/loader.gif +0 -0
  83. wd/assets/img/mwd_main_plugin.png +0 -0
  84. wd/assets/img/plugins/business_elite.png +0 -0
  85. wd/assets/img/plugins/business_world.png +0 -0
  86. featured/images/events-wd.png → wd/assets/img/plugins/event-calendar-wd.png +0 -0
  87. featured/images/form.png → wd/assets/img/plugins/form-maker.png +0 -0
  88. {featured/images → wd/assets/img/plugins}/photo-gallery.png +0 -0
  89. wd/assets/img/plugins/portfolio_gallery.png +0 -0
  90. wd/assets/img/plugins/sauron.png +0 -0
  91. featured/images/slider.png → wd/assets/img/plugins/slider-wd.png +0 -0
  92. featured/images/spider.calendar.png → wd/assets/img/plugins/spider-event-calendar.png +0 -0
  93. featured/images/google-maps.png → wd/assets/img/plugins/wd-google-maps.png +0 -0
  94. featured/images/instagram_feed.png → wd/assets/img/plugins/wd-instagram-feed.png +0 -0
  95. wd/assets/img/spinner.gif +0 -0
  96. wd/assets/img/sub_1.png +0 -0
  97. wd/assets/img/sub_2.png +0 -0
  98. wd/assets/img/sub_4.png +0 -0
  99. wd/assets/img/swd_main_plugin.png +0 -0
  100. wd/assets/img/twd_main_plugin.png +0 -0
  101. wd/assets/img/wd_ads_main_plugin.png +0 -0
  102. wd/assets/img/wde_main_plugin.png +0 -0
  103. wd/assets/img/wdi_main_plugin.png +0 -0
  104. wd/assets/img/wdps_main_plugin.png +0 -0
  105. wd/assets/img/wds_main_plugin.png +0 -0
  106. wd/assets/img/wp_logo.png +0 -0
  107. wd/assets/img/ytwd_main_plugin.png +0 -0
  108. wd/assets/js/deactivate_popup.js +106 -0
  109. wd/assets/js/overview.js +56 -0
  110. wd/assets/js/subsribe.js +36 -0
  111. wd/config.php +127 -0
  112. wd/includes/api.php +81 -0
  113. wd/includes/deactivate.php +168 -0
  114. wd/includes/notices.php +223 -0
  115. wd/includes/overview.php +310 -0
  116. wd/includes/subscribe.php +138 -0
  117. wd/start.php +41 -0
  118. wd/templates/display_deactivation_popup.php +28 -0
  119. wd/templates/display_overview.php +33 -0
  120. wd/templates/display_overview_deals.php +88 -0
  121. wd/templates/display_overview_support.php +43 -0
  122. wd/templates/display_overview_user_guide.php +46 -0
  123. wd/templates/display_overview_welcome.php +31 -0
  124. wd/templates/display_subscribe.php +47 -0
  125. wd/wd.php +146 -0
admin/controllers/FFWDControllerUninstall_ffwd.php CHANGED
@@ -14,6 +14,18 @@ class FFWDControllerUninstall_ffwd {
14
  // Constructor & Destructor //
15
  ////////////////////////////////////////////////////////////////////////////////////////
16
  public function __construct() {
 
 
 
 
 
 
 
 
 
 
 
 
17
  }
18
  ////////////////////////////////////////////////////////////////////////////////////////
19
  // Public Methods //
14
  // Constructor & Destructor //
15
  ////////////////////////////////////////////////////////////////////////////////////////
16
  public function __construct() {
17
+
18
+ global $ffwd_options;
19
+ if(!class_exists("DoradoWebConfig")){
20
+ include_once (WD_FFWD_DIR . "/wd/config.php");
21
+ }
22
+ $config = new DoradoWebConfig();
23
+
24
+ $config->set_options( $ffwd_options );
25
+
26
+ $deactivate_reasons = new DoradoWebDeactivate($config);
27
+ //$deactivate_reasons->add_deactivation_feedback_dialog_box();
28
+ $deactivate_reasons->submit_and_deactivate();
29
  }
30
  ////////////////////////////////////////////////////////////////////////////////////////
31
  // Public Methods //
admin/models/FFWDModelUninstall_ffwd.php CHANGED
@@ -27,6 +27,7 @@ class FFWDModelUninstall_ffwd {
27
  $wpdb->query("DROP TABLE " . $wpdb->prefix . "wd_fb_shortcode");
28
  delete_option('ffwd_admin_notice');
29
  delete_option("ffwd_version");
 
30
  }
31
  ////////////////////////////////////////////////////////////////////////////////////////
32
  // Getters & Setters //
27
  $wpdb->query("DROP TABLE " . $wpdb->prefix . "wd_fb_shortcode");
28
  delete_option('ffwd_admin_notice');
29
  delete_option("ffwd_version");
30
+ delete_option( "ffwd_subscribe_done" );
31
  }
32
  ////////////////////////////////////////////////////////////////////////////////////////
33
  // Getters & Setters //
admin/views/FFWDViewInfo_ffwd.php CHANGED
@@ -931,7 +931,7 @@ class FFWDViewInfo_ffwd
931
  foreach ($theme_rows as $theme_row) {
932
  ?>
933
  <option <?php
934
- ($row->theme!='') ? selected( $theme_row->id, $row->theme ) : selected( $theme_row->id, $theme_row->default_theme );
935
  ?>
936
  value="<?php echo $theme_row->id; ?>"><?php echo $theme_row->name; ?></option>
937
  <?php
931
  foreach ($theme_rows as $theme_row) {
932
  ?>
933
  <option <?php
934
+
935
  ?>
936
  value="<?php echo $theme_row->id; ?>"><?php echo $theme_row->name; ?></option>
937
  <?php
admin/views/FFWDViewUninstall_ffwd.php CHANGED
@@ -100,7 +100,7 @@ class FFWDViewUninstall_ffwd {
100
  </div>
101
  <div class="wrap">
102
  <h2>Uninstall Facebook Feed WD</h2>
103
- <p><strong><a href="<?php echo $deactivate_url; ?>">Click Here</a> To Finish the Uninstallation and Facebook Feed WD will be Deactivated Automatically.</strong></p>
104
  <input id="task" name="task" type="hidden" value="" />
105
  </div>
106
  <?php
100
  </div>
101
  <div class="wrap">
102
  <h2>Uninstall Facebook Feed WD</h2>
103
+ <p><strong><a href="<?php echo $deactivate_url; ?>" class="ffwd_deactivate_link" data-uninstall="1">Click Here</a> To Finish the Uninstallation and Facebook Feed WD will be Deactivated Automatically.</strong></p>
104
  <input id="task" name="task" type="hidden" value="" />
105
  </div>
106
  <?php
facebook-feed-wd.php CHANGED
@@ -4,298 +4,445 @@
4
  * Plugin Name: Facebook Feed WD
5
  * Plugin URI: https://web-dorado.com/products/wordpress-facebook-feed-plugin.html
6
  * Description:Facebook Feed WD is a completely customizable, responsive solution to help you display your Facebook feed on your WordPress website.
7
- * Version: 1.0.16
8
  * Author: WebDorado
9
  * Author URI: https://web-dorado.com/
10
  * License: GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
11
  */
12
 
13
- define('WD_FFWD_DIR', WP_PLUGIN_DIR . "/" . plugin_basename(dirname(__FILE__)));
14
- define('WD_FFWD_URL', plugins_url(plugin_basename(dirname(__FILE__))));
15
- define('WD_FFWD_PRO', true);
16
- define('WD_FB_PREFIX', 'ffwd');
17
- if (session_id() == '')
18
- session_start();
19
-
20
- function ffwd_use_home_url()
21
- {
22
- $home_url = str_replace("http://", "", home_url());
23
- $home_url = str_replace("https://", "", $home_url);
24
- $pos = strpos($home_url, "/");
25
- if ($pos) {
26
- $home_url = substr($home_url, 0, $pos);
27
- }
28
-
29
- $site_url = str_replace("http://", "", WD_FFWD_URL);
30
- $site_url = str_replace("https://", "", $site_url);
31
- $pos = strpos($site_url, "/");
32
- if ($pos) {
33
- $site_url = substr($site_url, 0, $pos);
34
- }
35
- return $site_url != $home_url;
36
- }
37
-
38
- if (ffwd_use_home_url()) {
39
- define('WD_FFWD_FRONT_URL', home_url("wp-content/plugins/" . plugin_basename(dirname(__FILE__))));
40
- } else {
41
- define('WD_FFWD_FRONT_URL', WD_FFWD_URL);
42
  }
43
 
44
- // Plugin menu.
45
- function ffwd_menu_panel()
46
- {
47
- $galleries_page = add_menu_page('Facebook Feed WD', 'Facebook Feed WD', 'manage_options', 'info_ffwd', 'ffwd_menu', WD_FFWD_URL . '/images/ffwd/ffwd_logo_small.png');
48
-
49
- $galleries_page = add_submenu_page('info_ffwd', 'Feeds', 'Feeds', 'manage_options', 'info_ffwd', 'ffwd_menu');
50
- add_action('admin_print_styles-' . $galleries_page, 'ffwd_styles');
51
- add_action('admin_print_scripts-' . $galleries_page, 'ffwd_scripts');
52
- add_action('load-' . $galleries_page, 'ffwd_add_ffwd_info_per_page_option');
53
-
54
- $options_page = add_submenu_page('info_ffwd', 'Options', 'Options', 'manage_options', 'options_ffwd', 'ffwd_menu');
55
- add_action('admin_print_styles-' . $options_page, 'ffwd_styles');
56
- add_action('admin_print_scripts-' . $options_page, 'ffwd_admin_scripts');
57
-
58
- $themes_page = add_submenu_page('info_ffwd', 'Themes', 'Themes', 'manage_options', 'themes_ffwd', 'ffwd_menu');
59
- add_action('admin_print_styles-' . $themes_page, 'ffwd_styles');
60
- add_action('admin_print_scripts-' . $themes_page, 'ffwd_admin_scripts');
61
- add_action('load-' . $themes_page, 'ffwd_add_themes_per_page_option');
62
 
63
- $licensing_page = add_submenu_page('info_ffwd', 'Buy Pro', 'Buy Pro', 'manage_options', 'ffwd_licensing', 'ffwd_licensing_page');
64
- add_action('admin_print_styles-' . $licensing_page, 'ffwd_styles');
 
 
 
 
 
65
 
 
 
 
 
 
 
66
 
67
- add_submenu_page('info_ffwd', 'Featured Plugins', 'Featured Plugins', 'manage_options', 'featured_plugins_ffwd', 'ffwd_featured');
68
- add_submenu_page('info_ffwd', 'Featured Themes', 'Featured Themes', 'manage_options', 'featured_themes_ffwd', 'ffwd_featured_themes');
69
-
70
-
71
- $uninstall_page = add_submenu_page('info_ffwd', 'Uninstall', 'Uninstall', 'manage_options', 'uninstall_ffwd', 'ffwd_menu');
72
- add_action('admin_print_styles-' . $uninstall_page, 'ffwd_styles');
73
- add_action('admin_print_scripts-' . $uninstall_page, 'ffwd_admin_scripts');
74
  }
75
 
76
- add_action('admin_menu', 'ffwd_menu_panel');
77
-
78
- add_action('init', 'ffwd_silently_update');
79
-
80
- function ffwd_silently_update()
81
- {
82
- global $wpdb;
83
-
84
-
85
- $old_version=ffwd_get_version();
86
-
87
- $new_version = ffwd_version();
88
-
89
- $newer = version_compare($new_version, $old_version, '>');
90
- if ($newer) {
91
- require_once WD_FFWD_DIR . '/update/ffwd_update.php';
92
- /*adds new params for new versions*/
93
- ffwd_update_diff($new_version, $old_version);
94
-
95
-
96
- }
97
  }
98
 
99
- function ffwd_menu()
100
- {
101
- global $wpdb;
102
- require_once(WD_FFWD_DIR . '/framework/WDW_FFWD_Library.php');
103
- $page = WDW_FFWD_Library::get('page');
104
- if (($page != '') && (($page == 'info_ffwd') || ($page == 'options_ffwd') || ($page == 'themes_ffwd') || ($page == 'uninstall_ffwd') || ($page == 'FFWDShortcode'))) {
105
-
106
- $acc_tocken = $wpdb->get_var("SELECT access_token FROM " . $wpdb->prefix . "wd_fb_option WHERE id=1");
107
- if($acc_tocken!='')
108
- delete_option('ffwd_limit_notice');
109
- $ffwd_limit_notice=get_option('ffwd_limit_notice');
110
- if ($ffwd_limit_notice == 1) {
111
- echo '<div style="width:99%">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112
  <div class="error">
113
- <p style="font-size:18px;"><strong>' . __("If you are getting errors please go to options and fill in App ID and App Secret.", "ffwd") . '</strong></p>
114
- <p>' . __("For getting App ID and App Secret read more in", "ffwd") . '
115
- <a href="https://web-dorado.com/wordpress-facebook-feed/options.html" target="_blank" style="color: #00A0D2;">' . __("User Manual", "ffwd") . '</a>.
116
  </p>
117
  </div>
118
  </div>';
119
- }
120
-
121
-
122
- require_once(WD_FFWD_DIR . '/admin/controllers/FFWDController' . (($page == 'FFWDShortcode') ? $page : ucfirst(strtolower($page))) . '.php');
123
- $controller_class = 'FFWDController' . ucfirst(strtolower($page));
124
- $controller = new $controller_class();
125
- $controller->execute();
126
- }
127
- }
128
-
129
- function ffwd_featured()
130
- {
131
- if (function_exists('current_user_can')) {
132
- if (!current_user_can('manage_options')) {
133
- die('Access Denied');
134
- }
135
- } else {
136
- die('Access Denied');
137
- }
138
- require_once(WD_FFWD_DIR . '/featured/featured.php');
139
- wp_register_style('ffwd_featured', WD_FFWD_URL . '/featured/style.css', array(), ffwd_get_version());
140
- wp_print_styles('ffwd_featured');
141
- spider_featured('facebook-feed-wd');
142
- }
143
-
144
- function ffwd_featured_themes()
145
- {
146
- if (function_exists('current_user_can')) {
147
- if (!current_user_can('manage_options')) {
148
- die('Access Denied');
149
- }
150
- } else {
151
- die('Access Denied');
152
- }
153
- require_once(WD_FFWD_DIR . '/featured/featured_themes.php');
154
- wp_register_style('featured_themes', WD_FFWD_URL . '/featured/themes_style.css', array(), ffwd_get_version());
155
- wp_print_styles('featured_themes');
156
- spider_featured_themes('facebook-feed-wd');
157
- }
158
-
159
-
160
- function FFWD_licensing_page()
161
- {
162
- $controller_class = 'FFWDControllerLicensing_ffwd';
163
- require_once(WD_FFWD_DIR . '/admin/controllers/' . $controller_class . '.php');
164
- $controller = new $controller_class();
165
- $controller->execute();
166
- }
167
-
168
-
169
- function ffwd_ajax_frontend()
170
- {
171
- require_once(WD_FFWD_DIR . '/framework/WDW_FFWD_Library.php');
172
- $page = WDW_FFWD_Library::get('action');
173
- if ($page != '' && $page == 'PopupBox') {
174
- require_once(WD_FFWD_DIR . '/frontend/controllers/FFWDController' . ucfirst($page) . '.php');
175
- $controller_class = 'FFWDController' . ucfirst($page);
176
- $controller = new $controller_class();
177
- $controller->execute();
178
- }
179
- }
180
-
181
- add_action('wp_ajax_PopupBox', 'ffwd_ajax_frontend');
182
- add_action('wp_ajax_nopriv_PopupBox', 'ffwd_ajax_frontend');
183
  // For facebook feed
184
- add_action('wp_ajax_nopriv_save_facebook_feed', 'ffwd_ajax');
185
- add_action('wp_ajax_save_facebook_feed', 'ffwd_ajax');
186
  // For check app
187
- add_action('wp_ajax_nopriv_check_app', 'ffwd_ajax');
188
- add_action('wp_ajax_check_app', 'ffwd_ajax');
189
  // For drop objects
190
- add_action('wp_ajax_nopriv_dropp_objects', 'ffwd_ajax');
191
- add_action('wp_ajax_dropp_objects', 'ffwd_ajax');
192
-
193
- function ffwd_ajax()
194
- {
195
- if (function_exists('current_user_can')) {
196
- if (!current_user_can('manage_options')) {
197
- die('Access Denied');
198
- }
199
- } else {
200
- die('Access Denied');
201
- }
202
- require_once(WD_FFWD_DIR . '/framework/WDW_FFWD_Library.php');
203
- $page = WDW_FFWD_Library::get('action');
204
- $nonce = ($page == 'save_facebook_feed' || $page == 'dropp_objects') ? 'info_ffwd' : (($page == 'check_app') ? 'options_ffwd' : $page);
205
- if (($page != 'FFWDShortcode') && !WDW_FFWD_Library::verify_nonce($nonce)) {
206
- die('Sorry, your nonce did not verify.');
207
- }
208
- if ($page == 'FFWDShortcode') {
209
- require_once(WD_FFWD_DIR . '/admin/controllers/FFWDController' . ucfirst($page) . '.php');
210
- $controller_class = 'FFWDController' . ucfirst($page);
211
- $controller = new $controller_class();
212
- $controller->execute();
213
- } elseif ($page == 'check_app' || $page == 'save_facebook_feed' || $page == 'dropp_objects') {
214
- require_once(WD_FFWD_DIR . '/framework/WDFacebookFeed.php');
215
- WDFacebookFeed::execute();
216
- }
217
- }
218
-
219
- function ffwd_shortcode($params)
220
- {
221
- require_once(WD_FFWD_DIR . '/framework/WDW_FFWD_Library.php');
222
-
223
-
224
- global $wpdb;
225
-
226
- $check_fb_feed = $wpdb->get_var($wpdb->prepare("SELECT id FROM " . $wpdb->prefix . "wd_fb_info WHERE id='%d'", $params['id']));
227
- if (!$check_fb_feed) {
228
- echo WDW_FFWD_Library::message(__('Feed Doesn\'t exists', 'bwg'), 'error');
229
- return;
230
- }
231
- $params['fb_id'] = $params['id'];
232
- ob_start();
233
- ffwd_front_end($params);
234
- return str_replace(array("\r\n", "\n", "\r"), '', ob_get_clean());
235
- }
236
-
237
- add_shortcode('WD_FB', 'ffwd_shortcode');
238
 
239
  $ffwd = 0;
240
- function ffwd_front_end($params)
241
- {
242
- global $ffwd;
243
- global $wpdb;
244
- require_once(WD_FFWD_DIR . '/frontend/controllers/FFWDControllerMain.php');
245
 
246
- $fb_view_type = $wpdb->get_var($wpdb->prepare("SELECT fb_view_type FROM " . $wpdb->prefix . "wd_fb_info WHERE id='%s'", $params['fb_id']));
247
 
248
- $controller = new FFWDControllerMain($params, 1, $ffwd, ucfirst($fb_view_type));
249
- $ffwd++;
250
- return;
 
251
  }
252
 
253
  // Add the Facebook Feed WD button.
254
- function ffwd_add_button($buttons)
255
- {
256
- array_push($buttons, "wd_fb_mce");
257
- return $buttons;
258
  }
259
 
260
  // Register Facebook Feed WD button.
261
- function ffwd_register($plugin_array)
262
- {
263
- $url = WD_FFWD_URL . '/js/ffwd_editor_button.js';
264
- $plugin_array["wd_fb_mce"] = $url;
265
- return $plugin_array;
266
  }
267
 
268
- function ffwd_admin_ajax()
269
- {
270
- $query_url = wp_nonce_url(admin_url('admin-ajax.php'), '', 'ffwd_nonce');
271
- ?>
272
  <script>
273
- var ffwd_admin_ajax = '<?php echo add_query_arg(array('action' => 'FFWDShortcode'), admin_url('admin-ajax.php')); ?>';
274
- var ffwd_plugin_url = '<?php echo WD_FFWD_URL; ?>';
275
- var ajax_url = '<?php echo $query_url; ?>';
276
  </script>
277
- <?php
278
  }
279
 
280
- add_action('admin_head', 'ffwd_admin_ajax');
281
 
282
  // Add the Facebook Feed WD button to editor.
283
- add_action('wp_ajax_FFWDShortcode', 'ffwd_ajax');
284
- add_filter('mce_external_plugins', 'ffwd_register');
285
- add_filter('mce_buttons', 'ffwd_add_button', 0);
286
 
287
  // Activate plugin.
288
- function ffwd_activate()
289
- {
290
- global $wpdb;
291
- $wd_fb_shortcode = "CREATE TABLE IF NOT EXISTS `" . $wpdb->prefix . "wd_fb_shortcode` (
292
  `id` bigint(20) NOT NULL,
293
  `tagtext` mediumtext NOT NULL,
294
  PRIMARY KEY (`id`)
295
  ) DEFAULT CHARSET=utf8;";
296
- $wpdb->query($wd_fb_shortcode);
297
 
298
- $wd_fb_info = "CREATE TABLE IF NOT EXISTS `" . $wpdb->prefix . "wd_fb_info` (
299
  `id` int(10) NOT NULL AUTO_INCREMENT,
300
  `name` varchar(255) NOT NULL,
301
  `type` varchar(10) NOT NULL,
@@ -392,9 +539,9 @@ function ffwd_activate()
392
  ) DEFAULT CHARSET=utf8;";
393
 
394
 
395
- $wpdb->query($wd_fb_info);
396
- //message-i , description , name encoding --> utf16_bin
397
- $wd_fb_data = "CREATE TABLE IF NOT EXISTS `" . $wpdb->prefix . "wd_fb_data` (
398
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
399
  `fb_id` int NOT NULL,
400
  `from` varchar(32) NOT NULL,
@@ -425,16 +572,16 @@ function ffwd_activate()
425
  `who_post` text NOT NULL,
426
  PRIMARY KEY (`id`)
427
  ) DEFAULT CHARSET=utf8;";
428
- $wpdb->query($wd_fb_data);
429
 
430
- $wd_fb_data_collation="ALTER TABLE `" . $wpdb->prefix . "wd_fb_data`
431
  MODIFY `name` text CHARACTER SET utf16 COLLATE utf16_bin,
432
  MODIFY `description` mediumtext CHARACTER SET utf16 COLLATE utf16_bin,
433
  MODIFY `message` mediumtext CHARACTER SET utf16 COLLATE utf16_bin
434
  ";
435
- $wpdb->query($wd_fb_data_collation);
436
 
437
- $wd_fb_option = "CREATE TABLE IF NOT EXISTS `" . $wpdb->prefix . "wd_fb_option` (
438
  `id` bigint(20) NOT NULL,
439
  `autoupdate_interval` int(4) NOT NULL,
440
  `app_id` varchar(255) NOT NULL,
@@ -444,326 +591,343 @@ function ffwd_activate()
444
  `post_date_format` varchar(64) NOT NULL,
445
  `event_date_format` varchar(64) NOT NULL
446
  ) DEFAULT CHARSET=utf8;";
447
- $wpdb->query($wd_fb_option);
448
-
449
- /*$ffwd_settings = "CREATE TABLE IF NOT EXISTS `" . $wpdb->prefix . "ffwd_settings` (
450
- `id` bigint(20) NOT NULL AUTO_INCREMENT,
451
- `autoupdate_interval` int(4) NOT NULL,
452
- `app_id` varchar(255) NOT NULL,
453
- `app_secret` varchar(255) NOT NULL,
454
- `date_timezone` varchar(64) NOT NULL,
455
- PRIMARY KEY (`id`)
456
- ) DEFAULT CHARSET=utf8;";
457
- $wpdb->query($ffwd_settings);*/
458
-
459
- $wd_fb_theme = "CREATE TABLE IF NOT EXISTS `" . $wpdb->prefix . "wd_fb_theme` (
460
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
461
  `name` varchar(255) NOT NULL,
462
  `params` longtext,
463
  `default_theme` tinyint(1) NOT NULL,
464
  PRIMARY KEY (`id`)
465
  ) DEFAULT CHARSET=utf8;";
466
- $wpdb->query($wd_fb_theme);
467
 
468
- $exists_default = $wpdb->get_var('SELECT count(id) FROM ' . $wpdb->prefix . 'wd_fb_option');
469
- if (!$exists_default) {
470
- $save = $wpdb->insert($wpdb->prefix . 'wd_fb_option', array(
471
- 'id' => 1,
472
- 'autoupdate_interval' => 90,
473
- 'app_id' => '',
474
- 'date_timezone' => '',
475
- 'access_token' => '',
476
- 'post_date_format' => 'ago',
477
- 'event_date_format' => 'F j, Y, g:i a',
478
 
479
 
480
- ));
481
- }
482
 
483
- $exists_default = $wpdb->get_var('SELECT count(id) FROM ' . $wpdb->prefix . 'wd_fb_theme');
484
- if (!$exists_default) {
485
- $wpdb->insert($wpdb->prefix . 'wd_fb_theme', array(
486
- 'name' => 'Theme 1',
487
- 'default_theme' => 1,
488
- 'params' => '{"thumb_margin":"10","thumb_padding":"2","thumb_border_radius":"2px","thumb_border_width":"1","thumb_border_style":"none","thumb_border_color":"000000","thumb_bg_color":"FFFFFF","thumbs_bg_color":"FFFFFF","thumb_bg_transparent":"100","thumb_box_shadow":"0px 0px 1px #000000","thumb_transparent":"100","thumb_align":"center","thumb_hover_effect":"rotate","thumb_hover_effect_value":"2deg","thumb_transition":"1","thumb_title_font_color":"797979","thumb_title_font_style":"inherit","thumb_title_pos":"bottom","thumb_title_font_size":"14","thumb_title_font_weight":"normal","thumb_title_margin":"10","thumb_title_shadow":"","thumb_like_comm_pos":"bottom","thumb_like_comm_font_size":"14","thumb_like_comm_font_color":"FFFFFF","thumb_like_comm_font_style":"inherit","thumb_like_comm_font_weight":"normal","thumb_like_comm_shadow":"0px 0px 1px #000000","masonry_thumb_padding":"4","masonry_thumb_border_radius":"2px","masonry_thumb_border_width":"1","masonry_thumb_border_style":"solid","masonry_thumb_border_color":"FFFFFF","masonry_thumbs_bg_color":"FFFFFF","masonry_thumb_bg_transparent":"100","masonry_thumb_transparent":"100","masonry_thumb_align":"center","masonry_thumb_hover_effect":"scale","masonry_thumb_hover_effect_value":"1.1","masonry_thumb_transition":"1","masonry_description_font_size":"14","masonry_description_color":"A3A3A3","masonry_description_font_style":"inherit","masonry_like_comm_pos":"bottom","masonry_like_comm_font_size":"14","masonry_like_comm_font_color":"FFFFFF","masonry_like_comm_font_style":"inherit","masonry_like_comm_font_weight":"normal","masonry_like_comm_shadow":"0px 0px 1px #000000","blog_style_align":"left","blog_style_bg_color":"FFFFFF","blog_style_fd_name_bg_color":"000000","blog_style_fd_name_align":"center","blog_style_fd_name_padding":"10","blog_style_fd_name_color":"FFFFFF","blog_style_fd_name_size":"15","blog_style_fd_name_font_weight":"normal","blog_style_fd_icon":"","blog_style_fd_icon_color":"","blog_style_fd_icon_size":"","blog_style_transparent":"100","blog_style_obj_img_align":"center","blog_style_margin":"10","blog_style_box_shadow":"","blog_style_border_width":"1","blog_style_border_style":"solid","blog_style_border_color":"C9C9C9","blog_style_border_type":"top","blog_style_border_radius":"","blog_style_obj_icons_color":"gray","blog_style_obj_date_pos":"after","blog_style_obj_font_family":"inherit","blog_style_obj_info_bg_color":"FFFFFF","blog_style_page_name_color":"000000","blog_style_obj_page_name_size":"13","blog_style_obj_page_name_font_weight":"bold","blog_style_obj_story_color":"000000","blog_style_obj_story_size":"14","blog_style_obj_story_font_weight":"normal","blog_style_obj_place_color":"000000","blog_style_obj_place_size":"13","blog_style_obj_place_font_weight":"normal","blog_style_obj_name_color":"000000","blog_style_obj_name_size":"13","blog_style_obj_name_font_weight":"bold","blog_style_obj_message_color":"000000","blog_style_obj_message_size":"14","blog_style_obj_message_font_weight":"normal","blog_style_obj_hashtags_color":"000000","blog_style_obj_hashtags_size":"12","blog_style_obj_hashtags_font_weight":"normal","blog_style_obj_likes_social_bg_color":"EAEAEA","blog_style_obj_likes_social_color":"656565","blog_style_obj_likes_social_size":"14","blog_style_obj_likes_social_font_weight":"normal","blog_style_obj_comments_bg_color":"FFFFFF","blog_style_obj_comments_color":"000000","blog_style_obj_comments_font_family":"inherit","blog_style_obj_comments_font_size":"14","blog_style_obj_users_font_color":"000000","blog_style_obj_comments_social_font_weight":"normal","blog_style_obj_comment_border_width":"1","blog_style_obj_comment_border_style":"solid","blog_style_obj_comment_border_color":"C9C9C9","blog_style_obj_comment_border_type":"top","blog_style_evt_str_color":"000000","blog_style_evt_str_size":"14","blog_style_evt_str_font_weight":"normal","blog_style_evt_ctzpcn_color":"000000","blog_style_evt_ctzpcn_size":"14","blog_style_evt_ctzpcn_font_weight":"normal","blog_style_evt_map_color":"000000","blog_style_evt_map_size":"14","blog_style_evt_map_font_weight":"normal","blog_style_evt_date_color":"000000","blog_style_evt_date_size":"14","blog_style_evt_date_font_weight":"normal","blog_style_evt_info_font_family":"inherit","album_compact_back_font_color":"000000","album_compact_back_font_style":"inherit","album_compact_back_font_size":"16","album_compact_back_font_weight":"bold","album_compact_back_padding":"0","album_compact_title_font_color":"797979","album_compact_title_font_style":"inherit","album_compact_thumb_title_pos":"bottom","album_compact_title_font_size":"13","album_compact_title_font_weight":"normal","album_compact_title_margin":"2px","album_compact_title_shadow":"0px 0px 0px #888888","album_compact_thumb_margin":"4","album_compact_thumb_padding":"0","album_compact_thumb_border_radius":"0","album_compact_thumb_border_width":"0","album_compact_thumb_border_style":"none","album_compact_thumb_border_color":"CCCCCC","album_compact_thumb_bg_color":"FFFFFF","album_compact_thumbs_bg_color":"FFFFFF","album_compact_thumb_bg_transparent":"0","album_compact_thumb_box_shadow":"0px 0px 0px #888888","album_compact_thumb_transparent":"100","album_compact_thumb_align":"center","album_compact_thumb_hover_effect":"scale","album_compact_thumb_hover_effect_value":"1.1","album_compact_thumb_transition":"0","lightbox_overlay_bg_color":"000000","lightbox_overlay_bg_transparent":"70","lightbox_bg_color":"000000","lightbox_ctrl_btn_pos":"bottom","lightbox_ctrl_btn_align":"center","lightbox_ctrl_btn_height":"20","lightbox_ctrl_btn_margin_top":"10","lightbox_ctrl_btn_margin_left":"7","lightbox_ctrl_btn_transparent":"100","lightbox_ctrl_btn_color":"","lightbox_toggle_btn_height":"14","lightbox_toggle_btn_width":"100","lightbox_ctrl_cont_bg_color":"000000","lightbox_ctrl_cont_transparent":"65","lightbox_ctrl_cont_border_radius":"4","lightbox_close_btn_transparent":"100","lightbox_close_btn_bg_color":"000000","lightbox_close_btn_border_width":"2","lightbox_close_btn_border_radius":"16px","lightbox_close_btn_border_style":"none","lightbox_close_btn_border_color":"FFFFFF","lightbox_close_btn_box_shadow":"0","lightbox_close_btn_color":"","lightbox_close_btn_size":"10","lightbox_close_btn_width":"20","lightbox_close_btn_height":"20","lightbox_close_btn_top":"-10","lightbox_close_btn_right":"-10","lightbox_close_btn_full_color":"","lightbox_rl_btn_bg_color":"000000","lightbox_rl_btn_transparent":"80","lightbox_rl_btn_border_radius":"20px","lightbox_rl_btn_border_width":"0","lightbox_rl_btn_border_style":"none","lightbox_rl_btn_border_color":"FFFFFF","lightbox_rl_btn_box_shadow":"","lightbox_rl_btn_color":"","lightbox_rl_btn_height":"40","lightbox_rl_btn_width":"40","lightbox_rl_btn_size":"20","lightbox_close_rl_btn_hover_color":"","lightbox_obj_pos":"left","lightbox_obj_width":"350","lightbox_obj_icons_color":"gray","lightbox_obj_date_pos":"after","lightbox_obj_font_family":"inherit","lightbox_obj_info_bg_color":"E2E2E2","lightbox_page_name_color":"4B4B4B","lightbox_obj_page_name_size":"14","lightbox_obj_page_name_font_weight":"bold","lightbox_obj_story_color":"4B4B4B","lightbox_obj_story_size":"14","lightbox_obj_story_font_weight":"normal","lightbox_obj_place_color":"000000","lightbox_obj_place_size":"13","lightbox_obj_place_font_weight":"normal","lightbox_obj_name_color":"4B4B4B","lightbox_obj_name_size":"14","lightbox_obj_name_font_weight":"bold","lightbox_obj_message_color":"000000","lightbox_obj_message_size":"14","lightbox_obj_message_font_weight":"normal","lightbox_obj_hashtags_color":"000000","lightbox_obj_hashtags_size":"12","lightbox_obj_hashtags_font_weight":"normal","lightbox_obj_likes_social_bg_color":"878787","lightbox_obj_likes_social_color":"FFFFFF","lightbox_obj_likes_social_size":"14","lightbox_obj_likes_social_font_weight":"normal","lightbox_obj_comments_bg_color":"EAEAEA","lightbox_obj_comments_color":"4A4A4A","lightbox_obj_comments_font_family":"inherit","lightbox_obj_comments_font_size":"14","lightbox_obj_users_font_color":"4B4B4B","lightbox_obj_comments_social_font_weight":"normal","lightbox_obj_comment_border_width":"1","lightbox_obj_comment_border_style":"solid","lightbox_obj_comment_border_color":"C9C9C9","lightbox_obj_comment_border_type":"top","lightbox_filmstrip_pos":"top","lightbox_filmstrip_rl_bg_color":"3B3B3B","lightbox_filmstrip_rl_btn_size":"20","lightbox_filmstrip_rl_btn_color":"","lightbox_filmstrip_thumb_margin":"0 1px","lightbox_filmstrip_thumb_border_width":"1","lightbox_filmstrip_thumb_border_style":"solid","lightbox_filmstrip_thumb_border_color":"000000","lightbox_filmstrip_thumb_border_radius":"0","lightbox_filmstrip_thumb_deactive_transparent":"80","lightbox_filmstrip_thumb_active_border_width":"0","lightbox_filmstrip_thumb_active_border_color":"FFFFFF","lightbox_rl_btn_style":"","lightbox_evt_str_color":"000000","lightbox_evt_str_size":"14","lightbox_evt_str_font_weight":"normal","lightbox_evt_ctzpcn_color":"000000","lightbox_evt_ctzpcn_size":"14","lightbox_evt_ctzpcn_font_weight":"normal","lightbox_evt_map_color":"000000","lightbox_evt_map_size":"14","lightbox_evt_map_font_weight":"normal","lightbox_evt_date_color":"000000","lightbox_evt_date_size":"14","lightbox_evt_date_font_weight":"normal","lightbox_evt_info_font_family":"inherit","page_nav_position":"bottom","page_nav_align":"center","page_nav_number":"0","page_nav_font_size":"12","page_nav_font_style":"inherit","page_nav_font_color":"666666","page_nav_font_weight":"bold","page_nav_border_width":"1","page_nav_border_style":"solid","page_nav_border_color":"E3E3E3","page_nav_border_radius":"0","page_nav_margin":"0","page_nav_padding":"3px 6px","page_nav_button_bg_color":"FFFFFF","page_nav_button_bg_transparent":"100","page_nav_box_shadow":"0","page_nav_button_transition":"1","page_nav_button_text":"0","lightbox_obj_icons_color_likes_comments_count":"white"}',
489
- ));
490
 
491
 
492
- }
493
- wp_schedule_event(time(), 'wd_fb_autoupdate_interval', 'wd_fb_schedule_event_hook');
494
 
495
- $old_version=ffwd_get_version();
496
 
497
- $new_version = ffwd_version();
498
- $newer = version_compare($new_version, $old_version, '>');
499
- if ($newer) {
500
- require_once WD_FFWD_DIR . '/update/ffwd_update.php';
501
- /*adds new params for new versions*/
502
- ffwd_update_diff($new_version, $old_version);
503
 
504
 
505
- }
506
 
507
 
508
- /*$version = get_option("ffwd_version");
509
- $new_version = '1.0.0';
510
- if ($version && version_compare($version, $new_version, '<')) {
511
- require_once WD_FFWD_DIR . "/update/ffwd_update.php";
512
- ffwd_update($version);
513
- update_option("ffwd_version", $new_version);
514
- }
515
- else {
516
- add_option("ffwd_version", $new_version, '', 'no');
517
- }
518
- */
519
 
520
  }
521
 
522
- register_activation_hook(__FILE__, 'ffwd_activate');
523
 
524
 
525
  /* On deactivation, remove all functions from the scheduled action hook.*/
526
- function ffwd_deactivate()
527
- {
528
- wp_clear_scheduled_hook('wd_fb_schedule_event_hook');
529
  }
530
 
531
- register_deactivation_hook(__FILE__, 'ffwd_deactivate');
532
 
533
- function ffwd_update_hook()
534
- {
535
- /*$version = get_option("ffwd_version");
536
- $new_version = '1.0.0';
537
- if ($version && version_compare($version, $new_version, '<')) {
538
- require_once WD_FFWD_DIR . "/update/ffwd_update.php";
539
- ffwd_update($version);
540
- update_option("ffwd_version", $new_version);
541
- }*/
542
 
543
- return false;
544
  }
545
 
546
- if (!isset($_GET['action']) || $_GET['action'] != 'deactivate') {
547
- add_action('admin_init', 'ffwd_update_hook');
548
  }
549
 
550
  // Plugin styles.
551
- function ffwd_styles()
552
- {
553
- wp_admin_css('thickbox');
554
- wp_enqueue_style('ffwd_tables', WD_FFWD_URL . '/css/ffwd_tables.css', array(), ffwd_get_version());
 
555
  }
556
 
557
  // Plugin scripts.
558
- function ffwd_scripts()
559
- {
560
- wp_enqueue_script('thickbox');
561
- wp_enqueue_script('ffwd_admin', WD_FFWD_URL . '/js/ffwd.js', array(), ffwd_get_version());
562
-
563
- global $wp_scripts;
564
- if (isset($wp_scripts->registered['jquery'])) {
565
- $jquery = $wp_scripts->registered['jquery'];
566
- if (!isset($jquery->ver) OR version_compare($jquery->ver, '1.8.2', '<')) {
567
- wp_deregister_script('jquery');
568
- wp_register_script('jquery', FALSE, array('jquery-core', 'jquery-migrate'), '1.10.2');
569
- }
570
- }
571
- wp_enqueue_script('jquery');
572
- wp_enqueue_script('jquery-ui-sortable');
573
  }
574
 
575
  /* Add pagination to gallery admin pages.*/
576
- function ffwd_add_ffwd_info_per_page_option()
577
- {
578
- $option = 'per_page';
579
- $args_galleries = array(
580
- 'label' => 'Items',
581
- 'default' => 20,
582
- 'option' => 'ffwd_info_per_page'
583
- );
584
- add_screen_option($option, $args_galleries);
585
- }
586
-
587
- function ffwd_add_themes_per_page_option()
588
- {
589
- $option = 'per_page';
590
- $args_themes = array(
591
- 'label' => 'Themes',
592
- 'default' => 20,
593
- 'option' => 'ffwd_themes_per_page'
594
- );
595
- add_screen_option($option, $args_themes);
596
- }
597
-
598
- add_filter('set-screen-option', 'ffwd_set_option_galleries', 10, 3);
599
- add_filter('set-screen-option', 'ffwd_set_option_themes', 10, 3);
600
-
601
- function ffwd_set_option_galleries($status, $option, $value)
602
- {
603
- if ('ffwd_info_per_page' == $option) return $value;
604
- return $status;
605
- }
606
-
607
- function ffwd_set_option_themes($status, $option, $value)
608
- {
609
- if ('ffwd_themes_per_page' == $option) return $value;
610
- return $status;
611
- }
612
-
613
- function ffwd_admin_scripts()
614
- {
615
- wp_enqueue_script('thickbox');
616
- wp_enqueue_script('ffwd_admin', WD_FFWD_URL . '/js/ffwd.js', array(), ffwd_get_version());
617
- global $wp_scripts;
618
- if (isset($wp_scripts->registered['jquery'])) {
619
- $jquery = $wp_scripts->registered['jquery'];
620
- if (!isset($jquery->ver) OR version_compare($jquery->ver, '1.8.2', '<')) {
621
- wp_deregister_script('jquery');
622
- wp_register_script('jquery', FALSE, array('jquery-core', 'jquery-migrate'), '1.10.2');
623
- }
624
- }
625
- wp_enqueue_script('jquery');
626
- wp_enqueue_script('jscolor', WD_FFWD_URL . '/js/jscolor/jscolor.js', array(), '1.3.9');
627
- wp_enqueue_style('ffwd_font-awesome', WD_FFWD_URL . '/css/font-awesome/font-awesome.css', array(), '4.4.0');
628
- }
629
-
630
- function ffwd_front_end_scripts()
631
- {
632
- $version = ffwd_get_version();
633
- global $wp_scripts;
634
- if (isset($wp_scripts->registered['jquery'])) {
635
- $jquery = $wp_scripts->registered['jquery'];
636
- if (!isset($jquery->ver) OR version_compare($jquery->ver, '1.8.2', '<')) {
637
- wp_deregister_script('jquery');
638
- wp_register_script('jquery', FALSE, array('jquery-core', 'jquery-migrate'), '1.10.2');
639
- }
640
- }
641
- wp_enqueue_script('jquery');
642
- wp_enqueue_script('ffwd_frontend', WD_FFWD_FRONT_URL . '/js/ffwd_frontend.js', array(), $version);
643
- wp_enqueue_style('ffwd_frontend', WD_FFWD_FRONT_URL . '/css/ffwd_frontend.css', array(), $version);
644
- // Styles/Scripts for popup.
645
- wp_enqueue_style('ffwd_font-awesome', WD_FFWD_FRONT_URL . '/css/font-awesome/font-awesome.css', array(), '4.4.0');
646
- wp_enqueue_script('ffwd_jquery_mobile', WD_FFWD_FRONT_URL . '/js/jquery.mobile.js', array(), $version);
647
- wp_enqueue_script('ffwd_mCustomScrollbar', WD_FFWD_FRONT_URL . '/js/jquery.mCustomScrollbar.concat.min.js', array(), $version);
648
- wp_enqueue_style('ffwd_mCustomScrollbar', WD_FFWD_FRONT_URL . '/css/jquery.mCustomScrollbar.css', array(), $version);
649
- wp_enqueue_script('jquery-fullscreen', WD_FFWD_FRONT_URL . '/js/jquery.fullscreen-0.4.1.js', array(), '0.4.1');
650
- wp_enqueue_script('ffwd_gallery_box', WD_FFWD_FRONT_URL . '/js/ffwd_gallery_box.js', array(), $version);
651
- wp_localize_script('ffwd_gallery_box', 'ffwd_objectL10n', array(
652
- 'ffwd_field_required' => __('field is required.', 'bwg'),
653
- 'ffwd_mail_validation' => __('This is not a valid email address.', 'bwg'),
654
- 'ffwd_search_result' => __('There are no images matching your search.', 'bwg'),
655
- ));
656
-
657
- wp_localize_script('ffwd_frontend', 'ffwd_frontend_text', array(
658
- 'comment_reply' => __('Reply', 'ffwd'),
659
- 'view' => __('View', 'ffwd'),
660
- 'more_comments' => __('more comments', 'ffwd'),
661
-
662
- 'year' => __('year', 'ffwd'),
663
- 'years' => __('years', 'ffwd'),
664
- 'hour' => __('hour', 'ffwd'),
665
- 'hours' => __('hours', 'ffwd'),
666
- 'months' => __('months','ffwd'),
667
- 'month' => __('month','ffwd'),
668
- 'weeks' => __('weeks','ffwd'),
669
- 'week' => __('week','ffwd'),
670
- 'days' => __('days','ffwd'),
671
- 'day' => __('day','ffwd'),
672
- 'minutes' => __('minutes','ffwd'),
673
- 'minute' => __('minute','ffwd'),
674
- 'seconds' => __('seconds','ffwd'),
675
- 'second' => __('second','ffwd'),
676
- 'ago' => __('ago','ffwd'),
677
-
678
- 'and' => __('and','ffwd'),
679
- 'others' => __('others','ffwd'),
680
-
681
- ));
682
-
683
-
684
- }
685
-
686
- add_action('wp_enqueue_scripts', 'ffwd_front_end_scripts');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
687
 
688
  /* Add bwg scheduled event for autoupdatable galleries.*/
689
- add_filter('cron_schedules', 'wd_fb_add_autoupdate_interval');
690
- function wd_fb_add_autoupdate_interval($schedules)
691
- {
692
- require_once(WD_FFWD_DIR . '/framework/WDFacebookFeed.php');
693
- $autoupdate_interval = WDFacebookFeed::get_autoupdate_interval();
694
- // var_dump($autoupdate_interval);
695
- $schedules['wd_fb_autoupdate_interval'] = array(
696
- 'interval' => 60 * $autoupdate_interval,
697
- 'display' => __('WD Facebook plugin autoupdate interval.')
698
- );
699
- return $schedules;
 
 
 
 
 
700
  }
701
 
702
 
703
- add_action('wd_fb_schedule_event_hook', 'wd_fb_update');
704
  // wd_fb_update();
705
- function wd_fb_update()
706
- {
707
- global $wpdb;
708
- $query = "SELECT * FROM " . $wpdb->prefix . "wd_fb_info WHERE `update_mode` <> 'no_update'";
709
- $rows = $wpdb->get_results($query);
710
- require_once(WD_FFWD_DIR . '/framework/WDFacebookFeed.php');
711
- WDFacebookFeed::update_from_shedule($rows);
712
- die;
713
  }
714
 
715
  // Facebook feed wd Widget.
716
- if (class_exists('WP_Widget')) {
717
- require_once(WD_FFWD_DIR . '/admin/controllers/FFWDControllerWidget.php');
718
- add_action('widgets_init', create_function('', 'return register_widget("FFWDControllerWidget");'));
719
  }
720
 
721
  // Languages localization.
722
- function ffwd_language_load()
723
- {
724
- load_plugin_textdomain('ffwd', FALSE, basename(dirname(__FILE__)) . '/languages');
725
  }
726
 
727
- add_action('init', 'ffwd_language_load');
728
 
729
- function ffwd_version()
730
- {
731
 
732
- $version = '1.0.16';
733
 
734
- if (get_option('ffwd_version') === false) {
735
- add_option('ffwd_version', $version);
736
- } else {
737
- update_option('ffwd_version', $version);
738
 
739
 
740
- }
741
 
742
 
743
- return $version;
744
 
745
  }
746
 
747
- function ffwd_get_version()
748
- {
749
- if(get_option('ffwd_version') === false) {
750
- ffwd_version();
751
 
752
- }
753
- return get_option('ffwd_version');
754
 
 
755
 
756
- }
757
-
758
- if (is_admin() && (!defined('DOING_AJAX') || !DOING_AJAX)) {
759
 
760
- include_once(WD_FFWD_DIR . '/facebook-feed-wd-notices.php');
761
- new FFWD_Notices();
762
  }
763
 
 
764
 
765
-
766
-
 
767
 
768
 
769
  ?>
4
  * Plugin Name: Facebook Feed WD
5
  * Plugin URI: https://web-dorado.com/products/wordpress-facebook-feed-plugin.html
6
  * Description:Facebook Feed WD is a completely customizable, responsive solution to help you display your Facebook feed on your WordPress website.
7
+ * Version: 1.0.17
8
  * Author: WebDorado
9
  * Author URI: https://web-dorado.com/
10
  * License: GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
11
  */
12
 
13
+ define( 'WD_FFWD_DIR', WP_PLUGIN_DIR . "/" . plugin_basename( dirname( __FILE__ ) ) );
14
+ define( 'WD_FFWD_URL', plugins_url( plugin_basename( dirname( __FILE__ ) ) ) );
15
+ define( 'WD_FFWD_PRO', true );
16
+ define( 'WD_FB_PREFIX', 'ffwd' );
17
+ if ( session_id() == '' ) {
18
+ session_start();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  }
20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
 
22
+ function ffwd_use_home_url() {
23
+ $home_url = str_replace( "http://", "", home_url() );
24
+ $home_url = str_replace( "https://", "", $home_url );
25
+ $pos = strpos( $home_url, "/" );
26
+ if ( $pos ) {
27
+ $home_url = substr( $home_url, 0, $pos );
28
+ }
29
 
30
+ $site_url = str_replace( "http://", "", WD_FFWD_URL );
31
+ $site_url = str_replace( "https://", "", $site_url );
32
+ $pos = strpos( $site_url, "/" );
33
+ if ( $pos ) {
34
+ $site_url = substr( $site_url, 0, $pos );
35
+ }
36
 
37
+ return $site_url != $home_url;
 
 
 
 
 
 
38
  }
39
 
40
+ if ( ffwd_use_home_url() ) {
41
+ define( 'WD_FFWD_FRONT_URL', home_url( "wp-content/plugins/" . plugin_basename( dirname( __FILE__ ) ) ) );
42
+ } else {
43
+ define( 'WD_FFWD_FRONT_URL', WD_FFWD_URL );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  }
45
 
46
+ // Plugin menu.
47
+ function ffwd_menu_panel() {
48
+
49
+ $parent_slug = null;
50
+ if ( get_option( "ffwd_subscribe_done" ) == 1 || ( isset( $_GET["page"] ) && $_GET["page"] == "uninstall_ffwd" ) ) {
51
+ $parent_slug = "info_ffwd";
52
+ $galleries_page = add_menu_page( 'Facebook Feed WD', 'Facebook Feed WD', 'manage_options', 'info_ffwd', 'ffwd_menu', WD_FFWD_URL . '/images/ffwd/ffwd_logo_small.png' );
53
+
54
+ }
55
+
56
+ $galleries_page = add_submenu_page( $parent_slug, 'Feeds', 'Feeds', 'manage_options', 'info_ffwd', 'ffwd_menu' );
57
+ add_action( 'admin_print_styles-' . $galleries_page, 'ffwd_styles' );
58
+ add_action( 'admin_print_scripts-' . $galleries_page, 'ffwd_scripts' );
59
+ add_action( 'load-' . $galleries_page, 'ffwd_add_ffwd_info_per_page_option' );
60
+
61
+ $options_page = add_submenu_page( $parent_slug, 'Options', 'Options', 'manage_options', 'options_ffwd', 'ffwd_menu' );
62
+ add_action( 'admin_print_styles-' . $options_page, 'ffwd_styles' );
63
+ add_action( 'admin_print_scripts-' . $options_page, 'ffwd_admin_scripts' );
64
+
65
+ $themes_page = add_submenu_page( $parent_slug, 'Themes', 'Themes', 'manage_options', 'themes_ffwd', 'ffwd_menu' );
66
+ add_action( 'admin_print_styles-' . $themes_page, 'ffwd_styles' );
67
+ add_action( 'admin_print_scripts-' . $themes_page, 'ffwd_admin_scripts' );
68
+ add_action( 'load-' . $themes_page, 'ffwd_add_themes_per_page_option' );
69
+
70
+ $licensing_page = add_submenu_page( $parent_slug, 'Buy Pro', 'Buy Pro', 'manage_options', 'ffwd_licensing', 'ffwd_licensing_page' );
71
+ add_action( 'admin_print_styles-' . $licensing_page, 'ffwd_styles' );
72
+
73
+
74
+ $uninstall_page = add_submenu_page( $parent_slug, 'Uninstall', 'Uninstall', 'manage_options', 'uninstall_ffwd', 'ffwd_menu' );
75
+ add_action( 'admin_print_styles-' . $uninstall_page, 'ffwd_styles' );
76
+ add_action( 'admin_print_scripts-' . $uninstall_page, 'ffwd_admin_scripts' );
77
+ }
78
+
79
+ add_action( 'admin_menu', 'ffwd_menu_panel' );
80
+
81
+ add_action( 'init', 'ffwd_silently_update' );
82
+
83
+
84
+ if ( ! isset( $_REQUEST['ajax'] ) ) {
85
+ if ( ! class_exists( "DoradoWeb" ) ) {
86
+ require_once( WD_FFWD_DIR . '/wd/start.php' );
87
+ }
88
+ global $ffwd_options;
89
+ $ffwd_options = array(
90
+ "prefix" => "ffwd",
91
+ "wd_plugin_id" => 151,
92
+ "plugin_wd_zip_name" => "wd-facebook-feed.zip",
93
+ // to do
94
+ "plugin_title" => "Facebook Feed WD",
95
+ "plugin_wordpress_slug" => "wd-facebook-feed",
96
+ "plugin_dir" => WD_FFWD_DIR,
97
+ "plugin_url" => WD_FFWD_URL,
98
+ "plugin_main_file" => __FILE__,
99
+ "wd_plugin_name_personal" => "Facebook Feed WD Personal (WordPress)",
100
+ "wd_plugin_name_business" => "Facebook Feed WD Business (WordPress)",
101
+ "wd_plugin_name_developer" => "Facebook Feed WD Developer (WordPress)",
102
+ "description" => __( 'Facebook Feed WD is a completely customizable, responsive solution to help you display your Facebook feed on your WordPress website.', 'wd_ads' ),
103
+ "addons" => '',
104
+ "plugin_features" => array(
105
+ 0 => array(
106
+ "title" => __( "FACEBOOK FEED WD", "wd_ads" ),
107
+ "description" => __( "
108
+ Facebook Feed WD is a completely customizable, responsive solution to help you display your Facebook feed on your WordPress website. The plugin comes with a number of great features and functionality. Add as many feeds as you want and easily display content from your Facebook profile, page or group in any posts or page using shortcodes.
109
+ The plugin allows you to display photos, videos, events and more. The Facebook Feed WD come with the awesome Lightbox feature to display galleries in a pop-up window.
110
+ The plugin offers tons of customization options, including filtering by content type and user roles, theme and layout options and more. No matter how much design and technical knowledge you have, you can set-up in minutes and change the plugin to better fit your website.
111
+ ", "wd_ads" ),
112
+ ),
113
+ 1 => array(
114
+ "title" => __( "Simple Configuration", "wd_ads" ),
115
+ "description" => __( "
116
+ Facebook Feed WD is easy to install and set-up. This WordPress plugin allows you to display any Facebook feeds with advanced configuration in just a few simple steps.", "wd_ads" ),
117
+ ),
118
+
119
+ 2 => array(
120
+ "title" => __( "Completely Customizable", "wd_ads" ),
121
+ "description" => __( "The plugin comes with a number of styling and customization options that are straightforward and easy to use. Create your own themes by adjusting border and background colors, font sizes and much more to completely adopt the plugin to better fit your website or choose one of the ready made themes.", "wd_ads" ),
122
+ ),
123
+
124
+ 3 => array(
125
+ "title" => __( "Display Post Types", "wd_ads" ),
126
+ "description" => __( "Control what type of posts you want to display you want to display. You can decide to show all the content on your timeline or you can display specific content filtering by user roles or post types like photos, videos, events, etc.", "wd_ads" ),
127
+ ),
128
+
129
+ 4 => array(
130
+ "title" => __( "
131
+ Multiple Feeds per Post/Page", "wd_ads" ),
132
+ "description" => __( "Add unlimited number of Facebook feeds on the same page or post. Use different themes/layouts for each feed.", "wd_ads" ),
133
+ ),
134
+
135
+ 5 => array(
136
+ "title" => __( "Advanced Layouts for Feeds" ),
137
+ "description" => __( "Depending on the content type you can choose from the list of layout options to display each feed - blog style, thumbnails, masonry view, etc. Use layouts to completely match your website by using built-in customization options.", "wd_ads" ),
138
+ ),
139
+
140
+ 5 => array(
141
+ "title" => __( "Video content support" ),
142
+ "description" => __( "Embed videos uploaded on your Facebook timeline or shared from YouTube, Vimeo or other sources. You can choose to open the videos with pop-up Lightbox or redirect users to Facebook.", "wd_ads" ),
143
+ ),
144
+
145
+ 6 => array(
146
+ "title" => __( "Lightbox" ),
147
+ "description" => __( "The plugin comes with a Lightbox feature, which enables you to show your Facebook feed photos and videos in a pop-up window. Choose from a wide range of Lightbox effects and allow your users to view comments, shares, likes and more without leaving your website.", "wd_ads" ),
148
+ ),
149
+
150
+ 6 => array(
151
+ "title" => __( "Event Display" ),
152
+ "description" => __( "Display events from your Facebook feed with featured images, address, map and detailed description of the event.", "wd_ads" ),
153
+ ),
154
+
155
+ 6 => array(
156
+ "title" => __( "Social Buttons" ),
157
+ "description" => __( "Increase social engagement of your Facebook feed by activating the Facebook, Twitter and Google+ buttons. Allow your site visitors to share posts, photos and videos from your FB feed to their preferred social channel.", "wd_ads" ),
158
+ ),
159
+
160
+ ),
161
+ "user_guide" => array(
162
+ 0 => array(
163
+ "main_title" => __( "Installation", "wd_ads" ),
164
+ "url" => "https://web-dorado.com/wordpress-facebook-feed/installing.html",
165
+ "titles" => array()
166
+ ),
167
+ 1 => array(
168
+ "main_title" => __( "Options", "wd_ads" ),
169
+ "url" => "https://web-dorado.com/wordpress-facebook-feed/options.html",
170
+ "titles" => array()
171
+ ),
172
+ 2 => array(
173
+ "main_title" => __( "Creating a Facebook Feed", "wd_ads" ),
174
+ "url" => "https://web-dorado.com/wordpress-facebook-feed/creating-feed.html",
175
+ "titles" => array(
176
+ array(
177
+ "title" => __( "Main Settings", "wd_ads" ),
178
+ "url" => "https://web-dorado.com/wordpress-facebook-feed/creating-feed/main-settings.html",
179
+ ),
180
+ array(
181
+ "title" => __( "Lightbox settings", "wd_ads" ),
182
+ "url" => "https://web-dorado.com/wordpress-facebook-feed/creating-feed/lightbox-settings.html",
183
+ ),
184
+ array(
185
+ "title" => __( "Comments", "wd_ads" ),
186
+ "url" => "https://web-dorado.com/wordpress-facebook-feed/creating-feed/comments.html",
187
+ ),
188
+ array(
189
+ "title" => __( "Page plugin", "wd_ads" ),
190
+ "url" => "https://web-dorado.com/wordpress-facebook-feed/creating-feed/page-plugin.html",
191
+ ),
192
+ array(
193
+ "title" => __( "Events", "wd_ads" ),
194
+ "url" => "https://web-dorado.com/wordpress-facebook-feed/creating-feed/events.html",
195
+ ),
196
+
197
+ )
198
+ ),
199
+ 3 => array(
200
+ "main_title" => __( "Themes", "wd_ads" ),
201
+ "url" => "https://web-dorado.com/wordpress-facebook-feed/themes.html",
202
+ "titles" => array(),
203
+ ),
204
+ 4 => array(
205
+ "main_title" => __( "Publishing Facebook Feed", "wd_ads" ),
206
+ "url" => "https://web-dorado.com/wordpress-facebook-feed/publishing.html",
207
+ "titles" => array()
208
+ ),
209
+
210
+ ),
211
+ "plugin_wd_demo_link" => "http://wpdemo.web-dorado.com/facebook-feed/",
212
+ "plugin_wd_url" => "https://web-dorado.com/products/wordpress-facebook-feed-plugin.html",
213
+ "plugin_wd_forum_link" => "https://wordpress.org/support/plugin/wd-facebook-feed",
214
+ "after_subscribe" => "overview_ffwd",
215
+ "after_subscribe" => "admin.php?page=overview_ffwd",
216
+ // this can be plagin overview page or set up page
217
+ "plugin_wizard_link" => null,
218
+ "plugin_menu_title" => "Facebook Feed WD",
219
+ "plugin_menu_icon" => WD_FFWD_URL . '/images/ffwd/ffwd_logo_small.png',
220
+ "deactivate" => true,
221
+ "subscribe" => true,
222
+ "custom_post" => 'info_ffwd',
223
+ // if true => edit.php?post_type=contact
224
+ );
225
+
226
+ dorado_web_init( $ffwd_options );
227
+
228
+
229
+ }
230
+
231
+
232
+ function ffwd_silently_update() {
233
+ global $wpdb;
234
+
235
+
236
+ $old_version = ffwd_get_version();
237
+
238
+ $new_version = ffwd_version();
239
+
240
+ $newer = version_compare( $new_version, $old_version, '>' );
241
+ if ( $newer ) {
242
+ require_once WD_FFWD_DIR . '/update/ffwd_update.php';
243
+ /*adds new params for new versions*/
244
+ ffwd_update_diff( $new_version, $old_version );
245
+
246
+
247
+ }
248
+ }
249
+
250
+ function ffwd_menu() {
251
+ global $wpdb;
252
+ require_once( WD_FFWD_DIR . '/framework/WDW_FFWD_Library.php' );
253
+ $page = WDW_FFWD_Library::get( 'page' );
254
+ if ( ( $page != '' ) && ( ( $page == 'info_ffwd' ) || ( $page == 'overview_ffwd' ) || ( $page == 'options_ffwd' ) || ( $page == 'themes_ffwd' ) || ( $page == 'uninstall_ffwd' ) || ( $page == 'FFWDShortcode' ) ) ) {
255
+
256
+ if($page!='uninstall_ffwd') {
257
+ $acc_tocken = $wpdb->get_var( "SELECT access_token FROM " . $wpdb->prefix . "wd_fb_option WHERE id=1" );
258
+ if ( $acc_tocken != '' ) {
259
+ delete_option( 'ffwd_limit_notice' );
260
+ }
261
+ }
262
+ $ffwd_limit_notice = get_option( 'ffwd_limit_notice' );
263
+ if ( $ffwd_limit_notice == 1 ) {
264
+ echo '<div style="width:99%">
265
  <div class="error">
266
+ <p style="font-size:18px;"><strong>' . __( "If you are getting errors please go to options and fill in App ID and App Secret.", "ffwd" ) . '</strong></p>
267
+ <p>' . __( "For getting App ID and App Secret read more in", "ffwd" ) . '
268
+ <a href="https://web-dorado.com/wordpress-facebook-feed/options.html" target="_blank" style="color: #00A0D2;">' . __( "User Manual", "ffwd" ) . '</a>.
269
  </p>
270
  </div>
271
  </div>';
272
+ }
273
+
274
+
275
+ require_once( WD_FFWD_DIR . '/admin/controllers/FFWDController' . ( ( $page == 'FFWDShortcode' ) ? $page : ucfirst( strtolower( $page ) ) ) . '.php' );
276
+ $controller_class = 'FFWDController' . ucfirst( strtolower( $page ) );
277
+ $controller = new $controller_class();
278
+ $controller->execute();
279
+ }
280
+ }
281
+
282
+ function ffwd_featured() {
283
+ if ( function_exists( 'current_user_can' ) ) {
284
+ if ( ! current_user_can( 'manage_options' ) ) {
285
+ die( 'Access Denied' );
286
+ }
287
+ } else {
288
+ die( 'Access Denied' );
289
+ }
290
+ require_once( WD_FFWD_DIR . '/featured/featured.php' );
291
+ wp_register_style( 'ffwd_featured', WD_FFWD_URL . '/featured/style.css', array(), ffwd_get_version() );
292
+ wp_print_styles( 'ffwd_featured' );
293
+ spider_featured( 'facebook-feed-wd' );
294
+ }
295
+
296
+ function ffwd_featured_themes() {
297
+ if ( function_exists( 'current_user_can' ) ) {
298
+ if ( ! current_user_can( 'manage_options' ) ) {
299
+ die( 'Access Denied' );
300
+ }
301
+ } else {
302
+ die( 'Access Denied' );
303
+ }
304
+ require_once( WD_FFWD_DIR . '/featured/featured_themes.php' );
305
+ wp_register_style( 'featured_themes', WD_FFWD_URL . '/featured/themes_style.css', array(), ffwd_get_version() );
306
+ wp_print_styles( 'featured_themes' );
307
+ spider_featured_themes( 'facebook-feed-wd' );
308
+ }
309
+
310
+
311
+ function FFWD_licensing_page() {
312
+ $controller_class = 'FFWDControllerLicensing_ffwd';
313
+ require_once( WD_FFWD_DIR . '/admin/controllers/' . $controller_class . '.php' );
314
+ $controller = new $controller_class();
315
+ $controller->execute();
316
+ }
317
+
318
+
319
+ function ffwd_ajax_frontend() {
320
+ require_once( WD_FFWD_DIR . '/framework/WDW_FFWD_Library.php' );
321
+ $page = WDW_FFWD_Library::get( 'action' );
322
+ if ( $page != '' && $page == 'PopupBox' ) {
323
+ require_once( WD_FFWD_DIR . '/frontend/controllers/FFWDController' . ucfirst( $page ) . '.php' );
324
+ $controller_class = 'FFWDController' . ucfirst( $page );
325
+ $controller = new $controller_class();
326
+ $controller->execute();
327
+ }
328
+ }
329
+
330
+ add_action( 'wp_ajax_PopupBox', 'ffwd_ajax_frontend' );
331
+ add_action( 'wp_ajax_nopriv_PopupBox', 'ffwd_ajax_frontend' );
 
 
 
 
332
  // For facebook feed
333
+ add_action( 'wp_ajax_nopriv_save_facebook_feed', 'ffwd_ajax' );
334
+ add_action( 'wp_ajax_save_facebook_feed', 'ffwd_ajax' );
335
  // For check app
336
+ add_action( 'wp_ajax_nopriv_check_app', 'ffwd_ajax' );
337
+ add_action( 'wp_ajax_check_app', 'ffwd_ajax' );
338
  // For drop objects
339
+ add_action( 'wp_ajax_nopriv_dropp_objects', 'ffwd_ajax' );
340
+ add_action( 'wp_ajax_dropp_objects', 'ffwd_ajax' );
341
+
342
+ function ffwd_ajax() {
343
+ if ( function_exists( 'current_user_can' ) ) {
344
+ if ( ! current_user_can( 'manage_options' ) ) {
345
+ die( 'Access Denied' );
346
+ }
347
+ } else {
348
+ die( 'Access Denied' );
349
+ }
350
+ require_once( WD_FFWD_DIR . '/framework/WDW_FFWD_Library.php' );
351
+ $page = WDW_FFWD_Library::get( 'action' );
352
+ $nonce = ( $page == 'save_facebook_feed' || $page == 'dropp_objects' ) ? 'info_ffwd' : ( ( $page == 'check_app' ) ? 'options_ffwd' : $page );
353
+ if ( ( $page != 'FFWDShortcode' ) && ! WDW_FFWD_Library::verify_nonce( $nonce ) ) {
354
+ die( 'Sorry, your nonce did not verify.' );
355
+ }
356
+ if ( $page == 'FFWDShortcode' ) {
357
+ require_once( WD_FFWD_DIR . '/admin/controllers/FFWDController' . ucfirst( $page ) . '.php' );
358
+ $controller_class = 'FFWDController' . ucfirst( $page );
359
+ $controller = new $controller_class();
360
+ $controller->execute();
361
+ } elseif ( $page == 'check_app' || $page == 'save_facebook_feed' || $page == 'dropp_objects' ) {
362
+ require_once( WD_FFWD_DIR . '/framework/WDFacebookFeed.php' );
363
+ WDFacebookFeed::execute();
364
+ }
365
+ }
366
+
367
+ function ffwd_shortcode( $params ) {
368
+ require_once( WD_FFWD_DIR . '/framework/WDW_FFWD_Library.php' );
369
+
370
+
371
+ global $wpdb;
372
+
373
+ $check_fb_feed = $wpdb->get_var( $wpdb->prepare( "SELECT id FROM " . $wpdb->prefix . "wd_fb_info WHERE id='%d'", $params['id'] ) );
374
+ if ( ! $check_fb_feed ) {
375
+ echo WDW_FFWD_Library::message( __( 'Feed Doesn\'t exists', 'bwg' ), 'error' );
376
+
377
+ return;
378
+ }
379
+ $params['fb_id'] = $params['id'];
380
+ ob_start();
381
+ ffwd_front_end( $params );
382
+
383
+ return str_replace( array( "\r\n", "\n", "\r" ), '', ob_get_clean() );
384
+ }
385
+
386
+ add_shortcode( 'WD_FB', 'ffwd_shortcode' );
387
 
388
  $ffwd = 0;
389
+ function ffwd_front_end( $params ) {
390
+ global $ffwd;
391
+ global $wpdb;
392
+ require_once( WD_FFWD_DIR . '/frontend/controllers/FFWDControllerMain.php' );
 
393
 
394
+ $fb_view_type = $wpdb->get_var( $wpdb->prepare( "SELECT fb_view_type FROM " . $wpdb->prefix . "wd_fb_info WHERE id='%s'", $params['fb_id'] ) );
395
 
396
+ $controller = new FFWDControllerMain( $params, 1, $ffwd, ucfirst( $fb_view_type ) );
397
+ $ffwd ++;
398
+
399
+ return;
400
  }
401
 
402
  // Add the Facebook Feed WD button.
403
+ function ffwd_add_button( $buttons ) {
404
+ array_push( $buttons, "wd_fb_mce" );
405
+
406
+ return $buttons;
407
  }
408
 
409
  // Register Facebook Feed WD button.
410
+ function ffwd_register( $plugin_array ) {
411
+ $url = WD_FFWD_URL . '/js/ffwd_editor_button.js';
412
+ $plugin_array["wd_fb_mce"] = $url;
413
+
414
+ return $plugin_array;
415
  }
416
 
417
+ function ffwd_admin_ajax() {
418
+ $query_url = wp_nonce_url( admin_url( 'admin-ajax.php' ), '', 'ffwd_nonce' );
419
+ ?>
 
420
  <script>
421
+ var ffwd_admin_ajax = '<?php echo add_query_arg( array( 'action' => 'FFWDShortcode' ), admin_url( 'admin-ajax.php' ) ); ?>';
422
+ var ffwd_plugin_url = '<?php echo WD_FFWD_URL; ?>';
423
+ var ajax_url = '<?php echo $query_url; ?>';
424
  </script>
425
+ <?php
426
  }
427
 
428
+ add_action( 'admin_head', 'ffwd_admin_ajax' );
429
 
430
  // Add the Facebook Feed WD button to editor.
431
+ add_action( 'wp_ajax_FFWDShortcode', 'ffwd_ajax' );
432
+ add_filter( 'mce_external_plugins', 'ffwd_register' );
433
+ add_filter( 'mce_buttons', 'ffwd_add_button', 0 );
434
 
435
  // Activate plugin.
436
+ function ffwd_activate() {
437
+ global $wpdb;
438
+ $wd_fb_shortcode = "CREATE TABLE IF NOT EXISTS `" . $wpdb->prefix . "wd_fb_shortcode` (
 
439
  `id` bigint(20) NOT NULL,
440
  `tagtext` mediumtext NOT NULL,
441
  PRIMARY KEY (`id`)
442
  ) DEFAULT CHARSET=utf8;";
443
+ $wpdb->query( $wd_fb_shortcode );
444
 
445
+ $wd_fb_info = "CREATE TABLE IF NOT EXISTS `" . $wpdb->prefix . "wd_fb_info` (
446
  `id` int(10) NOT NULL AUTO_INCREMENT,
447
  `name` varchar(255) NOT NULL,
448
  `type` varchar(10) NOT NULL,
539
  ) DEFAULT CHARSET=utf8;";
540
 
541
 
542
+ $wpdb->query( $wd_fb_info );
543
+ //message-i , description , name encoding --> utf16_bin
544
+ $wd_fb_data = "CREATE TABLE IF NOT EXISTS `" . $wpdb->prefix . "wd_fb_data` (
545
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
546
  `fb_id` int NOT NULL,
547
  `from` varchar(32) NOT NULL,
572
  `who_post` text NOT NULL,
573
  PRIMARY KEY (`id`)
574
  ) DEFAULT CHARSET=utf8;";
575
+ $wpdb->query( $wd_fb_data );
576
 
577
+ $wd_fb_data_collation = "ALTER TABLE `" . $wpdb->prefix . "wd_fb_data`
578
  MODIFY `name` text CHARACTER SET utf16 COLLATE utf16_bin,
579
  MODIFY `description` mediumtext CHARACTER SET utf16 COLLATE utf16_bin,
580
  MODIFY `message` mediumtext CHARACTER SET utf16 COLLATE utf16_bin
581
  ";
582
+ $wpdb->query( $wd_fb_data_collation );
583
 
584
+ $wd_fb_option = "CREATE TABLE IF NOT EXISTS `" . $wpdb->prefix . "wd_fb_option` (
585
  `id` bigint(20) NOT NULL,
586
  `autoupdate_interval` int(4) NOT NULL,
587
  `app_id` varchar(255) NOT NULL,
591
  `post_date_format` varchar(64) NOT NULL,
592
  `event_date_format` varchar(64) NOT NULL
593
  ) DEFAULT CHARSET=utf8;";
594
+ $wpdb->query( $wd_fb_option );
595
+
596
+ /*$ffwd_settings = "CREATE TABLE IF NOT EXISTS `" . $wpdb->prefix . "ffwd_settings` (
597
+ `id` bigint(20) NOT NULL AUTO_INCREMENT,
598
+ `autoupdate_interval` int(4) NOT NULL,
599
+ `app_id` varchar(255) NOT NULL,
600
+ `app_secret` varchar(255) NOT NULL,
601
+ `date_timezone` varchar(64) NOT NULL,
602
+ PRIMARY KEY (`id`)
603
+ ) DEFAULT CHARSET=utf8;";
604
+ $wpdb->query($ffwd_settings);*/
605
+
606
+ $wd_fb_theme = "CREATE TABLE IF NOT EXISTS `" . $wpdb->prefix . "wd_fb_theme` (
607
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
608
  `name` varchar(255) NOT NULL,
609
  `params` longtext,
610
  `default_theme` tinyint(1) NOT NULL,
611
  PRIMARY KEY (`id`)
612
  ) DEFAULT CHARSET=utf8;";
613
+ $wpdb->query( $wd_fb_theme );
614
 
615
+ $exists_default = $wpdb->get_var( 'SELECT count(id) FROM ' . $wpdb->prefix . 'wd_fb_option' );
616
+ if ( ! $exists_default ) {
617
+ $save = $wpdb->insert( $wpdb->prefix . 'wd_fb_option', array(
618
+ 'id' => 1,
619
+ 'autoupdate_interval' => 90,
620
+ 'app_id' => '',
621
+ 'date_timezone' => '',
622
+ 'access_token' => '',
623
+ 'post_date_format' => 'ago',
624
+ 'event_date_format' => 'F j, Y, g:i a',
625
 
626
 
627
+ ) );
628
+ }
629
 
630
+ $exists_default = $wpdb->get_var( 'SELECT count(id) FROM ' . $wpdb->prefix . 'wd_fb_theme' );
631
+ if ( ! $exists_default ) {
632
+ $wpdb->insert( $wpdb->prefix . 'wd_fb_theme', array(
633
+ 'name' => 'Theme 1',
634
+ 'default_theme' => 1,
635
+ 'params' => '{"thumb_margin":"10","thumb_padding":"2","thumb_border_radius":"2px","thumb_border_width":"1","thumb_border_style":"none","thumb_border_color":"000000","thumb_bg_color":"FFFFFF","thumbs_bg_color":"FFFFFF","thumb_bg_transparent":"100","thumb_box_shadow":"0px 0px 1px #000000","thumb_transparent":"100","thumb_align":"center","thumb_hover_effect":"rotate","thumb_hover_effect_value":"2deg","thumb_transition":"1","thumb_title_font_color":"797979","thumb_title_font_style":"inherit","thumb_title_pos":"bottom","thumb_title_font_size":"14","thumb_title_font_weight":"normal","thumb_title_margin":"10","thumb_title_shadow":"","thumb_like_comm_pos":"bottom","thumb_like_comm_font_size":"14","thumb_like_comm_font_color":"FFFFFF","thumb_like_comm_font_style":"inherit","thumb_like_comm_font_weight":"normal","thumb_like_comm_shadow":"0px 0px 1px #000000","masonry_thumb_padding":"4","masonry_thumb_border_radius":"2px","masonry_thumb_border_width":"1","masonry_thumb_border_style":"solid","masonry_thumb_border_color":"FFFFFF","masonry_thumbs_bg_color":"FFFFFF","masonry_thumb_bg_transparent":"100","masonry_thumb_transparent":"100","masonry_thumb_align":"center","masonry_thumb_hover_effect":"scale","masonry_thumb_hover_effect_value":"1.1","masonry_thumb_transition":"1","masonry_description_font_size":"14","masonry_description_color":"A3A3A3","masonry_description_font_style":"inherit","masonry_like_comm_pos":"bottom","masonry_like_comm_font_size":"14","masonry_like_comm_font_color":"FFFFFF","masonry_like_comm_font_style":"inherit","masonry_like_comm_font_weight":"normal","masonry_like_comm_shadow":"0px 0px 1px #000000","blog_style_align":"left","blog_style_bg_color":"FFFFFF","blog_style_fd_name_bg_color":"000000","blog_style_fd_name_align":"center","blog_style_fd_name_padding":"10","blog_style_fd_name_color":"FFFFFF","blog_style_fd_name_size":"15","blog_style_fd_name_font_weight":"normal","blog_style_fd_icon":"","blog_style_fd_icon_color":"","blog_style_fd_icon_size":"","blog_style_transparent":"100","blog_style_obj_img_align":"center","blog_style_margin":"10","blog_style_box_shadow":"","blog_style_border_width":"1","blog_style_border_style":"solid","blog_style_border_color":"C9C9C9","blog_style_border_type":"top","blog_style_border_radius":"","blog_style_obj_icons_color":"gray","blog_style_obj_date_pos":"after","blog_style_obj_font_family":"inherit","blog_style_obj_info_bg_color":"FFFFFF","blog_style_page_name_color":"000000","blog_style_obj_page_name_size":"13","blog_style_obj_page_name_font_weight":"bold","blog_style_obj_story_color":"000000","blog_style_obj_story_size":"14","blog_style_obj_story_font_weight":"normal","blog_style_obj_place_color":"000000","blog_style_obj_place_size":"13","blog_style_obj_place_font_weight":"normal","blog_style_obj_name_color":"000000","blog_style_obj_name_size":"13","blog_style_obj_name_font_weight":"bold","blog_style_obj_message_color":"000000","blog_style_obj_message_size":"14","blog_style_obj_message_font_weight":"normal","blog_style_obj_hashtags_color":"000000","blog_style_obj_hashtags_size":"12","blog_style_obj_hashtags_font_weight":"normal","blog_style_obj_likes_social_bg_color":"EAEAEA","blog_style_obj_likes_social_color":"656565","blog_style_obj_likes_social_size":"14","blog_style_obj_likes_social_font_weight":"normal","blog_style_obj_comments_bg_color":"FFFFFF","blog_style_obj_comments_color":"000000","blog_style_obj_comments_font_family":"inherit","blog_style_obj_comments_font_size":"14","blog_style_obj_users_font_color":"000000","blog_style_obj_comments_social_font_weight":"normal","blog_style_obj_comment_border_width":"1","blog_style_obj_comment_border_style":"solid","blog_style_obj_comment_border_color":"C9C9C9","blog_style_obj_comment_border_type":"top","blog_style_evt_str_color":"000000","blog_style_evt_str_size":"14","blog_style_evt_str_font_weight":"normal","blog_style_evt_ctzpcn_color":"000000","blog_style_evt_ctzpcn_size":"14","blog_style_evt_ctzpcn_font_weight":"normal","blog_style_evt_map_color":"000000","blog_style_evt_map_size":"14","blog_style_evt_map_font_weight":"normal","blog_style_evt_date_color":"000000","blog_style_evt_date_size":"14","blog_style_evt_date_font_weight":"normal","blog_style_evt_info_font_family":"inherit","album_compact_back_font_color":"000000","album_compact_back_font_style":"inherit","album_compact_back_font_size":"16","album_compact_back_font_weight":"bold","album_compact_back_padding":"0","album_compact_title_font_color":"797979","album_compact_title_font_style":"inherit","album_compact_thumb_title_pos":"bottom","album_compact_title_font_size":"13","album_compact_title_font_weight":"normal","album_compact_title_margin":"2px","album_compact_title_shadow":"0px 0px 0px #888888","album_compact_thumb_margin":"4","album_compact_thumb_padding":"0","album_compact_thumb_border_radius":"0","album_compact_thumb_border_width":"0","album_compact_thumb_border_style":"none","album_compact_thumb_border_color":"CCCCCC","album_compact_thumb_bg_color":"FFFFFF","album_compact_thumbs_bg_color":"FFFFFF","album_compact_thumb_bg_transparent":"0","album_compact_thumb_box_shadow":"0px 0px 0px #888888","album_compact_thumb_transparent":"100","album_compact_thumb_align":"center","album_compact_thumb_hover_effect":"scale","album_compact_thumb_hover_effect_value":"1.1","album_compact_thumb_transition":"0","lightbox_overlay_bg_color":"000000","lightbox_overlay_bg_transparent":"70","lightbox_bg_color":"000000","lightbox_ctrl_btn_pos":"bottom","lightbox_ctrl_btn_align":"center","lightbox_ctrl_btn_height":"20","lightbox_ctrl_btn_margin_top":"10","lightbox_ctrl_btn_margin_left":"7","lightbox_ctrl_btn_transparent":"100","lightbox_ctrl_btn_color":"","lightbox_toggle_btn_height":"14","lightbox_toggle_btn_width":"100","lightbox_ctrl_cont_bg_color":"000000","lightbox_ctrl_cont_transparent":"65","lightbox_ctrl_cont_border_radius":"4","lightbox_close_btn_transparent":"100","lightbox_close_btn_bg_color":"000000","lightbox_close_btn_border_width":"2","lightbox_close_btn_border_radius":"16px","lightbox_close_btn_border_style":"none","lightbox_close_btn_border_color":"FFFFFF","lightbox_close_btn_box_shadow":"0","lightbox_close_btn_color":"","lightbox_close_btn_size":"10","lightbox_close_btn_width":"20","lightbox_close_btn_height":"20","lightbox_close_btn_top":"-10","lightbox_close_btn_right":"-10","lightbox_close_btn_full_color":"","lightbox_rl_btn_bg_color":"000000","lightbox_rl_btn_transparent":"80","lightbox_rl_btn_border_radius":"20px","lightbox_rl_btn_border_width":"0","lightbox_rl_btn_border_style":"none","lightbox_rl_btn_border_color":"FFFFFF","lightbox_rl_btn_box_shadow":"","lightbox_rl_btn_color":"","lightbox_rl_btn_height":"40","lightbox_rl_btn_width":"40","lightbox_rl_btn_size":"20","lightbox_close_rl_btn_hover_color":"","lightbox_obj_pos":"left","lightbox_obj_width":"350","lightbox_obj_icons_color":"gray","lightbox_obj_date_pos":"after","lightbox_obj_font_family":"inherit","lightbox_obj_info_bg_color":"E2E2E2","lightbox_page_name_color":"4B4B4B","lightbox_obj_page_name_size":"14","lightbox_obj_page_name_font_weight":"bold","lightbox_obj_story_color":"4B4B4B","lightbox_obj_story_size":"14","lightbox_obj_story_font_weight":"normal","lightbox_obj_place_color":"000000","lightbox_obj_place_size":"13","lightbox_obj_place_font_weight":"normal","lightbox_obj_name_color":"4B4B4B","lightbox_obj_name_size":"14","lightbox_obj_name_font_weight":"bold","lightbox_obj_message_color":"000000","lightbox_obj_message_size":"14","lightbox_obj_message_font_weight":"normal","lightbox_obj_hashtags_color":"000000","lightbox_obj_hashtags_size":"12","lightbox_obj_hashtags_font_weight":"normal","lightbox_obj_likes_social_bg_color":"878787","lightbox_obj_likes_social_color":"FFFFFF","lightbox_obj_likes_social_size":"14","lightbox_obj_likes_social_font_weight":"normal","lightbox_obj_comments_bg_color":"EAEAEA","lightbox_obj_comments_color":"4A4A4A","lightbox_obj_comments_font_family":"inherit","lightbox_obj_comments_font_size":"14","lightbox_obj_users_font_color":"4B4B4B","lightbox_obj_comments_social_font_weight":"normal","lightbox_obj_comment_border_width":"1","lightbox_obj_comment_border_style":"solid","lightbox_obj_comment_border_color":"C9C9C9","lightbox_obj_comment_border_type":"top","lightbox_filmstrip_pos":"top","lightbox_filmstrip_rl_bg_color":"3B3B3B","lightbox_filmstrip_rl_btn_size":"20","lightbox_filmstrip_rl_btn_color":"","lightbox_filmstrip_thumb_margin":"0 1px","lightbox_filmstrip_thumb_border_width":"1","lightbox_filmstrip_thumb_border_style":"solid","lightbox_filmstrip_thumb_border_color":"000000","lightbox_filmstrip_thumb_border_radius":"0","lightbox_filmstrip_thumb_deactive_transparent":"80","lightbox_filmstrip_thumb_active_border_width":"0","lightbox_filmstrip_thumb_active_border_color":"FFFFFF","lightbox_rl_btn_style":"","lightbox_evt_str_color":"000000","lightbox_evt_str_size":"14","lightbox_evt_str_font_weight":"normal","lightbox_evt_ctzpcn_color":"000000","lightbox_evt_ctzpcn_size":"14","lightbox_evt_ctzpcn_font_weight":"normal","lightbox_evt_map_color":"000000","lightbox_evt_map_size":"14","lightbox_evt_map_font_weight":"normal","lightbox_evt_date_color":"000000","lightbox_evt_date_size":"14","lightbox_evt_date_font_weight":"normal","lightbox_evt_info_font_family":"inherit","page_nav_position":"bottom","page_nav_align":"center","page_nav_number":"0","page_nav_font_size":"12","page_nav_font_style":"inherit","page_nav_font_color":"666666","page_nav_font_weight":"bold","page_nav_border_width":"1","page_nav_border_style":"solid","page_nav_border_color":"E3E3E3","page_nav_border_radius":"0","page_nav_margin":"0","page_nav_padding":"3px 6px","page_nav_button_bg_color":"FFFFFF","page_nav_button_bg_transparent":"100","page_nav_box_shadow":"0","page_nav_button_transition":"1","page_nav_button_text":"0","lightbox_obj_icons_color_likes_comments_count":"white"}',
636
+ ) );
637
 
638
 
639
+ }
640
+ wp_schedule_event( time(), 'wd_fb_autoupdate_interval', 'wd_fb_schedule_event_hook' );
641
 
642
+ $old_version = ffwd_get_version();
643
 
644
+ $new_version = ffwd_version();
645
+ $newer = version_compare( $new_version, $old_version, '>' );
646
+ if ( $newer ) {
647
+ require_once WD_FFWD_DIR . '/update/ffwd_update.php';
648
+ /*adds new params for new versions*/
649
+ ffwd_update_diff( $new_version, $old_version );
650
 
651
 
652
+ }
653
 
654
 
655
+ /*$version = get_option("ffwd_version");
656
+ $new_version = '1.0.0';
657
+ if ($version && version_compare($version, $new_version, '<')) {
658
+ require_once WD_FFWD_DIR . "/update/ffwd_update.php";
659
+ ffwd_update($version);
660
+ update_option("ffwd_version", $new_version);
661
+ }
662
+ else {
663
+ add_option("ffwd_version", $new_version, '', 'no');
664
+ }
665
+ */
666
 
667
  }
668
 
669
+ register_activation_hook( __FILE__, 'ffwd_activate' );
670
 
671
 
672
  /* On deactivation, remove all functions from the scheduled action hook.*/
673
+ function ffwd_deactivate() {
674
+ wp_clear_scheduled_hook( 'wd_fb_schedule_event_hook' );
 
675
  }
676
 
677
+ register_deactivation_hook( __FILE__, 'ffwd_deactivate' );
678
 
679
+ function ffwd_update_hook() {
680
+ /*$version = get_option("ffwd_version");
681
+ $new_version = '1.0.0';
682
+ if ($version && version_compare($version, $new_version, '<')) {
683
+ require_once WD_FFWD_DIR . "/update/ffwd_update.php";
684
+ ffwd_update($version);
685
+ update_option("ffwd_version", $new_version);
686
+ }*/
 
687
 
688
+ return false;
689
  }
690
 
691
+ if ( ! isset( $_GET['action'] ) || $_GET['action'] != 'deactivate' ) {
692
+ add_action( 'admin_init', 'ffwd_update_hook' );
693
  }
694
 
695
  // Plugin styles.
696
+ function ffwd_styles() {
697
+
698
+ wp_admin_css( 'thickbox' );
699
+ wp_enqueue_style( 'ffwd_tables', WD_FFWD_URL . '/css/ffwd_tables.css', array(), ffwd_get_version() );
700
+
701
  }
702
 
703
  // Plugin scripts.
704
+ function ffwd_scripts() {
705
+ wp_enqueue_script( 'thickbox' );
706
+ wp_enqueue_script( 'ffwd_admin', WD_FFWD_URL . '/js/ffwd.js', array(), ffwd_get_version() );
707
+ global $wp_scripts;
708
+ if ( isset( $wp_scripts->registered['jquery'] ) ) {
709
+ $jquery = $wp_scripts->registered['jquery'];
710
+ if ( ! isset( $jquery->ver ) OR version_compare( $jquery->ver, '1.8.2', '<' ) ) {
711
+ wp_deregister_script( 'jquery' );
712
+ wp_register_script( 'jquery', false, array( 'jquery-core', 'jquery-migrate' ), '1.10.2' );
713
+ }
714
+ }
715
+ wp_enqueue_script( 'jquery' );
716
+ wp_enqueue_script( 'jquery-ui-sortable' );
717
+
 
718
  }
719
 
720
  /* Add pagination to gallery admin pages.*/
721
+ function ffwd_add_ffwd_info_per_page_option() {
722
+ $option = 'per_page';
723
+ $args_galleries = array(
724
+ 'label' => 'Items',
725
+ 'default' => 20,
726
+ 'option' => 'ffwd_info_per_page'
727
+ );
728
+ add_screen_option( $option, $args_galleries );
729
+ }
730
+
731
+ function ffwd_add_themes_per_page_option() {
732
+ $option = 'per_page';
733
+ $args_themes = array(
734
+ 'label' => 'Themes',
735
+ 'default' => 20,
736
+ 'option' => 'ffwd_themes_per_page'
737
+ );
738
+ add_screen_option( $option, $args_themes );
739
+ }
740
+
741
+ add_filter( 'set-screen-option', 'ffwd_set_option_galleries', 10, 3 );
742
+ add_filter( 'set-screen-option', 'ffwd_set_option_themes', 10, 3 );
743
+
744
+ function ffwd_set_option_galleries( $status, $option, $value ) {
745
+ if ( 'ffwd_info_per_page' == $option ) {
746
+ return $value;
747
+ }
748
+
749
+ return $status;
750
+ }
751
+
752
+ function ffwd_set_option_themes( $status, $option, $value ) {
753
+ if ( 'ffwd_themes_per_page' == $option ) {
754
+ return $value;
755
+ }
756
+
757
+ return $status;
758
+ }
759
+
760
+ function ffwd_admin_scripts() {
761
+ wp_enqueue_script( 'thickbox' );
762
+ wp_enqueue_script( 'ffwd_admin', WD_FFWD_URL . '/js/ffwd.js', array(), ffwd_get_version() );
763
+ global $wp_scripts;
764
+ if ( isset( $wp_scripts->registered['jquery'] ) ) {
765
+ $jquery = $wp_scripts->registered['jquery'];
766
+ if ( ! isset( $jquery->ver ) OR version_compare( $jquery->ver, '1.8.2', '<' ) ) {
767
+ wp_deregister_script( 'jquery' );
768
+ wp_register_script( 'jquery', false, array( 'jquery-core', 'jquery-migrate' ), '1.10.2' );
769
+ }
770
+ }
771
+ wp_enqueue_script( 'jquery' );
772
+ wp_enqueue_script( 'jscolor', WD_FFWD_URL . '/js/jscolor/jscolor.js', array(), '1.3.9' );
773
+ wp_enqueue_style( 'ffwd_font-awesome', WD_FFWD_URL . '/css/font-awesome/font-awesome.css', array(), '4.4.0' );
774
+
775
+ $page = isset( $_GET['page'] ) ? $_GET['page'] : '';
776
+
777
+ if ( $page == "uninstall_ffwd" ) {
778
+
779
+ wp_enqueue_script('ffwd-deactivate-popup', WD_FFWD_URL.'/wd/assets/js/deactivate_popup.js', array(), ffwd_get_version(), true );
780
+ $admin_data = wp_get_current_user();
781
+
782
+ wp_localize_script( 'ffwd-deactivate-popup', 'ffwdWDDeactivateVars', array(
783
+ "prefix" => "ffwd" ,
784
+ "deactivate_class" => 'ffwd_deactivate_link',
785
+ "email" => $admin_data->data->user_email,
786
+ "plugin_wd_url" => "https://web-dorado.com/products/wordpress-google-maps-plugin.html",
787
+ ));
788
+
789
+ wp_enqueue_style( 'ffwd_deactivate-css', WD_FFWD_URL . '/wd/assets/css/deactivate_popup.css', array(), ffwd_get_version() );
790
+
791
+
792
+ }
793
+
794
+
795
+ }
796
+
797
+ function ffwd_front_end_scripts() {
798
+ $version = ffwd_get_version();
799
+ global $wp_scripts;
800
+ if ( isset( $wp_scripts->registered['jquery'] ) ) {
801
+ $jquery = $wp_scripts->registered['jquery'];
802
+ if ( ! isset( $jquery->ver ) OR version_compare( $jquery->ver, '1.8.2', '<' ) ) {
803
+ wp_deregister_script( 'jquery' );
804
+ wp_register_script( 'jquery', false, array( 'jquery-core', 'jquery-migrate' ), '1.10.2' );
805
+ }
806
+ }
807
+ wp_enqueue_script( 'jquery' );
808
+ wp_enqueue_script( 'ffwd_frontend', WD_FFWD_FRONT_URL . '/js/ffwd_frontend.js', array(), $version );
809
+ wp_enqueue_style( 'ffwd_frontend', WD_FFWD_FRONT_URL . '/css/ffwd_frontend.css', array(), $version );
810
+ // Styles/Scripts for popup.
811
+ wp_enqueue_style( 'ffwd_font-awesome', WD_FFWD_FRONT_URL . '/css/font-awesome/font-awesome.css', array(), '4.4.0' );
812
+ wp_enqueue_script( 'ffwd_jquery_mobile', WD_FFWD_FRONT_URL . '/js/jquery.mobile.js', array(), $version );
813
+ wp_enqueue_script( 'ffwd_mCustomScrollbar', WD_FFWD_FRONT_URL . '/js/jquery.mCustomScrollbar.concat.min.js', array(), $version );
814
+ wp_enqueue_style( 'ffwd_mCustomScrollbar', WD_FFWD_FRONT_URL . '/css/jquery.mCustomScrollbar.css', array(), $version );
815
+ wp_enqueue_script( 'jquery-fullscreen', WD_FFWD_FRONT_URL . '/js/jquery.fullscreen-0.4.1.js', array(), '0.4.1' );
816
+ wp_enqueue_script( 'ffwd_gallery_box', WD_FFWD_FRONT_URL . '/js/ffwd_gallery_box.js', array(), $version );
817
+ wp_localize_script( 'ffwd_gallery_box', 'ffwd_objectL10n', array(
818
+ 'ffwd_field_required' => __( 'field is required.', 'bwg' ),
819
+ 'ffwd_mail_validation' => __( 'This is not a valid email address.', 'bwg' ),
820
+ 'ffwd_search_result' => __( 'There are no images matching your search.', 'bwg' ),
821
+ ) );
822
+
823
+ wp_localize_script( 'ffwd_frontend', 'ffwd_frontend_text', array(
824
+ 'comment_reply' => __( 'Reply', 'ffwd' ),
825
+ 'view' => __( 'View', 'ffwd' ),
826
+ 'more_comments' => __( 'more comments', 'ffwd' ),
827
+
828
+ 'year' => __( 'year', 'ffwd' ),
829
+ 'years' => __( 'years', 'ffwd' ),
830
+ 'hour' => __( 'hour', 'ffwd' ),
831
+ 'hours' => __( 'hours', 'ffwd' ),
832
+ 'months' => __( 'months', 'ffwd' ),
833
+ 'month' => __( 'month', 'ffwd' ),
834
+ 'weeks' => __( 'weeks', 'ffwd' ),
835
+ 'week' => __( 'week', 'ffwd' ),
836
+ 'days' => __( 'days', 'ffwd' ),
837
+ 'day' => __( 'day', 'ffwd' ),
838
+ 'minutes' => __( 'minutes', 'ffwd' ),
839
+ 'minute' => __( 'minute', 'ffwd' ),
840
+ 'seconds' => __( 'seconds', 'ffwd' ),
841
+ 'second' => __( 'second', 'ffwd' ),
842
+ 'ago' => __( 'ago', 'ffwd' ),
843
+
844
+ 'and' => __( 'and', 'ffwd' ),
845
+ 'others' => __( 'others', 'ffwd' ),
846
+
847
+ ) );
848
+
849
+
850
+ }
851
+
852
+ add_action( 'wp_enqueue_scripts', 'ffwd_front_end_scripts' );
853
 
854
  /* Add bwg scheduled event for autoupdatable galleries.*/
855
+ add_filter( 'cron_schedules', 'wd_fb_add_autoupdate_interval' );
856
+ function wd_fb_add_autoupdate_interval( $schedules ) {
857
+
858
+ require_once( WD_FFWD_DIR . '/framework/WDFacebookFeed.php' );
859
+ $page = isset($_GET['page']) ? $_GET['page'] : '';
860
+
861
+ $autoupdate_interval=1;
862
+ if($page!='uninstall_ffwd')
863
+ $autoupdate_interval = WDFacebookFeed::get_autoupdate_interval();
864
+ // var_dump($autoupdate_interval);
865
+ $schedules['wd_fb_autoupdate_interval'] = array(
866
+ 'interval' => 60 * $autoupdate_interval,
867
+ 'display' => __( 'WD Facebook plugin autoupdate interval.' )
868
+ );
869
+
870
+ return $schedules;
871
  }
872
 
873
 
874
+ add_action( 'wd_fb_schedule_event_hook', 'wd_fb_update' );
875
  // wd_fb_update();
876
+ function wd_fb_update() {
877
+ global $wpdb;
878
+ $query = "SELECT * FROM " . $wpdb->prefix . "wd_fb_info WHERE `update_mode` <> 'no_update'";
879
+ $rows = $wpdb->get_results( $query );
880
+ require_once( WD_FFWD_DIR . '/framework/WDFacebookFeed.php' );
881
+ WDFacebookFeed::update_from_shedule( $rows );
882
+ die;
 
883
  }
884
 
885
  // Facebook feed wd Widget.
886
+ if ( class_exists( 'WP_Widget' ) ) {
887
+ require_once( WD_FFWD_DIR . '/admin/controllers/FFWDControllerWidget.php' );
888
+ add_action( 'widgets_init', create_function( '', 'return register_widget("FFWDControllerWidget");' ) );
889
  }
890
 
891
  // Languages localization.
892
+ function ffwd_language_load() {
893
+ load_plugin_textdomain( 'ffwd', false, basename( dirname( __FILE__ ) ) . '/languages' );
 
894
  }
895
 
896
+ add_action( 'init', 'ffwd_language_load' );
897
 
898
+ function ffwd_version() {
 
899
 
900
+ $version = '1.0.17';
901
 
902
+ if ( get_option( 'ffwd_version' ) === false ) {
903
+ add_option( 'ffwd_version', $version );
904
+ } else {
905
+ update_option( 'ffwd_version', $version );
906
 
907
 
908
+ }
909
 
910
 
911
+ return $version;
912
 
913
  }
914
 
915
+ function ffwd_get_version() {
916
+ if ( get_option( 'ffwd_version' ) === false ) {
917
+ ffwd_version();
 
918
 
919
+ }
 
920
 
921
+ return get_option( 'ffwd_version' );
922
 
 
 
 
923
 
 
 
924
  }
925
 
926
+ if ( is_admin() && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) ) {
927
 
928
+ include_once( WD_FFWD_DIR . '/facebook-feed-wd-notices.php' );
929
+ new FFWD_Notices();
930
+ }
931
 
932
 
933
  ?>
featured/featured.php DELETED
@@ -1,184 +0,0 @@
1
- <?php
2
- function spider_featured($current_plugin = '') {
3
- $plugins = array(
4
- "ecommerce-wd" => array(
5
- 'title' => 'Ecommerce',
6
- 'text' => 'Wordpress ecommerce plugin',
7
- 'content' => 'Ecommerce WD is a highly-functional, user friendly WordPress Ecommerce plugin, which is perfect for developing online stores for any level of complexity.',
8
- 'href' => 'https://web-dorado.com/products/wordpress-ecommerce.html'
9
- ),
10
- "form-maker" => array(
11
- 'title' => 'Form Maker',
12
- 'text' => 'Wordpress form builder plugin',
13
- 'content' => 'Form Maker is a modern and advanced tool for creating WordPress forms easily and fast.',
14
- 'href' => 'https://web-dorado.com/products/wordpress-form.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' => 'Google Maps WD',
132
- 'text' => 'Google Maps plugin WD',
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
- "ad-manager-wd" => array(
137
- 'title' => 'AD Manager WD',
138
- 'text' => 'AD Manager WD plugin',
139
- 'content' => 'Ad Manager WD is functional and comprehensive plugin which is created to help you monetize your WordPress website with ads.',
140
- 'href' => 'https://web-dorado.com/products/wordpress-ad-manager-wd.html'
141
- ),
142
-
143
- "facebook-feed-wd" => array(
144
- 'title' => '',
145
- 'text' => '',
146
- 'content' => '',
147
- 'href' => ''
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/ad-manager-wd.png DELETED
Binary file
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.jpg DELETED
Binary file
featured/images/catalog.png DELETED
Binary file
featured/images/contact-form-builder.jpg DELETED
Binary file
featured/images/contact-form-maker.jpg DELETED
Binary file
featured/images/contact.builder.png DELETED
Binary file
featured/images/contact.maker.png DELETED
Binary file
featured/images/contacts.jpg DELETED
Binary file
featured/images/contacts.png DELETED
Binary file
featured/images/download.jpg 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.jpg DELETED
Binary file
featured/images/facebook.png DELETED
Binary file
featured/images/faq.jpg DELETED
Binary file
featured/images/faq.png DELETED
Binary file
featured/images/faq_wd.png DELETED
Binary file
featured/images/flash.calendar.jpg DELETED
Binary file
featured/images/flash.calendar.png DELETED
Binary file
featured/images/fm-import.png DELETED
Binary file
featured/images/folder.menu.jpg DELETED
Binary file
featured/images/folder.menu.png DELETED
Binary file
featured/images/form.jpg DELETED
Binary file
featured/images/magazine.jpg DELETED
Binary file
featured/images/mottomag.jpg DELETED
Binary file
featured/images/photo-gallery.jpg DELETED
Binary file
featured/images/player.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/slider.jpg DELETED
Binary file
featured/images/spider-calendar.jpg DELETED
Binary file
featured/images/twitter-widget.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.jpg DELETED
Binary file
featured/images/zoom.png DELETED
Binary file
featured/style.css DELETED
@@ -1,204 +0,0 @@
1
- @import url(http://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
- #main_featured_plugins_page #featured-plugins-list li.ecommerce-wd .product {background:url("images/ecommerce.png") center center no-repeat;}
55
-
56
- #main_featured_plugins_page #featured-plugins-list li.form-maker .product {background:url("images/form.png") center center no-repeat;}
57
- #main_featured_plugins_page #featured-plugins-list li.catalog .product {background:url("images/catalog.png") center center no-repeat;}
58
- #main_featured_plugins_page #featured-plugins-list li.contact-maker .product {background:url("images/contact.maker.png") center center no-repeat;}
59
- #main_featured_plugins_page #featured-plugins-list li.contacts .product {background:url("images/contacts.png") center center no-repeat;}
60
- #main_featured_plugins_page #featured-plugins-list li.facebook .product {background:url("images/facebook.png") center center no-repeat;}
61
- #main_featured_plugins_page #featured-plugins-list li.faq .product {background:url("images/faq.png") center center no-repeat;}
62
- #main_featured_plugins_page #featured-plugins-list li.flash-calendar .product {background:url("images/flash.calendar.png") center center no-repeat;}
63
- #main_featured_plugins_page #featured-plugins-list li.player .product {background:url("images/player.png") center center no-repeat; }
64
- #main_featured_plugins_page #featured-plugins-list li.spider-calendar .product {background:url("images/spider.calendar.png") center center no-repeat;}
65
- #main_featured_plugins_page #featured-plugins-list li.contact_form_bulder .product {background:url("images/contact.builder.png") center center no-repeat;}
66
- #main_featured_plugins_page #featured-plugins-list li.random_post .product {background:url("images/random.post.png") center center no-repeat;}
67
- #main_featured_plugins_page #featured-plugins-list li.slider_wd .product {background:url("images/slider.png") center center no-repeat;}
68
- #main_featured_plugins_page #featured-plugins-list li.folder_menu .product {background:url("images/folder.menu.png") center center no-repeat;}
69
- #main_featured_plugins_page #featured-plugins-list li.zoom .product {background:url("images/zoom.png") center center no-repeat;}
70
- #main_featured_plugins_page #featured-plugins-list li.fm-import .product {background:url("images/fm-import.png") center center no-repeat;}
71
- #main_featured_plugins_page #featured-plugins-list li.photo-gallery .product {background:url("images/photo-gallery.png") center center no-repeat;}
72
- #main_featured_plugins_page #featured-plugins-list li.twitter-widget .product {background:url("images/twittertools.png") center center no-repeat;}
73
- #main_featured_plugins_page #featured-plugins-list li.events-wd .product {background:url("images/events-wd.png") center center no-repeat;}
74
- #main_featured_plugins_page #featured-plugins-list li.faq_wd .product {background:url("images/faq_wd.png") center center no-repeat;}
75
- #main_featured_plugins_page #featured-plugins-list li.instagram_feed .product {background:url("images/instagram_feed.png") center center no-repeat;}
76
- #main_featured_plugins_page #featured-plugins-list li.post-slider .product {background:url("images/post-slider.png") center center no-repeat;}
77
- #main_featured_plugins_page #featured-plugins-list li.wd-google-maps .product {background:url("images/google-maps.png") center center no-repeat;}
78
- #main_featured_plugins_page #featured-plugins-list li.ad-manager-wd .product {background:url("images/ad-manager-wd.png") center center no-repeat;}
79
-
80
- #main_featured_plugins_page #featured-plugins-list li .title .heading {
81
- display: block;
82
- position: relative;
83
- font-size: 17px;
84
- color: #767676;
85
- margin: 13px 0px 13px 0px;
86
- text-transform: uppercase;
87
- }
88
-
89
- #main_featured_plugins_page #featured-plugins-list li .title p {
90
- font-size:14px;
91
- color:#444;
92
- margin-left:20px;
93
- }
94
-
95
- #main_featured_plugins_page #featured-plugins-list li .description {
96
- height: 127px;
97
- width: 90%;
98
- margin: 0 auto;
99
- }
100
-
101
- #main_featured_plugins_page #featured-plugins-list li .description p {
102
- text-align: center;
103
- width: 100%;
104
- color: #9A9A9A;
105
- font-family: Segoe UI Light;
106
- }
107
-
108
- #featured-plugins-list li a.download {
109
- display: block;
110
- border-top: 1px solid #CACACA;
111
- outline: none;
112
- width: 90%;
113
- margin: 0 auto;
114
- font-size: 14px;
115
- line-height: 40px;
116
- text-decoration: none;
117
- font-weight: bolder;
118
- text-align: center;
119
- color: #134D68;
120
- position: absolute;
121
- text-transform: uppercase;
122
- bottom: 0;
123
- left: 10px;
124
- font-family: Segoe UI Black;
125
- text-shadow: 1px 0;
126
- }
127
-
128
- #featured-plugins-list li a.download:hover {
129
- color: #F47629;
130
- }
131
-
132
- .featured_header {
133
- background: #11465F;
134
- border-right: 3px solid #E5E5E5;
135
- border-bottom: 3px solid #E5E5E5;
136
- position: relative;
137
- padding: 20px 0;
138
- }
139
-
140
- .featured_header .old_price {
141
- color: rgba(180, 180, 180, 0.3);
142
- text-decoration: line-through;
143
- font-family: Oswald;
144
- }
145
-
146
- .featured_header h1.get_plugins {
147
- color: #FFFFFF;
148
- height: 85px;
149
- margin: 0;
150
- background-size: 85% 100%;
151
- background-position: center;
152
- line-height: 60px;
153
- }
154
-
155
- .featured_header .try-now {
156
- text-align: center;
157
- }
158
-
159
- .featured_header .try-now span {
160
- display: inline-block;
161
- padding: 7px 16px;
162
- background: #F47629;
163
- border-radius: 10px;
164
- color: #ffffff;
165
- font-size: 23px;
166
- }
167
-
168
- .featured_header h1 {
169
- font-size: 50px;
170
- text-align: center;
171
- color: #FFFFFF;
172
- letter-spacing: 3px;
173
- text-transform: uppercase;
174
- }
175
-
176
- .featured_header a {
177
- text-decoration: none;
178
- }
179
-
180
- @media screen and (max-width: 1105px) {
181
- .featured_header h1 {
182
- font-size: 37px;
183
- line-height: 0;
184
- }
185
- }
186
-
187
- @media screen and (max-width: 835px) {
188
- .get_plugins span {
189
- display: none;
190
- }
191
- }
192
-
193
- @media screen and (max-width: 700px) {
194
- .featured_header h1 {
195
- line-height: 40px;
196
- }
197
- }
198
-
199
- @media screen and (max-width: 435px) {
200
- .featured_header h1 {
201
- font-size: 20px;
202
- line-height: 25px;
203
- }
204
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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/WDFacebookFeed.php CHANGED
@@ -37,14 +37,14 @@ class WDFacebookFeed {
37
 
38
  // Existing app ids and app secrets
39
  protected static $access_tokens = array (
40
- // App 2.5 and higher doesn't support video name field
41
- '1332501960106748|5c00e11412c36ce741e5bb051d3d948e',
42
- '1303503889682231|6a947d424fc7e2fd373568ed92c3c9de', // App version 2.4
43
- '1005694739559398|b32df5b3f7cecd1105e028abe1bc7ef6',
44
- '274394046295054|2fbdbe248092c63f812e0e1d6dbe0f2b',
45
- '1739880636336728|e786c42c6cbe13b28b8f4a83afbebbcd',
46
- '1683088998649596|73282ca4410752d64621e693cc19524e',
47
- '987113411398480|3e2d346234b086dba07e5c6f5c87caaa',
48
  );
49
 
50
  protected static $save = true;
37
 
38
  // Existing app ids and app secrets
39
  protected static $access_tokens = array (
40
+
41
+ '433829403627911|94d292a128ef6231fa2a25b3f43d520d',
42
+ '1785723671755597|8bea3b6d606eba041bc8d300c0530b10',
43
+ '1360249327365720|29097e215fae42483319ffa6fa78e5dd',
44
+ '706861409474127|c8e30a19bb18713acf3b637061323914',
45
+ '193040531189876|d01897c23430b75d6c51a95f3586a688',
46
+ '239405206526053|617592294eacdc07943a1e0ecbf69eab',
47
+ '1465318366846430|ce12c0e2e8e768b5f66eadd8e157e123',
48
  );
49
 
50
  protected static $save = true;
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://web-dorado.com/products/wordpress-facebook-feed-plugin.html
4
  Tags: customizable facebook feed, facebook, facebook events, facebook feed, facebook group, facebook like box, facebook likes, facebook page, facebook photos, facebook plugin, facebook posts, facebook likebox
5
  Requires at least: 3.4
6
  Tested up to: 4.7
7
- Stable tag: 1.0.16
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -66,6 +66,10 @@ Upgrade to [Facebook Feed Pro](https://web-dorado.com/products/wordpress-faceboo
66
 
67
  == Changelog ==
68
 
 
 
 
 
69
  = 1.0.16 =
70
  * Fixed: Conflict with Visual Composer
71
  * Changed: Data optimization
4
  Tags: customizable facebook feed, facebook, facebook events, facebook feed, facebook group, facebook like box, facebook likes, facebook page, facebook photos, facebook plugin, facebook posts, facebook likebox
5
  Requires at least: 3.4
6
  Tested up to: 4.7
7
+ Stable tag: 1.0.17
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
66
 
67
  == Changelog ==
68
 
69
+ = 1.0.17 =
70
+ * Added: Overview page
71
+ * Changed: Deactivation
72
+
73
  = 1.0.16 =
74
  * Fixed: Conflict with Visual Composer
75
  * Changed: Data optimization
wd/README.md ADDED
@@ -0,0 +1,129 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Version: 1.0.5
2
+
3
+
4
+ Usage:
5
+
6
+ Copy and paste wd library into your plugin folder.
7
+ In your plugin main file check if library main DoradoWeb class doesn't exist, include it
8
+ if( !class_exists("DoradoWeb") ){
9
+ require_once(PATH_TO_YOUR_PLUGIN_DIR . '/wd/start.php');
10
+ }
11
+
12
+ Then call dorado_web_init($options) function.
13
+ $options = array (
14
+ "prefix" => "your_plugin_prefix",
15
+ "wd_plugin_id" => your_plugin_id,
16
+ "plugin_title" => "your plugin titile",
17
+ "plugin_wordpress_slug" => "your plugin wordpress slug",
18
+ "plugin_dir" => 'path to your plugin dir',
19
+ "plugin_main_file" => 'path to your plugin main file',
20
+ "description" => 'your plugin description',
21
+
22
+ "plugin_features" => array(
23
+ 0 => array(
24
+ "title" => "feature title 1",
25
+ "description" => "feature 1 description",
26
+ ),
27
+ 1 => array(
28
+ "title" => "feature title 2",
29
+ "description" => "feature 2 description",
30
+ ),
31
+ ...
32
+ ),
33
+ "user_guide" => array(
34
+ 0 => array(
35
+ "main_title" => "user guide step 1",
36
+ "url" => "link to step 1",
37
+ "titles" => array(
38
+ array(
39
+ "title" => "step 1 sub title",
40
+ "url" => "link to step 1 sub"
41
+ )
42
+ )
43
+ ),
44
+ ...
45
+ ),
46
+ "overview_welcome_image" => null,
47
+ "video_youtube_id" => "your plugin youtube video id", // e.g. https://www.youtube.com/watch?v=acaexefeP7o youtube id is the acaexefeP7o
48
+ "plugin_wd_url" => "https://web-dorado.com/products/your plugin",
49
+ "plugin_wd_demo_link" => "http://wpdemo.web-dorado.com/your plugin",
50
+ "plugin_wd_addons_link" => "https://web-dorado.com/products/your plugin addons",
51
+ "after_subscribe" => "after subsribe page", // this can be plagin overview page or set up page admin.php?page=overview_YOUR_PREFIX
52
+ "plugin_wizard_link" => "your plugin wizard page",
53
+ "plugin_menu_title" => "Your plugin menu title",
54
+ "plugin_menu_icon" => "path to menu icon",
55
+ "deactivate" => true,
56
+ "subscribe" => true,
57
+ "custom_post" => false, // if true => edit.php?post_type=contact
58
+ "menu_capability" => "manage_options",
59
+ "menu_position" => null,
60
+ );
61
+
62
+ Fully documentation of dorado_web_init options:
63
+
64
+ prefix - (type string) your plugin prefix
65
+ wd_plugin_id - (type int) plugin id ( in web-dorado database, you use it for update functionality)
66
+ plugin_wd_zip_name - (type string) plugin zip name (in web-dorado database, ask Armen or Sergey )
67
+ plugin_title - type string) plugin title (
68
+ plugin_wordpress_slug - (type string) plugin slug
69
+ plugin_dir - (type string) full file path to your plugin directory
70
+ plugin_main_file - (type string) path to your plugin main file (__FILE__)
71
+ description - (type string) plugin short description
72
+
73
+ plugin_features - (type array) plugin top 5 features from web-dorado.com
74
+ e.g. (for google maps plugin)
75
+ array(
76
+ 0 => array(
77
+ "title" => __("Easy set up", "gmwd"),
78
+ "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"),
79
+ ),
80
+ 1 => array(
81
+ "title" => __("Unlimited Everything", "gmwd"),
82
+ "description" => __("Display unlimited maps on any page or post. Same is true for markers, rectangles, circles, polygons and polylines.", "gmwd"),
83
+ ),
84
+ ....
85
+ )
86
+
87
+ user_guide - (type array) plugin user guide links from web-dorado.com
88
+ e.g. (for google maps plugin)
89
+ array(
90
+ 0 => array(
91
+ "main_title" => __("Installation Wizard/ Options Menu", "gmwd"),
92
+ "url" => "https://web-dorado.com/wordpress-google-maps/installation-wizard-options-menu.html",
93
+ "titles" => array(
94
+ array(
95
+ "title" => __("Configuring Map API Key", "gmwd"),
96
+ "url" => "https://web-dorado.com/wordpress-google-maps/installation-wizard-options-menu/configuring-api-key.html"
97
+ )
98
+ )
99
+ ),
100
+ 1 => array(
101
+ "main_title" => __("Creating Map", "gmwd"),
102
+ "url" => "https://web-dorado.com/wordpress-google-maps/creating-map.html",
103
+ "titles" => array()
104
+ ),
105
+ )
106
+
107
+ video_youtube_id - (type string) if your plugin has video, video's id, else null
108
+ ( e.g. for https://www.youtube.com/watch?v=acaexefeP7o , youtube id is the 'acaexefeP7o' )
109
+
110
+ plugin_wd_url - (type string) plugin page url
111
+ (e.g. https://web-dorado.com/products/wordpress-google-maps-plugin.html)
112
+
113
+ plugin_wd_demo_link - (type string) plugin demo url
114
+ plugin_wd_addons_link - (type string) if plugin has addons , plugin addons link, else null
115
+ plugin_wizard_link - (type string) if plugin has wizard, wizard page , else null
116
+ ( e.g. admin_url( 'index.php?page=gmwd_setup' ) )
117
+
118
+ plugin_menu_title - (type string) plugin wordpress backend menu title
119
+ plugin_menu_icon - (type string) path to plugin wordpress backend menu icon
120
+ ( e.g. GMWD_URL . '/images/icon-map-20.png' )
121
+ deactivate - (type bool) if plugin free deactivate = true, else deactivate = false
122
+ subscribe - (type bool) if plugin free subscribe = true, else subscribe = false
123
+ custom_post - ( type string) if plugin has not custom posts it must be top level menu slug, else toplevel menu url , e.g. edit.php?post_type=contact
124
+ menu_capability - (type string) top level menu capability e.g. manage_options
125
+ menu_position - (type string) top level menu position , default is null
126
+
127
+
128
+
129
+
wd/assets/css/deactivate_popup.css ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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: 281px;
23
+ margin: auto;
24
+ display: none;
25
+ box-sizing: border-box;
26
+ }
27
+
28
+
29
+ .wd-deactivate-popup-header{
30
+ border-bottom: 1px solid #ccc;
31
+ padding: 18px 40px;
32
+ font-size: 16px;
33
+ background: rgba(221, 221, 221, 0.14);
34
+ }
35
+ .wd-deactivate-popup-body{
36
+ padding: 20px 40px;
37
+ border-bottom: 1px solid #ccc;
38
+ }
39
+ .wd-deactivate-popup-body input[type=text]{
40
+ width: 220px;
41
+ }
42
+ .wd-deactivate-popup-body textarea{
43
+ width: 100%;
44
+ }
45
+
46
+ .wd-btns{
47
+ position: absolute;
48
+ bottom: 19px;
49
+ right: 19px
50
+ }
51
+
52
+ .additional_details_wrap{
53
+ margin-top: 20px;
54
+ }
55
+
56
+ .wd-additional-active{
57
+ background: rgba(204, 204, 204, 0.18);
58
+ padding: 15px;
59
+ margin: 14px 0px 5px;
60
+ }
61
+ .wd-popup-active1{
62
+ height: 523px !important;
63
+ }
64
+
65
+ .wd-popup-active2{
66
+ height: 426px !important
67
+ }
68
+ .wd-deactivate-popup-opacity{
69
+ width: 100%;
70
+ height: 100%;
71
+ background: #D9D9D9;
72
+ opacity: 0.3;
73
+ z-index: 45;
74
+ position: absolute;
75
+ display: none;
76
+ }
77
+
78
+ .wd-deactivate-popup-opacity .wd-img-loader{
79
+ position: absolute;
80
+ top: 0;
81
+ left: 0;
82
+ right: 0;
83
+ bottom: 0;
84
+ margin: auto;
85
+ z-index: 63;
86
+ }
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,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ .wd-notice-logo {
13
+ clear: both;
14
+ content: "";
15
+ display: block;
16
+ background-size: 108px auto;
17
+ background-repeat: no-repeat;
18
+ background-position: 0 45%;
19
+ width: 125px;
20
+ position: absolute;
21
+ top: 0;
22
+ bottom: 0;
23
+ left: 5px;
24
+ }
25
+ .wd-admin-notice > .dashicons {
26
+ color: #424242;
27
+ position: absolute;
28
+ right: 20px;
29
+ top: 40%;
30
+ }
31
+ .wd-notice-title {
32
+ font-size: 24px;
33
+ margin: 0;
34
+ }
35
+ .wd-notice-body {
36
+ font-weight: normal;
37
+ margin: 5px 0;
38
+ }
39
+ .wd-notice-body:after {
40
+ clear: both;
41
+ content: "";
42
+ display: block;
43
+ }
44
+ .wd-notice-body li {
45
+ float: left;
46
+ margin-right: 20px;
47
+ }
48
+ .wd-notice-body .dashicons {
49
+ font-size: 17px;
50
+ }
51
+ .wd-blue {
52
+ color: #10738B;
53
+ }
54
+
55
+ .admin-notice-promo {
56
+ background: #fff;
57
+ border-top: 4px;
58
+ display: block;
59
+ min-height: 68px;
60
+ padding: 10px 40px 0px 10px;
61
+ margin: 10px 0;
62
+ position: relative;
63
+ }
64
+
65
+ .admin-notice-promo:after {
66
+ content: '';
67
+ display: table;
68
+ clear: both;
69
+ }
70
+
71
+ .close-promo {
72
+ position: absolute;
73
+ top: 5px;
74
+ right: 5px;
75
+ }
76
+
77
+ .promo {
78
+ background-position: center;
79
+ background-repeat: no-repeat;
80
+ background-size: 972px 200px;
81
+ height: 200px;
82
+ max-width: 100%;
83
+ }
84
+
85
+ .promo a {
86
+ display: block;
87
+ height: 100%;
88
+ }
wd/assets/css/overview.css ADDED
@@ -0,0 +1,455 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ .wd-video_container{
35
+ text-align: center;
36
+ }
37
+ .overview_welcome{
38
+ background: url(img/welcome_bg.png) no-repeat;
39
+ margin: 21px 0px;
40
+ background-size: 100% 100%;
41
+ line-height: 28px;
42
+ }
43
+ .overview_welcome .wd-cell{
44
+ padding: 15px;
45
+ }
46
+ .overview_welcome .wd-cell:first-child{
47
+ position: relative;
48
+ }
49
+
50
+ .overview_welcome h2{
51
+ text-transform: uppercase;
52
+ font-size: 26px;
53
+ margin-top: 0;
54
+ margin-bottom: 15px;
55
+ color: #424141;
56
+ }
57
+ .overview_welcome img{
58
+ width: 120px;
59
+ padding-right: 100px;
60
+ padding-left: 25px;
61
+ }
62
+ .overview_wrap{
63
+ width: 935px;
64
+ background: #fff;
65
+ }
66
+ .overview_welcome .overview_welcome_text{
67
+ font-size: 15px;
68
+ color: #424141;
69
+ }
70
+ .overview_tabs:after, .deals_content:after, .deal_desc_footer:after{
71
+ content: "";
72
+ display: table;
73
+ clear: both;
74
+ }
75
+ .overview_tabs li{
76
+ float: left;
77
+ width: 16.666%;
78
+ }
79
+
80
+ .overview_tabs li a{
81
+ text-decoration: none !important;
82
+ color: #000;
83
+ background: #D6D6D6;
84
+ background: -webkit-linear-gradient(#D6D6D6, #D7D7D7, #D6D6D6); /* For Safari 5.1 to 6.0 */
85
+ background: -o-linear-gradient(#D6D6D6, #D7D7D7, #D6D6D6); /* For Opera 11.1 to 12.0 */
86
+ background: -moz-linear-gradient(#D6D6D6, #D7D7D7, #D6D6D6); /* For Firefox 3.6 to 15 */
87
+ background: linear-gradient(#D6D6D6, #D7D7D7, #D6D6D6); /* Standard syntax */
88
+ text-transform: uppercase;
89
+ display: block;
90
+ padding: 7px 10px;
91
+ text-align: center;
92
+ font-weight: bold;
93
+ border-top: 4px solid #F1F1F1;
94
+ position: relative;
95
+ top: -4px;
96
+ }
97
+ .overview_tabs li a:hover,.overview_tabs li a:active, .overview_tabs li a:focus, .overview_tab_active{
98
+ background: #fff !important;
99
+ border-top: 4px solid #2A495F !important;
100
+
101
+ }
102
+ #welcome, #user_guide, #support, .deals_content{
103
+ padding: 15px 10px;
104
+ background: #fff;
105
+ }
106
+ .plugin_feature_title{
107
+ font-size: 19px;
108
+ }
109
+ .more_features_wrap{
110
+ margin-top: 25px;
111
+ text-align: right;
112
+ }
113
+ .more_features, .more_features:hover, .more_features:focus{
114
+ color: #fff;
115
+ background: #00384F;
116
+ padding: 3px 15px;
117
+ text-decoration: none;
118
+ }
119
+ .user_guide_item{
120
+ margin-bottom: 19px;
121
+ }
122
+ .user_guide_title, .user_guide_title:hover, .user_guide_title:focus{
123
+ font-size: 16px;
124
+ color: #192D3B;
125
+ font-weight: bold;
126
+ margin-bottom: 5px;
127
+ text-decoration: none;
128
+ }
129
+ .user_guide_titles, .user_guide_titles:hover, .user_guide_titles:focus{
130
+ color: #192D3B;
131
+ text-decoration: none;
132
+ }
133
+ .user_guide_demo, .user_guide_plugin, .user_guide_support_forum, .user_guide_addons, .user_guide_faq,
134
+ .user_guide_demo:hover, .user_guide_plugin:hover, .user_guide_support_forum:hover, .user_guide_addons:hover, .user_guide_faq:hover{
135
+ background-color: #F5F5F5;
136
+ background-repeat: no-repeat;
137
+ background-position: right -4px center;
138
+ border-top-left-radius: 25px;
139
+ border-bottom-left-radius: 25px;
140
+ padding: 3px 23px 3px 16px;
141
+ width: 144px;
142
+ font-weight: bold;
143
+ text-transform: uppercase;
144
+ color: #192D3B;
145
+ margin-bottom: 7px;
146
+ display: block;
147
+ text-decoration: none;
148
+ }
149
+ .user_guide_demo{
150
+ background-image: url(img/ug-icon-1.png);
151
+ }
152
+ .user_guide_plugin{
153
+ background-image: url(img/ug-icon-2.png);
154
+ }
155
+ .user_guide_support_forum{
156
+ background-image: url(img/ug-icon-3.png);
157
+ }
158
+ .user_guide_addons{
159
+ background-image: url(img/ug-icon-4.png);
160
+ }
161
+ .user_guide_faq{
162
+ background-image: url(img/ug-icon-5.png);
163
+ }
164
+
165
+ #support .wd-support-main{
166
+ width: 800px;
167
+ margin: 0 auto;
168
+ font-size: 16px;
169
+ text-align: center;
170
+ margin-bottom: 15px;
171
+
172
+ }
173
+ .wd-overview-site-deatils{
174
+ width: 800px;
175
+ background: #FBFBFB;
176
+ padding: 10px;
177
+ margin: 0 auto;
178
+ }
179
+ .wd-overview-site-deatils h2, .wd-overview-site-deatils p{
180
+ text-align: center;
181
+ }
182
+ .wd-overview-site-deatils p{
183
+ font-size: 16px;
184
+ }
185
+ .contact_us, .contact_us:hover, .contact_us:focus{
186
+ display: block;
187
+ background: #27475D;
188
+ color: #fff;
189
+ text-decoration: none;
190
+ width: 173px;
191
+ padding: 8px 0px;
192
+ text-align: center;
193
+ margin-bottom: 5px;
194
+ font-size: 16px;
195
+ margin-left: 8px;
196
+ border: 1px solid #B7B7B7;
197
+ text-transform: uppercase;
198
+ }
199
+
200
+ .support_email{
201
+ color: #F47A31;
202
+ }
203
+ .wd-site-deatils{
204
+ padding: 23px;
205
+ background: #f1f1f1;
206
+ box-sizing: border-box;
207
+ }
208
+ .wd-site-deatils textarea{
209
+ width: 100%;
210
+ }
211
+ .contact_us{
212
+ margin-left: auto !important;
213
+ margin-right: auto;
214
+ margin-top: 10px;
215
+ }
216
+ #wd-copy{
217
+ display: block;
218
+ background: #27475D;
219
+ color: #fff;
220
+ padding: 5px 8px;
221
+ text-align: center;
222
+ margin-bottom: 5px;
223
+ font-size: 14px;
224
+ border: 1px solid #B7B7B7;
225
+ cursor: pointer;
226
+ }
227
+ #plugins{
228
+ padding-bottom: 15px;
229
+ background: #fff;
230
+ }
231
+
232
+ .deals_header_plugins{
233
+ background: url(img/plugins_header_bg.png) #fff no-repeat;
234
+ }
235
+ .deals_header_themes{
236
+ background: url(img/themes_headrer_bg.png) #fff no-repeat;
237
+ }
238
+ .deals_header{
239
+ background-size: cover;
240
+ height: 241px;
241
+ }
242
+ .deals_header .wd-table .wd-cell{
243
+ position: relative;
244
+ }
245
+ .deals_header_plugins .wd-table .wd-cell{
246
+ padding: 27px 10px 10px;
247
+ }
248
+ .deals_header_themes .wd-table .wd-cell{
249
+ padding: 0px 10px 10px;
250
+ }
251
+ .deals_header_plugins .wd-table .wd-cell:first-child{
252
+ padding-left: 23px;
253
+ width: 30%;
254
+ }
255
+ .deals_header_themes .wd-table .wd-cell:first-child{
256
+ padding-left: 23px;
257
+ width: 36%;
258
+ }
259
+ .deals_header_themes .wd-table{
260
+ height: 100%
261
+ }
262
+
263
+ .titles_wrap{
264
+ display: inline-block;
265
+ }
266
+ .deals_main_title, .deals_secondary_title{
267
+ color: #00425A;
268
+ font-weight: bold;
269
+ line-height: 55px;
270
+ text-align: center;
271
+ text-transform: uppercase;
272
+ }
273
+
274
+ .deals_main_title{
275
+ font-size: 39px;
276
+ }
277
+ .deals_secondary_title{
278
+ font-size: 30px;
279
+ }
280
+
281
+ .higlight{
282
+ color: #E5682E;
283
+ }
284
+
285
+ .deals_save{
286
+ position: absolute;
287
+ right: 87px;
288
+ -webkit-transform: rotate(-27deg);
289
+ transform: rotate(-30deg);
290
+ font-weight: bold;
291
+ font-size: 39px;
292
+ color: #E5682E;
293
+ text-transform: uppercase;
294
+ }
295
+ .deals_header_plugins .deals_save{
296
+ bottom: 37px;
297
+ }
298
+ .deals_header_themes .deals_save{
299
+ bottom: 76px;
300
+ }
301
+ .deal_block{
302
+ width: 31.2%;
303
+ display: inline-block;
304
+ vertical-align: top;
305
+ margin: 5px;
306
+ }
307
+ .deal_title{
308
+ text-align: center;
309
+ text-transform: uppercase;
310
+ font-size: 20px;
311
+ background: #FAFAFA;
312
+ padding: 10px 5px;
313
+ line-height: 23px;
314
+ }
315
+ .deal_title a, .deal_title a:hover, .deal_title a:focus{
316
+ text-decoration: none !important;
317
+ color: #000 !important;
318
+ }
319
+ .deal_desc{
320
+ background: #F5F5F5;
321
+ padding: 10px 5px;
322
+ }
323
+ .deal_desc p{
324
+ margin-bottom: 15px;
325
+ }
326
+
327
+ .deal_desc_footer .downloads{
328
+ float: left;
329
+ }
330
+ .deal_desc_footer .download_btn{
331
+ /*float: right;*/
332
+ margin-top: 10px;
333
+ text-align: center;
334
+ }
335
+ .deal_desc_footer .downloads .spans span:first-child{
336
+ background: #26455A;
337
+ color: #fff;
338
+ text-transform: uppercase;
339
+ padding: 5px;
340
+ display: inline-block;
341
+ }
342
+ .deal_desc_footer .downloads .spans span:last-child{
343
+ background: #fff;
344
+ padding: 5px;
345
+ border-top-right-radius: 25px;
346
+ border-bottom-right-radius: 25px;
347
+ margin-left: -3px;
348
+ }
349
+
350
+ .download_btn a, .download_btn a:hover, .download_btn a:focus{
351
+ color: #fff !important;
352
+ background: #E97025;
353
+ text-decoration: none;
354
+ padding: 4px 16px;
355
+ display: inline-block;
356
+ margin-top: 10px;
357
+ border-radius: 13px;
358
+ text-transform: uppercase;
359
+ }
360
+
361
+ .stars-container {
362
+ position: relative;
363
+ display: inline-block;
364
+ color: transparent;
365
+ font-size: 21px;
366
+ }
367
+
368
+ .stars-container:before {
369
+ position: absolute;
370
+ top: 0;
371
+ left: 0;
372
+ content: '★★★★★';
373
+ color: #F4AB7F;
374
+ }
375
+
376
+ .stars-container:after {
377
+ position: absolute;
378
+ top: 0;
379
+ left: 0;
380
+ content: '★★★★★';
381
+ color: #F4762A;
382
+ overflow: hidden;
383
+ }
384
+
385
+ .get_all_deals{
386
+ margin: 15px 0px;
387
+ text-align: center;
388
+ }
389
+ .get_all_deals a, .get_all_deals a:hover, .get_all_deals a:active, .get_all_deals a:focus {
390
+ color: #fff !important;
391
+ background: #E97025;
392
+ text-decoration: none;
393
+ padding: 8px 21px;
394
+ display: inline-block;
395
+ margin-top: 10px;
396
+ text-transform: uppercase;
397
+ border: 2px solid #D2631E;
398
+ font-size: 21px;
399
+ }
400
+
401
+ #themes{
402
+ border-top: 35px solid #F1F1F1;
403
+ padding-bottom: 15px;
404
+ }
405
+
406
+ .theme_block{
407
+ width: 48%;
408
+ margin: 5px;
409
+ border: 1px solid #ECE9E9;
410
+ float: left;
411
+ }
412
+ .theme_block a, .theme_block a:hover, .theme_block a:focus{
413
+ display: block;
414
+ text-decoration: none !important;
415
+ background: #F7F7F7;
416
+ color: #000 !important;
417
+ padding: 5px;
418
+ }
419
+
420
+ /* noteices */
421
+ .notice_wrap{
422
+ padding: 15px;
423
+ border: 1px solid #C4C4C4;
424
+ width: 98%;
425
+ margin: 10px auto;
426
+ box-sizing: border-box;
427
+
428
+ }
429
+ .notice_wrap .notice_title, .notice_wrap .notice_title:hover, .notice_wrap .notice_title:focus{
430
+ color: #E5682E !important;
431
+ text-decoration: none;
432
+ margin-bottom: 17px;
433
+ font-size: 20px;
434
+ display: block;
435
+ }
436
+
437
+ .notice_wrap .notice_txt{
438
+ font-size: 15px;
439
+ }
440
+
441
+
442
+ .wd-tour{
443
+ text-align: right;
444
+ }
445
+ .wd-tour-btn, .wd-tour-btn:hover, .wd-tour-btn:focus{
446
+ background: #F47629;
447
+ color: #fff;
448
+ text-decoration: none;
449
+ padding: 5px;
450
+ display: inline-block;
451
+ font-size: 16px;
452
+ }
453
+
454
+
455
+
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/bwg_main_plugin.png ADDED
Binary file
wd/assets/img/ecwd_main_plugin.png ADDED
Binary file
wd/assets/img/ewd_main_plugin.png ADDED
Binary file
wd/assets/img/faqwd_main_plugin.png ADDED
Binary file
wd/assets/img/ffwd_main_plugin.png ADDED
Binary file
wd/assets/img/fwd_main_plugin.png ADDED
Binary file
wd/assets/img/gawd_main_plugin.png ADDED
Binary file
wd/assets/img/gmwd_main_plugin.png ADDED
Binary file
wd/assets/img/loader.gif ADDED
Binary file
wd/assets/img/mwd_main_plugin.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
featured/images/google-maps.png → wd/assets/img/plugins/wd-google-maps.png RENAMED
File without changes
featured/images/instagram_feed.png → wd/assets/img/plugins/wd-instagram-feed.png RENAMED
File without changes
wd/assets/img/spinner.gif ADDED
Binary file
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/swd_main_plugin.png ADDED
Binary file
wd/assets/img/twd_main_plugin.png ADDED
Binary file
wd/assets/img/wd_ads_main_plugin.png ADDED
Binary file
wd/assets/img/wde_main_plugin.png ADDED
Binary file
wd/assets/img/wdi_main_plugin.png ADDED
Binary file
wd/assets/img/wdps_main_plugin.png ADDED
Binary file
wd/assets/img/wds_main_plugin.png ADDED
Binary file
wd/assets/img/wp_logo.png ADDED
Binary file
wd/assets/img/ytwd_main_plugin.png ADDED
Binary file
wd/assets/js/deactivate_popup.js ADDED
@@ -0,0 +1,106 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ////////////////////////////////////////////////////////////////////////////////////////
2
+ // Events //
3
+ ////////////////////////////////////////////////////////////////////////////////////////
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Constants //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Variables //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ var deactivated = false;
11
+ var additionalInfo = "";
12
+ var btnVal = 3;
13
+
14
+ ////////////////////////////////////////////////////////////////////////////////////////
15
+ // Constructor & Destructor //
16
+ ////////////////////////////////////////////////////////////////////////////////////////
17
+
18
+
19
+ ////////////////////////////////////////////////////////////////////////////////////////
20
+ // Public Methods //
21
+ ////////////////////////////////////////////////////////////////////////////////////////
22
+ function wdReady(prefix){
23
+
24
+ jQuery(document).on("click", "." + window[prefix + "WDDeactivateVars"].deactivate_class, function(){
25
+ jQuery(".wd-" + prefix + "-opacity").show();
26
+ jQuery(".wd-" + prefix + "-deactivate-popup").show();
27
+ if(jQuery(this).attr("data-uninstall") == "1"){
28
+ btnVal = 2 ;
29
+ }
30
+
31
+ return false;
32
+ });
33
+
34
+ jQuery(document).on("change", "[name=" + prefix + "_reasons]", function(){
35
+
36
+ jQuery("." + prefix + "_additional_details_wrap").html("");
37
+ jQuery(".wd-" + prefix + "-deactivate-popup").removeClass("wd-popup-active1 wd-popup-active2");
38
+ if(jQuery(this).val() == "reason_plugin_is_hard_to_use_technical_problems"){
39
+
40
+ additionalInfo = '<div class="wd-additional-active"><div><strong>Please describe your issue.</strong></div><br>' +
41
+ '<textarea name="' + prefix + '_additional_details" rows = "4"></textarea><br>' +
42
+ '<div>Our support will contact <input type="text" name="' + prefix + '_email" value="' + window[prefix + "WDDeactivateVars"].email + '"> shortly.</div>'+
43
+ '<br><div><button class="button button-primary wd-' + prefix + '-deactivate" data-val="' + btnVal + '">Submit support ticket</button></div></div>';
44
+ jQuery("." + prefix + "_additional_details_wrap").append(additionalInfo);
45
+ jQuery(".wd-" + prefix + "-deactivate-popup").addClass("wd-popup-active1");
46
+
47
+ }
48
+ else if(jQuery(this).val() == "reason_free_version_limited"){
49
+ additionalInfo = '<div class="wd-additional-active">' +
50
+ '<div><strong>We believe our premium version will fit your needs.</strong></div>' +
51
+ '<div><a href="' + window[prefix + "WDDeactivateVars"].plugin_wd_url+ '" target="_blank">Try with 30 day money back guarantee.</a></div>';
52
+
53
+ jQuery("." + prefix + "_additional_details_wrap").append(additionalInfo);
54
+ jQuery(".wd-" + prefix + "-deactivate-popup").addClass("wd-popup-active2");
55
+ }
56
+ else if(jQuery(this).val() == "reason_premium_expensive"){
57
+ additionalInfo = '<div class="wd-additional-active">' +
58
+ '<div><strong>We have a special offer for you.</strong></div>' +
59
+ '<div>Submit this form to get the offer to <input type="text" name="' + prefix + '_email" value="' + window[prefix + "WDDeactivateVars"].email + '"></div>' +
60
+ '<br><div><button class="button button-primary wd-' + prefix + '-deactivate" data-val="' + btnVal + '">Submit</button></div></div>';
61
+
62
+ jQuery("." + prefix + "_additional_details_wrap").append(additionalInfo);
63
+ jQuery(".wd-" + prefix + "-deactivate-popup").addClass("wd-popup-active2");
64
+ }
65
+
66
+ jQuery("#wd-" + prefix + "-deactivate").hide();
67
+ jQuery("#wd-" + prefix + "-submit-and-deactivate").show();
68
+
69
+ });
70
+ jQuery(document).on("keyup", "[name=" + prefix + "_additional_details]", function(){
71
+ if(jQuery(this).val().trim() || jQuery("[name=" + prefix + "_reasons]:checked").length > 0){
72
+ jQuery("#wd-" + prefix + "-deactivate").hide();
73
+ jQuery("#wd-" + prefix + "-submit-and-deactivate").show();
74
+ }
75
+ else{
76
+ jQuery("#wd-" + prefix + "-deactivate").show();
77
+ jQuery("#wd-" + prefix + "-submit-and-deactivate").hide();
78
+ }
79
+
80
+ });
81
+ jQuery(document).on("click", ".wd-" + prefix + "-deactivate", function(){
82
+ jQuery(".wd-deactivate-popup-opacity-" + prefix).show();
83
+ if(jQuery(this).hasClass("wd-clicked") == false){
84
+ jQuery(this).addClass("wd-clicked");
85
+ jQuery("[name=" + prefix + "_submit_and_deactivate]").val(jQuery(this).attr("data-val"));
86
+ jQuery("#" + prefix + "_deactivate_form").submit();
87
+ }
88
+ return false;
89
+ });
90
+
91
+ jQuery(document).on("click", ".wd-" + prefix + "-cancel, .wd-opacity", function(){
92
+ jQuery(".wd-" + prefix + "-opacity").hide();
93
+ jQuery(".wd-" + prefix + "-deactivate-popup").hide();
94
+ return false;
95
+ });
96
+
97
+ }
98
+ ////////////////////////////////////////////////////////////////////////////////////////
99
+ // Getters & Setters //
100
+ ////////////////////////////////////////////////////////////////////////////////////////
101
+ ////////////////////////////////////////////////////////////////////////////////////////
102
+ // Private Methods //
103
+ ////////////////////////////////////////////////////////////////////////////////////////
104
+ ////////////////////////////////////////////////////////////////////////////////////////
105
+ // Listeners //
106
+ ////////////////////////////////////////////////////////////////////////////////////////
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,127 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+
6
+ class DoradoWebConfig {
7
+ public static $instance;
8
+
9
+ public $prefix = null;
10
+ public $wd_plugin_id = null;
11
+ public $plugin_title = null;
12
+ public $plugin_wordpress_slug = null;
13
+ public $plugin_dir = null;
14
+ public $plugin_main_file = null;
15
+ public $description = null;
16
+ public $plugin_features = null;
17
+ public $user_guide = null;
18
+ public $overview_welcome_image = null;
19
+ public $video_youtube_id = null;
20
+ public $plugin_wd_url = null;
21
+ public $plugin_wd_demo_link = null;
22
+ public $plugin_wd_addons_link = null;
23
+ public $plugin_wizard_link = null;
24
+ public $after_subscribe = null;
25
+ public $plugin_menu_title = null;
26
+ public $plugin_menu_icon = null;
27
+ public $wd_dir = null;
28
+ public $wd_dir_includes = null;
29
+ public $wd_dir_templates = null;
30
+ public $wd_dir_assets = null;
31
+ public $wd_url_css = null;
32
+ public $wd_url_js = null;
33
+ public $wd_url_img = null;
34
+ public $deactivate = null;
35
+ public $subscribe = null;
36
+ public $custom_post = null;
37
+ public $menu_capability = null;
38
+ public $menu_position = null;
39
+
40
+ public function set_options( $options ){
41
+
42
+ if(isset( $options["prefix"] )) {
43
+ $this->prefix = $options["prefix"];
44
+ }
45
+ if(isset( $options["wd_plugin_id"] )) {
46
+ $this->wd_plugin_id = $options["wd_plugin_id"];
47
+ }
48
+ if(isset( $options["plugin_title"] )) {
49
+ $this->plugin_title = $options["plugin_title"];
50
+ }
51
+ if(isset( $options["plugin_wordpress_slug"] )) {
52
+ $this->plugin_wordpress_slug = $options["plugin_wordpress_slug"];
53
+ }
54
+ if(isset( $options["plugin_dir"] )) {
55
+ $this->plugin_dir = $options["plugin_dir"];
56
+ }
57
+ if(isset( $options["plugin_main_file"] )) {
58
+ $this->plugin_main_file = $options["plugin_main_file"];
59
+ }
60
+
61
+ if(isset( $options["description"] )) {
62
+ $this->description = $options["description"];
63
+ }
64
+ if(isset( $options["plugin_features"] )) {
65
+ $this->plugin_features = $options["plugin_features"];
66
+ }
67
+ if(isset( $options["user_guide"] )) {
68
+ $this->user_guide = $options["user_guide"];
69
+ }
70
+ if(isset( $options["video_youtube_id"] )) {
71
+ $this->video_youtube_id = $options["video_youtube_id"];
72
+ }
73
+ if(isset( $options["overview_welcome_image"] )) {
74
+ $this->overview_welcome_image = $options["overview_welcome_image"];
75
+ }
76
+ if(isset( $options["plugin_wd_url"] )) {
77
+ $this->plugin_wd_url = $options["plugin_wd_url"];
78
+ }
79
+ if(isset( $options["plugin_wd_demo_link"] )) {
80
+ $this->plugin_wd_demo_link = $options["plugin_wd_demo_link"];
81
+ }
82
+ if(isset( $options["plugin_wd_addons_link"] )) {
83
+ $this->plugin_wd_addons_link = $options["plugin_wd_addons_link"];
84
+ }
85
+ if(isset( $options["plugin_wizard_link"] )) {
86
+ $this->plugin_wizard_link = $options["plugin_wizard_link"];
87
+ }
88
+ if(isset( $options["after_subscribe"] )) {
89
+ $this->after_subscribe = $options["after_subscribe"];
90
+ }
91
+ if(isset( $options["plugin_menu_title"] )) {
92
+ $this->plugin_menu_title = $options["plugin_menu_title"];
93
+ }
94
+ if(isset( $options["plugin_menu_icon"] )) {
95
+ $this->plugin_menu_icon = $options["plugin_menu_icon"];
96
+ }
97
+ if(isset( $options["deactivate"] )) {
98
+ $this->deactivate = $options["deactivate"];
99
+ }
100
+ if(isset( $options["subscribe"] )) {
101
+ $this->subscribe = $options["subscribe"];
102
+ }
103
+ if(isset( $options["custom_post"] )) {
104
+ $this->custom_post = $options["custom_post"];
105
+ }
106
+ if(isset( $options["menu_capability"] )) {
107
+ $this->menu_capability = $options["menu_capability"];
108
+ }
109
+ if(isset( $options["menu_position"] )) {
110
+ $this->menu_position = $options["menu_position"];
111
+ }
112
+
113
+ // directories
114
+ $this->wd_dir = dirname( $this->plugin_main_file ) . '/wd';
115
+ $this->wd_dir_includes = $this->wd_dir . '/includes';
116
+ $this->wd_dir_templates = $this->wd_dir . '/templates';
117
+ $this->wd_dir_assets = $this->wd_dir . '/assets';
118
+ $this->wd_url_css = plugins_url( plugin_basename( $this->wd_dir ) ) . '/assets/css';
119
+ $this->wd_url_js = plugins_url( plugin_basename( $this->wd_dir ) ) . '/assets/js';
120
+ $this->wd_url_img = plugins_url( plugin_basename( $this->wd_dir ) ) . '/assets/img';
121
+ }
122
+
123
+
124
+ }
125
+
126
+
127
+
wd/includes/api.php ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( !defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+
6
+ class DoradoWebApi{
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Events //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Constants //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Variables //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+
17
+ public $config ;
18
+ public $userhash = array();
19
+
20
+
21
+ ////////////////////////////////////////////////////////////////////////////////////////
22
+ // Constructor & Destructor //
23
+ ////////////////////////////////////////////////////////////////////////////////////////
24
+ public function __construct( $config = array() ) {
25
+ $this->config = $config;
26
+ $this->userhash = $this->get_userhash();
27
+ }
28
+ ////////////////////////////////////////////////////////////////////////////////////////
29
+ // Public Methods //
30
+ ////////////////////////////////////////////////////////////////////////////////////////
31
+
32
+
33
+ public function get_remote_data( $id ) {
34
+ $remote_data_path = DORADO_WEB_API_PLUGIN_DATA_PATH . '/' . $this->userhash;
35
+ $request = wp_remote_get( ( str_replace( '_id_', $id, $remote_data_path ) ) );
36
+
37
+ if ( !is_wp_error($request) || wp_remote_retrieve_response_code($request) === 200 ) {
38
+ return json_decode($request['body'], true);
39
+ }
40
+ return false;
41
+ }
42
+
43
+
44
+ public function get_userhash(){
45
+ $wd_options = $this->config;
46
+ $userhash = 'nohash';
47
+ if ( file_exists( $wd_options->plugin_dir . '/.keep') && is_readable( $wd_options->plugin_dir . '/.keep' ) ) {
48
+ $f = fopen( $wd_options->plugin_dir . '/.keep', 'r' );
49
+ $userhash = fgets( $f );
50
+ fclose( $f );
51
+ }
52
+ return $userhash;
53
+ }
54
+
55
+ public function get_hash(){
56
+ $response = wp_remote_get("https://api.web-dorado.com/hash/" . $_SERVER['REMOTE_ADDR'] . "/" . $_SERVER['HTTP_HOST']);
57
+
58
+ $response_body = isset($response["body"]) ? json_decode($response["body"], true) : null;
59
+
60
+ if(is_array($response_body)){
61
+ $hash = $response_body["body"]["hash"];
62
+ }
63
+ else{
64
+ $hash = null;
65
+ }
66
+
67
+ return $hash;
68
+ }
69
+
70
+
71
+ ////////////////////////////////////////////////////////////////////////////////////////
72
+ // Getters & Setters //
73
+ ////////////////////////////////////////////////////////////////////////////////////////
74
+ ////////////////////////////////////////////////////////////////////////////////////////
75
+ // Private Methods //
76
+ ////////////////////////////////////////////////////////////////////////////////////////
77
+ ////////////////////////////////////////////////////////////////////////////////////////
78
+ // Listeners //
79
+ ////////////////////////////////////////////////////////////////////////////////////////
80
+
81
+ }
wd/includes/deactivate.php ADDED
@@ -0,0 +1,168 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+
6
+ class DoradoWebDeactivate{
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Events //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Constants //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Variables //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public $deactivate_reasons = array();
17
+ public $config;
18
+ // Reason IDs
19
+ const REASON_PLUGIN_IS_HARD_TO_USE_TECHNICAL_PROBLEMS = "reason_plugin_is_hard_to_use_technical_problems";
20
+ const REASON_FREE_VERSION_IS_LIMITED = "reason_free_version_limited";
21
+ const REASON_PRO_EXPENSIVE = "reason_premium_expensive";
22
+ const REASON_UPGRADING_TO_PAID_VERSION = "reason_upgrading_to_paid_version";
23
+ const REASON_TEMPORARY_DEACTIVATION = "reason_temporary_deactivation";
24
+
25
+ ////////////////////////////////////////////////////////////////////////////////////////
26
+ // Constructor & Destructor //
27
+ ////////////////////////////////////////////////////////////////////////////////////////
28
+ public function __construct( $config = array() ) {
29
+ $this->config = $config;
30
+ $wd_options = $this->config;
31
+
32
+ $this->deactivate_reasons = array(
33
+ 1 => array(
34
+ 'id' => self::REASON_PLUGIN_IS_HARD_TO_USE_TECHNICAL_PROBLEMS,
35
+ 'text' => __( 'Technical problems / hard to use', $wd_options->prefix ),
36
+ ),
37
+ 2 => array(
38
+ 'id' => self::REASON_FREE_VERSION_IS_LIMITED,
39
+ 'text' => __( 'Free version is limited', $wd_options->prefix ),
40
+ ),
41
+ 3 => array(
42
+ 'id' => self::REASON_PRO_EXPENSIVE,
43
+ 'text' => __( 'Premium is expensive', $wd_options->prefix ),
44
+ ),
45
+ 4 => array(
46
+ 'id' => self::REASON_UPGRADING_TO_PAID_VERSION,
47
+ 'text' => __( 'Upgrading to paid version', $wd_options->prefix ),
48
+ ),
49
+ 5 => array(
50
+ 'id' => self::REASON_TEMPORARY_DEACTIVATION,
51
+ 'text' => __( 'Temporary deactivation', $wd_options->prefix ),
52
+ ),
53
+ );
54
+
55
+ add_action( 'admin_footer', array( $this, 'add_deactivation_feedback_dialog_box' ) );
56
+ add_action( 'admin_init', array( $this, 'submit_and_deactivate' ) );
57
+
58
+
59
+ add_action( 'admin_enqueue_scripts', array( $this, 'scripts' ) );
60
+
61
+
62
+
63
+
64
+ }
65
+ ////////////////////////////////////////////////////////////////////////////////////////
66
+ // Public Methods //
67
+ ////////////////////////////////////////////////////////////////////////////////////////
68
+ public function add_deactivation_feedback_dialog_box(){
69
+ $deactivate_reasons = $this->deactivate_reasons;
70
+ $wd_options = $this->config;
71
+
72
+ ?>
73
+ <script>
74
+ jQuery(document).ready(function () {
75
+ wdReady("<?php echo $wd_options->prefix; ?>");
76
+ });
77
+ </script>
78
+ <?php
79
+ require ( $wd_options->wd_dir_templates . '/display_deactivation_popup.php' );
80
+ }
81
+
82
+
83
+
84
+ public function scripts(){
85
+ $wd_options = $this->config;
86
+ wp_enqueue_style( 'wd-deactivate-popup', $wd_options->wd_url_css . '/deactivate_popup.css', array(), get_option($wd_options->prefix . "_version" ) );
87
+ wp_enqueue_script( 'wd-deactivate-popup', $wd_options->wd_url_js . '/deactivate_popup.js', array(), get_option($wd_options->prefix . "_version" ));
88
+
89
+ $admin_data = wp_get_current_user();
90
+ wp_localize_script( 'wd-deactivate-popup', $wd_options->prefix . 'WDDeactivateVars' , array(
91
+ "prefix" => $wd_options->prefix ,
92
+ "deactivate_class" => $wd_options->prefix . '_deactivate_link',
93
+ "email" => $admin_data->data->user_email,
94
+ "plugin_wd_url" => $wd_options->plugin_wd_url,
95
+ ));
96
+
97
+
98
+ }
99
+ public function submit_and_deactivate(){
100
+ $wd_options = $this->config;
101
+ if( isset( $_POST[$wd_options->prefix . "_submit_and_deactivate"] ) ){
102
+
103
+ if( $_POST[$wd_options->prefix . "_submit_and_deactivate"] == 2 || $_POST[$wd_options->prefix . "_submit_and_deactivate"] == 3 ){
104
+ $api = new DoradoWebApi( $wd_options );
105
+ $hash = $api->get_hash();
106
+ if($hash != null){
107
+ $data = array();
108
+
109
+ $data["reason"] = isset($_POST[$wd_options->prefix . "_reasons"]) ? $_POST[$wd_options->prefix . "_reasons"] : "";
110
+ $data["site_url"] = site_url();
111
+ $data["plugin_slug"] = $wd_options->plugin_wordpress_slug;
112
+
113
+ $data["additional_details"] = isset($_POST[$wd_options->prefix . "_additional_details"]) ? $_POST[$wd_options->prefix . "_additional_details"] : "";
114
+ $admin_data = wp_get_current_user();
115
+ $data["email"] = isset($_POST[$wd_options->prefix . "_email"]) ? $_POST[$wd_options->prefix . "_email"] : $admin_data->data->user_email;
116
+ $user_first_name = get_user_meta( $admin_data->ID, "first_name", true );
117
+ $user_last_name = get_user_meta( $admin_data->ID, "last_name", true );
118
+
119
+ $data["name"] = $user_first_name || $user_last_name ? $user_first_name . " " . $user_last_name : $admin_data->data->user_login;
120
+ $data["hash"] = $hash;
121
+ $response = wp_remote_post( "https://api.web-dorado.com/deactivatereasons", array(
122
+ 'method' => 'POST',
123
+ 'timeout' => 45,
124
+ 'redirection' => 5,
125
+ 'httpversion' => '1.0',
126
+ 'blocking' => true,
127
+ 'headers' => array(),
128
+ 'body' => json_encode($data),
129
+ 'cookies' => array()
130
+ )
131
+ );
132
+
133
+ $response_body = isset( $response["body"] ) ? json_decode( $response["body"], true ) : null;
134
+ if( is_array( $response_body ) && $response_body["body"]["msg"] == "Access" ) {
135
+
136
+ }
137
+ }
138
+ }
139
+ if($_POST[$wd_options->prefix . "_submit_and_deactivate"] == 2 || $_POST[$wd_options->prefix . "_submit_and_deactivate"] == 1 ){
140
+ $deactivate_url =
141
+ add_query_arg(
142
+ array(
143
+ 'action' => 'deactivate',
144
+ 'plugin' => plugin_basename( $wd_options->plugin_main_file ),
145
+ '_wpnonce' => wp_create_nonce( 'deactivate-plugin_' . plugin_basename( $wd_options->plugin_main_file ) )
146
+ ),
147
+ admin_url( 'plugins.php' )
148
+ );
149
+ echo '<script>window.location.href="' . $deactivate_url . '";</script>';
150
+ }
151
+
152
+ }
153
+ }
154
+
155
+ ////////////////////////////////////////////////////////////////////////////////////////
156
+ // Getters & Setters //
157
+ ////////////////////////////////////////////////////////////////////////////////////////
158
+ ////////////////////////////////////////////////////////////////////////////////////////
159
+ // Private Methods //
160
+ ////////////////////////////////////////////////////////////////////////////////////////
161
+
162
+ ////////////////////////////////////////////////////////////////////////////////////////
163
+ // Listeners //
164
+ ////////////////////////////////////////////////////////////////////////////////////////
165
+
166
+ }
167
+
168
+
wd/includes/notices.php ADDED
@@ -0,0 +1,223 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( !defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+
6
+ class DoradoWebNotices {
7
+
8
+ protected $promo_link = '';
9
+
10
+ public $config;
11
+ public $notice_spam = 0;
12
+ public $notice_spam_max = 2;
13
+
14
+ // Basic actions to run
15
+ public function __construct( $config = array() ) {
16
+ $this->config = $config;
17
+ // Runs the admin notice ignore function incase a dismiss button has been clicked
18
+ add_action( 'admin_init', array( $this, 'admin_notice_ignore' ) );
19
+ // Runs the admin notice temp ignore function incase a temp dismiss link has been clicked
20
+ add_action( 'admin_init', array( $this, 'admin_notice_temp_ignore' ) );
21
+ add_action( 'admin_notices', array( $this, 'wd_admin_notices' ) );
22
+ }
23
+
24
+ // Checks to ensure notices aren't disabled and the user has the correct permissions.
25
+ public function wd_admin_notice() {
26
+ $wd_options = $this->config;
27
+ $settings = get_option($wd_options->prefix . '_admin_notice');
28
+ if ( !isset( $settings['disable_admin_notices'] ) || ( isset( $settings['disable_admin_notices'] ) && $settings['disable_admin_notices'] == 0 ) ) {
29
+ if ( current_user_can( 'manage_options' ) ) {
30
+ return true;
31
+ }
32
+ }
33
+ return false;
34
+ }
35
+
36
+ // Primary notice function that can be called from an outside function sending necessary variables
37
+ public function admin_notice( $admin_notices ) {
38
+ $wd_options = $this->config;
39
+ // Check options
40
+ if ( !$this->wd_admin_notice() ) {
41
+ return false;
42
+ }
43
+ foreach ( $admin_notices as $slug => $admin_notice ) {
44
+ // Call for spam protection
45
+ if ( $this->anti_notice_spam() ) {
46
+ return false;
47
+ }
48
+
49
+ // Check for proper page to display on
50
+ if (isset( $admin_notices[$slug]['pages']) && is_array( $admin_notices[$slug]['pages'])) {
51
+ if ( !$this->admin_notice_pages( $admin_notices[$slug]['pages'] ) ) {
52
+ return false;
53
+ }
54
+ }
55
+
56
+ // Check for required fields
57
+ if ( !$this->required_fields( $admin_notices[$slug] ) ) {
58
+
59
+ // Get the current date then set start date to either passed value or current date value and add interval
60
+ $current_date = current_time( "n/j/Y" );
61
+ $start = ( isset( $admin_notices[$slug]['start'] ) ? $admin_notices[$slug]['start'] : $current_date );
62
+ $start = date( "n/j/Y", strtotime( $start ) );
63
+ $date_array = explode( '/', $start );
64
+ $interval = ( isset( $admin_notices[$slug]['int'] ) ? $admin_notices[$slug]['int'] : 0 );
65
+
66
+ $date_array[1] += $interval;
67
+ $start = date( "n/j/Y", mktime( 0, 0, 0, $date_array[0], $date_array[1], $date_array[2] ) );
68
+
69
+ // This is the main notices storage option
70
+ $admin_notices_option = get_option( $wd_options->prefix . '_admin_notice', array() );
71
+ // Check if the message is already stored and if so just grab the key otherwise store the message and its associated date information
72
+ if ( !array_key_exists( $slug, $admin_notices_option ) ) {
73
+ $admin_notices_option[$slug]['start'] = $start;
74
+ $admin_notices_option[$slug]['int'] = $interval;
75
+ update_option( $wd_options->prefix . '_admin_notice', $admin_notices_option );
76
+ }
77
+
78
+ // Sanity check to ensure we have accurate information
79
+ // New date information will not overwrite old date information
80
+ $admin_display_check = ( isset( $admin_notices_option[$slug]['dismissed'] ) ? $admin_notices_option[$slug]['dismissed'] : 0 );
81
+ $admin_display_start = ( isset( $admin_notices_option[$slug]['start'] ) ? $admin_notices_option[$slug]['start'] : $start );
82
+ $admin_display_interval = ( isset($admin_notices_option[$slug]['int'] ) ? $admin_notices_option[$slug]['int'] : $interval );
83
+ $admin_display_msg = ( isset($admin_notices[$slug]['msg'] ) ? $admin_notices[$slug]['msg'] : '' );
84
+ $admin_display_title = ( isset($admin_notices[$slug]['title'] ) ? $admin_notices[$slug]['title'] : '' );
85
+ $admin_display_link = ( isset( $admin_notices[$slug]['link'] ) ? $admin_notices[$slug]['link'] : '' );
86
+ $output_css = false;
87
+
88
+ // Ensure the notice hasn't been hidden and that the current date is after the start date
89
+ if ( $admin_display_check == 0 && strtotime($admin_display_start) <= strtotime($current_date ) ) {
90
+
91
+ // Get remaining query string
92
+ $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 ) ) );
93
+ if ( strpos($slug, 'promo' ) === FALSE ) {
94
+ // Admin notice display output
95
+ echo '<div class="update-nag wd-admin-notice">
96
+ <div class="wd-notice-logo" style="background-image: url(' . $wd_options->wd_url_img . '/' . $wd_options->prefix . '_main_plugin.png);"></div>
97
+ <p class="wd-notice-title">' . $admin_display_title . '</p>
98
+ <p class="wd-notice-body">' . $admin_display_msg . '</p>
99
+ <ul class="wd-notice-body wd-blue">' . $admin_display_link . '</ul>
100
+ <a href="' . $query_str . '" class="dashicons dashicons-dismiss"></a>
101
+ </div>';
102
+ }
103
+ else {
104
+ echo '<div class="admin-notice-promo">';
105
+ echo $admin_display_msg;
106
+ echo '<ul class="notice-body-promo blue">
107
+ ' . $admin_display_link . '
108
+ </ul>';
109
+ echo '<a href="' . $query_str . '" class="dashicons dashicons-dismiss close-promo"></a>';
110
+ echo '</div>';
111
+ }
112
+ $this->notice_spam += 1;
113
+ $output_css = true;
114
+ }
115
+ if ( $output_css ) {
116
+ wp_enqueue_style( $wd_options->prefix . '-admin-notices', $wd_options->wd_url_css . '/notices.css', array(), get_option($wd_options->prefix . "_version" ) );
117
+ }
118
+ }
119
+ }
120
+ }
121
+
122
+ // Spam protection check
123
+ public function anti_notice_spam() {
124
+ if ( $this->notice_spam >= $this->notice_spam_max ) {
125
+ return true;
126
+ }
127
+ return false;
128
+ }
129
+
130
+ // Ignore function that gets ran at admin init to ensure any messages that were dismissed get marked
131
+ public function admin_notice_ignore() {
132
+ $wd_options = $this->config;
133
+ // If user clicks to ignore the notice, update the option to not show it again
134
+ if ( isset( $_GET[$wd_options->prefix . '_admin_notice_ignore'] ) ) {
135
+ $admin_notices_option = get_option( $wd_options->prefix . '_admin_notice', array() );
136
+ $admin_notices_option[$_GET[$wd_options->prefix . '_admin_notice_ignore']]['dismissed'] = 1;
137
+ update_option( $wd_options->prefix . '_admin_notice', $admin_notices_option );
138
+ $query_str = remove_query_arg( $wd_options->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
+ $wd_options = $this->config;
147
+ // If user clicks to temp ignore the notice, update the option to change the start date - default interval of 14 days
148
+ if ( isset( $_GET[$wd_options->prefix . '_admin_notice_temp_ignore'] ) ) {
149
+ $admin_notices_option = get_option( $wd_options->prefix . '_admin_notice', array() );
150
+ $current_date = current_time( "n/j/Y" );
151
+ $date_array = explode( '/', $current_date );
152
+ $interval = (isset($_GET['wd_int']) ? $_GET['wd_int'] : 14);
153
+ $date_array[1] += $interval;
154
+ $new_start = date( "n/j/Y", mktime( 0, 0, 0, $date_array[0], $date_array[1], $date_array[2] ) );
155
+
156
+ $admin_notices_option[$_GET[$wd_options->prefix . '_admin_notice_temp_ignore']]['start'] = $new_start;
157
+ $admin_notices_option[$_GET[$wd_options->prefix . '_admin_notice_temp_ignore']]['dismissed'] = 0;
158
+ update_option( $wd_options->prefix . '_admin_notice', $admin_notices_option );
159
+ $query_str = remove_query_arg( array( $wd_options->prefix . '_admin_notice_temp_ignore', 'wd_int' ) );
160
+ wp_redirect( $query_str );
161
+ exit;
162
+ }
163
+ }
164
+
165
+ public function admin_notice_pages($pages) {
166
+ $wd_options = $this->config;
167
+ foreach ( $pages as $key => $page ) {
168
+ if (is_array($page)) {
169
+ if ( isset( $_GET['page'] ) && $_GET['page'] == $page[0] && isset($_GET['tab']) && $_GET['tab'] == $page[1] ) {
170
+ return true;
171
+ }
172
+ }
173
+ else {
174
+ if ( $page == 'all' ) {
175
+ return true;
176
+ }
177
+ if ( get_current_screen()->id === $page ) {
178
+ return true;
179
+ }
180
+ if ( isset($_GET['page']) && $_GET['page'] == $page ) {
181
+ return true;
182
+ }
183
+ }
184
+ return false;
185
+ }
186
+ }
187
+
188
+ // Required fields check
189
+ public function required_fields( $fields ) {
190
+ if ( !isset( $fields['msg'] ) || ( isset($fields['msg'] ) && empty( $fields['msg'] ) ) ) {
191
+ return true;
192
+ }
193
+ if ( !isset( $fields['title'] ) || ( isset( $fields['title'] ) && empty( $fields['title'] ) ) ) {
194
+ return true;
195
+ }
196
+ return false;
197
+ }
198
+
199
+ // Special parameters function that is to be used in any extension of this class
200
+ public function special_parameters($admin_notices) {
201
+ // Intentionally left blank
202
+ }
203
+
204
+ public function wd_admin_notices() {
205
+ $wd_options = $this->config;
206
+ $two_week_review_ignore = add_query_arg( array( $wd_options->prefix . '_admin_notice_ignore' => 'two_week_review' ) );
207
+ $two_week_review_temp = add_query_arg( array( $wd_options->prefix . '_admin_notice_temp_ignore' => 'two_week_review', 'int' => 14 ) );
208
+ $promo_close = add_query_arg( array( $wd_options->prefix . '_admin_notice_ignore' => 'ecommerce_promo' ) );
209
+
210
+ $notices['two_week_review'] = array(
211
+ 'title' => __('Leave A Review?', $wd_options->prefix),
212
+ '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),
213
+ 'link' => '<li><span class="dashicons dashicons-external"></span><a href="https://wordpress.org/support/view/plugin-reviews/' . $wd_options->plugin_wordpress_slug . '?filter=5" target="_blank">' . __('Sure! I\'d love to!', $wd_options->prefix) . '</a></li>
214
+ <li><span class="dashicons dashicons-smiley"></span><a href="' . $two_week_review_ignore . '"> ' . __('I\'ve already left a review', $wd_options->prefix) . '</a></li>
215
+ <li><span class="dashicons dashicons-calendar-alt"></span><a href="' . $two_week_review_temp . '">' . __('Maybe Later', $wd_options->prefix) . '</a></li>
216
+ <li><span class="dashicons dashicons-dismiss"></span><a href="' . $two_week_review_ignore . '">' . __('Never show again', $wd_options->prefix) . '</a></li>',
217
+ 'later_link' => $two_week_review_temp,
218
+ 'int' => 14
219
+ );
220
+
221
+ $this->admin_notice($notices);
222
+ }
223
+ }
wd/includes/overview.php ADDED
@@ -0,0 +1,310 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( !defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+
6
+ class DoradoWebOverview{
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Events //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Constants //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Variables //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public $config ;
17
+ private $tabs = array();
18
+
19
+ ////////////////////////////////////////////////////////////////////////////////////////
20
+ // Constructor & Destructor //
21
+ ////////////////////////////////////////////////////////////////////////////////////////
22
+ public function __construct( $config = array() ) {
23
+ $this->config = $config;
24
+ $wd_options = $this->config;
25
+ $this->tabs = array(
26
+ 'welcome' => array(
27
+ 'name' => __( "Welcome", $wd_options->prefix ),
28
+ 'view' => array( $this, 'wd_overview_welcome' )
29
+ ),
30
+ 'user_guide' => array(
31
+ 'name' => __( "User Guide", $wd_options->prefix ),
32
+ 'view' => array( $this, 'wd_overview_user_guide' )
33
+ ),
34
+ 'deals' => array(
35
+ 'name' => __( 'Deals', $wd_options->prefix ),
36
+ 'view' => array( $this, 'wd_overview_deals' )
37
+ ),
38
+ 'support' => array(
39
+ 'name' => __( "Support", $wd_options->prefix ),
40
+ 'view' => array( $this, 'wd_overview_support' )
41
+ ),
42
+ 'https://web-dorado.com/support/submit-your-idea.html' => array(
43
+ 'name' => __( "Submit Your Idea", $wd_options->prefix ),
44
+ 'view' => false
45
+ ),
46
+ 'https://wordpress.org/support/plugin/' . $wd_options->plugin_wordpress_slug => array(
47
+ 'name' => __( "Forum", $wd_options->prefix ),
48
+ 'view' => false
49
+ )
50
+ );
51
+
52
+
53
+
54
+ }
55
+ ////////////////////////////////////////////////////////////////////////////////////////
56
+ // Public Methods //
57
+ ////////////////////////////////////////////////////////////////////////////////////////
58
+ public function display_overview_page(){
59
+ $wd_options = $this->config;
60
+ $tabs = $this->tabs;
61
+ require_once( $wd_options->wd_dir_templates . "/display_overview.php" );
62
+ }
63
+ public function wd_overview_welcome(){
64
+ $wd_options = $this->config;
65
+ //http://api.wordpress.org/plugins/info/1.0/wd-google-maps
66
+ require_once( $wd_options->wd_dir_templates . "/display_overview_welcome.php" );
67
+ }
68
+ public function wd_overview_user_guide(){
69
+ $wd_options = $this->config;
70
+ $user_guide = $wd_options->user_guide;
71
+ require_once( $wd_options->wd_dir_templates . "/display_overview_user_guide.php" );
72
+ }
73
+ public function wd_overview_deals(){
74
+
75
+ $wd_options = $this->config;
76
+ $plugins = array(
77
+ "form-maker" => array(
78
+ 'title' => 'Form Maker',
79
+ 'text' => __( 'Wordpress form builder plugin', $wd_options->prefix ),
80
+ 'content' => __( 'Form Maker is a modern and advanced tool for creating WordPress forms easily and fast.', $wd_options->prefix ),
81
+ 'href' => 'https://web-dorado.com/products/wordpress-form.html'
82
+ ),
83
+ "photo-gallery" => array(
84
+ 'title' => 'Photo Gallery',
85
+ 'text' => __( 'WordPress Photo Gallery plugin', $wd_options->prefix ),
86
+ 'content' => __( 'Photo Gallery is a fully responsive WordPress Gallery plugin with advanced functionality.', $wd_options->prefix ),
87
+ 'href' => 'https://web-dorado.com/products/wordpress-photo-gallery-plugin.html'
88
+ ),
89
+ "event-calendar-wd" => array(
90
+ 'title' => 'Event Calendar WD',
91
+ 'text' => __( 'WordPress calendar plugin', $wd_options->prefix ),
92
+ 'content' => __( 'Organize and publish your events in an easy and elegant way using Event Calendar WD.', $wd_options->prefix ),
93
+ 'href' => 'https://web-dorado.com/products/wordpress-event-calendar-wd.html'
94
+ ),
95
+ "wd-google-maps" => array(
96
+ 'title' => 'WD Google Maps',
97
+ 'text' => __( 'WD Google Maps plugin', $wd_options->prefix ),
98
+ '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 ),
99
+ 'href' => 'https://web-dorado.com/products/wordpress-google-maps-plugin.html'
100
+ ),
101
+ "slider-wd" => array(
102
+ 'title' => 'Slider WD',
103
+ 'text' => __( 'WordPress slider plugin', $wd_options->prefix ),
104
+ 'content' => __( 'Create responsive, highly configurable sliders with various effects for your WordPress site.', $wd_options->prefix ),
105
+ 'href' => 'https://web-dorado.com/products/wordpress-slider-plugin.html'
106
+ ),
107
+ "spider-event-calendar" => array(
108
+ 'title' => 'Spider Calendar',
109
+ 'text' => __( 'WordPress event calendar plugin', $wd_options->prefix ),
110
+ 'content' => __( 'Spider Event Calendar is a highly configurable product which allows you to have multiple organized events.', $wd_options->prefix ),
111
+ 'href' => 'https://web-dorado.com/products/wordpress-calendar.html'
112
+ ),
113
+ "wd-instagram-feed" => array(
114
+ 'title' => 'Instagram Feed WD',
115
+ 'text' => __( 'WordPress Instagram Feed plugin', $wd_options->prefix ),
116
+ 'content' => __( 'WD Instagram Feed is a user-friendly tool for displaying user or hashtag-based feeds on your website.', $wd_options->prefix ),
117
+ 'href' => 'https://web-dorado.com/products/wordpress-instagram-feed-wd.html'
118
+ ),
119
+ );
120
+ unset($plugins[$wd_options->plugin_wordpress_slug]) ;
121
+
122
+ // foreach ( $plugins as $wp_slug => &$plugin ){
123
+ // $wp_data = $this->remote_get($wp_slug);
124
+ // $plugin["downloaded"] = $wp_data["downloaded"];
125
+ // $plugin["rating"] = $wp_data["rating"];
126
+ // }
127
+
128
+ $themes = array(
129
+ "business_elite" => array(
130
+ 'title' => 'Business Elite Theme',
131
+ 'href' => 'https://web-dorado.com/wordpress-themes/business-elite.html'
132
+ ),
133
+ "portfolio_gallery" => array(
134
+ 'title' => 'Portfolio Gallery Theme',
135
+ 'href' => 'https://web-dorado.com/wordpress-themes/portfolio-gallery.html'
136
+ ),
137
+ "sauron" => array(
138
+ 'title' => 'Sauron Theme',
139
+ 'href' => 'https://web-dorado.com/wordpress-themes/sauron.html'
140
+ ),
141
+ "business_world" => array(
142
+ 'title' => 'Business World Theme',
143
+ 'href' => 'https://web-dorado.com/wordpress-themes/business-world.html'
144
+ ),
145
+ );
146
+
147
+ require_once( $wd_options->wd_dir_templates . "/display_overview_deals.php" );
148
+ }
149
+ public function wd_overview_support(){
150
+ $wd_options = $this->config;
151
+ global $wpdb;
152
+ $server_info = array();
153
+
154
+ // Get PHP Version
155
+ $server_info["Operating System"] = PHP_OS . " (" . ( PHP_INT_SIZE * 8 ) . ")";
156
+ $server_info["PHP Version"] = PHP_VERSION;
157
+ $server_info["Server"] = $_SERVER["SERVER_SOFTWARE"];
158
+
159
+ // Get MYSQL Version
160
+ $sql_version = $wpdb->get_var( "SELECT VERSION() AS version" );
161
+ $server_info["MySQL Version"] = $sql_version;
162
+
163
+ // GET SQL Mode
164
+ $mysqlinfo = $wpdb->get_results( "SHOW VARIABLES LIKE 'sql_mode'" );
165
+ if ( is_array( $mysqlinfo ) )
166
+ $sql_mode = $mysqlinfo[0]->Value;
167
+ if ( empty( $sql_mode ) )
168
+ $sql_mode = __( 'Not set', $wd_options->prefix );
169
+ $server_info["SQL Mode"] = $sql_mode;
170
+
171
+ // Get PHP Safe Mode
172
+ if( ini_get( 'safe_mode' ) )
173
+ $safe_mode = __( 'On', $wd_options->prefix );
174
+ else
175
+ $safe_mode = __( 'Off', $wd_options->prefix );
176
+ $server_info["PHP Safe Mode"] = $safe_mode;
177
+
178
+ // Get PHP allow_url_fopen
179
+ if( ini_get( 'allow_url_fopen' ) )
180
+ $allow_url_fopen = __( 'On', $wd_options->prefix );
181
+ else
182
+ $allow_url_fopen = __( 'Off', $wd_options->prefix );
183
+ $server_info["PHP Allow URL fopen"] = $allow_url_fopen;
184
+
185
+ // Get PHP Max Upload Size
186
+ if (function_exists('wp_max_upload_size'))
187
+ $upload_max = strval(round((int) wp_max_upload_size() / (1024 * 1024))) . 'M';
188
+ else if(ini_get('upload_max_filesize'))
189
+ $upload_max = ini_get('upload_max_filesize');
190
+ else
191
+ $upload_max = __('N/A', $wd_options->prefix);
192
+
193
+ $server_info["PHP Max Upload Size"] = $upload_max;
194
+
195
+ // Get PHP Output buffer Size
196
+ if( ini_get( 'pcre.backtrack_limit' ) )
197
+ $backtrack_limit = ini_get( 'pcre.backtrack_limit' );
198
+ else
199
+ $backtrack_limit = __( 'N/A', $wd_options->prefix );
200
+ $server_info["PCRE Backtracking Limit"] = $backtrack_limit;
201
+
202
+ // Get PHP Max Post Size
203
+ if( ini_get( 'post_max_size' ) )
204
+ $post_max = ini_get( 'post_max_size' );
205
+ else
206
+ $post_max = __( 'N/A', $wd_options->prefix );
207
+ $server_info["PHP Max Post Size"] = $post_max;
208
+
209
+ // Get PHP Max execution time
210
+ if( ini_get( 'max_execution_time' ) )
211
+ $max_execute = ini_get( 'max_execution_time' );
212
+ else
213
+ $max_execute = __( 'N/A', $wd_options->prefix );
214
+ $server_info["PHP Max Script Execute Time"] = $max_execute;
215
+
216
+
217
+ // Get PHP Memory Limit
218
+ if( ini_get( 'memory_limit' ) )
219
+ $memory_limit = ini_get( 'memory_limit' );
220
+ else
221
+ $memory_limit = __( 'N/A', $wd_options->prefix );
222
+ $server_info["PHP Memory Limit"] = $memory_limit;
223
+
224
+ // Get actual memory_get_usage
225
+ if ( function_exists( 'memory_get_usage' ) )
226
+ $memory_usage = round( memory_get_usage() / 1024 / 1024, 2 ) . __( ' MByte', $wd_options->prefix );
227
+ else
228
+ $memory_usage = __( 'N/A', $wd_options->prefix );
229
+ $server_info["Memory usage"] = $memory_usage;
230
+
231
+ // required for EXIF read
232
+ if ( is_callable( 'exif_read_data' ) )
233
+ $exif = __( 'Yes', $wd_options->prefix ). " (V" . substr( phpversion( 'exif' ), 0, 4 ) . ")" ;
234
+ else
235
+ $exif = __( 'No', $wd_options->prefix );
236
+ $server_info["PHP Exif support"] = $exif;
237
+
238
+ // required for meta data
239
+ if ( is_callable( 'iptcparse' ) )
240
+ $iptc = __( 'Yes', $wd_options->prefix );
241
+ else
242
+ $iptc = __( 'No', $wd_options->prefix );
243
+ $server_info["PHP IPTC support"] = $iptc;
244
+
245
+ // required for meta data
246
+ if ( is_callable( 'xml_parser_create' ) )
247
+ $xml = __( 'Yes', $wd_options->prefix );
248
+ else
249
+ $xml = __( 'No', $wd_options->prefix );
250
+ $server_info["PHP XML support"] = $xml;
251
+
252
+ $gd_info = array( "GD support" => __( 'No', $wd_options->prefix ) );
253
+ if( function_exists( "gd_info" ) ){
254
+ $gd_info = array();
255
+ foreach( gd_info() as $key => $val ){
256
+ if( is_bool($val) ){
257
+ $gd_info[$key] = $val ? __( 'Yes', $wd_options->prefix ) : __( 'No', $wd_options->prefix );
258
+ }
259
+ else{
260
+ $gd_info[$key] = $val;
261
+ }
262
+ }
263
+ }
264
+
265
+ require_once( $wd_options->wd_dir_templates . "/display_overview_support.php" );
266
+ }
267
+
268
+ public function overview_styles() {
269
+ $wd_options = $this->config;
270
+ $version = get_option( $wd_options->prefix . "_version" );
271
+ wp_enqueue_style( $wd_options->prefix . '_overview_css', $wd_options->wd_url_css . '/overview.css', array(), $version );
272
+
273
+ }
274
+ public function overview_scripts() {
275
+ $wd_options = $this->config;
276
+ $version = get_option( $wd_options->prefix . "_version" );
277
+ wp_enqueue_script( $wd_options->prefix . '_overview_js', $wd_options->wd_url_js . '/overview.js', array(), $version );
278
+
279
+ }
280
+ ////////////////////////////////////////////////////////////////////////////////////////
281
+ // Getters & Setters //
282
+ ////////////////////////////////////////////////////////////////////////////////////////
283
+ ////////////////////////////////////////////////////////////////////////////////////////
284
+ // Private Methods //
285
+ ////////////////////////////////////////////////////////////////////////////////////////
286
+ private function remote_get($plugin_wp_slug){
287
+ $request = wp_remote_get(" http://api.wordpress.org/plugins/info/1.0/" . $plugin_wp_slug);
288
+ $data = array();
289
+ if (!is_wp_error($request) || wp_remote_retrieve_response_code($request) === 200) {
290
+ $body = unserialize($request['body']);
291
+ $data["downloaded"] = $body->downloaded;
292
+ $ratings = $body->ratings;
293
+ if( $ratings[5] == 0 && $ratings[4] == 0 && $ratings[3] == 0 && $ratings[2] == 0 && $ratings[1] == 0){
294
+ $data["rating"] = 100;
295
+ }
296
+ else{
297
+ $data["rating"] = round( ( ( $ratings[5] * 5 + $ratings[4] * 4 + $ratings[3] * 3 + $ratings[2] * 2 + $ratings[1] * 1 ) / $body->num_ratings ) , 1 );
298
+
299
+ $data["rating"] = round( ( $data["rating"] / 5 ) * 100 );
300
+ }
301
+ return $data;
302
+ }
303
+ return false;
304
+
305
+ }
306
+ ////////////////////////////////////////////////////////////////////////////////////////
307
+ // Listeners //
308
+ ////////////////////////////////////////////////////////////////////////////////////////
309
+
310
+ }
wd/includes/subscribe.php ADDED
@@ -0,0 +1,138 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+ class DoradoWebSubscribe {
6
+ // //////////////////////////////////////////////////////////////////////////////////////
7
+ // Events //
8
+ // //////////////////////////////////////////////////////////////////////////////////////
9
+ // //////////////////////////////////////////////////////////////////////////////////////
10
+ // Constants //
11
+ // //////////////////////////////////////////////////////////////////////////////////////
12
+ // //////////////////////////////////////////////////////////////////////////////////////
13
+ // Variables //
14
+ // //////////////////////////////////////////////////////////////////////////////////////
15
+ public $config;
16
+ // //////////////////////////////////////////////////////////////////////////////////////
17
+ // Constructor & Destructor //
18
+ // //////////////////////////////////////////////////////////////////////////////////////
19
+ public function __construct( $config = array() ){
20
+ $this->config = $config;
21
+ add_action( 'admin_init', array( $this, 'after_subscribe' ) );
22
+ }
23
+ // //////////////////////////////////////////////////////////////////////////////////////
24
+ // Public Methods //
25
+ // //////////////////////////////////////////////////////////////////////////////////////
26
+
27
+ public function subscribe_scripts() {
28
+ $wd_options = $this->config;
29
+ wp_register_script ( 'subscribe_js', $wd_options->wd_url_js . '/subsribe.js' );
30
+ wp_enqueue_script ( 'subscribe_js' );
31
+
32
+ }
33
+ public function subscribe_styles() {
34
+ $wd_options = $this->config;
35
+ wp_enqueue_style( $wd_options->prefix . 'subscribe', $wd_options->wd_url_css . '/subscribe.css' );
36
+
37
+ }
38
+
39
+ public function subscribe_display_page() {
40
+ $wd_options = $this->config;
41
+ $list = array(
42
+ 0 => array(
43
+ "title" => __( "Your name &", $wd_options->prefix ),
44
+ "small_text" => __( "Email address", $wd_options->prefix ),
45
+ "img" => $wd_options->wd_url_img . '/sub_1.png',
46
+ ),
47
+ 1 => array(
48
+ "title" => __( "Site URL", $wd_options->prefix ),
49
+ "small_text" => __( "Wordpress version", $wd_options->prefix ),
50
+ "img" => $wd_options->wd_url_img . '/sub_2.png',
51
+ ),
52
+ 2 => array(
53
+ "title" => __( "List of plugins", $wd_options->prefix ),
54
+ "small_text" => "",
55
+ "img" => $wd_options->wd_url_img . '/sub_4.png',
56
+ ),
57
+ );
58
+
59
+ require_once ( $wd_options->wd_dir_templates . "/display_subscribe.php" );
60
+ }
61
+ public function after_subscribe(){
62
+ $wd_options = $this->config;
63
+ if( isset( $_GET[ $wd_options->prefix . "_sub_action"] ) ){
64
+
65
+ if( $_GET[$wd_options->prefix . "_sub_action"] == "allow" ){
66
+ $api = new DoradoWebApi($wd_options);
67
+ $hash = $api->get_hash();
68
+
69
+ if( $hash != null ){
70
+ $all_plugins = array();
71
+ $plugins = get_plugins();
72
+ foreach ( $plugins as $slug => $data ) {
73
+ $plugin = array(
74
+ "Name" => $data["Name"],
75
+ "PluginURI" => $data["PluginURI"],
76
+ "Author" => $data["Author"],
77
+ "AuthorURI" => $data["AuthorURI"]
78
+ );
79
+ $all_plugins[$slug] = $plugin;
80
+ }
81
+
82
+ $data = array();
83
+ $data["site_url"] = site_url();
84
+
85
+ $admin_data = wp_get_current_user();
86
+
87
+ $user_first_name = get_user_meta( $admin_data->ID, "first_name", true );
88
+ $user_last_name = get_user_meta( $admin_data->ID, "last_name", true );
89
+
90
+ $data["name"] = $user_first_name || $user_last_name ? $user_first_name . " " . $user_last_name : $admin_data->data->user_login;
91
+
92
+ $data["email"] = $admin_data->data->user_email;
93
+ $data["wp_version"] = get_bloginfo( 'version' );
94
+ $data["plugin_id"] = $wd_options->wd_plugin_id;
95
+ $data["hash"] = $hash;
96
+ $data["all_plugins"] = $all_plugins;
97
+
98
+
99
+ $response = wp_remote_post( "https://api.web-dorado.com/collectuserdata", array(
100
+ 'method' => 'POST',
101
+ 'timeout' => 45,
102
+ 'redirection' => 5,
103
+ 'httpversion' => '1.0',
104
+ 'blocking' => true,
105
+ 'headers' => array(),
106
+ 'body' => json_encode($data),
107
+ 'cookies' => array()
108
+ )
109
+ );
110
+
111
+ $response_body = isset( $response["body"] ) ? json_decode( $response["body"], true ) : null;
112
+
113
+ if( is_array( $response_body ) && $response_body["body"]["msg"] == "Access" ) {
114
+
115
+ }
116
+ }
117
+ }
118
+ if ( get_option( $wd_options->prefix . "_subscribe_done" ) != 1 ) {
119
+ update_option( $wd_options->prefix . "_subscribe_done", 1 );
120
+ }
121
+ else {
122
+ add_option( $wd_options->prefix . "_subscribe_done" , "1", '', 'no');
123
+ }
124
+
125
+ wp_safe_redirect( $wd_options->after_subscribe );
126
+ }
127
+
128
+ }
129
+ // //////////////////////////////////////////////////////////////////////////////////////
130
+ // Getters & Setters //
131
+ // //////////////////////////////////////////////////////////////////////////////////////
132
+ // //////////////////////////////////////////////////////////////////////////////////////
133
+ // Private Methods //
134
+ // //////////////////////////////////////////////////////////////////////////////////////
135
+ // //////////////////////////////////////////////////////////////////////////////////////
136
+ // Listeners //
137
+ // //////////////////////////////////////////////////////////////////////////////////////
138
+ }
wd/start.php ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+ define( 'DORADO_WEB_API_PLUGIN_DATA_PATH', 'https://api.web-dorado.com/v2/_id_/plugindata' );
6
+ require_once dirname( __FILE__ ) . '/config.php';
7
+
8
+ /**
9
+ * @param options for Plugin details.
10
+ * prefix;
11
+ * wd_plugin_id;
12
+ * plugin_title;
13
+ * plugin_dir;
14
+ * plugin_main_file;
15
+ * description;
16
+ * plugin_features;
17
+ * user_guide;
18
+ * video_youtube_id;
19
+ * plugin_wd_url;
20
+ * plugin_wd_demo_link;
21
+ * plugin_wd_addons_link;
22
+ * plugin_wizard_link;
23
+ * after_subscribe;
24
+ * plugin_menu_title;
25
+ * plugin_menu_icon;
26
+ * custom_post;
27
+ */
28
+
29
+ function dorado_web_init( $options ) {
30
+
31
+ // load files
32
+ require_once dirname( __FILE__ ) . '/wd.php';
33
+
34
+ $wd = new DoradoWeb();
35
+ $wd->wd_init( $options );
36
+
37
+ }
38
+
39
+
40
+
41
+
wd/templates/display_deactivation_popup.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ <div class="wd-deactivate-popup-opacity wd-deactivate-popup-opacity-<?php echo $wd_options->prefix; ?>">
4
+ <img src="<?php echo $wd_options->wd_url_img . '/spinner.gif'; ?>" class="wd-img-loader" >
5
+ </div>
6
+ <form method="post" id="<?php echo $wd_options->prefix; ?>_deactivate_form">
7
+ <div class="wd-deactivate-popup-header">
8
+ <?php _e( "Please let us know why you are deactivating. Your answer will help us to serve you better", $wd_options->prefix ); ?>:
9
+ </div>
10
+
11
+ <div class="wd-deactivate-popup-body">
12
+ <?php foreach( $deactivate_reasons as $deactivate_reason_slug => $deactivate_reason ) { ?>
13
+ <div class="wd-<?php echo $wd_options->prefix; ?>-reasons">
14
+ <input type="radio" value="<?php echo $deactivate_reason["id"];?>" id="<?php echo $wd_options->prefix . "-" .$deactivate_reason["id"]; ?>" name="<?php echo $wd_options->prefix; ?>_reasons" >
15
+ <label for="<?php echo $wd_options->prefix . "-" . $deactivate_reason["id"]; ?>"><?php echo $deactivate_reason["text"];?></label>
16
+ </div>
17
+ <?php } ?>
18
+ <div class="<?php echo $wd_options->prefix; ?>_additional_details_wrap"></div>
19
+ </div>
20
+ <div class="wd-btns">
21
+ <a href="#" data-val="1" class="button button-secondary button-close wd-<?php echo $wd_options->prefix; ?>-deactivate" id="wd-<?php echo $wd_options->prefix; ?>-deactivate"><?php _e( "Deactivate" , $wd_options->prefix ); ?></a>
22
+ <a href="#" data-val="2" class="button button-secondary 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>
23
+ <a href="#" class="button button-primary wd-<?php echo $wd_options->prefix; ?>-cancel"><?php _e( "Cancel" , $wd_options->prefix ); ?></a>
24
+ </div>
25
+ <input type="hidden" name="<?php echo $wd_options->prefix . "_submit_and_deactivate"; ?>" value="" >
26
+ <?php wp_nonce_field( $wd_options->prefix . '_save_form', $wd_options->prefix . '_save_form_fild'); ?>
27
+ </form>
28
+ </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_options->wd_url_img . '/' . $wd_options->prefix . '_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_options->wd_url_img . '/' . $wd_options->prefix . '_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_options->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_options->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,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ <?php
13
+ if ( function_exists('current_user_can' ) ) {
14
+ if ( current_user_can('manage_options') ) {
15
+ ?>
16
+ <div class="wd-site-deatils wd-table">
17
+ <button id="wd-copy"><?php _e( "Copy to Clipboard", $wd_options->prefix ); ?></button>
18
+ <div id="wd-site-deatils">
19
+ <textarea rows="10" id="wd-site-deatils-textarea"><?php
20
+ _e( "Server Settings", $wd_options->prefix );
21
+ echo '&#13;&#10;&#13;&#10;';
22
+ foreach( $server_info as $key => $val ){
23
+ echo $key . ": " . $val . '&#13;&#10;';
24
+ }
25
+ echo '&#13;&#10;';
26
+ _e( "Graphic Library", $wd_options->prefix );
27
+ echo '&#13;&#10;&#13;&#10;';
28
+ foreach( $gd_info as $key => $val ){
29
+ echo $key . ": " . $val . '&#13;&#10;';
30
+ }
31
+ ?></textarea>
32
+ </div>
33
+ </div>
34
+ <?php
35
+ }
36
+ }
37
+ ?>
38
+
39
+ </div>
40
+ <div class="contact_us_wrap">
41
+ <a href="https://web-dorado.com/support/contact-us.html" target="_blank" class="contact_us"><?php _e("Contact us", $wd_options->prefix); ?></a>
42
+ </div>
43
+ </div>
wd/templates/display_overview_user_guide.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ <?php if($wd_options->plugin_wd_demo_link) { ?>
25
+ <a href="<?php echo $wd_options->plugin_wd_demo_link; ?>" class="user_guide_demo" target="_blank">
26
+ <?php _e( "Demo", $wd_options->prefix ); ?>
27
+ </a>
28
+ <?php } ?>
29
+ <a href="<?php echo $wd_options->plugin_wd_url; ?>" class="user_guide_plugin" target="_blank">
30
+ <?php echo $wd_options->plugin_title; ?>
31
+ </a>
32
+ <a href="https://wordpress.org/support/plugin/<?php echo $wd_options->plugin_wordpress_slug; ?>" class="user_guide_support_forum" target="_blank">
33
+ <?php _e( "Support Forum", $wd_options->prefix ); ?>
34
+ </a>
35
+ <a href="https://web-dorado.com/support/faq.html" class="user_guide_faq" target="_blank">
36
+ <?php _e( "FAQ", $wd_options->prefix ); ?>
37
+ </a>
38
+ <?php if($wd_options->plugin_wd_addons_link) { ?>
39
+ <a href="<?php echo $wd_options->plugin_wd_addons_link; ?>" class="user_guide_addons" target="_blank">
40
+ <?php _e( "Addons", $wd_options->prefix ); ?>
41
+ </a>
42
+ <?php } ?>
43
+ </div>
44
+ </div>
45
+ </div>
46
+
wd/templates/display_overview_welcome.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div id="welcome">
2
+ <!-- display plugin video -->
3
+ <?php if( $wd_options->video_youtube_id ){ ?>
4
+ <div class="wd-video_container">
5
+ <iframe width="100%" height="400" src="//www.youtube.com/embed/<?php echo $wd_options->video_youtube_id; ?>?rel=0" frameborder="0" allowfullscreen></iframe>
6
+ </div>
7
+ <?php }
8
+ else if( $wd_options->overview_welcome_image ) { ?>
9
+ <img src="<?php echo $wd_options->overview_welcome_image; ?>" width="100%" />
10
+
11
+ <?php } ?>
12
+
13
+ <!-- display plugin features -->
14
+ <div class="plugin_features">
15
+ <!-- if your plugin has a wizard-->
16
+ <?php if( $wd_options->plugin_wizard_link ) { ?>
17
+ <div class="wd-tour">
18
+ <a class="wd-tour-btn" href="<?php echo $wd_options->plugin_wizard_link;?>"><?php _e( "Run Install Wizard ",$wd_options->prefix); ?></a>
19
+ </div>
20
+ <?php } ?>
21
+ <?php foreach( $wd_options->plugin_features as $feature ){ ?>
22
+ <h2 class="plugin_feature_title"><?php echo $feature["title"]; ?></h2>
23
+ <div class="plugin_feature_description"><?php echo $feature["description"]; ?></div>
24
+ <?php } ?>
25
+ <div class="more_features_wrap">
26
+ <a href="<?php echo $wd_options->plugin_wd_url; ?>" class="more_features" target="_blank"><?php _e( "More features", $wd_options->prefix ); ?></a>
27
+ </div>
28
+ </div>
29
+
30
+ </div>
31
+
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_options->wd_url_img . '/wp_logo.png'; ?>">
5
+ <span>+</span>
6
+ <img src="<?php echo $wd_options->wd_url_img . '/' . $wd_options->prefix . '_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&". $wd_options->prefix . "_sub_action=allow" ;?>" class="allow_and_continue"></a>
16
+ <img src="<?php echo $wd_options->wd_url_img . '/loader.gif';?>" class="wd_loader">
17
+ <a href="<?php echo "admin.php?page=" . $wd_options->prefix . "_subscribe&" . $wd_options->prefix . "_sub_action=skip" ;?>" class="skip" ></a>
18
+ </div>
19
+ <a href="#" class="permissions"><?php _e( "What data is being collected?" , $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,146 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+
6
+ class DoradoWeb {
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
+ public $config;
20
+ private $version = "1.0.2";
21
+
22
+ ////////////////////////////////////////////////////////////////////////////////////////
23
+ // Constructor & Destructor //
24
+ ////////////////////////////////////////////////////////////////////////////////////////
25
+ public function __construct() {
26
+ // Add menu for Overview page
27
+ add_action( 'admin_menu', array( $this, 'wd_overview_menu_page' ), 10 );
28
+
29
+ }
30
+ ////////////////////////////////////////////////////////////////////////////////////////
31
+ // Public Methods //
32
+ ////////////////////////////////////////////////////////////////////////////////////////
33
+
34
+ // Init plugin data
35
+ public function wd_init( $options ) {
36
+
37
+ if(!is_array($options)){
38
+ return false;
39
+ }
40
+ $config = new DoradoWebConfig();
41
+ $config->set_options( $options );
42
+ $this->config = $config;
43
+ if( !class_exists("DoradoWebApi") ){
44
+ $this->wd_includes();
45
+ }
46
+
47
+ $this->init_classes();
48
+ $this->register_hooks();
49
+
50
+ }
51
+
52
+ // Create overview menu page
53
+ public function wd_overview_menu_page() {
54
+ $wd_options = $this->config;
55
+
56
+ $capability = $wd_options->menu_capability ? $wd_options->menu_capability : "manage_options";
57
+ if( get_option( $wd_options->prefix . "_subscribe_done" ) == 1 || $wd_options->subscribe === false ){
58
+ $parent_slug = $wd_options->custom_post;
59
+ }
60
+ else{
61
+
62
+ $subscribe_page = add_menu_page( $wd_options->plugin_menu_title, $wd_options->plugin_menu_title, "manage_options", $wd_options->prefix . '_subscribe' , array( $this, 'display_subscribew_page' ), $wd_options->plugin_menu_icon, $wd_options->menu_position );
63
+
64
+ $subscribe_instance = new DoradoWebSubscribe($this->config);
65
+ $this->subscribe_instance = $subscribe_instance;
66
+ add_action( 'admin_print_styles-' . $subscribe_page, array( $subscribe_instance, 'subscribe_styles' ) );
67
+ add_action( 'admin_print_scripts-' . $subscribe_page, array( $subscribe_instance, 'subscribe_scripts' ) );
68
+
69
+ $parent_slug = null;
70
+ }
71
+
72
+ $overview_page = add_submenu_page( $parent_slug, __( 'Overview', $wd_options->prefix ), __( 'Overview', $wd_options->prefix ), $capability, 'overview_' . $wd_options->prefix, array( $this, 'display_overview_page' ));
73
+
74
+
75
+ $overview_instance = new DoradoWebOverview($this->config);
76
+ $this->overview_instance = $overview_instance;
77
+ add_action( 'admin_print_styles-' . $overview_page, array( $overview_instance, 'overview_styles' ) );
78
+ add_action( 'admin_print_scripts-' . $overview_page, array( $overview_instance, 'overview_scripts' ) );
79
+ }
80
+
81
+ public function display_subscribew_page(){
82
+ $this->subscribe_instance->subscribe_display_page();
83
+ }
84
+
85
+ // Display overview page
86
+ public function display_overview_page() {
87
+ $this->overview_instance->display_overview_page();
88
+ }
89
+
90
+
91
+ // Includs
92
+ public function wd_includes(){
93
+ $wd_options = $this->config;
94
+
95
+ require_once $wd_options->wd_dir_includes . '/deactivate.php' ;
96
+ // notices
97
+ require_once $wd_options->wd_dir_includes . '/api.php';
98
+ require_once $wd_options->wd_dir_includes . '/notices.php';
99
+ require_once $wd_options->wd_dir_includes . "/overview.php";
100
+ require_once $wd_options->wd_dir_includes . "/subscribe.php";
101
+
102
+ }
103
+ public function init_classes(){
104
+ $wd_options = $this->config;
105
+
106
+ $current_url = $_SERVER['REQUEST_URI'];
107
+ if( $wd_options->deactivate === true ){
108
+ if(strpos( $current_url, "plugins.php" ) !== false ){
109
+ new DoradoWebDeactivate( $this->config );
110
+ }
111
+ }
112
+
113
+ new DoradoWebNotices( $this->config );
114
+
115
+ }
116
+
117
+ public function register_hooks(){
118
+ $wd_options = $this->config;
119
+ if( $wd_options->deactivate === true ){
120
+ add_filter( 'plugin_action_links_' . plugin_basename( $wd_options->plugin_main_file ), array( $this, 'change_deactivation_link' ) );
121
+ }
122
+
123
+ }
124
+
125
+
126
+ public function change_deactivation_link ( $links ) {
127
+ $wd_options = $this->config;
128
+ $links["deactivate"] = '<a href="#" class="' . $wd_options->prefix . '_deactivate_link">Deactivate</a>';
129
+ return $links;
130
+ }
131
+
132
+ ////////////////////////////////////////////////////////////////////////////////////////
133
+ // Getters & Setters //
134
+ ////////////////////////////////////////////////////////////////////////////////////////
135
+ ////////////////////////////////////////////////////////////////////////////////////////
136
+ // Private Methods //
137
+ ////////////////////////////////////////////////////////////////////////////////////////
138
+
139
+ ////////////////////////////////////////////////////////////////////////////////////////
140
+ // Listeners //
141
+ ////////////////////////////////////////////////////////////////////////////////////////
142
+
143
+ }
144
+
145
+
146
+