WD Facebook Feed – Custom Facebook Feed Plugin - Version 1.0.31

Version Description

  • Fixed: Bug on autoupdate
  • Fixed: Bug on comments
Download this release

Release Info

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

Code changes from version 1.0.30 to 1.0.31

facebook-feed-wd.php CHANGED
@@ -1,14 +1,13 @@
1
  <?php
2
 
3
  /**
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.30
8
  * Author: WebDorado
9
  * Author URI: https://web-dorado.com/wordpress-plugins-bundle.html
10
  * License: GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
11
- * Text Domain: ffwd
12
  */
13
 
14
  define( 'WD_FFWD_DIR', WP_PLUGIN_DIR . "/" . plugin_basename( dirname( __FILE__ ) ) );
@@ -576,9 +575,9 @@ function ffwd_activate() {
576
  $wpdb->query( $wd_fb_data );
577
 
578
  $wd_fb_data_collation = "ALTER TABLE `" . $wpdb->prefix . "wd_fb_data`
579
- MODIFY `name` text CHARACTER SET utf16 COLLATE utf16_bin,
580
- MODIFY `description` mediumtext CHARACTER SET utf16 COLLATE utf16_bin,
581
- MODIFY `message` mediumtext CHARACTER SET utf16 COLLATE utf16_bin
582
  ";
583
  $wpdb->query( $wd_fb_data_collation );
584
 
@@ -876,17 +875,18 @@ function wd_fb_add_autoupdate_interval( $schedules ) {
876
 
877
  return $schedules;
878
  }
879
- //add_action( 'wd_fb_schedule_event_hook', 'wd_fb_update' );
880
  // wd_fb_update();
881
- function wd_fb_update() {
882
  require_once( WD_FFWD_DIR . '/framework/WDFacebookFeed.php' );
 
883
  $current_time=current_time('timestamp');
884
  $update_time=get_option('ffwd_autoupdate_time');
885
  $autoupdate_interval = WDFacebookFeed::get_autoupdate_interval();
886
  if(!$update_time)
887
  update_option('ffwd_autoupdate_time',$autoupdate_interval*60+$current_time);
888
 
889
- if($current_time>=$update_time)
890
  {
891
  global $wpdb;
892
  $query = "SELECT * FROM " . $wpdb->prefix . "wd_fb_info WHERE `update_mode` <> 'no_update'";
@@ -896,7 +896,7 @@ function wd_fb_update() {
896
  update_option('ffwd_autoupdate_time',$autoupdate_interval*60+current_time('timestamp'));
897
  }
898
 
899
- die();
900
 
901
  }
902
 
@@ -1000,7 +1000,7 @@ if ( !function_exists('wd_bps_install_notice_status') ) {
1000
 
1001
  function ffwd_version() {
1002
 
1003
- $version = '1.0.30';
1004
 
1005
  if ( get_option( 'ffwd_version' ) === false ) {
1006
  add_option( 'ffwd_version', $version );
@@ -1054,3 +1054,8 @@ function ffwd_add_plugin_meta_links($meta_fields, $file) {
1054
  return $meta_fields;
1055
  }
1056
  add_filter("plugin_row_meta", 'ffwd_add_plugin_meta_links', 10, 2);
 
 
 
 
 
1
  <?php
2
 
3
  /**
4
+ * Plugin Name: WD Facebook Feed
5
  * Plugin URI: https://web-dorado.com/products/wordpress-facebook-feed-plugin.html
6
+ * Description: WD Facebook Feed is a completely customizable, responsive solution to help you display your Facebook feed on your WordPress website.
7
+ * Version: 1.0.31
8
  * Author: WebDorado
9
  * Author URI: https://web-dorado.com/wordpress-plugins-bundle.html
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__ ) ) );
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 utf8mb4 COLLATE utf8mb4_bin,
579
+ MODIFY `description` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
580
+ MODIFY `message` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
581
  ";
582
  $wpdb->query( $wd_fb_data_collation );
583
 
875
 
876
  return $schedules;
877
  }
878
+ add_action( 'wd_fb_schedule_event_hook', 'wd_fb_update' );
879
  // wd_fb_update();
880
+ function wd_fb_update($from_plugin=0) {
881
  require_once( WD_FFWD_DIR . '/framework/WDFacebookFeed.php' );
882
+
883
  $current_time=current_time('timestamp');
884
  $update_time=get_option('ffwd_autoupdate_time');
885
  $autoupdate_interval = WDFacebookFeed::get_autoupdate_interval();
886
  if(!$update_time)
887
  update_option('ffwd_autoupdate_time',$autoupdate_interval*60+$current_time);
888
 
889
+ if(($current_time>=$update_time && $from_plugin) || !$from_plugin )
890
  {
891
  global $wpdb;
892
  $query = "SELECT * FROM " . $wpdb->prefix . "wd_fb_info WHERE `update_mode` <> 'no_update'";
896
  update_option('ffwd_autoupdate_time',$autoupdate_interval*60+current_time('timestamp'));
897
  }
898
 
899
+ //die();
900
 
901
  }
902
 
1000
 
1001
  function ffwd_version() {
1002
 
1003
+ $version = '1.0.31';
1004
 
1005
  if ( get_option( 'ffwd_version' ) === false ) {
1006
  add_option( 'ffwd_version', $version );
1054
  return $meta_fields;
1055
  }
1056
  add_filter("plugin_row_meta", 'ffwd_add_plugin_meta_links', 10, 2);
1057
+
1058
+ if (!class_exists('Linkify')) {
1059
+ include_once WD_FFWD_DIR . '/framework/linkify/LinkifyInterface.php';
1060
+ include_once WD_FFWD_DIR . '/framework/linkify/Linkify.php';
1061
+ }
framework/WDFacebookFeed.php CHANGED
@@ -1,5 +1,6 @@
1
  <?php
2
 
 
3
  class WDFacebookFeed {
4
  ////////////////////////////////////////////////////////////////////////////////////////
5
  // Events //
@@ -37,13 +38,13 @@ class WDFacebookFeed {
37
 
38
  // Existing app ids and app secrets
39
  protected static $access_tokens = array (
40
- '462859190728873|55b52362578b8475e12486816fba3b08',
41
- '1907658946156725|772c0f8e45a3e7ce70e66a93763e3c1e',
42
- '1856176344702073|518810088891d8dd77f65519909e1552',
43
- '1568389583234881|d76357cd1a2639bcdf4abbe3c3d12d52',
44
- '1337518309701023|118cb47c5661be524a50a597ea013c85',
45
- '263377707476536|b091b6e1769d6b8a9e79ed7472394943',
46
- '2035553139992018|20faa0abffc02f00ef1cac3f82e6e8b6',
47
  );
48
 
49
  protected static $save = true;
@@ -56,6 +57,8 @@ class WDFacebookFeed {
56
  // Constructor & Destructor //
57
  ////////////////////////////////////////////////////////////////////////////////////////
58
  public function __construct() {
 
 
59
  }
60
 
61
  ////////////////////////////////////////////////////////////////////////////////////////
@@ -713,8 +716,9 @@ $ffwd_info_options[$ffwd_option_db] =((isset($_POST[$ffwd_option_db])) ? esc_htm
713
  array(self::$id, $edge, 'access_token=' . self::$access_token . '&', $fields, 'locale='.get_locale().'&', ''), self::$graph_url
714
  );
715
 
716
- /*print_r($fb_graph_url);
717
- wp_die();*/
 
718
 
719
  if (self::$auto_update_feed == 1) {
720
  global $wpdb;
@@ -1274,7 +1278,7 @@ $ffwd_info_options[$ffwd_option_db] =((isset($_POST[$ffwd_option_db])) ? esc_htm
1274
  $content = implode(",", self::$content);
1275
  $success = 'no_data';
1276
 
1277
- foreach($data as $next) {
1278
  /**
1279
  * check if content_type is timeline dont save wd_fb_data if
1280
  * $content string not contain $next['type']
@@ -1629,7 +1633,7 @@ $ffwd_info_options[$ffwd_option_db] =((isset($_POST[$ffwd_option_db])) ? esc_htm
1629
 
1630
  return $facebook_graph_results;
1631
  }
1632
-
1633
  public static function get_autoupdate_interval(){
1634
  global $wpdb;
1635
  $row = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . $wpdb->prefix . 'wd_fb_option WHERE id="%d"', 1));
1
  <?php
2
 
3
+
4
  class WDFacebookFeed {
5
  ////////////////////////////////////////////////////////////////////////////////////////
6
  // Events //
38
 
39
  // Existing app ids and app secrets
40
  protected static $access_tokens = array (
41
+ '1786066011417150|5043eac44ee54731ed404b9db021cdf2',
42
+ '366766273734391|b9894da4ba6d4d75b500d13fda893810',
43
+ '142301613131592|66b723042df89a280e618670b73e3aaa',
44
+ '209804229584368|3a2d59f876e0df3d42d829f8a1569636',
45
+ '522842584751334|de7e0895060a9e2bf6e972a17626ce1d',
46
+ '623116398019349|4d4c0f3404ce3baa9d07d525be0f2d65',
47
+ '155873221861806|41c4c1b3df8ac8ed12dd5f7204abf1e6',
48
  );
49
 
50
  protected static $save = true;
57
  // Constructor & Destructor //
58
  ////////////////////////////////////////////////////////////////////////////////////////
59
  public function __construct() {
60
+
61
+
62
  }
63
 
64
  ////////////////////////////////////////////////////////////////////////////////////////
716
  array(self::$id, $edge, 'access_token=' . self::$access_token . '&', $fields, 'locale='.get_locale().'&', ''), self::$graph_url
717
  );
718
 
719
+
720
+ /*print_r($fb_graph_url);
721
+ wp_die();*/
722
 
723
  if (self::$auto_update_feed == 1) {
724
  global $wpdb;
1278
  $content = implode(",", self::$content);
1279
  $success = 'no_data';
1280
 
1281
+ foreach($data as $next) {
1282
  /**
1283
  * check if content_type is timeline dont save wd_fb_data if
1284
  * $content string not contain $next['type']
1633
 
1634
  return $facebook_graph_results;
1635
  }
1636
+
1637
  public static function get_autoupdate_interval(){
1638
  global $wpdb;
1639
  $row = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . $wpdb->prefix . 'wd_fb_option WHERE id="%d"', 1));
framework/linkify/Linkify.php ADDED
@@ -0,0 +1,219 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of the Linkify library.
5
+ *
6
+ * (c) University of Cambridge
7
+ *
8
+ * For the full copyright and license information, please view the LICENSE
9
+ * file that was distributed with this source code.
10
+ */
11
+
12
+ namespace Misd\Linkify;
13
+
14
+ /**
15
+ * Converts URLs and/or email addresses into HTML links.
16
+ */
17
+ class Linkify implements LinkifyInterface
18
+ {
19
+ /**
20
+ * Default options.
21
+ *
22
+ * @var array
23
+ */
24
+ protected $options;
25
+
26
+ /**
27
+ * Constructor.
28
+ *
29
+ * @param array $options Default options.
30
+ */
31
+ public function __construct(array $options = array())
32
+ {
33
+ $this->options = $options;
34
+ }
35
+
36
+ /**
37
+ * {@inheritdoc}
38
+ */
39
+ public function process($text, array $options = array())
40
+ {
41
+ return $this->linkify($text, true, true, $options);
42
+ }
43
+
44
+ /**
45
+ * {@inheritdoc}
46
+ */
47
+ public function processUrls($text, array $options = array())
48
+ {
49
+ return $this->linkify($text, true, false, $options);
50
+ }
51
+
52
+ /**
53
+ * {@inheritdoc}
54
+ */
55
+ public function processEmails($text, array $options = array())
56
+ {
57
+ return $this->linkify($text, false, true, $options);
58
+ }
59
+
60
+ /**
61
+ * Add links to text.
62
+ *
63
+ * @param string $text Text to linkify.
64
+ * @param bool $urls Linkify URLs?
65
+ * @param bool $emails Linkify email addresses?
66
+ * @param array $options Options.
67
+ *
68
+ * @return string Linkified text.
69
+ */
70
+ protected function linkify($text, $urls = true, $emails = true, array $options = array())
71
+ {
72
+ if (false === $urls && false === $emails) {
73
+ // nothing to do...
74
+ return $text;
75
+ }
76
+
77
+ $options = array_merge_recursive($this->options, $options);
78
+
79
+ $attr = '';
80
+
81
+ if (true === array_key_exists('attr', $options)) {
82
+ foreach ($options['attr'] as $key => $value) {
83
+ if (true === is_array($value)) {
84
+ $value = array_pop($value);
85
+ }
86
+ $attr .= sprintf(' %s="%s"', $key, $value);
87
+ }
88
+ }
89
+
90
+ $options['attr'] = $attr;
91
+
92
+ $ignoreTags = array('head', 'link', 'a', 'script', 'style', 'code', 'pre', 'select', 'textarea', 'button');
93
+
94
+ $chunks = preg_split('/(<.+?>)/is', $text, 0, PREG_SPLIT_DELIM_CAPTURE);
95
+
96
+ $openTag = null;
97
+
98
+ for ($i = 0; $i < count($chunks); $i++) {
99
+ if ($i % 2 === 0) { // even numbers are text
100
+ // Only process this chunk if there are no unclosed $ignoreTags
101
+ if (null === $openTag) {
102
+ if (true === $urls) {
103
+ $chunks[$i] = $this->linkifyUrls($chunks[$i], $options);
104
+ }
105
+ if (true === $emails) {
106
+ $chunks[$i] = $this->linkifyEmails($chunks[$i], $options);
107
+ }
108
+ }
109
+ } else { // odd numbers are tags
110
+ // Only process this tag if there are no unclosed $ignoreTags
111
+ if (null === $openTag) {
112
+ // Check whether this tag is contained in $ignoreTags and is not self-closing
113
+ if (preg_match("`<(" . implode('|', $ignoreTags) . ").*(?<!/)>$`is", $chunks[$i], $matches)) {
114
+ $openTag = $matches[1];
115
+ }
116
+ } else {
117
+ // Otherwise, check whether this is the closing tag for $openTag.
118
+ if (preg_match('`</\s*' . $openTag . '>`i', $chunks[$i], $matches)) {
119
+ $openTag = null;
120
+ }
121
+ }
122
+ }
123
+ }
124
+
125
+ $text = implode($chunks);
126
+
127
+ return $text;
128
+ }
129
+
130
+ /**
131
+ * Add HTML links to URLs in plain text.
132
+ *
133
+ * @see http://www.regular-expressions.info/catastrophic.html For more info on atomic-grouping,
134
+ * used in this regex to prevent Catastrophic Backtracking.
135
+ *
136
+ * @param string $text Text to linkify.
137
+ * @param array $options Options, 'attr' key being the attributes to add to the links, with a preceding space.
138
+ *
139
+ * @return string Linkified text.
140
+ */
141
+ protected function linkifyUrls($text, $options = array('attr' => ''))
142
+ {
143
+ $pattern = '~(?xi)
144
+ (?:
145
+ ((ht|f)tps?://) # scheme://
146
+ | # or
147
+ www\d{0,3}\. # "www.", "www1.", "www2." ... "www999."
148
+ | # or
149
+ www\- # "www-"
150
+ | # or
151
+ [a-z0-9.\-]+\.[a-z]{2,4}(?=/) # looks like domain name followed by a slash
152
+ )
153
+ (?: # Zero or more:
154
+ [^\s()<>]+ # Run of non-space, non-()<>
155
+ | # or
156
+ \((?>[^\s()<>]+|(\([^\s()<>]+\)))*\) # balanced parens, up to 2 levels
157
+ )*
158
+ (?: # End with:
159
+ \((?>[^\s()<>]+|(\([^\s()<>]+\)))*\) # balanced parens, up to 2 levels
160
+ | # or
161
+ [^\s`!\-()\[\]{};:\'".,<>?«»“”‘’] # not a space or one of these punct chars
162
+ )
163
+ ~u';
164
+
165
+ $callback = function ($match) use ($options) {
166
+ $caption = $match[0];
167
+ $pattern = "~^(ht|f)tps?://~";
168
+
169
+ if (0 === preg_match($pattern, $match[0])) {
170
+ $match[0] = 'http://' . $match[0];
171
+ }
172
+
173
+ if (isset($options['callback'])) {
174
+ $cb = $options['callback']($match[0], $caption, false);
175
+ if (!is_null($cb)) {
176
+ return $cb;
177
+ }
178
+ }
179
+
180
+ return '<a href="' . $match[0] . '"' . $options['attr'] . '>' . $caption . '</a>';
181
+ };
182
+
183
+ return preg_replace_callback($pattern, $callback, $text);
184
+ }
185
+
186
+ /**
187
+ * Add HTML links to email addresses in plain text.
188
+ *
189
+ * @param string $text Text to linkify.
190
+ * @param array $options Options, 'attr' key being the attributes to add to the links, with a preceding space.
191
+ *
192
+ * @return string Linkified text.
193
+ */
194
+ protected function linkifyEmails($text, $options = array('attr' => ''))
195
+ {
196
+ $pattern = '~(?xi)
197
+ \b
198
+ (?<!=) # Not part of a query string
199
+ [A-Z0-9._\'%+-]+ # Username
200
+ @ # At
201
+ [A-Z0-9.-]+ # Domain
202
+ \. # Dot
203
+ [A-Z]{2,4} # Something
204
+ ~u';
205
+
206
+ $callback = function ($match) use ($options) {
207
+ if (isset($options['callback'])) {
208
+ $cb = $options['callback']($match[0], $match[0], true);
209
+ if (!is_null($cb)) {
210
+ return $cb;
211
+ }
212
+ }
213
+
214
+ return '<a href="mailto:' . $match[0] . '"' . $options['attr'] . '>' . $match[0] . '</a>';
215
+ };
216
+
217
+ return preg_replace_callback($pattern, $callback, $text);
218
+ }
219
+ }
framework/linkify/LinkifyInterface.php ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of the Linkify library.
5
+ *
6
+ * (c) University of Cambridge
7
+ *
8
+ * For the full copyright and license information, please view the LICENSE
9
+ * file that was distributed with this source code.
10
+ */
11
+
12
+ namespace Misd\Linkify;
13
+
14
+ /**
15
+ * Converts URLs and/or email addresses into HTML links.
16
+ */
17
+ interface LinkifyInterface
18
+ {
19
+ /**
20
+ * Add HTML links to both URLs and email addresses.
21
+ *
22
+ * @param string $text Text to process.
23
+ * @param array $options Options.
24
+ *
25
+ * @return string Processed text.
26
+ */
27
+ public function process($text, array $options = array());
28
+
29
+ /**
30
+ * Add HTML links to URLs.
31
+ *
32
+ * @param string $text Text to process.
33
+ * @param array $options Options.
34
+ *
35
+ * @return string Processed text.
36
+ */
37
+ public function processUrls($text, array $options = array());
38
+
39
+ /**
40
+ * Add HTML links to email addresses.
41
+ *
42
+ * @param string $text Text to process.
43
+ * @param array $options Options.
44
+ *
45
+ * @return string Processed text.
46
+ */
47
+ public function processEmails($text, array $options = array());
48
+ }
frontend/controllers/FFWDControllerMain.php CHANGED
@@ -17,7 +17,9 @@ class FFWDControllerMain {
17
  public function __construct($params = array(), $from_shortcode = 0, $ffwd = 0, $view) {
18
 
19
  $this->view = $view;
 
20
  $this->display($params, $from_shortcode, $ffwd);
 
21
  }
22
  ////////////////////////////////////////////////////////////////////////////////////////
23
  // Public Methods //
17
  public function __construct($params = array(), $from_shortcode = 0, $ffwd = 0, $view) {
18
 
19
  $this->view = $view;
20
+ wd_fb_update(1);
21
  $this->display($params, $from_shortcode, $ffwd);
22
+
23
  }
24
  ////////////////////////////////////////////////////////////////////////////////////////
25
  // Public Methods //
frontend/views/FFWDViewBlog_style.php CHANGED
@@ -106,6 +106,7 @@ class FFWDViewBlog_style {
106
  'current_url' => urlencode($current_url)
107
  );
108
 
 
109
  ?>
110
  <style>
111
  #ffwd_container1_<?php echo $ffwd; ?> {
@@ -1156,17 +1157,18 @@ class FFWDViewBlog_style {
1156
  ?>
1157
  <p class="ffwd_blog_style_object_messages_<?php echo $ffwd; ?>">
1158
  <?php
 
1159
  $message = $this->model->see_less_more($ffwd_data_row->message, 'message', $ffwd_data_row->type,$ffwd_info['post_text_length'],$ffwd_info['event_desp_length']);
1160
  $message = $this->model->fill_hashtags($message, $ffwd);
1161
  $message = $this->model->fill_tags($message, $ffwd_data_row->message_tags, $ffwd);
1162
- echo nl2br($message);
1163
  ?>
1164
  </p>
1165
  <p class="bwg_blog_style_object_description_<?php echo $ffwd; ?>">
1166
  <?php
1167
  $description = $this->model->see_less_more($ffwd_data_row->description, 'description', $ffwd_data_row->type,$ffwd_info['post_text_length'],$ffwd_info['event_desp_length']);
1168
  $description = $this->model->fill_hashtags($description, $ffwd);
1169
- echo nl2br($description);
1170
  ?>
1171
  </p>
1172
  <?php
106
  'current_url' => urlencode($current_url)
107
  );
108
 
109
+ $linkify=new \Misd\Linkify\Linkify();
110
  ?>
111
  <style>
112
  #ffwd_container1_<?php echo $ffwd; ?> {
1157
  ?>
1158
  <p class="ffwd_blog_style_object_messages_<?php echo $ffwd; ?>">
1159
  <?php
1160
+
1161
  $message = $this->model->see_less_more($ffwd_data_row->message, 'message', $ffwd_data_row->type,$ffwd_info['post_text_length'],$ffwd_info['event_desp_length']);
1162
  $message = $this->model->fill_hashtags($message, $ffwd);
1163
  $message = $this->model->fill_tags($message, $ffwd_data_row->message_tags, $ffwd);
1164
+ echo nl2br($linkify->process($message));
1165
  ?>
1166
  </p>
1167
  <p class="bwg_blog_style_object_description_<?php echo $ffwd; ?>">
1168
  <?php
1169
  $description = $this->model->see_less_more($ffwd_data_row->description, 'description', $ffwd_data_row->type,$ffwd_info['post_text_length'],$ffwd_info['event_desp_length']);
1170
  $description = $this->model->fill_hashtags($description, $ffwd);
1171
+ echo nl2br($linkify->process($description));
1172
  ?>
1173
  </p>
1174
  <?php
js/ffwd_frontend.js CHANGED
@@ -709,15 +709,19 @@ function do_something_with_data_blog_style(result, id, ffwd, type, owner_info, f
709
  z++;
710
  }
711
 
 
712
  var url_for_cur_id_comm_user_pic = graph_url.replace('{FB_ID}', result['data'][i]['from']['id']);
713
  url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{EDGE}', '');
714
  url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{FIELDS}', 'fields=picture&');
715
  url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{OTHER}', '');
 
716
 
717
 
718
 
719
- var comment_author_pic = '<div style="float:left" id="ffwd_comment_author_pic_' + ffwd + '_' + id + '" class="ffwd_comment_author_pic_' + ffwd + '" > <img class="user_' + result['data'][i]['from']['id'] + '" src="https://graph.facebook.com/'+result['data'][i]['from']['id']+'/picture" > </div>',
720
- comment_author_name = '<a id="ffwd_comment_author_name_' + ffwd + '_' + id + '" href="https://www.facebook.com/' + result['data'][i]['from']['id'] + '" class="ffwd_comment_author_name_' + ffwd + '" > ' + result['data'][i]['from']['name'] + ' </a>',
 
 
721
  comment_message = '<span id="ffwd_comment_message_' + ffwd + '_' + id + '" class="ffwd_comment_message_' + ffwd + '" > ' + result['data'][i]['message'] + ' </span>',
722
  comment_date = '<span id="ffwd_comment_date_' + ffwd + '_' + id + '" class="ffwd_comment_date_' + ffwd + '" > ' + ffwd_get_passed_time(result['data'][i]['created_time']) + '</span>',
723
  comment_likes_count = '<span id="ffwd_comment_likes_count_' + ffwd + '_' + id + '" class="ffwd_comment_likes_count_' + ffwd + '" > ' + result['data'][i]['like_count'] + ' </span>',
@@ -1066,6 +1070,7 @@ function ffwd_blog_style_resize(ffwd_params, ffwd) {
1066
  }
1067
 
1068
 
 
1069
  jQuery(window).ready(function () {
1070
  jQuery.ajax({
1071
  url: ffwd_frontend_text.ajax_url,
@@ -1079,4 +1084,4 @@ jQuery(window).ready(function () {
1079
 
1080
  })
1081
 
1082
- })
709
  z++;
710
  }
711
 
712
+ /*
713
  var url_for_cur_id_comm_user_pic = graph_url.replace('{FB_ID}', result['data'][i]['from']['id']);
714
  url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{EDGE}', '');
715
  url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{FIELDS}', 'fields=picture&');
716
  url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{OTHER}', '');
717
+ */
718
 
719
 
720
 
721
+ //var comment_author_pic = '<div style="float:left" id="ffwd_comment_author_pic_' + ffwd + '_' + id + '" class="ffwd_comment_author_pic_' + ffwd + '" > <img class="user_' + result['data'][i]['from']['id'] + '" src="https://graph.facebook.com/'+result['data'][i]['from']['id']+'/picture" > </div>',
722
+ var comment_author_pic = '<span></span>',
723
+ comment_author_name = '<span></span>',
724
+ //comment_author_name = '<a id="ffwd_comment_author_name_' + ffwd + '_' + id + '" href="https://www.facebook.com/' + result['data'][i]['from']['id'] + '" class="ffwd_comment_author_name_' + ffwd + '" > ' + result['data'][i]['from']['name'] + ' </a>',
725
  comment_message = '<span id="ffwd_comment_message_' + ffwd + '_' + id + '" class="ffwd_comment_message_' + ffwd + '" > ' + result['data'][i]['message'] + ' </span>',
726
  comment_date = '<span id="ffwd_comment_date_' + ffwd + '_' + id + '" class="ffwd_comment_date_' + ffwd + '" > ' + ffwd_get_passed_time(result['data'][i]['created_time']) + '</span>',
727
  comment_likes_count = '<span id="ffwd_comment_likes_count_' + ffwd + '_' + id + '" class="ffwd_comment_likes_count_' + ffwd + '" > ' + result['data'][i]['like_count'] + ' </span>',
1070
  }
1071
 
1072
 
1073
+ /*
1074
  jQuery(window).ready(function () {
1075
  jQuery.ajax({
1076
  url: ffwd_frontend_text.ajax_url,
1084
 
1085
  })
1086
 
1087
+ })*/
js/ffwd_gallery_box.js CHANGED
@@ -724,14 +724,18 @@ function ffwd_fill_likes_comments(key) {
724
  z++;
725
  }
726
 
 
727
  var url_for_cur_id_comm_user_pic = popup_graph_url.replace('{FB_ID}', result['comments']['data'][i]['from']['id']);
728
  url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{EDGE}', '');
729
  url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{FIELDS}', '&fields=picture&');
730
  url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{OTHER}', '');
 
731
 
732
 
733
- var comment_author_pic = '<div style="float:left" class="ffwd_comment_author_pic" > <img class="user_'+result['comments']['data'][i]['from']['id']+'" style="width:32px;height:32px" src="https://graph.facebook.com/'+result['comments']['data'][i]['from']['id']+'/picture" > </div>',
734
- comment_author_name = '<a class="ffwd_comment_author_name" href="https://www.facebook.com/'+result['comments']['data'][i]['from']['id']+'" target="_blank"> '+result['comments']['data'][i]['from']['name']+' </a>',
 
 
735
  comment_message = '<span class="ffwd_comment_message" > '+result['comments']['data'][i]['message']+' </span>',
736
  comment_date = '<span class="ffwd_comment_date" > '+ffwd_get_passed_time_popup(result['comments']['data'][i]['created_time'])+'</span>',
737
  comment_likes_count = '<span class="ffwd_comment_likes_count"> '+result['comments']['data'][i]['like_count']+' </span>',
@@ -788,7 +792,7 @@ function ffwd_fill_likes_comments(key) {
788
  jQuery.getJSON(graph_url_for_likes, function(result) {
789
  var likes_count = (typeof result['summary'] != 'undefined') ? parseInt(result['summary']['total_count']) : 0;
790
  jQuery('#ffwd_likes').html(likes_count);
791
- if(likes_count >= 3) {
792
  var likes_some_names = '<div class="ffwd_likes_name_cont"> <a class="ffwd_likes_name" href="https://www.facebook.com/'+result['data'][0]['id']+'" target="_blank">' + result['data'][0]['name'] + ' , </a><a class="ffwd_likes_name" href="https://www.facebook.com/'+result['data'][1]['id']+'" target="_blank">' + result['data'][1]['name'] +'</a></div>',
793
  likes_count_last_part = '<div class="ffwd_likes_count_last_part" > and ' + (likes_count - 2) +' others like this </div>';
794
  }
@@ -803,8 +807,13 @@ function ffwd_fill_likes_comments(key) {
803
  else {
804
  var likes_some_names = '',
805
  likes_count_last_part = '';
806
- }
807
- var likes_names_count = '<div class="ffwd_likes_names" > '+likes_some_names+likes_count_last_part+' </div><div style="clear:both" ></div>';
 
 
 
 
 
808
  if(likes_count > 0)
809
  jQuery('#ffwd_likes_names_count').html(likes_names_count).css("display", "block");
810
  else
@@ -830,14 +839,18 @@ function ffwd_fill_likes_comments(key) {
830
  z++;
831
  }
832
 
 
833
  var url_for_cur_id_comm_user_pic = popup_graph_url.replace('{FB_ID}', data[key]['comments']['data'][i]['from']['id']);
834
  url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{EDGE}', '');
835
  url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{FIELDS}', '&fields=picture&');
836
  url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{OTHER}', '');
837
 
 
838
 
839
- var comment_author_pic = '<div style="float:left" class="ffwd_comment_author_pic" > <img class="user_'+data[key]['comments']['data'][i]['from']['id']+'" style="width:32px;height:32px" src="https://graph.facebook.com/'+data[key]['comments']['data'][i]['from']['id']+'/picture" > </div>',
840
- comment_author_name = '<a class="ffwd_comment_author_name" href="https://www.facebook.com/'+data[key]['comments']['data'][i]['from']['id']+'" target="_blank"> '+data[key]['comments']['data'][i]['from']['name']+' </a>',
 
 
841
  comment_message = '<span class="ffwd_comment_message" > '+data[key]['comments']['data'][i]['message']+' </span>',
842
  comment_date = '<span class="ffwd_comment_date" > '+ffwd_get_passed_time_popup(data[key]['comments']['data'][i]['created_time'])+'</span>',
843
  comment_likes_count = '<span class="ffwd_comment_likes_count"> '+data[key]['comments']['data'][i]['like_count']+' </span>',
724
  z++;
725
  }
726
 
727
+ /*
728
  var url_for_cur_id_comm_user_pic = popup_graph_url.replace('{FB_ID}', result['comments']['data'][i]['from']['id']);
729
  url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{EDGE}', '');
730
  url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{FIELDS}', '&fields=picture&');
731
  url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{OTHER}', '');
732
+ */
733
 
734
 
735
+ var comment_author_pic = '<span></span>',
736
+ //var comment_author_pic = '<div style="float:left" class="ffwd_comment_author_pic" > <img class="user_'+result['comments']['data'][i]['from']['id']+'" style="width:32px;height:32px" src="https://graph.facebook.com/'+result['comments']['data'][i]['from']['id']+'/picture" > </div>',
737
+ comment_author_name = '<span></span>',
738
+ // comment_author_name = '<a class="ffwd_comment_author_name" href="https://www.facebook.com/'+result['comments']['data'][i]['from']['id']+'" target="_blank"> '+result['comments']['data'][i]['from']['name']+' </a>',
739
  comment_message = '<span class="ffwd_comment_message" > '+result['comments']['data'][i]['message']+' </span>',
740
  comment_date = '<span class="ffwd_comment_date" > '+ffwd_get_passed_time_popup(result['comments']['data'][i]['created_time'])+'</span>',
741
  comment_likes_count = '<span class="ffwd_comment_likes_count"> '+result['comments']['data'][i]['like_count']+' </span>',
792
  jQuery.getJSON(graph_url_for_likes, function(result) {
793
  var likes_count = (typeof result['summary'] != 'undefined') ? parseInt(result['summary']['total_count']) : 0;
794
  jQuery('#ffwd_likes').html(likes_count);
795
+ /*if(likes_count >= 3) {
796
  var likes_some_names = '<div class="ffwd_likes_name_cont"> <a class="ffwd_likes_name" href="https://www.facebook.com/'+result['data'][0]['id']+'" target="_blank">' + result['data'][0]['name'] + ' , </a><a class="ffwd_likes_name" href="https://www.facebook.com/'+result['data'][1]['id']+'" target="_blank">' + result['data'][1]['name'] +'</a></div>',
797
  likes_count_last_part = '<div class="ffwd_likes_count_last_part" > and ' + (likes_count - 2) +' others like this </div>';
798
  }
807
  else {
808
  var likes_some_names = '',
809
  likes_count_last_part = '';
810
+ }*/
811
+
812
+
813
+ var likes_some_names = '',
814
+ likes_count_last_part = '';
815
+
816
+ var likes_names_count = '<div class="ffwd_likes_names" > '+likes_some_names+likes_count_last_part+' </div><div style="clear:both" ></div>';
817
  if(likes_count > 0)
818
  jQuery('#ffwd_likes_names_count').html(likes_names_count).css("display", "block");
819
  else
839
  z++;
840
  }
841
 
842
+ /*
843
  var url_for_cur_id_comm_user_pic = popup_graph_url.replace('{FB_ID}', data[key]['comments']['data'][i]['from']['id']);
844
  url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{EDGE}', '');
845
  url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{FIELDS}', '&fields=picture&');
846
  url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{OTHER}', '');
847
 
848
+ */
849
 
850
+ //var comment_author_pic = '<div style="float:left" class="ffwd_comment_author_pic" > <img class="user_'+data[key]['comments']['data'][i]['from']['id']+'" style="width:32px;height:32px" src="https://graph.facebook.com/'+data[key]['comments']['data'][i]['from']['id']+'/picture" > </div>',
851
+ var comment_author_pic = '<span></span>',
852
+ //comment_author_name = '<a class="ffwd_comment_author_name" href="https://www.facebook.com/'+data[key]['comments']['data'][i]['from']['id']+'" target="_blank"> '+data[key]['comments']['data'][i]['from']['name']+' </a>',
853
+ comment_author_name = '<span></span>',
854
  comment_message = '<span class="ffwd_comment_message" > '+data[key]['comments']['data'][i]['message']+' </span>',
855
  comment_date = '<span class="ffwd_comment_date" > '+ffwd_get_passed_time_popup(data[key]['comments']['data'][i]['created_time'])+'</span>',
856
  comment_likes_count = '<span class="ffwd_comment_likes_count"> '+data[key]['comments']['data'][i]['like_count']+' </span>',
readme.txt CHANGED
@@ -1,37 +1,37 @@
1
- === Facebook Feed WD - Custom Facebook Feed Plugin ===
2
- Contributors: webdorado, 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: 4.9
7
- Stable tag: 1.0.30
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
- Facebook Feed WD is a comprehensive tool for displaying Facebook feed, events and photos in your website.
12
 
13
  == Description ==
14
 
15
  [Special Offer for all Premium Plugins](https://web-dorado.com/wordpress-plugins-bundle.html)
16
- [WordPress Facebook Feed WD](https://web-dorado.com/products/wordpress-facebook-feed-plugin.html)
17
  [Demo](http://wpdemo.web-dorado.com/facebook-feed/)
18
  [Demo Admin](http://wpdemo.web-dorado.com/wp-admin/admin.php?page=info_ffwd)
19
  [User Guide](https://web-dorado.com/wordpress-facebook-feed/installing.html)
20
  [Support Forum](https://web-dorado.com/forum/facebook-feed-wd.html)
21
 
22
- Do you plan to make your website more social? Do you want to include Facebook feeds based on a page/public group/your profile within a few steps? Do you want to control the content length, type and styling? WordPress Facebook feed plugin will offer these and hundreds of other options to create and publish custom feeds on your WordPress website. Facebook Feed WD is a comprehensive Facebook integration tool for displaying responsive Facebook feeds, events and photos in your website. With this plugin you will be able to display content from any Facebook fan page, public group and your profile (Pro version). Using this WordPress Facebook plugin you can constantly refresh your feed: either removing old content and replacing it with fresh posts or adding-up to the existing list of posts.
23
  You can set the number of posts to be displayed.
24
 
25
  You can show feeds in posts/pages using WordPress Facebook feed plugin shortcode or display them in widget area using the widget.
26
 
27
  The number of displayed Facebook feeds per each post/page is unlimited. You can add Facebook feeds based on different pages, groups and profile (Pro) within the same page. For Facebook pages and Facebook groups you can choose the user roles whose posts will be shared- page owner/ group admin, group member/page fans or both. Hashtags and mentions included in posts will be preserved. Facebook albums will be displayed with thumbnails which open up in lightbox. High-resolution lightbox images will be accompanied with filmstrip(Pro version), which will turn the standard display of images into an elegant Facebook gallery. The Facebook page plugin comes with a number of great features and functionality to allow you create anything from free simple feeds to custom feeds, including Facebook group events, Facebook likebox, Facebook feed gallery and more to increase engagement of your Facebook fans.
28
- In other words, Facebook Feed WD is a great social plugin for all those who need to display their social media feed on WordPress website, keep in constant touch with Facebook followers. This powerful, but at the same time easy custom solution will allow you to take your social networking to the next level by creating and publishing stylish Facebook feeds in just a few minutes.
29
  To make appearance and overall design changes you can use Themes (available with Pro version) . This section uses different style sets for each layout.
30
 
31
  ###IMPORTANT:
32
- If you think you found a bug in Facebook Feed WD or have any problem/question concerning this plugin, please check out [Support Forum](https://wordpress.org/support/plugin/wd-facebook-feed) . If you do not find a solution here, do not hesitate to [click here to contact us](https://web-dorado.com/support/contact-us.html).
33
 
34
- = Main features of Facebook Feed WD: =
35
 
36
  * Responsive layout
37
  * Page feeds
@@ -60,6 +60,11 @@ Upgrade to [Facebook Feed Pro](https://web-dorado.com/products/wordpress-faceboo
60
 
61
  == Changelog ==
62
 
 
 
 
 
 
63
  = 1.0.30 =
64
  * Changed: Deactivation popup
65
 
@@ -165,17 +170,17 @@ Added: Support forum and Review links.
165
  * Initial version
166
 
167
  == Screenshots ==
168
- 1. Facebook Feed WD - Timeline
169
- 2. Facebook Feed WD - Videos
170
- 3. Facebook Feed WD - Mansory view
171
- 4. Facebook Feed WD - Event
172
- 5. Facebook Feed WD - Edit Facebook Feed
173
- 6. Facebook Feed WD - Edit Options
174
- 7. Facebook Feed WD - Edit Theme
175
 
176
  == Installation ==
177
 
178
- #### Thank you for your interest in Facebook Feed WD.
179
 
180
  ### Minimum requirements.
181
  * Wordpress 3.4+
@@ -190,14 +195,14 @@ After downloading the ZIP file of the plugin,
190
  2. Go to Plugins Add > New > Upload.
191
  3. Click "Choose file" ("Browse") and select the downloaded zip file of the plugin.
192
  4. Click "Install Now" button.
193
- 5. Click "Activate Plugin" button for activating Facebook Feed WD.
194
  6. If the installation does not succeed, please contact us at [support@web-dorado.com](mailto:support@web-dorado.com).
195
 
196
- == Facebook Feed WD User Manual ==
197
 
198
  = Installation =
199
 
200
- You can install Facebook Feed WD via WordPress backend and via FTP.
201
 
202
  Installing via WordPress
203
  Go to Dashboard>Plugins> Add New>Upload.
@@ -209,7 +214,7 @@ Unzip the plugin folder and upload it into wp-content>plugins.
209
 
210
 
211
  = Options =
212
- Firstly you need to configure Options of the plugin and therefore Go to Facebook Feed WD>Options.
213
 
214
  App ID and App Secret Key:
215
  Navigate to Facebook Developers Apps .
@@ -230,7 +235,7 @@ Date format for events. Set date format while displaying Facebook events.
230
 
231
 
232
  = Creating a Facebook Feed =
233
- Go to Facebook Feed WD>Facebook Feed.
234
 
235
  For each feed there are several options which are grouped in tabs: Main, Lightbox Settings, Comments, Page Plugin and Events.
236
 
@@ -317,7 +322,7 @@ For events display you can display event location( including street, city, count
317
 
318
 
319
  = Themes=
320
- Go to Facebook Feed WD>Themes.
321
 
322
  Here you can define main settings for different views. Depending on displayed content type the view options differ, e.g. for photos you can use masonry and thumbnails.
323
 
@@ -346,7 +351,7 @@ To publish the created feeds within a page or post you should use shortcode. Ope
346
  Publishing as a Widget
347
  Navigate to Appearance > Widgets.
348
 
349
- Scroll to Facebook Feed WD widget and assign it to a custom widget position choosing one of the available positions. Fill in the details and press Save button.
350
 
351
  Title. Provide a title for your Facebook Feed widgets.
352
  Feed. Select the FB feed which will be displayed as a widget.
1
+ === WD 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: 4.9
7
+ Stable tag: 1.0.31
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
+ WD Facebook Feed is a comprehensive tool for displaying Facebook feed, events and photos in your website.
12
 
13
  == Description ==
14
 
15
  [Special Offer for all Premium Plugins](https://web-dorado.com/wordpress-plugins-bundle.html)
16
+ [WordPress WD Facebook Feed](https://web-dorado.com/products/wordpress-facebook-feed-plugin.html)
17
  [Demo](http://wpdemo.web-dorado.com/facebook-feed/)
18
  [Demo Admin](http://wpdemo.web-dorado.com/wp-admin/admin.php?page=info_ffwd)
19
  [User Guide](https://web-dorado.com/wordpress-facebook-feed/installing.html)
20
  [Support Forum](https://web-dorado.com/forum/facebook-feed-wd.html)
21
 
22
+ Do you plan to make your website more social? Do you want to include Facebook feeds based on a page/public group/your profile within a few steps? Do you want to control the content length, type and styling? WordPress Facebook feed plugin will offer these and hundreds of other options to create and publish custom feeds on your WordPress website. WD Facebook Feed is a comprehensive Facebook integration tool for displaying responsive Facebook feeds, events and photos in your website. With this plugin you will be able to display content from any Facebook fan page, public group and your profile (Pro version). Using this WordPress Facebook plugin you can constantly refresh your feed: either removing old content and replacing it with fresh posts or adding-up to the existing list of posts.
23
  You can set the number of posts to be displayed.
24
 
25
  You can show feeds in posts/pages using WordPress Facebook feed plugin shortcode or display them in widget area using the widget.
26
 
27
  The number of displayed Facebook feeds per each post/page is unlimited. You can add Facebook feeds based on different pages, groups and profile (Pro) within the same page. For Facebook pages and Facebook groups you can choose the user roles whose posts will be shared- page owner/ group admin, group member/page fans or both. Hashtags and mentions included in posts will be preserved. Facebook albums will be displayed with thumbnails which open up in lightbox. High-resolution lightbox images will be accompanied with filmstrip(Pro version), which will turn the standard display of images into an elegant Facebook gallery. The Facebook page plugin comes with a number of great features and functionality to allow you create anything from free simple feeds to custom feeds, including Facebook group events, Facebook likebox, Facebook feed gallery and more to increase engagement of your Facebook fans.
28
+ In other words, WD Facebook Feed is a great social plugin for all those who need to display their social media feed on WordPress website, keep in constant touch with Facebook followers. This powerful, but at the same time easy custom solution will allow you to take your social networking to the next level by creating and publishing stylish Facebook feeds in just a few minutes.
29
  To make appearance and overall design changes you can use Themes (available with Pro version) . This section uses different style sets for each layout.
30
 
31
  ###IMPORTANT:
32
+ If you think you found a bug in WD Facebook Feed or have any problem/question concerning this plugin, please check out [Support Forum](https://wordpress.org/support/plugin/wd-facebook-feed) . If you do not find a solution here, do not hesitate to [click here to contact us](https://web-dorado.com/support/contact-us.html).
33
 
34
+ = Main features of WD Facebook Feed: =
35
 
36
  * Responsive layout
37
  * Page feeds
60
 
61
  == Changelog ==
62
 
63
+
64
+ = 1.0.31 =
65
+ * Fixed: Bug on autoupdate
66
+ * Fixed: Bug on comments
67
+
68
  = 1.0.30 =
69
  * Changed: Deactivation popup
70
 
170
  * Initial version
171
 
172
  == Screenshots ==
173
+ 1. WD Facebook Feed - Timeline
174
+ 2. WD Facebook Feed - Videos
175
+ 3. WD Facebook Feed - Mansory view
176
+ 4. WD Facebook Feed - Event
177
+ 5. WD Facebook Feed - Edit Facebook Feed
178
+ 6. WD Facebook Feed - Edit Options
179
+ 7. WD Facebook Feed - Edit Theme
180
 
181
  == Installation ==
182
 
183
+ #### Thank you for your interest in WD Facebook Feed.
184
 
185
  ### Minimum requirements.
186
  * Wordpress 3.4+
195
  2. Go to Plugins Add > New > Upload.
196
  3. Click "Choose file" ("Browse") and select the downloaded zip file of the plugin.
197
  4. Click "Install Now" button.
198
+ 5. Click "Activate Plugin" button for activating WD Facebook Feed.
199
  6. If the installation does not succeed, please contact us at [support@web-dorado.com](mailto:support@web-dorado.com).
200
 
201
+ == WD Facebook Feed User Manual ==
202
 
203
  = Installation =
204
 
205
+ You can install WD Facebook Feed via WordPress backend and via FTP.
206
 
207
  Installing via WordPress
208
  Go to Dashboard>Plugins> Add New>Upload.
214
 
215
 
216
  = Options =
217
+ Firstly you need to configure Options of the plugin and therefore Go to WD Facebook Feed>Options.
218
 
219
  App ID and App Secret Key:
220
  Navigate to Facebook Developers Apps .
235
 
236
 
237
  = Creating a Facebook Feed =
238
+ Go to WD Facebook Feed>Facebook Feed.
239
 
240
  For each feed there are several options which are grouped in tabs: Main, Lightbox Settings, Comments, Page Plugin and Events.
241
 
322
 
323
 
324
  = Themes=
325
+ Go to WD Facebook Feed>Themes.
326
 
327
  Here you can define main settings for different views. Depending on displayed content type the view options differ, e.g. for photos you can use masonry and thumbnails.
328
 
351
  Publishing as a Widget
352
  Navigate to Appearance > Widgets.
353
 
354
+ Scroll to WD Facebook Feed widget and assign it to a custom widget position choosing one of the available positions. Fill in the details and press Save button.
355
 
356
  Title. Provide a title for your Facebook Feed widgets.
357
  Feed. Select the FB feed which will be displayed as a widget.
wd/templates/display_deactivation_popup.php CHANGED
@@ -1,27 +1,27 @@
1
  <div class="wd-opacity wd-<?php echo $wd_options->prefix; ?>-opacity"></div>
2
  <div class="wd-deactivate-popup wd-<?php echo $wd_options->prefix; ?>-deactivate-popup">
3
- <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 (Optional)", $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="<?php echo $deactivate_url; ?>" data-val="1" class="button button-primary button-close wd-<?php echo $wd_options->prefix; ?>-deactivate" id="wd-<?php echo $wd_options->prefix; ?>-deactivate"><?php _e( "Skip and Deactivate" , $wd_options->prefix ); ?></a>
22
- <a href="<?php echo $deactivate_url; ?>" data-val="2" class="button button-primary button-close wd-<?php echo $wd_options->prefix; ?>-deactivate" id="wd-<?php echo $wd_options->prefix; ?>-submit-and-deactivate" style="display:none;"><?php _e( "Submit and Deactivate" , $wd_options->prefix ); ?></a>
23
- </div>
24
- <input type="hidden" name="<?php echo $wd_options->prefix . "_submit_and_deactivate"; ?>" value="" >
25
- <?php wp_nonce_field( $wd_options->prefix . '_save_form', $wd_options->prefix . '_save_form_fild'); ?>
26
- </form>
27
- </div>
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 (Optional)", $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="<?php echo $deactivate_url; ?>" data-val="1" class="button button-primary button-close wd-<?php echo $wd_options->prefix; ?>-deactivate" id="wd-<?php echo $wd_options->prefix; ?>-deactivate"><?php _e( "Skip and Deactivate" , $wd_options->prefix ); ?></a>
22
+ <a href="<?php echo $deactivate_url; ?>" data-val="2" class="button button-primary button-close wd-<?php echo $wd_options->prefix; ?>-deactivate" id="wd-<?php echo $wd_options->prefix; ?>-submit-and-deactivate" style="display:none;"><?php _e( "Submit and Deactivate" , $wd_options->prefix ); ?></a>
23
+ </div>
24
+ <input type="hidden" name="<?php echo $wd_options->prefix . "_submit_and_deactivate"; ?>" value="" >
25
+ <?php wp_nonce_field( $wd_options->prefix . '_save_form', $wd_options->prefix . '_save_form_fild'); ?>
26
+ </form>
27
+ </div>