WD Facebook Feed – Custom Facebook Feed Plugin - Version 1.1.8

Version Description

  • Fixed: Notice on creating a feed.
Download this release

Release Info

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

Code changes from version 1.1.7 to 1.1.8

banner_class.php ADDED
@@ -0,0 +1,512 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class TWBanner {
4
+ public $menu_postfix = ''; // To display on only current plugin pages.
5
+ public $prefix = ''; // Current plugin prefix.
6
+ public $logo = ''; // Current plugin logo relative URL.
7
+ public $plugin_slug = ''; // Current plugin slug.
8
+ public $plugin_url = ''; // Current plugin URL.
9
+ public $plugin_id = ''; // Current plugin id.
10
+ public $text = ''; // Banner text.
11
+ public $slug = ''; // Plugin slug to be installed.
12
+ public $mu_plugin_slug = ''; // Must use plugin slug.
13
+ public $base_php = ''; // Plugin base php filename to be installed.
14
+ public $page_url = ''; // Redirect to URL after activating the plugin.
15
+ public $status_install = 0; // Is plugin installed.
16
+ public $status_active = 0; // Is plugin active.
17
+
18
+ /**
19
+ * TW_Banner_Class constructor.
20
+ *
21
+ * @param $opt_banner_param
22
+ */
23
+ public function __construct( $opt_banner_param ) {
24
+ $this->menu_postfix = $opt_banner_param["menu_postfix"];
25
+ $this->prefix = $opt_banner_param["prefix"];
26
+ $this->logo = $opt_banner_param["logo"];
27
+ $this->plugin_slug = $opt_banner_param['plugin_slug'];
28
+ $this->plugin_url = $opt_banner_param["plugin_url"];
29
+ $this->plugin_id = $opt_banner_param['plugin_id'];
30
+ $this->text = $opt_banner_param['text'];
31
+ $this->slug = $opt_banner_param['slug'];
32
+ $this->mu_plugin_slug = $opt_banner_param['mu_plugin_slug'];
33
+ $this->base_php = $opt_banner_param['base_php'];
34
+ $this->page_url = $opt_banner_param['page_url'];
35
+ $this->init();
36
+ }
37
+
38
+ /**
39
+ * Add actions.
40
+ */
41
+ public function init() {
42
+ add_action('wp_ajax_wd_tenweb_dismiss', array( $this, 'dismiss' ));
43
+ add_action('wp_ajax_tenweb_status', array( $this, 'change_status' ));
44
+
45
+ // Check the page to show banner.
46
+ if ( ( !isset($_GET['page']) || ( preg_match("/^$this->menu_postfix/", esc_html( $_GET['page'] )) === 0 && preg_match("/$this->menu_postfix$/", esc_html( $_GET['page'] )) === 0 )) || ( isset($_GET['task']) && !strpos(esc_html($_GET['task']), 'edit') === TRUE && !(strpos(esc_html($_GET['task']), 'display') > -1)) ) {
47
+
48
+ return;
49
+ }
50
+
51
+ if ( $this->is_plugin_mu($this->mu_plugin_slug) ) {
52
+ $this->status_install = 1;
53
+ $this->status_active = 1;
54
+ }
55
+ else {
56
+ $this->upgrade_install_status();
57
+ }
58
+ if ( !$this->status_active ) {
59
+ add_action('admin_notices', array( $this, 'tenweb_install_notice' ));
60
+ }
61
+ }
62
+
63
+ /**
64
+ * Check plugin install status.
65
+ */
66
+ public function upgrade_install_status() {
67
+ if ( !function_exists('is_plugin_active') ) {
68
+ include_once(ABSPATH . 'wp-admin/includes/plugin.php');
69
+ }
70
+ if ( $this->is_plugin_installed($this->slug) ) {
71
+ $this->status_install = 1;
72
+ if ( is_plugin_active($this->slug . '/' . $this->base_php) ) {
73
+ $this->status_active = 1;
74
+ }
75
+ }
76
+ }
77
+
78
+ /**
79
+ * Save status.
80
+ */
81
+ public function dismiss() {
82
+ update_option('tenweb_notice_status', '1', 'no');
83
+ }
84
+
85
+ /**
86
+ * Plugin install/activate status.
87
+ *
88
+ * @return string
89
+ */
90
+ public function tenweb_install_notice() {
91
+ // Remove old notice.
92
+ if ( get_option('tenweb_notice_status') !== FALSE ) {
93
+ update_option('tenweb_notice_status', '1', 'no');
94
+ }
95
+ $meta_value = get_option('tenweb_notice_status');
96
+ if ( $meta_value === '' || $meta_value === FALSE ) {
97
+ ob_start();
98
+ $dismiss_url = add_query_arg(array( 'action' => 'wd_tenweb_dismiss' ), admin_url('admin-ajax.php'));
99
+ $verify_url = add_query_arg(array( 'action' => 'tenweb_status' ), admin_url('admin-ajax.php'));
100
+ ?>
101
+ <style>
102
+ .hide {
103
+ display: none !important;
104
+ }
105
+ #verifyUrl {
106
+ display: none;
107
+ }
108
+ #loading {
109
+ position: absolute;
110
+ right: 20px;
111
+ top: 50%;
112
+ transform: translateY(-50%);
113
+ margin: 0px;
114
+ background: url("<?php echo $this->plugin_url . '/images/spinner.gif'; ?>") no-repeat;
115
+ background-size: 20px 20px;
116
+ filter: alpha(opacity=70);
117
+ }
118
+ #wd_tenweb_logo_notice {
119
+ height: 32px;
120
+ float: left;
121
+ }
122
+ .error_install,
123
+ .error_activate {
124
+ color: red;
125
+ font-size: 10px;
126
+ }
127
+ #wpbody-content #v2_tenweb_notice_cont {
128
+ display: none;
129
+ flex-wrap: wrap;
130
+ background: #fff;
131
+ box-shadow: 0 1px 1px 0 rgba(0, 0, 0, .1);
132
+ position: relative;
133
+ margin-left: 0px;
134
+ padding: 5px 0;
135
+ overflow: hidden;
136
+ border-left: 4px solid #0073AA;
137
+ font-family: Open Sans, sans-serif;
138
+ height: 40px;
139
+ min-height: 40px;
140
+ box-sizing: initial;
141
+ }
142
+ .v2_logo {
143
+ display: flex;
144
+ flex-direction: column;
145
+ justify-content: center;
146
+ height: inherit;
147
+ }
148
+ #v2_tenweb_notice_cont {
149
+ height: 50px;
150
+ padding: 0px;
151
+ }
152
+ .v2_content {
153
+ flex-grow: 1;
154
+ height: inherit;
155
+ margin-left: 25px;
156
+ }
157
+ .v2_content p {
158
+ margin: 0px;
159
+ padding: 0px;
160
+ }
161
+ .v2_content p > span {
162
+ font-size: 16px;
163
+ color: #333B46;
164
+ font-weight: 600;
165
+ line-height: 40px;
166
+ margin: 0;
167
+ }
168
+ #wd_tenweb_logo_notice {
169
+ margin-left: 25px;
170
+ height: 30px;
171
+ line-height: 100%;
172
+ }
173
+ .v2_button {
174
+ display: flex;
175
+ margin-right: 30px;
176
+ flex-direction: column;
177
+ justify-content: center;
178
+ }
179
+ .v2_button #install_now, #activate_now {
180
+ width: 112px;
181
+ height: 32px;
182
+ line-height: 30px;
183
+ font-size: 14px;
184
+ text-align: center;
185
+ padding: 0;
186
+ }
187
+ #v2_tenweb_notice_cont .wd_tenweb_notice_dissmiss.notice-dismiss {
188
+ top: 3px;
189
+ right: 3px;
190
+ padding: 0px;
191
+ }
192
+ .v2_button .button {
193
+ position: relative;
194
+ }
195
+ .v2_button .button #loading {
196
+ position: absolute;
197
+ right: 10px;
198
+ top: 50%;
199
+ transform: translateY(-50%);
200
+ margin: 0px;
201
+ background-size: 12px 12px;
202
+ filter: alpha(opacity=70);
203
+ width: 12px;
204
+ height: 12px;
205
+ }
206
+ @media only screen and (max-width: 1200px) and (min-width: 821px) {
207
+ #wpbody-content #v2_tenweb_notice_cont {
208
+ height: 50px;
209
+ min-height: 50px;
210
+ }
211
+ #v2_tenweb_notice_cont {
212
+ height: 60px;
213
+ }
214
+ .v2_content {
215
+ margin-left: 25px;
216
+ }
217
+ .v2_content p {
218
+ font-size: 14px;
219
+ color: #333B46;
220
+ font-weight: 600;
221
+ line-height: 20px;
222
+ margin-top: 5px;
223
+ }
224
+ .v2_content p span {
225
+ display: block;
226
+ }
227
+ #wd_tenweb_logo_notice {
228
+ margin-left: 25px;
229
+ height: 30px;
230
+ line-height: 100%;
231
+ }
232
+ .v2_button {
233
+ display: flex;
234
+ margin-right: 30px;
235
+ flex-direction: column;
236
+ justify-content: center;
237
+ }
238
+ .v2_button #install_now {
239
+ width: 112px;
240
+ height: 32px;
241
+ line-height: 30px;
242
+ font-size: 14px;
243
+ text-align: center;
244
+ padding: 0;
245
+ }
246
+ #v2_tenweb_notice_cont .wd_tenweb_notice_dissmiss.notice-dismiss {
247
+ top: 3px;
248
+ right: 3px;
249
+ }
250
+ }
251
+ @media only screen and (max-width: 820px) and (min-width: 781px) {
252
+ #wpbody-content #v2_tenweb_notice_cont {
253
+ height: 50px;
254
+ min-height: 50px;
255
+ }
256
+ #v2_tenweb_notice_cont {
257
+ height: 60px;
258
+ }
259
+ .v2_content {
260
+ margin-left: 25px;
261
+ }
262
+ .v2_content p {
263
+ font-size: 13px;
264
+ color: #333B46;
265
+ font-weight: 600;
266
+ line-height: 20px;
267
+ margin-top: 5px;
268
+ }
269
+ .v2_content p span {
270
+ display: block;
271
+ }
272
+ }
273
+ @media only screen and (max-width: 780px) {
274
+ #wpbody-content #v2_tenweb_notice_cont {
275
+ height: auto;
276
+ min-height: auto;
277
+ }
278
+ #v2_tenweb_notice_cont {
279
+ height: auto;
280
+ padding: 5px;
281
+ }
282
+ .v2_logo {
283
+ display: block;
284
+ height: auto;
285
+ width: 100%;
286
+ margin-top: 5px;
287
+ }
288
+ .v2_content {
289
+ display: block;
290
+ margin-left: 9px;
291
+ margin-top: 10px;
292
+ width: calc(100% - 10px);
293
+ }
294
+ .v2_content p {
295
+ line-height: unset;
296
+ font-size: 15px;
297
+ line-height: 25px;
298
+ }
299
+ .v2_content p span {
300
+ display: block;
301
+ }
302
+ #wd_tenweb_logo_notice {
303
+ margin-left: 9px;
304
+ }
305
+ .v2_button {
306
+ margin-left: 9px;
307
+ margin-top: 10px;
308
+ margin-bottom: 5px;
309
+ }
310
+ }
311
+ </style>
312
+ <script type="text/javascript">
313
+ jQuery(document).ready(function () {
314
+ jQuery('#v2_tenweb_notice_cont').css('display', 'flex');
315
+ });
316
+ </script>
317
+ <div id="v2_tenweb_notice_cont" class="notice wd-notice">
318
+ <div class="v2_logo">
319
+ <img id="wd_tenweb_logo_notice" src="<?php echo $this->plugin_url . $this->logo; ?>" />
320
+ </div>
321
+ <div class="v2_content">
322
+ <p>
323
+ <?php echo $this->text ?>
324
+ </p>
325
+ </div>
326
+ <div class="v2_button">
327
+ <?php $this->tw_install_button(2); ?>
328
+ </div>
329
+ <button type="button" class="wd_tenweb_notice_dissmiss notice-dismiss" onclick="jQuery('#v2_tenweb_notice_cont').attr('style', 'display: none !important;'); jQuery.post('<?php echo $dismiss_url; ?>');">
330
+ <span class="screen-reader-text"></span></button>
331
+ <div id="verifyUrl" data-url="<?php echo $verify_url; ?>"></div>
332
+ </div>
333
+ <?php
334
+ echo ob_get_clean();
335
+ }
336
+ }
337
+
338
+ /**
339
+ * Change status.
340
+ */
341
+ public function change_status() {
342
+ $this->upgrade_install_status();
343
+ if ( $this->status_install ) {
344
+ $old_opt_array = array();
345
+ $new_opt_array = array( $this->plugin_slug => $this->plugin_id );
346
+ $key = 'tenweb_manager_installed';
347
+ $option = get_option($key);
348
+ if ( !empty($option) ) {
349
+ $old_opt_array = (array) json_decode($option);
350
+ }
351
+ $array_installed = array_merge($new_opt_array, $old_opt_array);
352
+ update_option($key, json_encode($array_installed));
353
+ }
354
+ $jsondata = array( 'status_install' => $this->status_install, 'status_active' => $this->status_active );
355
+ echo json_encode($jsondata);
356
+ exit;
357
+ }
358
+
359
+ /**
360
+ * Install/activate button.
361
+ *
362
+ * @param $v
363
+ */
364
+ public function tw_install_button( $v ) {
365
+ $prefix = $this->prefix;
366
+ $install_url = esc_url(wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=' . $this->slug), 'install-plugin_' . $this->slug));
367
+ $activation_url = $this->na_action_link($this->slug . '/' . $this->base_php, 'activate');
368
+ $tenweb_url = $this->page_url;
369
+ $dismiss_url = add_query_arg(array( 'action' => 'wd_tenweb_dismiss' ), admin_url('admin-ajax.php'));
370
+ $activate = $this->status_install && !$this->status_active ? TRUE : FALSE;
371
+ ?>
372
+ <a class="button<?php echo($v == 2 ? ' button-primary' : ''); ?> tenweb_activaion"
373
+ id="<?php echo $activate ? 'activate_now' : 'install_now'; ?>"
374
+ data-activation="<?php _e("Activation", $prefix); ?>"
375
+ data-tenweb-url="<?php echo $tenweb_url; ?>"
376
+ data-install-url="<?php echo $install_url; ?>"
377
+ data-activate-url="<?php echo $activation_url; ?>">
378
+ <span class="tenweb_activaion_text"><?php echo $activate ? __("Activate", $prefix) : __("Install", $prefix); ?></span>
379
+ <span class="spinner" id="loading"></span>
380
+ </a>
381
+ <span class="hide <?php echo $activate ? 'error_activate' : 'error_install tenweb_active'; ?> ">
382
+ <?php echo $activate ? __("Activation failed, please try again.", $prefix) : __("Installation failed, please try again.", $prefix); ?>
383
+ </span>
384
+ <script>
385
+ var url = jQuery(".tenweb_activaion").attr("data-install-url");
386
+ var activate_url = jQuery(".tenweb_activaion").attr("data-activate-url");
387
+
388
+ function install_tenweb_plugin() {
389
+ jQuery("#loading").addClass('is-active');
390
+ jQuery(this).prop('disable', true);
391
+ jQuery.ajax({
392
+ method: "POST",
393
+ url: url,
394
+ }).done(function () {
395
+ /* Check if plugin installed.*/
396
+ jQuery.ajax({
397
+ type: 'POST',
398
+ dataType: 'json',
399
+ url: jQuery("#verifyUrl").attr('data-url'),
400
+ error: function () {
401
+ jQuery("#loading").removeClass('is-active');
402
+ jQuery(".error_install").show();
403
+ },
404
+ success: function (response) {
405
+ if (response.status_install == 1) {
406
+ jQuery('#install_now .tenweb_activaion_text').text(jQuery("#install_now").data("activation"));
407
+ activate_tenweb_plugin();
408
+ }
409
+ else {
410
+ jQuery("#loading").removeClass('is-active');
411
+ jQuery(".error_install").removeClass('hide');
412
+ }
413
+ }
414
+ });
415
+ }).fail(function () {
416
+ jQuery("#loading").removeClass('is-active');
417
+ jQuery(".error_install").removeClass('hide');
418
+ });
419
+ }
420
+
421
+ function activate_tenweb_plugin() {
422
+ jQuery("#activate_now #loading").addClass('is-active');
423
+ jQuery.ajax({
424
+ method: "POST",
425
+ url: activate_url,
426
+ }).done(function () {
427
+ jQuery("#loading").removeClass('is-active');
428
+ var data_tenweb_url = '';
429
+ /* Check if plugin installed.*/
430
+ jQuery.ajax({
431
+ type: 'POST',
432
+ dataType: 'json',
433
+ url: jQuery("#verifyUrl").attr('data-url'),
434
+ error: function () {
435
+ jQuery("#loading").removeClass('is-active');
436
+ jQuery(".error_activate").removeClass('hide');
437
+ },
438
+ success: function (response) {
439
+ if (response.status_active == 1) {
440
+ //jQuery('#install_now').addClass('hide');
441
+ data_tenweb_url = jQuery('.tenweb_activaion').attr('data-tenweb-url');
442
+ jQuery.post('<?php echo $dismiss_url; ?>');
443
+ }
444
+ else {
445
+ jQuery("#loading").removeClass('is-active');
446
+ jQuery(".error_activate").removeClass('hide');
447
+ }
448
+ },
449
+ complete: function () {
450
+ if (data_tenweb_url != '') {
451
+ window.location.href = data_tenweb_url;
452
+ }
453
+ }
454
+ });
455
+ }).fail(function () {
456
+ jQuery("#loading").removeClass('is-active');
457
+ });
458
+ }
459
+
460
+ jQuery("#install_now").on("click", function () {
461
+ install_tenweb_plugin();
462
+ });
463
+ jQuery("#activate_now").on("click", function () {
464
+ activate_tenweb_plugin();
465
+ });
466
+ </script>
467
+ <?php
468
+ }
469
+
470
+ /**
471
+ * Check if plugin is installed.
472
+ *
473
+ * @param $plugin_slug
474
+ *
475
+ * @return bool
476
+ */
477
+ public function is_plugin_installed( $plugin_slug ) {
478
+ if ( is_dir(WP_PLUGIN_DIR . '/' . $plugin_slug) ) {
479
+ return TRUE;
480
+ }
481
+
482
+ return FALSE;
483
+ }
484
+
485
+ /**
486
+ * Check if plugin is must used.
487
+ *
488
+ * @param $plugin_slug
489
+ *
490
+ * @return bool
491
+ */
492
+ public function is_plugin_mu( $plugin_slug ) {
493
+ if ( $plugin_slug != '' ) {
494
+ if ( is_dir(WPMU_PLUGIN_DIR . '/' . $plugin_slug) ) {
495
+ return TRUE;
496
+ }
497
+ }
498
+
499
+ return FALSE;
500
+ }
501
+
502
+ public function na_action_link( $plugin, $action = 'activate' ) {
503
+ if ( strpos($plugin, '/') ) {
504
+ $plugin = str_replace('\/', '%2F', $plugin);
505
+ }
506
+ $url = sprintf(admin_url('plugins.php?action=' . $action . '&plugin=%s&plugin_status=all&paged=1&s'), $plugin);
507
+ $_REQUEST['plugin'] = $plugin;
508
+ $url = wp_nonce_url($url, $action . '-plugin_' . $plugin);
509
+
510
+ return $url;
511
+ }
512
+ }
changelog.txt CHANGED
@@ -1,5 +1,8 @@
1
  == Changelog ==
