wpForo Forum - Version 2.0.3

Version Description

Download this release

Release Info

Developer Tomdever
Plugin Icon 128x128 wpForo Forum
Version 2.0.3
Comparing to
See all releases

Code changes from version 2.0.2 to 2.0.3

admin/index.php CHANGED
@@ -5,22 +5,33 @@ if( ! defined( 'ABSPATH' ) ) exit;
5
 
6
  add_action( 'admin_menu', function() {
7
  if( is_wpforo_multiboard() ){
8
- wpforo_admin_menu();
9
  }else{
10
- wpforo_admin_menu_mono();
11
  }
12
  }, 39 );
13
 
14
- function wpforo_admin_menu_mono(){
15
  if( wpforo_current_user_is( 'admin' ) || WPF()->usergroup->can( 'mf' ) || WPF()->usergroup->can( 'ms' ) || WPF()->usergroup->can( 'vm' ) || WPF()->usergroup->can( 'mp' ) || WPF()->usergroup->can( 'aum' ) || WPF()->usergroup->can( 'vmg' ) || WPF()->usergroup->can( 'mth' ) ) {
16
- $boards = WPF()->board->get_boards( [ 'status' => true ] );
17
  $menu_position = apply_filters( 'wpforo_admin_menu_position', 23 );
18
- $parent_slug = 'wpforo-overview';
 
 
 
 
 
 
 
19
  $attention_count = WPF()->member->get_count( [ 'p.status' => ['banned','inactive'] ] );
 
 
 
 
 
20
  $after_members_menu_title = $attention_count ? ' <span class="awaiting-mod count-1" title="'. __( 'Inactive and banned', 'wpforo' ) .'"><span class="pending-count" style="color:#ffffff;">' . $attention_count . '</span></span> ' : '';
21
  add_menu_page(
22
  'wpForo',
23
- 'wpForo',
24
  'read',
25
  $parent_slug,
26
  function() {
@@ -38,46 +49,34 @@ function wpforo_admin_menu_mono(){
38
  $parent_slug
39
  );
40
 
41
- foreach( $boards as $board ) {
42
- WPF()->change_board( $board['boardid'] );
43
-
44
- if( wpforo_setting( 'antispam', 'spam_file_scanner' ) ) WPF()->moderation->spam_attachment();
45
-
46
- $all_count = 0;
47
- $mod_count = WPF()->post->unapproved_count();
48
- $all_count += $mod_count;
49
- $mod_count = $mod_count ? ' <span class="awaiting-mod count-1"><span class="pending-count">' . $mod_count . '</span></span> ' : '';
50
- $all_count = $all_count ? ' <span class="awaiting-mod count-1"><span class="pending-count">' . $all_count . '</span></span> ' : '';
51
-
52
- if( wpforo_current_user_is( 'admin' ) || WPF()->usergroup->can( 'mf' ) || WPF()->usergroup->can( 'ms' ) || WPF()->usergroup->can( 'mt' ) || WPF()->usergroup->can( 'mp' ) || WPF()->usergroup->can( 'mth' ) || WPF()->usergroup->can( 'aum' ) ) {
53
- if( WPF()->usergroup->can( 'mf' ) || wpforo_current_user_is( 'admin' ) ) {
54
- add_submenu_page( $parent_slug, __( 'Forums', 'wpforo' ), __( 'Forums', 'wpforo' ), 'read', wpforo_prefix_slug( 'forums' ), function() {
55
- require( WPFORO_DIR . '/admin/pages/forum.php' );
56
- } );
57
- }
58
- if( WPF()->usergroup->can( 'ms' ) || wpforo_current_user_is( 'admin' ) ) {
59
- add_submenu_page( $parent_slug, __( 'Settings', 'wpforo' ), __( 'Settings', 'wpforo' ), 'read', wpforo_prefix_slug( 'settings' ), function() {
60
- require( WPFORO_DIR . '/admin/pages/settings.php' );
61
- } );
62
- }
63
- if( WPF()->usergroup->can( 'aum' ) || wpforo_current_user_is( 'admin' ) ) {
64
- add_submenu_page( $parent_slug, __( 'Moderation', 'wpforo' ), __( 'Moderation', 'wpforo' ) . $mod_count, 'read', wpforo_prefix_slug( 'moderations' ), function() {
65
- require( WPFORO_DIR . '/admin/pages/moderation.php' );
66
- } );
67
- }
68
- if( WPF()->usergroup->can( 'mp' ) || wpforo_current_user_is( 'admin' ) ) {
69
- add_submenu_page( $parent_slug, __( 'Phrases', 'wpforo' ), __( 'Phrases', 'wpforo' ), 'read', wpforo_prefix_slug( 'phrases' ), function() {
70
- require( WPFORO_DIR . '/admin/pages/phrase.php' );
71
- } );
72
- }
73
- if( WPF()->usergroup->can( 'mt' ) || wpforo_current_user_is( 'admin' ) ) {
74
- add_submenu_page( $parent_slug, __( 'Tools', 'wpforo' ), __( 'Tools', 'wpforo' ), 'read', wpforo_prefix_slug( 'tools' ), function() {
75
- require( WPFORO_DIR . '/admin/pages/tools.php' );
76
- } );
77
- }
78
-
79
- do_action( 'wpforo_admin_menu', $parent_slug, $board );
80
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
81
  }
82
 
83
  add_submenu_page( $parent_slug, __( 'Boards', 'wpforo' ), __( 'Boards', 'wpforo' ), 'read', 'wpforo-boards', function() {
@@ -109,7 +108,7 @@ function wpforo_admin_menu_mono(){
109
  }
110
  }
111
 
112
- function wpforo_admin_menu(){
113
  if( wpforo_current_user_is( 'admin' ) || WPF()->usergroup->can( 'mf' ) || WPF()->usergroup->can( 'ms' ) || WPF()->usergroup->can( 'vm' ) || WPF()->usergroup->can( 'mp' ) || WPF()->usergroup->can( 'aum' ) || WPF()->usergroup->can( 'vmg' ) || WPF()->usergroup->can( 'mth' ) ) {
114
  $menu_position = apply_filters( 'wpforo_admin_menu_position', 23 );
115
  $parent_slug = 'wpforo-overview';
@@ -117,6 +116,7 @@ function wpforo_admin_menu(){
117
  $after_members_menu_title = $attention_count ? ' <span class="awaiting-mod count-1" title="'. __( 'Inactive and Banned', 'wpforo' ) .'"><span class="pending-count" style="color:#ffffff;">' . $attention_count . '</span></span> ' : '';
118
  add_menu_page(
119
  'wpForo',
 
120
  'wpForo',
121
  'read',
122
  $parent_slug,
5
 
6
  add_action( 'admin_menu', function() {
7
  if( is_wpforo_multiboard() ){
8
+ wpforo_admin_menu_multiboard();
9
  }else{
10
+ wpforo_admin_menu();
11
  }
12
  }, 39 );
13
 
14
+ function wpforo_admin_menu(){
15
  if( wpforo_current_user_is( 'admin' ) || WPF()->usergroup->can( 'mf' ) || WPF()->usergroup->can( 'ms' ) || WPF()->usergroup->can( 'vm' ) || WPF()->usergroup->can( 'mp' ) || WPF()->usergroup->can( 'aum' ) || WPF()->usergroup->can( 'vmg' ) || WPF()->usergroup->can( 'mth' ) ) {
 
16
  $menu_position = apply_filters( 'wpforo_admin_menu_position', 23 );
17
+ $boards = WPF()->board->get_boards( [ 'status' => true ] );
18
+ $board = current( $boards );
19
+ WPF()->change_board( $board['boardid'] );
20
+
21
+ if( wpforo_setting( 'antispam', 'spam_file_scanner' ) ) WPF()->moderation->spam_attachment();
22
+
23
+ $all_count = 0;
24
+ $mod_count = WPF()->post->unapproved_count();
25
  $attention_count = WPF()->member->get_count( [ 'p.status' => ['banned','inactive'] ] );
26
+ // $all_count += $mod_count + $attention_count;
27
+ $all_count += $mod_count;
28
+ $mod_count = $mod_count ? ' <span class="awaiting-mod count-1"><span class="pending-count">' . $mod_count . '</span></span> ' : '';
29
+ $all_count = $all_count ? ' <span class="awaiting-mod count-1"><span class="pending-count">' . $all_count . '</span></span> ' : '';
30
+ $parent_slug = 'wpforo-overview';
31
  $after_members_menu_title = $attention_count ? ' <span class="awaiting-mod count-1" title="'. __( 'Inactive and banned', 'wpforo' ) .'"><span class="pending-count" style="color:#ffffff;">' . $attention_count . '</span></span> ' : '';
32
  add_menu_page(
33
  'wpForo',
34
+ 'wpForo ' . $all_count,
35
  'read',
36
  $parent_slug,
37
  function() {
49
  $parent_slug
50
  );
51
 
52
+ if( wpforo_current_user_is( 'admin' ) || WPF()->usergroup->can( 'mf' ) || WPF()->usergroup->can( 'ms' ) || WPF()->usergroup->can( 'mt' ) || WPF()->usergroup->can( 'mp' ) || WPF()->usergroup->can( 'mth' ) || WPF()->usergroup->can( 'aum' ) ) {
53
+ if( WPF()->usergroup->can( 'mf' ) || wpforo_current_user_is( 'admin' ) ) {
54
+ add_submenu_page( $parent_slug, __( 'Forums', 'wpforo' ), __( 'Forums', 'wpforo' ), 'read', wpforo_prefix_slug( 'forums' ), function() {
55
+ require( WPFORO_DIR . '/admin/pages/forum.php' );
56
+ } );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
  }
58
+ if( WPF()->usergroup->can( 'ms' ) || wpforo_current_user_is( 'admin' ) ) {
59
+ add_submenu_page( $parent_slug, __( 'Settings', 'wpforo' ), __( 'Settings', 'wpforo' ), 'read', wpforo_prefix_slug( 'settings' ), function() {
60
+ require( WPFORO_DIR . '/admin/pages/settings.php' );
61
+ } );
62
+ }
63
+ if( WPF()->usergroup->can( 'aum' ) || wpforo_current_user_is( 'admin' ) ) {
64
+ add_submenu_page( $parent_slug, __( 'Moderation', 'wpforo' ), __( 'Moderation', 'wpforo' ) . $mod_count, 'read', wpforo_prefix_slug( 'moderations' ), function() {
65
+ require( WPFORO_DIR . '/admin/pages/moderation.php' );
66
+ } );
67
+ }
68
+ if( WPF()->usergroup->can( 'mp' ) || wpforo_current_user_is( 'admin' ) ) {
69
+ add_submenu_page( $parent_slug, __( 'Phrases', 'wpforo' ), __( 'Phrases', 'wpforo' ), 'read', wpforo_prefix_slug( 'phrases' ), function() {
70
+ require( WPFORO_DIR . '/admin/pages/phrase.php' );
71
+ } );
72
+ }
73
+ if( WPF()->usergroup->can( 'mt' ) || wpforo_current_user_is( 'admin' ) ) {
74
+ add_submenu_page( $parent_slug, __( 'Tools', 'wpforo' ), __( 'Tools', 'wpforo' ), 'read', wpforo_prefix_slug( 'tools' ), function() {
75
+ require( WPFORO_DIR . '/admin/pages/tools.php' );
76
+ } );
77
+ }
78
+
79
+ do_action( 'wpforo_admin_menu', $parent_slug, $board );
80
  }
81
 
82
  add_submenu_page( $parent_slug, __( 'Boards', 'wpforo' ), __( 'Boards', 'wpforo' ), 'read', 'wpforo-boards', function() {
108
  }
109
  }
110
 
111
+ function wpforo_admin_menu_multiboard(){
112
  if( wpforo_current_user_is( 'admin' ) || WPF()->usergroup->can( 'mf' ) || WPF()->usergroup->can( 'ms' ) || WPF()->usergroup->can( 'vm' ) || WPF()->usergroup->can( 'mp' ) || WPF()->usergroup->can( 'aum' ) || WPF()->usergroup->can( 'vmg' ) || WPF()->usergroup->can( 'mth' ) ) {
113
  $menu_position = apply_filters( 'wpforo_admin_menu_position', 23 );
114
  $parent_slug = 'wpforo-overview';
116
  $after_members_menu_title = $attention_count ? ' <span class="awaiting-mod count-1" title="'. __( 'Inactive and Banned', 'wpforo' ) .'"><span class="pending-count" style="color:#ffffff;">' . $attention_count . '</span></span> ' : '';
117
  add_menu_page(
118
  'wpForo',
119
+ // 'wpForo ' . $after_members_menu_title,
120
  'wpForo',
121
  'read',
122
  $parent_slug,
admin/pages/overview.php CHANGED
@@ -34,7 +34,7 @@ if( ! defined( 'ABSPATH' ) ) exit;
34
  <li><span class="wpf-wn-label"><?php _e("New Forum Theme:", 'wpforo') ?></span> <?php _e("The new version comes with completely redesigned forum layouts and style. It brings modern and clean look and feel for all 4 forum layouts (Extended, Simplified, Q&A and Threaded),", 'wpforo') ?></li>
35
  <li><span class="wpf-wn-label"><?php _e("New Member Profile System:", 'wpforo') ?></span> <?php _e("wpForo 2 comes with more powerful member profile system with awesome design, so in most cases you won't need to use other profile builder plugins,", 'wpforo') ?></li>
36
  <li><span class="wpf-wn-label"><?php _e("Topic Overview:", 'wpforo') ?></span> <?php _e("You can see a small panel on the top of all topics, which provides lots of quick information about the topic. Different statistic information and a shorthand tree of the whole topic with discussion threads and nested replies in one place. This makes it very quick find the posts you need in the topic,", 'wpforo') ?></li>
37
- <li><span class="wpf-wn-label"><?php _e("And lots of more:", 'wpforo') ?></span> <a href="https://wpforo.com/community/wpforo-announcements/wpforo-2-0-0-is-released/" target="_blank"><?php _e("wpForo 2 release summary", 'wpforo') ?> &raquo;</a></li>
38
  </ul>
39
  </div>
40
  <div style="float:right; vertical-align:top; padding-right:0; width:150px; text-align:right; padding-top:20px;">
@@ -133,7 +133,7 @@ if( ! defined( 'ABSPATH' ) ) exit;
133
  <li class="post-count"><?php _e( 'You are currently running', 'wpforo' ); ?> wpForo <?php echo esc_html( WPFORO_VERSION ) ?></li>
134
  <li class="page-count"><?php _e( 'Current active theme', 'wpforo' ); ?>: <?php echo WPF()->tpl->theme ?></li>
135
  <li class="page-count"><?php _e( 'wpForo Community', 'wpforo' ); ?>: <a href="https://wpforo.com/community/">https://wpforo.com/community/</a></li>
136
- <li class="page-count"><?php _e( 'wpForo Documentation', 'wpforo' ); ?>: <a href="https://wpforo.com/documentation/">https://wpforo.com/documentation/</a></li>
137
  </ul>
138
  </div>
139
  </div>
34
  <li><span class="wpf-wn-label"><?php _e("New Forum Theme:", 'wpforo') ?></span> <?php _e("The new version comes with completely redesigned forum layouts and style. It brings modern and clean look and feel for all 4 forum layouts (Extended, Simplified, Q&A and Threaded),", 'wpforo') ?></li>
35
  <li><span class="wpf-wn-label"><?php _e("New Member Profile System:", 'wpforo') ?></span> <?php _e("wpForo 2 comes with more powerful member profile system with awesome design, so in most cases you won't need to use other profile builder plugins,", 'wpforo') ?></li>
36
  <li><span class="wpf-wn-label"><?php _e("Topic Overview:", 'wpforo') ?></span> <?php _e("You can see a small panel on the top of all topics, which provides lots of quick information about the topic. Different statistic information and a shorthand tree of the whole topic with discussion threads and nested replies in one place. This makes it very quick find the posts you need in the topic,", 'wpforo') ?></li>
37
+ <li><span class="wpf-wn-label"><?php _e("And lots of more:", 'wpforo') ?></span> <a href="https://wpforo.com/community/wpforo-announcements/wpforo-2-0-1-is-released/" target="_blank"><?php _e("wpForo 2 release summary", 'wpforo') ?> &raquo;</a></li>
38
  </ul>
39
  </div>
40
  <div style="float:right; vertical-align:top; padding-right:0; width:150px; text-align:right; padding-top:20px;">
133
  <li class="post-count"><?php _e( 'You are currently running', 'wpforo' ); ?> wpForo <?php echo esc_html( WPFORO_VERSION ) ?></li>
134
  <li class="page-count"><?php _e( 'Current active theme', 'wpforo' ); ?>: <?php echo WPF()->tpl->theme ?></li>
135
  <li class="page-count"><?php _e( 'wpForo Community', 'wpforo' ); ?>: <a href="https://wpforo.com/community/">https://wpforo.com/community/</a></li>
136
+ <li class="page-count"><?php _e( 'wpForo Documentation', 'wpforo' ); ?>: <a href="https://wpforo.com/docs/">https://wpforo.com/docs/</a></li>
137
  </ul>
138
  </div>
139
  </div>
assets/addons/go2wpforo/header-off.png ADDED
Binary file
assets/addons/go2wpforo/header.png ADDED
Binary file
assets/addons/wpforo-coocomerce-memberships/header-off.png ADDED
Binary file
assets/addons/wpforo-coocomerce-memberships/header.png ADDED
Binary file
autoload.php CHANGED
@@ -36,7 +36,7 @@ $GLOBALS['wpforo'] = WPF();
36
  // #### deactivate old addons
37
  function wpforo_deactivate_all_old_addons() {
38
  $v = get_option( 'wpforo_version', '' );
39
- if( WPFORO_VERSION !== $v && version_compare( $v, '2.0.0', '<' ) ){
40
  // #### deactivate old addons
41
  require_once ABSPATH . 'wp-admin/includes/plugin.php';
42
  require_once WPFORO_DIR . '/includes/functions.php';
@@ -52,5 +52,31 @@ function wpforo_deactivate_all_old_addons() {
52
  }
53
  if( $plugins ) deactivate_plugins($plugins);
54
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  }
56
  wpforo_deactivate_all_old_addons();
36
  // #### deactivate old addons
37
  function wpforo_deactivate_all_old_addons() {
38
  $v = get_option( 'wpforo_version', '' );
39
+ if( WPFORO_VERSION !== $v && version_compare( $v, '2.0.3', '<' ) ){
40
  // #### deactivate old addons
41
  require_once ABSPATH . 'wp-admin/includes/plugin.php';
42
  require_once WPFORO_DIR . '/includes/functions.php';
52
  }
53
  if( $plugins ) deactivate_plugins($plugins);
54
  }
55
+
56
+ add_action('admin_init', function(){
57
+ if( strpos( $_SERVER['REQUEST_URI'], '/plugins.php' ) !== false ){
58
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
59
+ require_once WPFORO_DIR . '/includes/functions.php';
60
+
61
+ foreach( wpforo_get_addons_info() as $addon ){
62
+ if( file_exists( $addon['ABSPATH'] ) ){
63
+ $plugin_data = get_plugin_data( $addon['ABSPATH'] );
64
+ if( $plugin_data['Version'] ){
65
+ $plugin_basename = plugin_basename( $addon['ABSPATH'] );
66
+ if( version_compare( $plugin_data['Version'], '3.0.0', '<' ) ){
67
+ if( is_plugin_active( $plugin_basename ) ){
68
+ deactivate_plugins( (array) $plugin_basename );
69
+ }else{
70
+ add_filter( 'plugin_action_links_' . $plugin_basename, function ( $links ) {
71
+ $links['activate'] = '<a style="color: #ccc; cursor: pointer" onclick="alert( \'This plugin is not compatible with wpForo 2.0 version! Please update the plugin to the latest 3.0.x version, then activate it again. If the license key is expired, you should renew your license to get product updates. Otherwise, you should use old wpForo versions (1.9.X).\' );">Activate</a>';
72
+ return $links;
73
+ } );
74
+ }
75
+ }
76
+ }
77
+ }
78
+ }
79
+ }
80
+ });
81
  }
82
  wpforo_deactivate_all_old_addons();
classes/Boards.php CHANGED
@@ -60,7 +60,7 @@ class Boards {
60
  'slug' => 'community',
61
  'pageid' => 0,
62
  'modules' => [],
63
- 'locale' => '',
64
  'is_standalone' => false,
65
  'excld_urls' => [],
66
  'status' => true,
@@ -435,6 +435,8 @@ class Boards {
435
 
436
  $this->board = apply_filters('wpforo_board_init_current', $this->board);
437
 
 
 
438
  if( ! $this->board['pageid'] ) $this->board['pageid'] = wpforo_get_option( 'wpforo_pageid', 0 );
439
  if( ! wpforo_is_admin() && $this->board['locale'] && WPF()->locale !== $this->board['locale'] ) {
440
  if( is_wpforo_url() && is_wpforo_multiboard() ) switch_to_locale( $this->board['locale'] );
60
  'slug' => 'community',
61
  'pageid' => 0,
62
  'modules' => [],
63
+ 'locale' => 'en_US',
64
  'is_standalone' => false,
65
  'excld_urls' => [],
66
  'status' => true,
435
 
436
  $this->board = apply_filters('wpforo_board_init_current', $this->board);
437
 
438
+ if( ! $this->board['locale'] ) $this->board['locale'] = wpforo_get_site_default_locale();
439
+
440
  if( ! $this->board['pageid'] ) $this->board['pageid'] = wpforo_get_option( 'wpforo_pageid', 0 );
441
  if( ! wpforo_is_admin() && $this->board['locale'] && WPF()->locale !== $this->board['locale'] ) {
442
  if( is_wpforo_url() && is_wpforo_multiboard() ) switch_to_locale( $this->board['locale'] );
classes/Forms.php CHANGED
@@ -911,7 +911,7 @@ class Forms {
911
  $file_name = esc_attr( $file_name );
912
  $extension = pathinfo( $f['value'], PATHINFO_EXTENSION );
913
  if( wpforo_is_image( $extension ) ) {
914
- $f['value'] = sprintf( '<a href="%1$s" target="_blank" title="%2$s"><img src="%1$s" alt="%2$s" class="wpf-field-file-img" style="max-width:120px; max-height:120px" /></a>', $file_url, $file_name );
915
  } elseif( wpforo_is_audio( $extension ) ) {
916
  $f['value'] = sprintf( '<audio src="%1$s" controls title="%2$s"></audio>', $file_url, $file_name );
917
  } elseif( wpforo_is_video( $extension ) ) {
@@ -1198,6 +1198,8 @@ class Forms {
1198
  $f['value'] = wpforo_trim( $f['value'] );
1199
  if( in_array( wpfval( $f, 'type' ), [ 'textarea', 'tinymce' ], true ) ) {
1200
  $f['value'] = wpautop( wpforo_kses( stripslashes( $f['value'] ) ) );
 
 
1201
  } elseif( $f['name'] === 'timezone' ) {
1202
  $f['value'] = str_replace( '_', ' ', $f['value'] );
1203
  } elseif( $f['fieldKey'] === 'secondary_groupids' ) {
911
  $file_name = esc_attr( $file_name );
912
  $extension = pathinfo( $f['value'], PATHINFO_EXTENSION );
913
  if( wpforo_is_image( $extension ) ) {
914
+ $f['value'] = sprintf( '<a href="%1$s" target="_blank" title="%2$s"><img src="%1$s" alt="%2$s" class="wpf-field-file-img" style="max-width:120px; max-height:120px"></a>', $file_url, $file_name );
915
  } elseif( wpforo_is_audio( $extension ) ) {
916
  $f['value'] = sprintf( '<audio src="%1$s" controls title="%2$s"></audio>', $file_url, $file_name );
917
  } elseif( wpforo_is_video( $extension ) ) {
1198
  $f['value'] = wpforo_trim( $f['value'] );
1199
  if( in_array( wpfval( $f, 'type' ), [ 'textarea', 'tinymce' ], true ) ) {
1200
  $f['value'] = wpautop( wpforo_kses( stripslashes( $f['value'] ) ) );
1201
+ } elseif( wpfval( $f, 'type' ) === 'file' ){
1202
+ $f['value'] = wpfval($f['value'], 'fileurl');
1203
  } elseif( $f['name'] === 'timezone' ) {
1204
  $f['value'] = str_replace( '_', ' ', $f['value'] );
1205
  } elseif( $f['fieldKey'] === 'secondary_groupids' ) {
classes/Posts.php CHANGED
@@ -1931,9 +1931,9 @@ class Posts {
1931
  $field = WPF()->form->prepare_values( WPF()->form->esc_field( $field ) );
1932
  $content .= sprintf(
1933
  '<div class="wpf-topic-field"><div class="wpf-topic-field-label"> <i class="%1$s"></i> %2$s</div><div class="wpf-topic-field-value">%3$s</div></div>',
1934
- (string) wpfval( $field, 'faIcon' ),
1935
- (string) wpfval( $field, 'label' ),
1936
- (string) wpfval( $field, 'value' )
1937
  );
1938
  }
1939
  }
1931
  $field = WPF()->form->prepare_values( WPF()->form->esc_field( $field ) );
1932
  $content .= sprintf(
1933
  '<div class="wpf-topic-field"><div class="wpf-topic-field-label"> <i class="%1$s"></i> %2$s</div><div class="wpf-topic-field-value">%3$s</div></div>',
1934
+ wpfval( $field, 'faIcon' ),
1935
+ wpfval( $field, 'label' ),
1936
+ wpfval( $field, 'value' )
1937
  );
1938
  }
1939
  }
includes/functions.php CHANGED
@@ -163,8 +163,8 @@ function wpforo_get_addons_info( $base = null ) {
163
  'wpforo-user-custom-fields' => [
164
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-user-custom-fields/wpforo-ucf.php' ),
165
  'base' => true,
166
- 'version' => '2.0.2',
167
- 'requires' => '1.8.0',
168
  'class' => 'WpforoUcf',
169
  'deps' => [],
170
  'title' => 'User Custom Fields',
@@ -175,8 +175,8 @@ function wpforo_get_addons_info( $base = null ) {
175
  'wpforo-private-messages' => [
176
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-private-messages/wpforopm.php' ),
177
  'base' => true,
178
- 'version' => '1.3.3',
179
- 'requires' => '1.8.0',
180
  'class' => 'wpForoPMs',
181
  'deps' => [],
182
  'title' => 'Private Messages',
@@ -187,8 +187,8 @@ function wpforo_get_addons_info( $base = null ) {
187
  'wpforo-mycred' => [
188
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-mycred/wpforo-mc.php' ),
189
  'base' => true,
190
- 'version' => '1.1.2',
191
- 'requires' => '1.8.0',
192
  'class' => 'myCRED_Hook_wpForo',
193
  'deps' => [],
194
  'title' => 'MyCRED Integration',
@@ -199,8 +199,8 @@ function wpforo_get_addons_info( $base = null ) {
199
  'wpforo-topic-prefix' => [
200
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-topic-prefix/wpforotpx.php' ),
201
  'base' => false,
202
- 'version' => '1.0.0',
203
- 'requires' => '1.9.4',
204
  'class' => 'wpForoTopicPrefix',
205
  'deps' => [],
206
  'title' => 'Topic Prefix & Tag Manager',
@@ -211,8 +211,8 @@ function wpforo_get_addons_info( $base = null ) {
211
  'wpforo-tenor' => [
212
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-tenor/wpforotenor.php' ),
213
  'base' => false,
214
- 'version' => '1.0.0',
215
- 'requires' => '1.9.8',
216
  'class' => 'wpForoTenor',
217
  'deps' => [],
218
  'title' => 'Tenor GIFs Integration',
@@ -223,8 +223,8 @@ function wpforo_get_addons_info( $base = null ) {
223
  'wpforo-giphy' => [
224
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-giphy/wpforogiphy.php' ),
225
  'base' => false,
226
- 'version' => '1.0.0',
227
- 'requires' => '1.9.8',
228
  'class' => 'wpForoGiphy',
229
  'deps' => [],
230
  'title' => 'GIPHY Integration',
@@ -235,8 +235,8 @@ function wpforo_get_addons_info( $base = null ) {
235
  'wpforo-advanced-attachments' => [
236
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-advanced-attachments/wpforoattach.php' ),
237
  'base' => false,
238
- 'version' => '2.0.4',
239
- 'requires' => '1.8.0',
240
  'class' => 'wpForoAttachments',
241
  'deps' => [],
242
  'title' => 'Advanced Attachments',
@@ -247,8 +247,8 @@ function wpforo_get_addons_info( $base = null ) {
247
  'wpforo-embeds' => [
248
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-embeds/wpforoembeds.php' ),
249
  'base' => false,
250
- 'version' => '2.0.7',
251
- 'requires' => '1.8.0',
252
  'class' => 'wpForoEmbeds',
253
  'deps' => [],
254
  'title' => 'Embeds',
@@ -259,8 +259,8 @@ function wpforo_get_addons_info( $base = null ) {
259
  'wpforo-topic-custom-fields' => [
260
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-topic-custom-fields/wpforotcf.php' ),
261
  'base' => false,
262
- 'version' => '1.0.0',
263
- 'requires' => '1.8.0',
264
  'class' => 'wpForoTcf',
265
  'deps' => [],
266
  'title' => 'Topic Custom Fields',
@@ -271,8 +271,8 @@ function wpforo_get_addons_info( $base = null ) {
271
  'wpforo-syntax-highlighter' => [
272
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-syntax-highlighter/wpForoSyntaxHighlighter.php' ),
273
  'base' => false,
274
- 'version' => '1.0.0',
275
- 'requires' => '1.9.0',
276
  'class' => 'wpForoSyntaxHighlighter',
277
  'deps' => [],
278
  'title' => 'Syntax Highlighter',
@@ -283,8 +283,8 @@ function wpforo_get_addons_info( $base = null ) {
283
  'wpforo-cross-posting' => [
284
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-cross-posting/wpForoCrossPosting.php' ),
285
  'base' => false,
286
- 'version' => '2.1.5',
287
- 'requires' => '1.8.0',
288
  'class' => 'wpForoCrossPosting',
289
  'deps' => [],
290
  'title' => '"Forum - Blog" Cross Posting',
@@ -295,8 +295,8 @@ function wpforo_get_addons_info( $base = null ) {
295
  'wpforo-ad-manager' => [
296
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-ad-manager/wpforoad.php' ),
297
  'base' => false,
298
- 'version' => '1.1.3',
299
- 'requires' => '1.8.0',
300
  'class' => 'wpForoAD',
301
  'deps' => [],
302
  'title' => 'Ads Manager',
@@ -307,8 +307,8 @@ function wpforo_get_addons_info( $base = null ) {
307
  'wpforo-polls' => [
308
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-polls/wpforopoll.php' ),
309
  'base' => false,
310
- 'version' => '1.0.6',
311
- 'requires' => '1.8.0',
312
  'class' => 'wpForoPoll',
313
  'deps' => [],
314
  'title' => 'Polls',
@@ -319,8 +319,8 @@ function wpforo_get_addons_info( $base = null ) {
319
  'wpforo-emoticons' => [
320
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-emoticons/wpforosmile.php' ),
321
  'base' => false,
322
- 'version' => '1.0.5',
323
- 'requires' => '1.8.0',
324
  'class' => 'wpForoSmiles',
325
  'deps' => [],
326
  'title' => 'wpForo Emoticons',
@@ -328,6 +328,30 @@ function wpforo_get_addons_info( $base = null ) {
328
  'desc' => __( 'Adds awesome Sticker and Emoticons packs to editor. Allows to create new custom emoticons packs.', 'wpforo' ),
329
  'url' => 'https://gvectors.com/product/wpforo-emoticons/',
330
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
331
  ];
332
 
333
  if( !is_null( $base ) ){
163
  'wpforo-user-custom-fields' => [
164
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-user-custom-fields/wpforo-ucf.php' ),
165
  'base' => true,
166
+ 'version' => '3.0.0',
167
+ 'requires' => '2.0.0',
168
  'class' => 'WpforoUcf',
169
  'deps' => [],
170
  'title' => 'User Custom Fields',
175
  'wpforo-private-messages' => [
176
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-private-messages/wpforopm.php' ),
177
  'base' => true,
178
+ 'version' => '3.0.0',
179
+ 'requires' => '2.0.0',
180
  'class' => 'wpForoPMs',
181
  'deps' => [],
182
  'title' => 'Private Messages',
187
  'wpforo-mycred' => [
188
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-mycred/wpforo-mc.php' ),
189
  'base' => true,
190
+ 'version' => '3.0.0',
191
+ 'requires' => '2.0.0',
192
  'class' => 'myCRED_Hook_wpForo',
193
  'deps' => [],
194
  'title' => 'MyCRED Integration',
199
  'wpforo-topic-prefix' => [
200
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-topic-prefix/wpforotpx.php' ),
201
  'base' => false,
202
+ 'version' => '3.0.0',
203
+ 'requires' => '2.0.0',
204
  'class' => 'wpForoTopicPrefix',
205
  'deps' => [],
206
  'title' => 'Topic Prefix & Tag Manager',
211
  'wpforo-tenor' => [
212
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-tenor/wpforotenor.php' ),
213
  'base' => false,
214
+ 'version' => '3.0.0',
215
+ 'requires' => '2.0.0',
216
  'class' => 'wpForoTenor',
217
  'deps' => [],
218
  'title' => 'Tenor GIFs Integration',
223
  'wpforo-giphy' => [
224
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-giphy/wpforogiphy.php' ),
225
  'base' => false,
226
+ 'version' => '3.0.0',
227
+ 'requires' => '2.0.0',
228
  'class' => 'wpForoGiphy',
229
  'deps' => [],
230
  'title' => 'GIPHY Integration',
235
  'wpforo-advanced-attachments' => [
236
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-advanced-attachments/wpforoattach.php' ),
237
  'base' => false,
238
+ 'version' => '3.0.1',
239
+ 'requires' => '2.0.0',
240
  'class' => 'wpForoAttachments',
241
  'deps' => [],
242
  'title' => 'Advanced Attachments',
247
  'wpforo-embeds' => [
248
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-embeds/wpforoembeds.php' ),
249
  'base' => false,
250
+ 'version' => '3.0.0',
251
+ 'requires' => '2.0.0',
252
  'class' => 'wpForoEmbeds',
253
  'deps' => [],
254
  'title' => 'Embeds',
259
  'wpforo-topic-custom-fields' => [
260
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-topic-custom-fields/wpforotcf.php' ),
261
  'base' => false,
262
+ 'version' => '3.0.1',
263
+ 'requires' => '2.0.0',
264
  'class' => 'wpForoTcf',
265
  'deps' => [],
266
  'title' => 'Topic Custom Fields',
271
  'wpforo-syntax-highlighter' => [
272
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-syntax-highlighter/wpForoSyntaxHighlighter.php' ),
273
  'base' => false,
274
+ 'version' => '3.0.0',
275
+ 'requires' => '2.0.0',
276
  'class' => 'wpForoSyntaxHighlighter',
277
  'deps' => [],
278
  'title' => 'Syntax Highlighter',
283
  'wpforo-cross-posting' => [
284
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-cross-posting/wpForoCrossPosting.php' ),
285
  'base' => false,
286
+ 'version' => '3.0.0',
287
+ 'requires' => '2.0.0',
288
  'class' => 'wpForoCrossPosting',
289
  'deps' => [],
290
  'title' => '"Forum - Blog" Cross Posting',
295
  'wpforo-ad-manager' => [
296
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-ad-manager/wpforoad.php' ),
297
  'base' => false,
298
+ 'version' => '3.0.1',
299
+ 'requires' => '2.0.0',
300
  'class' => 'wpForoAD',
301
  'deps' => [],
302
  'title' => 'Ads Manager',
307
  'wpforo-polls' => [
308
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-polls/wpforopoll.php' ),
309
  'base' => false,
310
+ 'version' => '3.0.0',
311
+ 'requires' => '2.0.0',
312
  'class' => 'wpForoPoll',
313
  'deps' => [],
314
  'title' => 'Polls',
319
  'wpforo-emoticons' => [
320
  'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-emoticons/wpforosmile.php' ),
321
  'base' => false,
322
+ 'version' => '3.0.0',
323
+ 'requires' => '2.0.0',
324
  'class' => 'wpForoSmiles',
325
  'deps' => [],
326
  'title' => 'wpForo Emoticons',
328
  'desc' => __( 'Adds awesome Sticker and Emoticons packs to editor. Allows to create new custom emoticons packs.', 'wpforo' ),
329
  'url' => 'https://gvectors.com/product/wpforo-emoticons/',
330
  ],
331
+ 'wpforo-woocommerce-memberships' => [
332
+ 'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/wpforo-woocommerce-memberships/wpforo_woomem.php' ),
333
+ 'base' => true,
334
+ 'version' => '3.0.0',
335
+ 'requires' => '2.0.0',
336
+ 'class' => 'wpForoWooMembers',
337
+ 'deps' => [],
338
+ 'title' => 'WooCommerce Memberships Integration',
339
+ 'thumb' => WPFORO_URL . '/assets/addons/wpforo-coocomerce-memberships/header.png',
340
+ 'desc' => __( 'Allows to setup membership access to your forums and topics through WooCommerce Memberships plugin.', 'wpforo' ),
341
+ 'url' => 'https://gvectors.com/product/wpforo-woocommerce-memberships/',
342
+ ],
343
+ 'go2wpforo' => [
344
+ 'ABSPATH' => wpforo_fix_dir_sep( WP_PLUGIN_DIR . '/go2wpforo/Main.php' ),
345
+ 'base' => false,
346
+ 'version' => '3.0.0',
347
+ 'requires' => '2.0.0',
348
+ 'class' => 'go2wpforo\Main',
349
+ 'deps' => [],
350
+ 'title' => 'wpForo - Go2wpForo Migration Tool',
351
+ 'thumb' => WPFORO_URL . '/assets/addons/go2wpforo/header.png',
352
+ 'desc' => __( 'Helps to migrate from bbPress, phpBB, SMF, MyBB, Simple:Press and other forum pieces of software and plugins to wpForo.', 'wpforo' ),
353
+ 'url' => 'https://wpforo.com/docs/wpforo-v2/migrate-to-wpforo/',
354
+ ],
355
  ];
356
 
357
  if( !is_null( $base ) ){
includes/installation.php CHANGED
@@ -74,10 +74,11 @@ function wpforo_activation() {
74
  }
75
 
76
  function wpforo_upgrade(){
77
- if( version_compare( get_option( 'wpforo_version', '' ), '2.0.0', '<' ) ){
78
  // #### migrate old options to new settings
79
  require_once WPFORO_DIR . "/includes/options-migration.php";
80
  _wpforo_migrate_old_options_to_new();
 
81
  }
82
  }
83
 
@@ -436,11 +437,11 @@ function wpforo_profile_notice() {
436
  $url = wp_nonce_url( admin_url( 'admin.php?page=wpforo-overview&wpfaction=synch_user_profiles' ), 'wpforo_synch_user_profiles' );
437
  $class = 'wpforo-mnote notice notice-warning is-dismissible';
438
  $note = __( 'This process may take a few seconds or dozens of minutes, please be patient and don\'t close this page.', 'wpforo' );
439
- $info = __( 'You can permanently disable this message in Dashboard > Forums > Features admin page.', 'wpforo' );
440
  $button = '<a href="' . $url . '" class="button button-primary button-large" style="font-size:14px;">' . $btext . ' &gt;&gt;</a>';
441
  $header = __( 'wpForo Forum Installation | ', 'wpforo' );
442
  $message = __( 'Forum users\' profile data are not synchronized yet, this step is required! Please click the button below to complete installation.', 'wpforo' );
443
- echo '<div class="' . $class . '" style="padding:15px 20px;"><h2 style="margin:0;">' . esc_html( $header ) . $status . ' </h2><p style="font-size:15px;margin:5px 0;">' . $message . '</p><p style="margin:0 0 10px 0;">' . $button . '</p><hr /><p style="margin:0;color:#dd0000;">' . $note . '</p><p style="margin:0;color:#999; font-size:12px;">' . $info . '</p></div>';
444
  }
445
 
446
  function wpforo_database_notice() {
74
  }
75
 
76
  function wpforo_upgrade(){
77
+ if( version_compare( get_option( 'wpforo_version', '' ), '2.0.3', '<' ) ){
78
  // #### migrate old options to new settings
79
  require_once WPFORO_DIR . "/includes/options-migration.php";
80
  _wpforo_migrate_old_options_to_new();
81
+ _wpforo_migrate_old_widgets_to_new();
82
  }
83
  }
84
 
437
  $url = wp_nonce_url( admin_url( 'admin.php?page=wpforo-overview&wpfaction=synch_user_profiles' ), 'wpforo_synch_user_profiles' );
438
  $class = 'wpforo-mnote notice notice-warning is-dismissible';
439
  $note = __( 'This process may take a few seconds or dozens of minutes, please be patient and don\'t close this page.', 'wpforo' );
440
+ $info = __( 'You can permanently disable this message using this documentation', 'wpforo' );
441
  $button = '<a href="' . $url . '" class="button button-primary button-large" style="font-size:14px;">' . $btext . ' &gt;&gt;</a>';
442
  $header = __( 'wpForo Forum Installation | ', 'wpforo' );
443
  $message = __( 'Forum users\' profile data are not synchronized yet, this step is required! Please click the button below to complete installation.', 'wpforo' );
444
+ echo '<div class="' . $class . '" style="padding:15px 20px;"><h2 style="margin:0;">' . esc_html( $header ) . $status . ' </h2><p style="font-size:15px;margin:5px 0;">' . $message . '</p><p style="margin:0 0 10px 0;">' . $button . '</p><hr /><p style="margin:0;color:#dd0000;">' . $note . '</p></div>';
445
  }
446
 
447
  function wpforo_database_notice() {
includes/options-migration.php CHANGED
@@ -610,3 +610,36 @@ function _wpforo_migrate_old_options_to_new() {
610
  WPF()->phrase->set_language_status( $_general['lang'] );
611
  WPF()->usergroup->set_default( wpforo_get_option( 'wpforo_default_groupid', 3 ) );
612
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
610
  WPF()->phrase->set_language_status( $_general['lang'] );
611
  WPF()->usergroup->set_default( wpforo_get_option( 'wpforo_default_groupid', 3 ) );
612
  }
613
+
614
+ function _wpforo_migrate_old_widgets_to_new(){
615
+ if( $sidebars_widgets = get_option('sidebars_widgets') ){
616
+ if( wpfkey( $sidebars_widgets, 'forum-sidebar' ) && ! wpfval( $sidebars_widgets, 'wpforo_sidebar' ) ){
617
+ $sidebars_widgets['wpforo_sidebar'] = $sidebars_widgets['forum-sidebar'];
618
+ unset( $sidebars_widgets['forum-sidebar'] );
619
+ }
620
+
621
+ $sidebars_widgets = array_map(
622
+ function($item){
623
+ if( ! is_numeric( $item ) ){
624
+ $item = str_replace( [ 'wpforo_widget_recent_replies', 'wpforo_widget_' ], [ 'wpforo_recent_posts', 'wpforo_' ], $item );
625
+ }
626
+ return $item;
627
+ },
628
+ $sidebars_widgets
629
+ );
630
+
631
+ ### -------
632
+ global $wpdb;
633
+ $sql = "SELECT * FROM `" . $wpdb->options . "` WHERE `option_name` LIKE '%wpforo_widget_%'";
634
+ if( $options = $wpdb->get_results( $sql, ARRAY_A ) ){
635
+ foreach ( $options as $option ){
636
+ $v = unserialize( $option['option_value'] );
637
+ if( wpfval($v, '_multiwidget') && count( $v ) > 1 ){
638
+ update_option( str_replace( [ 'wpforo_widget_recent_replies', 'wpforo_widget_' ], [ 'wpforo_recent_posts', 'wpforo_' ], $option['option_name'] ), $v );
639
+ }
640
+ }
641
+ }
642
+
643
+ update_option( 'sidebars_widgets', $sidebars_widgets );
644
+ }
645
+ }
languages/wpforo.pot CHANGED
@@ -4,7 +4,7 @@
4
  msgid ""
5
  msgstr ""
6
  "Project-Id-Version: Forum - wpForo\n"
7
- "POT-Creation-Date: 2022-08-03 07:36+0400\n"
8
  "PO-Revision-Date: 2016-06-28 21:09+0400\n"
9
  "Last-Translator: \n"
10
  "Language-Team: \n"
@@ -139,11 +139,11 @@ msgstr ""
139
  msgid "Thank you for your feedback!"
140
  msgstr ""
141
 
142
- #: admin/index.php:20
143
  msgid "Inactive and banned"
144
  msgstr ""
145
 
146
- #: admin/index.php:35 admin/index.php:36 admin/index.php:131 admin/index.php:132
147
  msgid "Overview"
148
  msgstr ""
149
 
@@ -176,40 +176,40 @@ msgstr ""
176
  msgid "Tools"
177
  msgstr ""
178
 
179
- #: admin/index.php:83 admin/index.php:136 admin/pages/board.php:16
180
  #: includes/hooks.php:10 includes/hooks.php:2421
181
  msgid "Boards"
182
  msgstr ""
183
 
184
- #: admin/index.php:87 admin/index.php:140 includes/hooks.php:2196
185
  #: includes/hooks.php:2437
186
  msgid "Accesses"
187
  msgstr ""
188
 
189
- #: admin/index.php:91 admin/index.php:144 admin/pages/usergroup.php:12
190
  #: admin/pages/usergroup.php:160 includes/hooks.php:2221 includes/hooks.php:2453
191
  msgid "Usergroups"
192
  msgstr ""
193
 
194
- #: admin/index.php:94 admin/index.php:147 admin/pages/dashboard.php:37
195
  #: admin/pages/member.php:10 admin/pages/usergroup.php:37
196
  #: admin/tools-tabs/misc.php:87 includes/hooks.php:2212 includes/hooks.php:2469
197
  #: includes/phrases.php:364
198
  msgid "Members"
199
  msgstr ""
200
 
201
- #: admin/index.php:98 admin/index.php:156 includes/hooks.php:2253
202
  #: includes/hooks.php:2487 includes/phrases.php:792
203
  msgid "Themes"
204
  msgstr ""
205
 
206
- #: admin/index.php:103 admin/index.php:161 admin/pages/board.php:116
207
  #: admin/pages/settings.php:22 includes/hooks.php:2262 includes/hooks.php:2496
208
  #: includes/phrases.php:211
209
  msgid "Addons"
210
  msgstr ""
211
 
212
- #: admin/index.php:117
213
  msgid "Inactive and Banned"
214
  msgstr ""
215
 
@@ -780,7 +780,7 @@ msgstr ""
780
  msgid "Rebuild Threads"
781
  msgstr ""
782
 
783
- #: admin/pages/forum.php:15 includes/functions.php:723 includes/phrases.php:487
784
  msgid "Show on screen"
785
  msgstr ""
786
 
@@ -808,7 +808,7 @@ msgstr ""
808
  msgid "Number of Columns"
809
  msgstr ""
810
 
811
- #: admin/pages/forum.php:34 includes/functions.php:737 includes/phrases.php:460
812
  msgid "Screen Options"
813
  msgstr ""
814
 
@@ -2191,19 +2191,19 @@ msgstr ""
2191
  msgid "User registration is disabled"
2192
  msgstr ""
2193
 
2194
- #: classes/Actions.php:2045 classes/Template.php:2359 includes/phrases.php:513
2195
  msgid "Theme file not readable"
2196
  msgstr ""
2197
 
2198
- #: classes/Actions.php:2051
2199
  msgid "Theme Successfully Activated"
2200
  msgstr ""
2201
 
2202
- #: classes/Actions.php:2072
2203
  msgid "Theme delete error"
2204
  msgstr ""
2205
 
2206
- #: classes/Actions.php:2079
2207
  msgid "Theme delete success"
2208
  msgstr ""
2209
 
@@ -2365,19 +2365,19 @@ msgid ""
2365
  "another one."
2366
  msgstr ""
2367
 
2368
- #: classes/Members.php:1804
2369
  msgid "What should be done with wpForo content owned by this user?"
2370
  msgstr ""
2371
 
2372
- #: classes/Members.php:1807
2373
  msgid "What should be done with wpForo content owned by these users?"
2374
  msgstr ""
2375
 
2376
- #: classes/Members.php:1811
2377
  msgid "Delete all wpForo content."
2378
  msgstr ""
2379
 
2380
- #: classes/Members.php:1813
2381
  msgid "Attribute all content to:"
2382
  msgstr ""
2383
 
@@ -4728,8 +4728,9 @@ msgstr ""
4728
  msgid "Badge Icon"
4729
  msgstr ""
4730
 
4731
- #: classes/Settings.php:3771 includes/options-migration.php:19
4732
- #: includes/options-migration.php:98 includes/phrases.php:287
 
4733
  msgid "Forum"
4734
  msgstr ""
4735
 
@@ -4874,23 +4875,23 @@ msgid ""
4874
  " [unsubscribe_link]"
4875
  msgstr ""
4876
 
4877
- #: classes/Template.php:851
4878
  msgid "Insert link"
4879
  msgstr ""
4880
 
4881
- #: classes/Template.php:852
4882
  msgid "Link Text"
4883
  msgstr ""
4884
 
4885
- #: classes/Template.php:853
4886
  msgid "Open link in a new tab"
4887
  msgstr ""
4888
 
4889
- #: classes/Template.php:854
4890
  msgid "Insert Spoiler"
4891
  msgstr ""
4892
 
4893
- #: classes/Template.php:855
4894
  msgid "Spoiler"
4895
  msgstr ""
4896
 
@@ -5127,30 +5128,42 @@ msgid ""
5127
  "custom emoticons packs."
5128
  msgstr ""
5129
 
5130
- #: includes/functions.php:727 includes/phrases.php:327
 
 
 
 
 
 
 
 
 
 
 
 
5131
  msgid "Items"
5132
  msgstr ""
5133
 
5134
- #: includes/functions.php:728 includes/phrases.php:222
5135
  msgid "Apply"
5136
  msgstr ""
5137
 
5138
- #: includes/functions.php:1198
5139
  #, php-format
5140
  msgid "Could not write file %s"
5141
  msgstr ""
5142
 
5143
- #: includes/functions.php:2645 includes/installation.php:483
5144
  msgid "Action Required!"
5145
  msgstr ""
5146
 
5147
- #: includes/functions.php:2645
5148
  msgid ""
5149
  "Please update wpForo addons CSS style to make compatible with the current "
5150
  "version of wpForo."
5151
  msgstr ""
5152
 
5153
- #: includes/functions.php:2646
5154
  msgid "Update CSS >>"
5155
  msgstr ""
5156
 
@@ -5321,82 +5334,80 @@ msgstr ""
5321
  msgid "dismiss"
5322
  msgstr ""
5323
 
5324
- #: includes/installation.php:450
5325
  msgid "Start Profile Synchronization"
5326
  msgstr ""
5327
 
5328
- #: includes/installation.php:450
5329
  msgid "Continue Synchronization"
5330
  msgstr ""
5331
 
5332
- #: includes/installation.php:453
5333
  msgid ""
5334
  "This process may take a few seconds or dozens of minutes, please be patient "
5335
  "and don't close this page."
5336
  msgstr ""
5337
 
5338
- #: includes/installation.php:454
5339
- msgid ""
5340
- "You can permanently disable this message in Dashboard > Forums > Features "
5341
- "admin page."
5342
  msgstr ""
5343
 
5344
- #: includes/installation.php:456
5345
  msgid "wpForo Forum Installation | "
5346
  msgstr ""
5347
 
5348
- #: includes/installation.php:457
5349
  msgid ""
5350
  "Forum users' profile data are not synchronized yet, this step is required! "
5351
  "Please click the button below to complete installation."
5352
  msgstr ""
5353
 
5354
- #: includes/installation.php:465
5355
  msgid "wpForo Database Update Problem - Action Required!"
5356
  msgstr ""
5357
 
5358
- #: includes/installation.php:466
5359
  msgid ""
5360
  "Forum database is not updated properly. Please click the button below for "
5361
  "further instruction."
5362
  msgstr ""
5363
 
5364
- #: includes/installation.php:477
5365
  msgid "Exclude forum page(s) from"
5366
  msgstr ""
5367
 
5368
- #: includes/installation.php:477
5369
  msgid "plugin"
5370
  msgstr ""
5371
 
5372
- #: includes/installation.php:481
5373
  #, php-format
5374
  msgid ""
5375
  "If you have already excluded the forum page from your cache plugin please "
5376
  "ignore and close this message using the top %s (x) button."
5377
  msgstr ""
5378
 
5379
- #: includes/installation.php:481
5380
  msgid "left"
5381
  msgstr ""
5382
 
5383
- #: includes/installation.php:481
5384
  msgid "right"
5385
  msgstr ""
5386
 
5387
- #: includes/installation.php:482
5388
  msgid "Please find more information here: "
5389
  msgstr ""
5390
 
5391
- #: includes/installation.php:483
5392
  msgid " and "
5393
  msgstr ""
5394
 
5395
- #: includes/installation.php:483
5396
  msgid "conflict"
5397
  msgstr ""
5398
 
5399
- #: includes/installation.php:484
5400
  msgid ""
5401
  "Please exclude the forum page from your cache plugin! wpForo has a built-in "
5402
  "cache system. It does dynamic cache of all forum pages, which will be affected "
@@ -5404,26 +5415,26 @@ msgid ""
5404
  "The user login and logout actions will also be corrupted."
5405
  msgstr ""
5406
 
5407
- #: includes/installation.php:1157
 
 
 
 
5408
  msgid "Main Category"
5409
  msgstr ""
5410
 
5411
- #: includes/installation.php:1157
5412
  msgid "This is a simple category / section"
5413
  msgstr ""
5414
 
5415
- #: includes/installation.php:1158
5416
  msgid "Main Forum"
5417
  msgstr ""
5418
 
5419
- #: includes/installation.php:1158
5420
  msgid "This is a simple parent forum"
5421
  msgstr ""
5422
 
5423
- #: includes/options-migration.php:20
5424
- msgid "Discussion Board"
5425
- msgstr ""
5426
-
5427
  #: includes/options-migration.php:104
5428
  msgid ""
5429
  "Hello [member_name]!<br>\n"
4
  msgid ""
5
  msgstr ""
6
  "Project-Id-Version: Forum - wpForo\n"
7
+ "POT-Creation-Date: 2022-08-05 02:19+0400\n"
8
  "PO-Revision-Date: 2016-06-28 21:09+0400\n"
9
  "Last-Translator: \n"
10
  "Language-Team: \n"
139
  msgid "Thank you for your feedback!"
140
  msgstr ""
141
 
142
+ #: admin/index.php:31
143
  msgid "Inactive and banned"
144
  msgstr ""
145
 
146
+ #: admin/index.php:46 admin/index.php:47 admin/index.php:131 admin/index.php:132
147
  msgid "Overview"
148
  msgstr ""
149
 
176
  msgid "Tools"
177
  msgstr ""
178
 
179
+ #: admin/index.php:82 admin/index.php:136 admin/pages/board.php:16
180
  #: includes/hooks.php:10 includes/hooks.php:2421
181
  msgid "Boards"
182
  msgstr ""
183
 
184
+ #: admin/index.php:86 admin/index.php:140 includes/hooks.php:2196
185
  #: includes/hooks.php:2437
186
  msgid "Accesses"
187
  msgstr ""
188
 
189
+ #: admin/index.php:90 admin/index.php:144 admin/pages/usergroup.php:12
190
  #: admin/pages/usergroup.php:160 includes/hooks.php:2221 includes/hooks.php:2453
191
  msgid "Usergroups"
192
  msgstr ""
193
 
194
+ #: admin/index.php:93 admin/index.php:147 admin/pages/dashboard.php:37
195
  #: admin/pages/member.php:10 admin/pages/usergroup.php:37
196
  #: admin/tools-tabs/misc.php:87 includes/hooks.php:2212 includes/hooks.php:2469
197
  #: includes/phrases.php:364
198
  msgid "Members"
199
  msgstr ""
200
 
201
+ #: admin/index.php:97 admin/index.php:156 includes/hooks.php:2253
202
  #: includes/hooks.php:2487 includes/phrases.php:792
203
  msgid "Themes"
204
  msgstr ""
205
 
206
+ #: admin/index.php:102 admin/index.php:161 admin/pages/board.php:116
207
  #: admin/pages/settings.php:22 includes/hooks.php:2262 includes/hooks.php:2496
208
  #: includes/phrases.php:211
209
  msgid "Addons"
210
  msgstr ""
211
 
212
+ #: admin/index.php:116
213
  msgid "Inactive and Banned"
214
  msgstr ""
215
 
780
  msgid "Rebuild Threads"
781
  msgstr ""
782
 
783
+ #: admin/pages/forum.php:15 includes/functions.php:747 includes/phrases.php:487
784
  msgid "Show on screen"
785
  msgstr ""
786
 
808
  msgid "Number of Columns"
809
  msgstr ""
810
 
811
+ #: admin/pages/forum.php:34 includes/functions.php:761 includes/phrases.php:460
812
  msgid "Screen Options"
813
  msgstr ""
814
 
2191
  msgid "User registration is disabled"
2192
  msgstr ""
2193
 
2194
+ #: classes/Actions.php:2044 classes/Template.php:2357 includes/phrases.php:513
2195
  msgid "Theme file not readable"
2196
  msgstr ""
2197
 
2198
+ #: classes/Actions.php:2050
2199
  msgid "Theme Successfully Activated"
2200
  msgstr ""
2201
 
2202
+ #: classes/Actions.php:2071
2203
  msgid "Theme delete error"
2204
  msgstr ""
2205
 
2206
+ #: classes/Actions.php:2078
2207
  msgid "Theme delete success"
2208
  msgstr ""
2209
 
2365
  "another one."
2366
  msgstr ""
2367
 
2368
+ #: classes/Members.php:1803
2369
  msgid "What should be done with wpForo content owned by this user?"
2370
  msgstr ""
2371
 
2372
+ #: classes/Members.php:1806
2373
  msgid "What should be done with wpForo content owned by these users?"
2374
  msgstr ""
2375
 
2376
+ #: classes/Members.php:1810
2377
  msgid "Delete all wpForo content."
2378
  msgstr ""
2379
 
2380
+ #: classes/Members.php:1812
2381
  msgid "Attribute all content to:"
2382
  msgstr ""
2383
 
4728
  msgid "Badge Icon"
4729
  msgstr ""
4730
 
4731
+ #: classes/Settings.php:3771 includes/installation.php:541
4732
+ #: includes/options-migration.php:19 includes/options-migration.php:98
4733
+ #: includes/phrases.php:287
4734
  msgid "Forum"
4735
  msgstr ""
4736
 
4875
  " [unsubscribe_link]"
4876
  msgstr ""
4877
 
4878
+ #: classes/Template.php:849
4879
  msgid "Insert link"
4880
  msgstr ""
4881
 
4882
+ #: classes/Template.php:850
4883
  msgid "Link Text"
4884
  msgstr ""
4885
 
4886
+ #: classes/Template.php:851
4887
  msgid "Open link in a new tab"
4888
  msgstr ""
4889
 
4890
+ #: classes/Template.php:852
4891
  msgid "Insert Spoiler"
4892
  msgstr ""
4893
 
4894
+ #: classes/Template.php:853
4895
  msgid "Spoiler"
4896
  msgstr ""
4897
 
5128
  "custom emoticons packs."
5129
  msgstr ""
5130
 
5131
+ #: includes/functions.php:340
5132
+ msgid ""
5133
+ "Allows to setup membership access to your forums and topics through "
5134
+ "WooCommerce Memberships plugin."
5135
+ msgstr ""
5136
+
5137
+ #: includes/functions.php:352
5138
+ msgid ""
5139
+ "Helps to migrate from bbPress, phpBB, SMF, MyBB, Simple:Press and other forum "
5140
+ "pieces of software and plugins to wpForo."
5141
+ msgstr ""
5142
+
5143
+ #: includes/functions.php:751 includes/phrases.php:327
5144
  msgid "Items"
5145
  msgstr ""
5146
 
5147
+ #: includes/functions.php:752 includes/phrases.php:222
5148
  msgid "Apply"
5149
  msgstr ""
5150
 
5151
+ #: includes/functions.php:1222
5152
  #, php-format
5153
  msgid "Could not write file %s"
5154
  msgstr ""
5155
 
5156
+ #: includes/functions.php:2669 includes/installation.php:469
5157
  msgid "Action Required!"
5158
  msgstr ""
5159
 
5160
+ #: includes/functions.php:2669
5161
  msgid ""
5162
  "Please update wpForo addons CSS style to make compatible with the current "
5163
  "version of wpForo."
5164
  msgstr ""
5165
 
5166
+ #: includes/functions.php:2670
5167
  msgid "Update CSS >>"
5168
  msgstr ""
5169
 
5334
  msgid "dismiss"
5335
  msgstr ""
5336
 
5337
+ #: includes/installation.php:436
5338
  msgid "Start Profile Synchronization"
5339
  msgstr ""
5340
 
5341
+ #: includes/installation.php:436
5342
  msgid "Continue Synchronization"
5343
  msgstr ""
5344
 
5345
+ #: includes/installation.php:439
5346
  msgid ""
5347
  "This process may take a few seconds or dozens of minutes, please be patient "
5348
  "and don't close this page."
5349
  msgstr ""
5350
 
5351
+ #: includes/installation.php:440
5352
+ msgid "You can permanently disable this message using this documentation"
 
 
5353
  msgstr ""
5354
 
5355
+ #: includes/installation.php:442
5356
  msgid "wpForo Forum Installation | "
5357
  msgstr ""
5358
 
5359
+ #: includes/installation.php:443
5360
  msgid ""
5361
  "Forum users' profile data are not synchronized yet, this step is required! "
5362
  "Please click the button below to complete installation."
5363
  msgstr ""
5364
 
5365
+ #: includes/installation.php:451
5366
  msgid "wpForo Database Update Problem - Action Required!"
5367
  msgstr ""
5368
 
5369
+ #: includes/installation.php:452
5370
  msgid ""
5371
  "Forum database is not updated properly. Please click the button below for "
5372
  "further instruction."
5373
  msgstr ""
5374
 
5375
+ #: includes/installation.php:463
5376
  msgid "Exclude forum page(s) from"
5377
  msgstr ""
5378
 
5379
+ #: includes/installation.php:463
5380
  msgid "plugin"
5381
  msgstr ""
5382
 
5383
+ #: includes/installation.php:467
5384
  #, php-format
5385
  msgid ""
5386
  "If you have already excluded the forum page from your cache plugin please "
5387
  "ignore and close this message using the top %s (x) button."
5388
  msgstr ""
5389
 
5390
+ #: includes/installation.php:467
5391
  msgid "left"
5392
  msgstr ""
5393
 
5394
+ #: includes/installation.php:467
5395
  msgid "right"
5396
  msgstr ""
5397
 
5398
+ #: includes/installation.php:468
5399
  msgid "Please find more information here: "
5400
  msgstr ""
5401
 
5402
+ #: includes/installation.php:469
5403
  msgid " and "
5404
  msgstr ""
5405
 
5406
+ #: includes/installation.php:469
5407
  msgid "conflict"
5408
  msgstr ""
5409
 
5410
+ #: includes/installation.php:470
5411
  msgid ""
5412
  "Please exclude the forum page from your cache plugin! wpForo has a built-in "
5413
  "cache system. It does dynamic cache of all forum pages, which will be affected "
5415
  "The user login and logout actions will also be corrupted."
5416
  msgstr ""
5417
 
5418
+ #: includes/installation.php:542 includes/options-migration.php:20
5419
+ msgid "Discussion Board"
5420
+ msgstr ""
5421
+
5422
+ #: includes/installation.php:1152
5423
  msgid "Main Category"
5424
  msgstr ""
5425
 
5426
+ #: includes/installation.php:1152
5427
  msgid "This is a simple category / section"
5428
  msgstr ""
5429
 
5430
+ #: includes/installation.php:1153
5431
  msgid "Main Forum"
5432
  msgstr ""
5433
 
5434
+ #: includes/installation.php:1153
5435
  msgid "This is a simple parent forum"
5436
  msgstr ""
5437
 
 
 
 
 
5438
  #: includes/options-migration.php:104
5439
  msgid ""
5440
  "Hello [member_name]!<br>\n"
modules/follows/classes/Template.php CHANGED
@@ -8,7 +8,9 @@ class Template {
8
  }
9
 
10
  private function init_hooks() {
11
- add_action( 'wpforo_template_profile_action_buttons_left', function( $user ){ echo $this->button( $user ); } );
 
 
12
  }
13
 
14
  public function button( $user ) {
8
  }
9
 
10
  private function init_hooks() {
11
+ if( wpforo_setting('subscriptions', 'user_following_notify') ){
12
+ add_action( 'wpforo_template_profile_action_buttons_left', function( $user ){ echo $this->button( $user ); } );
13
+ }
14
  }
15
 
16
  public function button( $user ) {
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: gVectors Team
3
  Tags: forum, forums, forum plugin, WordPress forum plugin, community, discussion
4
  Requires at least: 5.1
5
  Tested up to: 6.0
6
- Stable tag: 2.0.2
7
  Requires PHP: 5.6 and higher
8
  License: GPLv2 or later
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -162,9 +162,9 @@ Find wpForo forum plugin addons on [gVectors Team website...](https://gvectors.c
162
 
163
  == Changelog ==
164
 
165
- = wpForo Forum 2.0.1 / 2.0.2 | 03.08.2021 =
166
 
167
- [wpForo Forum v2.0.1 Release Summary](https://wpforo.com/community/wpforo-announcements/wpforo-2-0-1-is-released/)
168
 
169
  IMPORTANT NOTES for UPDATE
170
 
@@ -175,13 +175,18 @@ IMPORTANT NOTES for UPDATE
175
 
176
  ADDED FEATURES and FIXED BUGS
177
 
 
 
 
 
 
 
178
  * Multi-board: Allows to create multiple separate forum boards in the same WordPress website.
179
  * Multi-language: Using the multi-board system, you can create multiple separate forums for each language of your website.
180
  * New Settings Page: We've re-grouped and re-designed wpForo settings, now it's very easy to find the option you want.
181
  * New Forum Theme: The new version comes with new 2022 theme and with completely redesigned forum layouts and style.
182
  * New Member Profile System: It's fully changed with new features and modern design, becoming sitewide profile system.
183
  * New Registered User Approval: Keeps new registered users inactive until they are not activated by forum administrate.
184
- * -----
185
  * Added: Redesigned Members Directory
186
  * Added: AJAX powered profile actions and sub-tabs
187
  * Added: Point based user reputation collected on new topic, post, like, dislike
@@ -194,7 +199,6 @@ ADDED FEATURES and FIXED BUGS
194
  * Added: Separated sub-tabs All/Topics/Posts in Profile > Activity Tab
195
  * Added: Favored Tab with Bookmarks/Likes/Dislikes sub-tabs
196
  * Added: User profile page without forum header and footer
197
- * -----
198
  * Topic Overview: on the top of topics with quick stat and a tree of nested replies
199
  * Added: Topic specific statistics with participants and likes count
200
  * Added: Topic suggestion while typing topic title in new topic creation form
@@ -203,12 +207,10 @@ ADDED FEATURES and FIXED BUGS
203
  * Added: Topic and Posts Dislike button with new ui/ux
204
  * Added: Topic/Post filter in Dashboard > wpForo > Moderation admin page
205
  * Added: H1 headers in topic tags page
206
- * -----
207
  * Added: Forum cover image, available for all layouts
208
  * Added: [Add Topic] button to all layouts on the forum home page
209
  * Added: Forum Jump dropdown in topics footer area
210
  * Added: Category and Forums widget with an option to display as dropdown
211
- * -----
212
  * Added: Settings boxes grouping related options
213
  * Added: Settings live search field, jumping to found setting page
214
  * Antispam: Check links in topic custom fields and in signatures for auto moderation
@@ -216,7 +218,6 @@ ADDED FEATURES and FIXED BUGS
216
  * Added: Toggle to keep collapsed wpForo menu shortcodes in Menus admin page
217
  * Added: New social network meta tag "og:local" in forum and topic pages
218
  * Added: Dashboard notification to exclude forum for 7 popular cache plugins
219
- * -----
220
  * Lots of options have been added in [wpForo Settings](https://wpforo.com/docs/wpforo-v2/settings/)
221
  * Lots of bugs have been fixed
222
  * The core is fully re-developed and optimized
3
  Tags: forum, forums, forum plugin, WordPress forum plugin, community, discussion
4
  Requires at least: 5.1
5
  Tested up to: 6.0
6
+ Stable tag: 2.0.3
7
  Requires PHP: 5.6 and higher
8
  License: GPLv2 or later
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
162
 
163
  == Changelog ==
164
 
165
+ = wpForo Forum 2.0.1 - 2.0.3 | 03.08.2021 - 05.08.2021 =
166
 
167
+ [wpForo Forum v2.0 Release Summary](https://wpforo.com/community/wpforo-announcements/wpforo-2-0-1-is-released/)
168
 
169
  IMPORTANT NOTES for UPDATE
170
 
175
 
176
  ADDED FEATURES and FIXED BUGS
177
 
178
+ * Version 2.0.3
179
+ * Fixed Bug: Problem with get_locale() function
180
+ * Fixed Bug: Deactivate old addons and don't allow to activate them to avoid fatal errors
181
+ * Fixed Bug: Revert the lost sidebar after updating to v2.0
182
+ * --------
183
+ * Version 2.0.1 / 2.0.2
184
  * Multi-board: Allows to create multiple separate forum boards in the same WordPress website.
185
  * Multi-language: Using the multi-board system, you can create multiple separate forums for each language of your website.
186
  * New Settings Page: We've re-grouped and re-designed wpForo settings, now it's very easy to find the option you want.
187
  * New Forum Theme: The new version comes with new 2022 theme and with completely redesigned forum layouts and style.
188
  * New Member Profile System: It's fully changed with new features and modern design, becoming sitewide profile system.
189
  * New Registered User Approval: Keeps new registered users inactive until they are not activated by forum administrate.
 
190
  * Added: Redesigned Members Directory
191
  * Added: AJAX powered profile actions and sub-tabs
192
  * Added: Point based user reputation collected on new topic, post, like, dislike
199
  * Added: Separated sub-tabs All/Topics/Posts in Profile > Activity Tab
200
  * Added: Favored Tab with Bookmarks/Likes/Dislikes sub-tabs
201
  * Added: User profile page without forum header and footer
 
202
  * Topic Overview: on the top of topics with quick stat and a tree of nested replies
203
  * Added: Topic specific statistics with participants and likes count
204
  * Added: Topic suggestion while typing topic title in new topic creation form
207
  * Added: Topic and Posts Dislike button with new ui/ux
208
  * Added: Topic/Post filter in Dashboard > wpForo > Moderation admin page
209
  * Added: H1 headers in topic tags page
 
210
  * Added: Forum cover image, available for all layouts
211
  * Added: [Add Topic] button to all layouts on the forum home page
212
  * Added: Forum Jump dropdown in topics footer area
213
  * Added: Category and Forums widget with an option to display as dropdown
 
214
  * Added: Settings boxes grouping related options
215
  * Added: Settings live search field, jumping to found setting page
216
  * Antispam: Check links in topic custom fields and in signatures for auto moderation
218
  * Added: Toggle to keep collapsed wpForo menu shortcodes in Menus admin page
219
  * Added: New social network meta tag "og:local" in forum and topic pages
220
  * Added: Dashboard notification to exclude forum for 7 popular cache plugins
 
221
  * Lots of options have been added in [wpForo Settings](https://wpforo.com/docs/wpforo-v2/settings/)
222
  * Lots of bugs have been fixed
223
  * The core is fully re-developed and optimized
widgets/Tags.php CHANGED
@@ -27,7 +27,7 @@ class Tags extends WP_Widget {
27
  echo '<li><a href="' . esc_url( wpforo_home_url() . '?wpfin=tag&wpfs=' . $tag['tag'] ) . '" title="' . esc_attr( $tag['tag'] ) . '">' . wpforo_text( $tag['tag'], 25, false ) . '</a>' . $topic_count . '</li>';
28
  }
29
  echo '</ul>';
30
- if( $instance['count'] < $items_count ) {
31
  echo '<div class="wpf-all-tags"><a href="' . esc_url( wpforo_home_url( wpforo_settings_get_slug( 'tags' ) ) ) . '">' . sprintf( wpforo_phrase( 'View all tags (%d)', false ), $items_count ) . '</a></div>';
32
  }
33
  } else {
27
  echo '<li><a href="' . esc_url( wpforo_home_url() . '?wpfin=tag&wpfs=' . $tag['tag'] ) . '" title="' . esc_attr( $tag['tag'] ) . '">' . wpforo_text( $tag['tag'], 25, false ) . '</a>' . $topic_count . '</li>';
28
  }
29
  echo '</ul>';
30
+ if( wpfval($instance, 'count' ) < $items_count ) {
31
  echo '<div class="wpf-all-tags"><a href="' . esc_url( wpforo_home_url( wpforo_settings_get_slug( 'tags' ) ) ) . '">' . sprintf( wpforo_phrase( 'View all tags (%d)', false ), $items_count ) . '</a></div>';
32
  }
33
  } else {
wpforo.php CHANGED
@@ -5,14 +5,14 @@
5
  * Description: WordPress Forum plugin. wpForo is a full-fledged forum solution for your community. Comes with multiple modern forum layouts.
6
  * Author: gVectors Team
7
  * Author URI: https://gvectors.com/
8
- * Version: 2.0.2
9
  * Text Domain: wpforo
10
  * Domain Path: /languages
11
  */
12
 
13
  namespace wpforo;
14
 
15
- define( 'WPFORO_VERSION', '2.0.2' );
16
 
17
  //Exit if accessed directly
18
  if( ! defined( 'ABSPATH' ) ) exit;
@@ -464,7 +464,9 @@ final class wpforo {
464
  $users = (int) $this->db->get_var( "SELECT COUNT(*) FROM `" . $this->db->users . "`" );
465
  $profiles = (int) $this->db->get_var( "SELECT COUNT(*) FROM `" . $this->tables->profiles . "`" );
466
  $delta = $users - $profiles;
467
- if( $users > 100 && $delta > 2 ) add_action( 'admin_notices', 'wpforo_profile_notice', 10 );
 
 
468
  }
469
  //Make sure tables structures are correct for current version
470
  $wpforo_version_db = wpforo_get_option( 'version_db', null, false );
5
  * Description: WordPress Forum plugin. wpForo is a full-fledged forum solution for your community. Comes with multiple modern forum layouts.
6
  * Author: gVectors Team
7
  * Author URI: https://gvectors.com/
8
+ * Version: 2.0.3
9
  * Text Domain: wpforo
10
  * Domain Path: /languages
11
  */
12
 
13
  namespace wpforo;
14
 
15
+ define( 'WPFORO_VERSION', '2.0.3' );
16
 
17
  //Exit if accessed directly
18
  if( ! defined( 'ABSPATH' ) ) exit;
464
  $users = (int) $this->db->get_var( "SELECT COUNT(*) FROM `" . $this->db->users . "`" );
465
  $profiles = (int) $this->db->get_var( "SELECT COUNT(*) FROM `" . $this->tables->profiles . "`" );
466
  $delta = $users - $profiles;
467
+ if( apply_filters('wpforo_profile_synchronization_notice', true) ){
468
+ if( $users > 100 && abs($delta) > 15 ) add_action( 'admin_notices', 'wpforo_profile_notice', 10 );
469
+ }
470
  }
471
  //Make sure tables structures are correct for current version
472
  $wpforo_version_db = wpforo_get_option( 'version_db', null, false );