2
 
 
 
 
3
  = 1.1.7 =
4
  * Added: Banner to install 10Web manager.
5
 
1
  == Changelog ==
2
 
3
+ = 1.1.8 =
4
+ * Fixed: Notice on creating a feed.
5
+
6
  = 1.1.7 =
7
  * Added: Banner to install 10Web manager.
8
 
css/ffwd_tables.css CHANGED
@@ -1218,7 +1218,3 @@ div.ffwd_error {
1218
  #wpbody-content>div:not(.wrap):not(.wd_topic), .wrap .notice:not(.wd-notice) {
1219
  display: none;
1220
  }
1221
-
1222
- #wpbody-content .wrap #v2_tenweb_notice_cont {
1223
- display: flex;
1224
- }
1218
  #wpbody-content>div:not(.wrap):not(.wd_topic), .wrap .notice:not(.wd-notice) {
1219
  display: none;
1220
  }
 
 
 
 
facebook-feed-wd.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin Name: Facebook Feed by 10Web
5
  * Plugin URI: https://10web.io/plugins/wordpress-facebook-feed/
6
  * Description: Facebook Feed by 10Web is a completely customizable, responsive solution to help you display your Facebook feed on your WordPress website.
7
- * Version: 1.1.7
8
  * Author: 10Web
9
  * Author URI: https://10web.io/plugins/
10
  * License: GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
@@ -13,8 +13,9 @@
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_FB_PREFIX', 'ffwd' );
 
16
  if (! defined( 'FFWD_VERSION' ) ){
17
- define ('FFWD_VERSION',"1.1.7");
18
  }
19
 
20
  add_action('admin_notices', 'ffwd_login_notice');
@@ -1173,324 +1174,24 @@ function ffwd_elementor(){
1173
  }
1174
 
1175
  /**
1176
- * Show 10Web manager plugin install or activate banner.
1177
- *
1178
- * @return string
1179
  */
1180
- function ffwd_tenweb_install_notice() {
1181
- if ( ( !isset($_GET['page']) || strpos(esc_html($_GET['page']), '_ffwd') === FALSE ) ||
1182
- ( isset($_GET['task']) && !strpos(esc_html($_GET['task']), 'edit') === TRUE && !(strpos(esc_html($_GET['task']), 'display') > -1))) {
1183
- return '';
1184
- }
1185
- // Remove old notice.
1186
- if ( get_option('tenweb_notice_status') !== FALSE ) {
1187
- update_option('tenweb_notice_status', '1', 'no');
1188
- }
1189
- $meta_value = get_option('tenweb_notice_status');
1190
- if ( $meta_value === '' || $meta_value === FALSE ) {
1191
- require_once( WD_FFWD_DIR . '/framework/WDW_FFWD_Library.php' );
1192
- ob_start();
1193
- $prefix = 'WD_FB_PREFIX';
1194
- $url = WD_FFWD_URL;
1195
- $dismiss_url = add_query_arg(array( 'action' => 'wd_tenweb_dismiss' ), admin_url('admin-ajax.php'));
1196
- $verify_url = add_query_arg( array ('action' => 'ffwd_tenweb_status'), admin_url('admin-ajax.php'));
1197
- ?>
1198
- <style>
1199
- .hide {
1200
- display: none !important;
1201
- }
1202
- #verifyUrl {
1203
- display: none
1204
- }
1205
- #loading {
1206
- position: absolute;
1207
- right: 20px;
1208
- top: 50%;
1209
- transform: translateY(-50%);
1210
- margin: 0px;
1211
- background: url("<?php echo $url . '/images/ajax_loader.png'; ?>") no-repeat;
1212
- background-size: 20px 20px;
1213
- filter: alpha(opacity=70);
1214
- }
1215
- #wd_tenweb_logo_notice {
1216
- height: 32px;
1217
- float: left;
1218
- }
1219
- .error_install, .error_activate {
1220
- color: red;
1221
- font-size: 10px;
1222
- }
1223
- /* -------------------Version 2 styles------------------ */
1224
- #wpbody-content #v2_tenweb_notice_cont {
1225
- display: none;
1226
- flex-wrap: wrap;
1227
- background: #fff;
1228
- box-shadow: 0 1px 1px 0 rgba(0, 0, 0, .1);
1229
- position: relative;
1230
- padding: 5px 0;
1231
- overflow: hidden;
1232
- border-left: 4px solid #0073AA;
1233
- font-family: Open Sans, sans-serif;
1234
- height: 40px;
1235
- min-height: 40px;
1236
- }
1237
- .v2_logo {
1238
- display: flex;
1239
- flex-direction: column;
1240
- justify-content: center;
1241
- height: inherit;
1242
- }
1243
-
1244
- #v2_tenweb_notice_cont {
1245
- height: 50px;
1246
- padding: 0px;
1247
- }
1248
-
1249
- .v2_content {
1250
- flex-grow: 1;
1251
- height: inherit;
1252
- margin-left: 34px;
1253
- }
1254
-
1255
- .v2_content p {
1256
- font-size: 16px;
1257
- color: #333B46;
1258
- font-weight: 600;
1259
- line-height: 40px;
1260
- margin: 0;
1261
- }
1262
- #wd_tenweb_logo_notice {
1263
- margin-left: 35px;
1264
- height: 30px;
1265
- line-height: 100%;
1266
- }
1267
-
1268
- .v2_button {
1269
- display: flex;
1270
- margin-right: 30px;
1271
- flex-direction: column;
1272
- justify-content: center;
1273
- }
1274
-
1275
- .v2_button #install_now, #activate_now {
1276
- width: 112px;
1277
- height: 32px;
1278
- line-height: 30px;
1279
- font-size: 14px;
1280
- text-align: center;
1281
- padding: 0;
1282
- }
1283
-
1284
- #v2_tenweb_notice_cont .wd_tenweb_notice_dissmiss.notice-dismiss {
1285
- top: 3px;
1286
- right: 3px;
1287
- padding: 0px;
1288
- }
1289
-
1290
- .v2_button .button {
1291
- position: relative;
1292
- }
1293
-
1294
- .v2_button .button #loading {
1295
- position: absolute;
1296
- right: 10px;
1297
- top: 50%;
1298
- transform: translateY(-50%);
1299
- margin: 0px;
1300
- background-size: 12px 12px;
1301
- filter: alpha(opacity=70);
1302
- width: 12px;
1303
- height: 12px;
1304
- }
1305
-
1306
- @media only screen and (max-width: 1200px) and (min-width: 821px) {
1307
- #wpbody-content #v2_tenweb_notice_cont {
1308
- height: 50px;
1309
- min-height: 50px;
1310
- }
1311
-
1312
- #v2_tenweb_notice_cont {
1313
- height: 60px;
1314
- }
1315
-
1316
- .v2_content {
1317
- margin-left: 25px;
1318
- }
1319
- .v2_content p {
1320
- font-size: 14px;
1321
- color: #333B46;
1322
- font-weight: 600;
1323
- line-height: 20px;
1324
- margin-top: 5px;
1325
- }
1326
- .v2_content p span {
1327
- display: block;
1328
- }
1329
-
1330
- #wd_tenweb_logo_notice {
1331
- margin-left: 25px;
1332
- height: 30px;
1333
- line-height: 100%;
1334
- }
1335
-
1336
- .v2_button {
1337
- display: flex;
1338
- margin-right: 30px;
1339
- flex-direction: column;
1340
- justify-content: center;
1341
- }
1342
-
1343
- .v2_button #install_now {
1344
- width: 112px;
1345
- height: 32px;
1346
- line-height: 30px;
1347
- font-size: 14px;
1348
- text-align: center;
1349
- padding: 0;
1350
- }
1351
-
1352
- #v2_tenweb_notice_cont .wd_tenweb_notice_dissmiss.notice-dismiss {
1353
- top: 3px;
1354
- right: 3px;
1355
- }
1356
- }
1357
-
1358
- @media only screen and (max-width: 820px) and (min-width: 781px) {
1359
-
1360
- #wpbody-content #v2_tenweb_notice_cont {
1361
- height: 50px;
1362
- min-height: 50px;
1363
- }
1364
-
1365
- #v2_tenweb_notice_cont {
1366
- height: 60px;
1367
- }
1368
-
1369
- .v2_content {
1370
- margin-left: 25px;
1371
- }
1372
-
1373
- .v2_content p {
1374
- font-size: 13px;
1375
- color: #333B46;
1376
- font-weight: 600;
1377
- line-height: 20px;
1378
- margin-top: 5px;
1379
- }
1380
-
1381
- .v2_content p span {
1382
- display: block;
1383
- }
1384
-
1385
- }
1386
-
1387
- @media only screen and (max-width: 780px) {
1388
-
1389
- #wpbody-content #v2_tenweb_notice_cont {
1390
- height: auto;
1391
- min-height: auto;
1392
- }
1393
-
1394
- #v2_tenweb_notice_cont {
1395
- height: auto;
1396
- padding: 5px;
1397
- }
1398
-
1399
- .v2_logo {
1400
- display: block;
1401
- height: auto;
1402
- width: 100%;
1403
- margin-top: 5px;
1404
- }
1405
-
1406
- .v2_content {
1407
- display: block;
1408
- margin-left: 9px;
1409
- margin-top: 10px;
1410
- width: calc(100% - 10px);
1411
- }
1412
-
1413
- .v2_content p {
1414
- line-height: unset;
1415
- font-size: 15px;
1416
- line-height: 25px;
1417
- }
1418
- .v2_content p span{
1419
- display: block
1420
- }
1421
- #wd_tenweb_logo_notice {
1422
- margin-left: 9px;
1423
- }
1424
-
1425
- .v2_button {
1426
- margin-left: 9px;
1427
- margin-top: 10px;
1428
- margin-bottom: 5px;
1429
- }
1430
- }
1431
- </style>
1432
- <div id="v2_tenweb_notice_cont" class="notice wd-notice">
1433
- <div class="v2_logo">
1434
- <img id="wd_tenweb_logo_notice" src="<?php echo $url . '/images/icon-feed.png'; ?>" />
1435
- </div>
1436
- <div class="v2_content">
1437
- <p>
1438
- <?php echo sprintf(__('%s10Web Facebook Feed advises:%s %sUse Image Optimizer service to optimize your images quickly and easily.%s', $prefix), '<span>','</span>', '<span>','</span>'); ?>
1439
- </p>
1440
- </div>
1441
- <div class="v2_button">
1442
- <?php WDW_FFWD_Library::twbb_install_button(2); ?>
1443
- </div>
1444
- <button type="button" class="wd_tenweb_notice_dissmiss notice-dismiss" onclick="jQuery('#v2_tenweb_notice_cont').attr('style', 'display: none !important;'); jQuery.post('<?php echo $dismiss_url; ?>');"><span class="screen-reader-text"></span></button>
1445
- <div id="verifyUrl" data-url="<?php echo $verify_url; ?>"></div>
1446
- </div>
1447
- <?php
1448
-
1449
- echo ob_get_clean();
1450
- }
1451
- }
1452
-
1453
- if ( !function_exists('is_plugin_active') ) {
1454
- include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
1455
  }
1456
-
1457
- if ( !is_plugin_active( '10web-manager/10web-manager.php' ) ) {
1458
- add_action('admin_notices', 'ffwd_tenweb_install_notice');
1459
- }
1460
-
1461
- if ( !function_exists('wd_tenwebps_install_notice_status') ) {
1462
- // Add usermeta to DB.
1463
- function wd_tenwebps_install_notice_status() {
1464
- update_option('tenweb_notice_status', '1', 'no');
1465
- }
1466
- add_action('wp_ajax_wd_tenweb_dismiss', 'wd_tenwebps_install_notice_status');
1467
- }
1468
- // Check status 10web manager install
1469
- function ffwd_check_tenweb_status() {
1470
- require_once( WD_FFWD_DIR . '/framework/WDW_FFWD_Library.php' );
1471
- $status_install = 0;
1472
- $status_active = 0;
1473
- if ( WDW_FFWD_Library::is_plugin_installed('10web-manager') ) {
1474
- $status_install = 1;
1475
- }
1476
- else {
1477
- if ( is_plugin_active('10web-manager/10web-manager.php') ) {
1478
- $status_active = 1;
1479
- }
1480
- }
1481
- if ( WDW_FFWD_Library::is_plugin_installed('10web-manager') ) {
1482
- $old_opt_array = array();
1483
- $new_opt_array = array( 'wd-facebook-feed' => 93 ); // core_id
1484
- $key = 'tenweb_manager_installed';
1485
- $option = get_option($key);
1486
- if ( !empty($option) ) {
1487
- $old_opt_array = (array) json_decode($option);
1488
- }
1489
- $array_installed = array_merge($new_opt_array, $old_opt_array);
1490
- update_option($key, json_encode($array_installed));
1491
- }
1492
- $jsondata = array( 'status_install' => $status_install, 'status_active' => $status_active );
1493
- echo json_encode($jsondata);
1494
- exit;
1495
- }
1496
- add_action('wp_ajax_ffwd_tenweb_status', 'ffwd_check_tenweb_status');
4
  * Plugin Name: Facebook Feed by 10Web
5
  * Plugin URI: https://10web.io/plugins/wordpress-facebook-feed/
6
  * Description: Facebook Feed by 10Web is a completely customizable, responsive solution to help you display your Facebook feed on your WordPress website.
7
+ * Version: 1.1.8
8
  * Author: 10Web
9
  * Author URI: https://10web.io/plugins/
10
  * License: GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
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_FB_PREFIX', 'ffwd' );
16
+ define( 'WD_FB_IS_FREE', TRUE );
17
  if (! defined( 'FFWD_VERSION' ) ){
18
+ define ('FFWD_VERSION',"1.1.8");
19
  }
20
 
21
  add_action('admin_notices', 'ffwd_login_notice');
1174
  }
1175
 
1176
  /**
1177
+ * Show 10Web plugin's install/activate banner.
 
 
1178
  */
1179
+ if ( !class_exists ( 'TWBanner' ) ) {
1180
+ require_once( WD_FFWD_DIR . '/banner_class.php' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1181
  }
1182
+ if ( WD_FB_IS_FREE ) {
1183
+ $tw_banner_params = array(
1184
+ 'menu_postfix' => '_' . WD_FB_PREFIX, // To display on only current plugin pages.
1185
+ 'prefix' => WD_FB_PREFIX, // Current plugin prefix.
1186
+ 'logo' => '/images/wt-gb/ffwd_logo_editor.svg', // Current plugin logo relative URL.
1187
+ 'plugin_slug' => 'wd-facebook-feed', // Current plugin slug.
1188
+ 'plugin_url' => WD_FFWD_URL, // Current plugin URL.
1189
+ 'plugin_id' => 93, // Current plugin id.
1190
+ 'text' => sprintf(__("%s Facebook Feed advises:%s %sUse Image Optimizer service to optimize your images quickly and easily.%s", WD_FB_PREFIX), '<span>','</span>', '<span>','</span>'), // Banner text.
1191
+ 'slug' => '10web-manager', // Plugin slug to be installed.
1192
+ 'mu_plugin_slug' => '10web-manager', // Must use plugin slug.
1193
+ 'base_php' => '10web-manager.php', // Plugin base php filename to be installed.
1194
+ 'page_url' => admin_url('admin.php?page=tenweb_menu'), // Redirect to URL after activating the plugin.
1195
+ );
1196
+ new TWBanner($tw_banner_params);
1197
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
framework/WDW_FFWD_Library.php CHANGED
@@ -981,146 +981,4 @@ class WDW_FFWD_Library {
981
  ////////////////////////////////////////////////////////////////////////////////////////
982
  // Listeners //
983
  ////////////////////////////////////////////////////////////////////////////////////////
984
-
985
- /**
986
- * Is plugin active.
987
- *
988
- * @param $plugin_name
989
- *
990
- * @return bool
991
- */
992
- public static function is_plugin_installed($plugin_name) {
993
- if ( is_dir(WP_PLUGIN_DIR . '/' . $plugin_name . '/') ) {
994
- return TRUE;
995
- }
996
-
997
- return FALSE;
998
- }
999
-
1000
- /**
1001
- * Get activation or deactivation link of a plugin
1002
- *
1003
- * @author Nazmul Ahsan <mail@nazmulahsan.me>
1004
- *
1005
- * @param string $plugin plugin file name
1006
- * @param string $action action to perform. activate or deactivate
1007
- *
1008
- * @return string $url action url
1009
- */
1010
- public static function na_action_link( $plugin, $action = 'activate' ) {
1011
- if ( strpos($plugin, '/') ) {
1012
- $plugin = str_replace('\/', '%2F', $plugin);
1013
- }
1014
- $url = sprintf(admin_url('plugins.php?action=' . $action . '&plugin=%s&plugin_status=all&paged=1&s'), $plugin);
1015
- $_REQUEST['plugin'] = $plugin;
1016
- $url = wp_nonce_url($url, $action . '-plugin_' . $plugin);
1017
-
1018
- return $url;
1019
- }
1020
-
1021
- public static function twbb_install_button($v) {
1022
- $prefix = WD_FB_PREFIX;
1023
- $slug = '10web-manager';
1024
- $install_url = esc_url(wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=' . $slug), 'install-plugin_' . $slug));
1025
- $activation_url = self::na_action_link($slug . '/10web-manager.php', 'activate');
1026
- $tenweb_url = admin_url('admin.php?page=tenweb_menu');
1027
- $dismiss_url = add_query_arg(array( 'action' => 'wd_tenweb_dismiss' ), admin_url('admin-ajax.php'));
1028
- $activate = self::is_plugin_installed($slug) && !is_plugin_active('10web-manager/manager.php') ? TRUE : FALSE;
1029
- ?>
1030
- <a class="button<?php echo($v == 2 ? ' button-primary' : ''); ?> tenweb_activaion"
1031
- id="<?php echo $activate ? 'activate_now' : 'install_now'; ?>"
1032
- data-activation="<?php _e("Activation", $prefix); ?>"
1033
- data-tenweb-url="<?php echo $tenweb_url; ?>"
1034
- data-install-url="<?php echo $install_url; ?>"
1035
- data-activate-url="<?php echo $activation_url; ?>">
1036
- <span class="tenweb_activaion_text"><?php echo $activate ? __("Activate", $prefix) : __("Install", $prefix); ?></span>
1037
- <span class="spinner" id="loading"></span>
1038
- </a>
1039
- <span class="hide <?php echo $activate ? 'error_activate' : 'error_install tenweb_active'; ?> ">
1040
- <?php echo $activate ? __("Activation failed, please try again.", $prefix) : __("Installation failed, please try again.", $prefix); ?>
1041
- </span>
1042
- <script>
1043
- var url = jQuery(".tenweb_activaion").attr("data-install-url");
1044
- var activate_url = jQuery(".tenweb_activaion").attr("data-activate-url");
1045
-
1046
- function install_tenweb_plugin() {
1047
- jQuery("#loading").addClass('is-active');
1048
- jQuery(this).prop('disable', true);
1049
- jQuery.ajax({
1050
- method: "POST",
1051
- url: url,
1052
- }).done(function () {
1053
- /* Check if plugin installed.*/
1054
- jQuery.ajax({
1055
- type: 'POST',
1056
- dataType: 'json',
1057
- url: jQuery("#verifyUrl").attr('data-url'),
1058
- error: function () {
1059
- jQuery("#loading").removeClass('is-active');
1060
- jQuery(".error_install").show();
1061
- },
1062
- success: function (response) {
1063
- if (response.status_install == 1) {
1064
- jQuery('#install_now .tenweb_activaion_text').text(jQuery("#install_now").data("activation"));
1065
- activate_tenweb_plugin();
1066
- }
1067
- else {
1068
- jQuery("#loading").removeClass('is-active');
1069
- jQuery(".error_install").removeClass('hide');
1070
- }
1071
- }
1072
- });
1073
- }).fail(function () {
1074
- jQuery("#loading").removeClass('is-active');
1075
- jQuery(".error_install").removeClass('hide');
1076
- });
1077
- }
1078
- function activate_tenweb_plugin() {
1079
- jQuery("#activate_now #loading").addClass('is-active');
1080
- jQuery.ajax({
1081
- method: "POST",
1082
- url: activate_url,
1083
- }).done(function () {
1084
- jQuery("#loading").removeClass('is-active');
1085
- var data_tenweb_url = '';
1086
- /* Check if plugin installed.*/
1087
- jQuery.ajax({
1088
- type: 'POST',
1089
- dataType: 'json',
1090
- url: jQuery("#verifyUrl").attr('data-url'),
1091
- error: function () {
1092
- jQuery("#loading").removeClass('is-active');
1093
- jQuery(".error_activate").removeClass('hide');
1094
- },
1095
- success: function (response) {
1096
- if (response.status_active == 0) {
1097
- //jQuery('#install_now').addClass('hide');
1098
- data_tenweb_url = jQuery('.tenweb_activaion').attr('data-tenweb-url');
1099
- jQuery.post('<?php echo $dismiss_url; ?>');
1100
- }
1101
- else {
1102
- jQuery("#loading").removeClass('is-active');
1103
- jQuery(".error_activate").removeClass('hide');
1104
- }
1105
- },
1106
- complete: function () {
1107
- if (data_tenweb_url != '') {
1108
- window.location.href = data_tenweb_url;
1109
- }
1110
- }
1111
- });
1112
- }).fail(function () {
1113
- jQuery("#loading").removeClass('is-active');
1114
- });
1115
- }
1116
- jQuery("#install_now").on("click", function () {
1117
- install_tenweb_plugin();
1118
- });
1119
- jQuery("#activate_now").on("click", function () {
1120
- activate_tenweb_plugin();
1121
- });
1122
- </script>
1123
-
1124
- <?php
1125
- }
1126
  }
981
  ////////////////////////////////////////////////////////////////////////////////////////
982
  // Listeners //
983
  ////////////////////////////////////////////////////////////////////////////////////////
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
984
  }
images/spinner.gif ADDED
Binary file
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === 10Web Facebook Feed - Custom Facebook Feed Plugin ===
2
  Contributors: webdorado,10web,wdsupport
3
- 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
4
  Requires at least: 3.4
5
  Requires PHP: 5.2
6
- Tested up to: 5.1
7
- Stable tag: 1.1.7
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -14,7 +14,6 @@ License URI: http://www.gnu.org/licenses/gpl-2.0.html
14
 
15
  10Web Facebook Feed is the ultimate plugin to display custom Facebook feeds on your website.
16
 
17
-
18
  = Useful Links: =
19
 
20
  [Live Demo](https://demo.10web.io/facebook-feed/)
@@ -25,118 +24,95 @@ License URI: http://www.gnu.org/licenses/gpl-2.0.html
25
 
26
  [Special Offer for all Premium Plugins](https://10web.io/plugins-bundle-pricing/)
27
 
28
- Are you trying to link Facebook pages to your WordPress website?
29
-
30
- Struggling to match Facebook design with your website’s interface?
31
-
32
- Are you stuck with limited sharing options on Facebook?
33
-
34
- == 10Web Facebook Feed Features ==
35
-
36
- **Display Facebook Feeds**
37
- The plugin fetches your Facebook posts to your website.
38
-
39
- **Filter Content Types\***
40
- Display a specific content type feed: photos, statuses, videos, links.
41
-
42
- **Custom Layouts\***
43
- Select a view out of 4 options: Thumbnails, Compact Album. Blog style, and Masonry.
44
-
45
- **Mobile-Friendly & Responsive**
46
- Display your feed perfectly on any device of any size, both mobile and desktop.
47
-
48
- **Lightbox\***
49
- Display photos, videos in pop-ups with 15 transition effects.
50
-
51
- **Videos Supported**
52
- Videos uploaded on Facebook or shared from YouTube and Vimeo are displayed.
53
-
54
- **Themes\***
55
- Choose from pre-made or create your own theme.
56
-
57
- **Sharing Buttons\***
58
- Add buttons to your posts to share them on Facebook, Twitter, and Google+.
59
-
60
- **Sidebar View**
61
- Widget allows sidebar view for your Facebook feed.
62
-
63
- **Automatic Updates**
64
- Your feed content updates automatically on your website.
65
-
66
-
67
- _\* Premium version only_
68
-
69
- == World Class Customer Support ==
70
- * Low response time
71
- We always respond within a few hours.
72
- * Quick issue resolution
73
- Resolving an issue never takes more than 24 hours.
74
-
75
- == FEATURED REVIEWS ==
76
-
77
- > If you have someone who pulls your data from facebook and posts in your website,
78
- > then you can fire them. This plugin does the job neatly and keeps everything organised.
79
- > You can select whether to posts only photos, videos or everything.
80
- > You can also set up how often to update the news.
81
- > This is really what I was looking for a long time.
82
- > Thanks the developers behind this plugin!
83
- > [**by @codi56**](https://wordpress.org/support/topic/does-exactly-what-i-need-28/)
84
-
85
-
86
- > I would give this plugin developer an A plus. It is not just a tool for displayng the feed of my Facebook page,
87
- > but an easy designer hand to style the feeds and to make them more user-friendly.
88
- > Nothing more to look for.
89
- > [**by @adaada**](https://wordpress.org/support/topic/everything-i-wanted-2/)
90
-
91
-
92
- > Excellent FB plugin and excellent support. Absolutely worth every penny.
93
- > [**by @praguestreets**](https://wordpress.org/support/topic/excellent-plugin-2496/)
94
-
95
-
96
- == How to Display Your Facebook Feed ==
97
- 1. Install 10Web Facebook Feed Plugin.
98
- 2. Login with Facebook.
99
- 3. Publish your feeds.
100
-
101
- > **[Premium version adds](https://10web.io/plugins/wordpress-facebook-feed/)**
102
- >
103
- > * Masonry gallery View
104
- > * Mosaic gallery View
105
- > * Single-type content feeds of content from your Facebook wall (photos, videos, albums)
106
- > * Facebook share buttons
107
- > * Advanced lightbox with comments
108
- > * Filmstrip for lightbox
109
- > * Themes to change styles and colors for each view
110
- > * Multiple layouts – album view for albums, masonry and blogStyle and thumbnail views for Facebook videos and photos
111
- > * Social sharing for feed to Google+, Twitter and Facebook.
112
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
113
 
114
 
115
 
116
  **SETTINGS/CUSTOMIZATION**
117
  *Some customizations described here are available in Premium version. Please refer to premium feature summary below.*
118
 
119
- To have 10Web Facebook Feed plugin up and running you have to create an app on Facebook. This is a required step by Facebook, but it's pretty easy once you check the plugin's user guide. Under the plugin's general options you provide Facebook app ID and secret, and then you can specify the feed auto update interval, choose the date format for posts and more.
120
 
121
  Adding feeds is just a matter of a few clicks. You just click on the **Add new** button from the feeds section of the plugin, and a new window with four setting tabs will open, including settings for the feed, lightbox, comments. From the main feed settings you set the page to create a feed with. Under the main settings you can also choose whether you display the whole timeline of the feed, or choose to display only specific content, such as only photos, videos, links.
122
 
123
  With a Facebook page feed, you can filter out the content based on user roles, and show posts and updates only from the page owner or other users from the group, or both. There is a long list of the lightbox settings you can enable, including social share buttons, showing comments, playing filmstrip, and more. The comments settings mainly include choosing comment filtering option, whether its top level or stream, with the former being the same structure as in Facebook and the latter including all-level comments. Here you can also enable showing the comment replies and choose commenting order.
124
 
125
 
 
 
 
 
 
 
 
 
 
 
126
 
127
  ###IMPORTANT:
128
- If you think you found a bug in10Web Facebook Feed or have any problem/question concerning this plugin, please check out [Support Forum](https://wordpress.org/support/plugin/wd-facebook-feed) .
129
 
130
  == Privacy Policy =
131
  The plugin uses Facebook API to get public data from Facebook. All the received data is cached in WordPress database for some short customizable period to provide optimization. You can delete or update cached data. You can optionally enable like button for Facebook page. If you do so, Facebook will load some JS and embedded content which may track visitors. Facebook embeds are regulated under terms of Facebook privacy policy https://www.facebook.com/policy.php.
132
 
133
  == Changelog ==
134
 
 
 
 
135
  = 1.1.7 =
136
- * Added: Banner to install 10Web manager.
137
 
138
  = 1.1.6 =
139
- * Fixed: Minor bug.
140
 
141
  = 1.1.5 =
142
  * Changed: Links to 10Web.io.
@@ -159,7 +135,7 @@ The plugin uses Facebook API to get public data from Facebook. All the received
159
  * Fixed: Elementor compatibility
160
 
161
  = 1.1.0 =
162
- * **Important: Breaking change. Obtaining page access token is required to display your page content with 10Web Facebook Feed plugin. See the [documentation](https://help.10web.io/hc/en-us/articles/360017959512-Getting-Facebook-Access-Token).
163
  * Fixed: Error on PHP 7.2
164
  * Fixed: Notices when feed is unpublished
165
  * Changed: Deactivation popup
@@ -305,17 +281,17 @@ Added: Support forum and Review links.
305
  * Initial version
306
 
307
  == Screenshots ==
308
- 1. 10Web Facebook Feed - Timeline
309
- 2. 10Web Facebook Feed - Videos
310
- 3. 10Web Facebook Feed - Mansory view
311
- 4. 10Web Facebook Feed - Event
312
- 5. 10Web Facebook Feed - Edit Facebook Feed
313
- 6. 10Web Facebook Feed - Edit Options
314
- 7. 10Web Facebook Feed - Edit Theme
315
 
316
  == Installation ==
317
 
318
- #### Thank you for your interest in10Web Facebook Feed.
319
 
320
  ### Minimum requirements.
321
  * Wordpress 3.4+
@@ -332,7 +308,7 @@ After downloading the ZIP file of the plugin,
332
  4. Click "Install Now" button.
333
  5. Click "Activate Plugin" button for activating 10Web Facebook Feed.
334
 
335
-
336
 
337
  == Frequently Asked Questions ==
338
 
@@ -350,7 +326,6 @@ Each feed includes various options which are grouped in tabs:
350
  * Main,
351
  * Lightbox Settings,
352
  * Comments,
353
-
354
 
355
  First, name your feed and set the **URL** of your Facebook page, for example:
356
 
@@ -362,7 +337,7 @@ While creating feeds, you can display the full timeline of all posts, or with sp
362
  * Videos,
363
  * Statuses,
364
  * Links,
365
-
366
 
367
  = What kind of content can I display with my Facebook feed? =
368
 
@@ -381,13 +356,13 @@ Display only photos or videos, albums of your Facebook page, using **Specific**
381
  * Photos,
382
  * Videos,
383
  * Albums,
384
-
385
 
386
  The layouts you can use for Specific feeds differ depending on content type.
387
 
388
  * **Photos** and **Videos** can be showcased with **Thumbnails** and **Masonry** layouts,
389
  * For **Albums** you can use **Album** layout,
390
-
391
 
392
  = How do I publish Facebook Feed on my website? =
393
 
@@ -420,7 +395,7 @@ Each theme provided by 10Web Facebook Feed plugin consists of the following sect
420
  * **Masonry.** Configure options for masonry thumbnail border, padding, view and thumbnail background colors and transparency level, like and comment box options, hover effects, image description options.
421
  * **Compact Album.** Configure options for thumbnail border, hover effect, transition, margin, shadow, padding, view and thumbnail background colors and transparency level, image title options, back button options.
422
  * **Blog Style.** Configure options for comments box, Like, share, comment display, hashtags, image captions, location and dates, page, profile name and feed overall settings.
423
- * **Lightbox Page.** Configure options for lightbox background, control, toggle, close and navigation buttons, filmstrip options, story options, Like, share, comment display, hashtags and comments options.
424
  * **Navigation.** Configure navigation button options, which will be used for masonry, thumbnail, compact album and blog style views.
425
 
426
  = How can I display comments in the feed? =
1
  === 10Web Facebook Feed - Custom Facebook Feed Plugin ===
2
  Contributors: webdorado,10web,wdsupport
3
+ Tags: customizable facebook feed, facebook, facebook feed, facebook group, facebook like box, facebook likes, facebook page, facebook photos, facebook plugin, facebook posts, facebook likebox
4
  Requires at least: 3.4
5
  Requires PHP: 5.2
6
+ Tested up to: 5.2
7
+ Stable tag: 1.1.8
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
14
 
15
  10Web Facebook Feed is the ultimate plugin to display custom Facebook feeds on your website.
16
 
 
17
  = Useful Links: =
18
 
19
  [Live Demo](https://demo.10web.io/facebook-feed/)
24
 
25
  [Special Offer for all Premium Plugins](https://10web.io/plugins-bundle-pricing/)
26
 
27
+ Integrating customized content to your WordPress website from Facebook can't be any easier when using 10Web Facebook Feed plugin. It provides features to display a wide range of content from any page with full control over the content length, type and styling.
28
+
29
+ Whether you want to display an entire timeline of the feed with all its content, or just specific photos, videos, links and statuses from it, you can easily do that by choosing the desired post type you want to display. Each of the content type has its display views available and its own set of settings that you can fully customize.
30
+
31
+ The plugin features a powerful lightbox which supports filmstrip display (Premium version), 15 transition effects and can display the feed photos in a pop-up window. Configure the settings for lightbox and comments in just a few clicks.The feeds are inserted into the posts and pages with a shortcode and are mobile responsive.
32
+
33
+ **Benefits**
34
+
35
+ * **No feed limitations** - 10Web Facebook Feed lets you display unlimited number of feeds on every post and page. You can have different feeds based Facebook pages within the same page or post.
36
+ * **User engagement** - Facebook is a social media giant and most probably a great majority of your site visitors uses it on a daily basis. Displaying feeds with relevant content is definitely going to increase user engagement of your posts and have your visitors stay on your website way longer.
37
+ * **Go social** - Your posts might be really interesting and engaging, but a little bit of content from Facebook won't do any harm. You can support your posts with relevant content from Facebook and actually make your posts and pages look more interesting and fun.
38
+ * **Filter out desired content** - Facebook is a great source of information, but sometimes there is just too much of the stuff that's not relevant to your website or you simply don't want to show in your posts. With the premium version of 10Web Facebook Feed you can choose specific content types you want your visitors to see and engage with, such as photos, videos, albums.
39
+ * **Customization** - There are wide range of feed customizing options in the plugin to make sure your feeds don't look boring. Depending on the content type you want to display you can choose between different layout options. Also if you're using the premium version of the plugin there are various themes available that you can apply to the feeds.
40
+ * **Be in Charge** - 10Web Facebook Feed is giving you full control over the content you want to display. You can choose posts' user roles, the number of the posts displayed on the page, the length of the posts, feed update option, enable social sharing buttons, and many more.
41
+ * **Awesome support at your disposal** - The team behind 10Web Facebook Feed provides timely and effective support to all its users. We keep standards high and response time low.
42
+
43
+ **What&#39;s in it**
44
+
45
+ **RESPONSIVE LAYOUT**
46
+
47
+ Displayed feeds are responsive and scale perfectly to any screen.
48
+
49
+ **UNLIMITED FEEDS**
50
+
51
+ You can display as many feeds within the same post or page. Moreover, the feeds can be based on different Facebook pages.
52
+
53
+ **FEED AUTO UPDATE**
54
+
55
+ Specify the feed update interval, and the feed content will be automatically updated within the provided time period. You can also choose feed update option, whether the old posts are removed when the new ones are added, or the old ones are displayed together with the new ones.
56
+
57
+ **FACEBOOK WIDGET**
58
+
59
+ You can insert the feeds into your posts or pages using the provided shortcode, or display the feeds with the widget on the sidebar areas of your website. All the feed options, including feed view, number of posts,and the theme can be configured for the widget as well.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
 
61
+ **MULTIPLE FEED LAYOUTS**
62
+
63
+ 10Web Facebook Feed comes with a number of feed display layouts - Album view for albums, Masonry and Thumbnail views for Facebook videos and photos. The view options are available in the premium version, and vary depending on the content type you want to display.
64
+
65
+ **THEMES**
66
+
67
+ The users of the premium version will find four themes that they can apply to the feeds. The free version uses the default theme. All the parameters of the themes can be configured and reset any time.
68
+
69
+ **POWERFUL LIGHTBOX**
70
+
71
+ The plugin features an advanced lightbox which supports full-width view and 15 transition effects. The premium version of the plugin also support filsmtrip view within the widget.
72
+
73
+ **SOCIAL SHARING**
74
+
75
+ Social sharing feature is available in the premium version of the plugin, and it will let your site visitors share the feeds on Google+, Twitter and Facebook.
76
 
77
 
78
 
79
  **SETTINGS/CUSTOMIZATION**
80
  *Some customizations described here are available in Premium version. Please refer to premium feature summary below.*
81
 
82
+ To have 10Web Facebook Feed plugin up and running you have to create an app on Facebook. This is a required step by Facebook, but it's pretty easy once you check the plugin's user guide. Under the plugin's general options you provide Facebook app ID and secret, and then you can specify the feed auto update interval, choose the date format for posts.
83
 
84
  Adding feeds is just a matter of a few clicks. You just click on the **Add new** button from the feeds section of the plugin, and a new window with four setting tabs will open, including settings for the feed, lightbox, comments. From the main feed settings you set the page to create a feed with. Under the main settings you can also choose whether you display the whole timeline of the feed, or choose to display only specific content, such as only photos, videos, links.
85
 
86
  With a Facebook page feed, you can filter out the content based on user roles, and show posts and updates only from the page owner or other users from the group, or both. There is a long list of the lightbox settings you can enable, including social share buttons, showing comments, playing filmstrip, and more. The comments settings mainly include choosing comment filtering option, whether its top level or stream, with the former being the same structure as in Facebook and the latter including all-level comments. Here you can also enable showing the comment replies and choose commenting order.
87
 
88
 
89
+ **[Premium version adds](https://10web.io/plugins/wordpress-facebook-feed/)**
90
+
91
+ * Specific content feeds, where you can choose to display only single type of content from your Facebook wall (photos, videos, albums)
92
+ * Show Facebook share buttons
93
+ * Advanced lightbox with comments
94
+ * Filmstrip for lightbox
95
+ * Themes to change styles and colors for each view
96
+ * Multiple layouts – album view for albums, masonry and thumbnail views for Facebook videos and photos
97
+ * Social sharing for feed to Google Plus, Twitter and Facebook
98
+
99
 
100
  ###IMPORTANT:
101
+ If you think you found a bug in 10Web Facebook Feed or have any problem/question concerning this plugin, please check out [Support Forum](https://wordpress.org/support/plugin/wd-facebook-feed) .
102
 
103
  == Privacy Policy =
104
  The plugin uses Facebook API to get public data from Facebook. All the received data is cached in WordPress database for some short customizable period to provide optimization. You can delete or update cached data. You can optionally enable like button for Facebook page. If you do so, Facebook will load some JS and embedded content which may track visitors. Facebook embeds are regulated under terms of Facebook privacy policy https://www.facebook.com/policy.php.
105
 
106
  == Changelog ==
107
 
108
+ = 1.1.8 =
109
+ * Fixed: Notice on creating a feed.
110
+
111
  = 1.1.7 =
112
+ * Added: Banner to install 10Web manager.
113
 
114
  = 1.1.6 =
115
+ * Fixed: Minor bug.
116
 
117
  = 1.1.5 =
118
  * Changed: Links to 10Web.io.
135
  * Fixed: Elementor compatibility
136
 
137
  = 1.1.0 =
138
+ * **Important: Breaking change. Obtaining page access token is required to display your page content with 10Web Facebook Feed plugin.
139
  * Fixed: Error on PHP 7.2
140
  * Fixed: Notices when feed is unpublished
141
  * Changed: Deactivation popup
281
  * Initial version
282
 
283
  == Screenshots ==
284
+ 1. 10Web Facebook Feed - Timeline
285
+ 2. 10Web Facebook Feed - Videos
286
+ 3. 10Web Facebook Feed - Mansory view
287
+ 4. 10Web Facebook Feed - Event
288
+ 5. 10Web Facebook Feed - Edit Facebook Feed
289
+ 6. 10Web Facebook Feed - Edit Options
290
+ 7. 10Web Facebook Feed - Edit Theme
291
 
292
  == Installation ==
293
 
294
+ #### Thank you for your interest in 10Web Facebook Feed.
295
 
296
  ### Minimum requirements.
297
  * Wordpress 3.4+
308
  4. Click "Install Now" button.
309
  5. Click "Activate Plugin" button for activating 10Web Facebook Feed.
310
 
311
+ If the installation does not succeed, please contact us at [support@10web.io](mailto:support@10web.io).
312
 
313
  == Frequently Asked Questions ==
314
 
326
  * Main,
327
  * Lightbox Settings,
328
  * Comments,
 
329
 
330
  First, name your feed and set the **URL** of your Facebook page, for example:
331
 
337
  * Videos,
338
  * Statuses,
339
  * Links,
340
+
341
 
342
  = What kind of content can I display with my Facebook feed? =
343
 
356
  * Photos,
357
  * Videos,
358
  * Albums,
359
+
360
 
361
  The layouts you can use for Specific feeds differ depending on content type.
362
 
363
  * **Photos** and **Videos** can be showcased with **Thumbnails** and **Masonry** layouts,
364
  * For **Albums** you can use **Album** layout,
365
+
366
 
367
  = How do I publish Facebook Feed on my website? =
368
 
395
  * **Masonry.** Configure options for masonry thumbnail border, padding, view and thumbnail background colors and transparency level, like and comment box options, hover effects, image description options.
396
  * **Compact Album.** Configure options for thumbnail border, hover effect, transition, margin, shadow, padding, view and thumbnail background colors and transparency level, image title options, back button options.
397
  * **Blog Style.** Configure options for comments box, Like, share, comment display, hashtags, image captions, location and dates, page, profile name and feed overall settings.
398
+ * **Lightbox Page.** Configure options for lightbox background, control, toggle, close and navigation buttons, filmstrip options, story options,Like, share, comment display, hashtags and comments options.
399
  * **Navigation.** Configure navigation button options, which will be used for masonry, thumbnail, compact album and blog style views.
400
 
401
  = How can I display comments in the feed? =