WPGlobus – Multilingual Everything! - Version 2.8.4

Version Description

  • (Core/Widget class) Added widget_title filter.
  • (Vendor/Yoast) Fixed PHP Notice: Undefined index: _yoast_wpseo_title.
  • (Builders/Yoast) Added compatibility with Yoast from v.17.3.
  • (Core/Media) Translate post title in submit box.
Download this release

Release Info

Developer tivnet
Plugin Icon 128x128 WPGlobus – Multilingual Everything!
Version 2.8.4
Comparing to
See all releases

Code changes from version 2.8.3 to 2.8.4

includes/builders/class-wpglobus-builders.php CHANGED
@@ -98,51 +98,19 @@ if ( ! class_exists( 'WPGlobus_Builders' ) ) :
98
  'beta_version' => '3',
99
  );
100
 
101
- if ( file_exists( WP_PLUGIN_DIR . '/wordpress-seo-premium/wp-seo-premium.php' ) ) {
102
-
103
- self::$add_on['yoast_seo'] = array(
104
- 'id' => 'yoast_seo',
105
- 'role' => 'builder',
106
- 'admin_bar_label' => 'Add-on',
107
- 'supported_min_version' => '7.7',
108
- 'const' => 'WPSEO_VERSION',
109
- 'plugin_name' => 'Yoast SEO Premium',
110
- 'plugin_uri' => 'https://yoast.com/wordpress/plugins/seo/',
111
- 'path' => 'wordpress-seo-premium/wp-seo-premium.php',
112
- 'stage' => 'production',
113
- );
114
-
115
- }
116
-
117
  /**
 
118
  * @since 2.3.11
 
119
  */
120
- $_file = 'wordpress-seo/wp-seo.php';
121
- $_plugin_name = 'Yoast SEO';
122
- if ( defined( 'WPGLOBUS_YOAST_PLUGIN_FILE' ) ) {
123
- $_file = WPGLOBUS_YOAST_PLUGIN_FILE;
124
- $_plugin_name = 'Yoast SEO('.$_file.')';
125
- }
126
-
127
- if ( file_exists( WP_PLUGIN_DIR . '/' . $_file ) ) {
128
-
129
- if ( ! defined( 'WPSEO_PREMIUM_PLUGIN_FILE' ) ) {
130
-
131
- self::$add_on['yoast_seo'] = array(
132
- 'id' => 'yoast_seo',
133
- 'role' => 'builder',
134
- 'admin_bar_label' => 'Add-on',
135
- 'supported_min_version' => '7.7',
136
- 'const' => 'WPSEO_VERSION',
137
- 'plugin_name' => $_plugin_name,
138
- 'plugin_uri' => 'https://wordpress.org/plugins/wordpress-seo/',
139
- 'path' => $_file,
140
- 'stage' => 'production',
141
- );
142
-
143
- }
144
  }
145
 
 
 
 
146
  self::$add_on['woocommerce'] = array(
147
  'id' => 'woocommerce',
148
  'role' => 'add-on',
@@ -1254,6 +1222,23 @@ if ( ! class_exists( 'WPGlobus_Builders' ) ) :
1254
 
1255
  if ( defined( 'WPSEO_VERSION' ) ) {
1256
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1257
  /** @global string $pagenow */
1258
  global $pagenow;
1259
 
@@ -1277,8 +1262,8 @@ if ( ! class_exists( 'WPGlobus_Builders' ) ) :
1277
  }
1278
 
1279
  $_attrs = array(
1280
- 'id' => 'yoast_seo',
1281
- 'version' => WPSEO_VERSION,
1282
  'class' => 'WPGlobus_Yoast_SEO',
1283
  'builder_page' => false,
1284
  'post_type' => empty( $post_type ) ? '' : $post_type,
@@ -1308,15 +1293,15 @@ if ( ! class_exists( 'WPGlobus_Builders' ) ) :
1308
 
1309
  return $attrs;
1310
 
1311
- } elseif ( 'term.php' === $pagenow ) {
1312
 
1313
  $tax = empty( $_GET['taxonomy'] ) ? false : sanitize_text_field( wp_unslash( $_GET['taxonomy'] ) ); // phpcs:ignore WordPress.CSRF.NonceVerification
1314
 
1315
  if ( $tax ) {
1316
 
1317
  $_attrs = array(
1318
- 'id' => 'yoast_seo',
1319
- 'version' => WPSEO_VERSION,
1320
  'class' => 'WPGlobus_Yoast_SEO',
1321
  'builder_page' => false,
1322
  'post_type' => '',
@@ -1338,7 +1323,7 @@ if ( ! class_exists( 'WPGlobus_Builders' ) ) :
1338
 
1339
  return $attrs;
1340
  }
1341
- } elseif ( 'edit-tags.php' === $pagenow ) {
1342
  /**
1343
  * Case when Update button was clicked on term.php page .
1344
  */
@@ -1348,8 +1333,8 @@ if ( ! class_exists( 'WPGlobus_Builders' ) ) :
1348
  if ( $tax ) {
1349
 
1350
  $_attrs = array(
1351
- 'id' => 'yoast_seo',
1352
- 'version' => WPSEO_VERSION,
1353
  'class' => 'WPGlobus_Yoast_SEO',
1354
  'builder_page' => false,
1355
  'post_type' => '',
@@ -1373,7 +1358,6 @@ if ( ! class_exists( 'WPGlobus_Builders' ) ) :
1373
  }
1374
 
1375
  return false;
1376
-
1377
  }
1378
 
1379
  /**
98
  'beta_version' => '3',
99
  );
100
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
101
  /**
102
+ * Yoast SEO add-ons.
103
  * @since 2.3.11
104
+ * @since 2.8.4 Moved to separate file.
105
  */
106
+ $_addon_dir = dirname( __FILE__ ) . '/yoast_seo/addon-yoast_seo.php';
107
+ if ( file_exists($_addon_dir) ) {
108
+ require_once $_addon_dir;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
  }
110
 
111
+ /**
112
+ * WooCommerce.
113
+ */
114
  self::$add_on['woocommerce'] = array(
115
  'id' => 'woocommerce',
116
  'role' => 'add-on',
1222
 
1223
  if ( defined( 'WPSEO_VERSION' ) ) {
1224
 
1225
+ /**
1226
+ * @since 2.8.4
1227
+ */
1228
+ $id = 'yoast_seo';
1229
+ $version = WPSEO_VERSION;
1230
+
1231
+ if ( version_compare( WPSEO_VERSION, '17.3', '>=' ) ) {
1232
+ /** @see code in addon-yoast_seo.php */
1233
+
1234
+ $id = self::$add_on['yoast_seo']['id'];
1235
+
1236
+ if ( defined( 'WPSEO_PREMIUM_VERSION' ) ) {
1237
+ $id = self::$add_on['yoast_seo_premium']['id'];
1238
+ $version = WPSEO_PREMIUM_VERSION;
1239
+ }
1240
+ }
1241
+
1242
  /** @global string $pagenow */
1243
  global $pagenow;
1244
 
1262
  }
1263
 
1264
  $_attrs = array(
1265
+ 'id' => $id,
1266
+ 'version' => $version,
1267
  'class' => 'WPGlobus_Yoast_SEO',
1268
  'builder_page' => false,
1269
  'post_type' => empty( $post_type ) ? '' : $post_type,
1293
 
1294
  return $attrs;
1295
 
1296
+ } else if ( 'term.php' === $pagenow ) {
1297
 
1298
  $tax = empty( $_GET['taxonomy'] ) ? false : sanitize_text_field( wp_unslash( $_GET['taxonomy'] ) ); // phpcs:ignore WordPress.CSRF.NonceVerification
1299
 
1300
  if ( $tax ) {
1301
 
1302
  $_attrs = array(
1303
+ 'id' => $id,
1304
+ 'version' => $version,
1305
  'class' => 'WPGlobus_Yoast_SEO',
1306
  'builder_page' => false,
1307
  'post_type' => '',
1323
 
1324
  return $attrs;
1325
  }
1326
+ } else if ( 'edit-tags.php' === $pagenow ) {
1327
  /**
1328
  * Case when Update button was clicked on term.php page .
1329
  */
1333
  if ( $tax ) {
1334
 
1335
  $_attrs = array(
1336
+ 'id' => $id,
1337
+ 'version' => $version,
1338
  'class' => 'WPGlobus_Yoast_SEO',
1339
  'builder_page' => false,
1340
  'post_type' => '',
1358
  }
1359
 
1360
  return false;
 
1361
  }
1362
 
1363
  /**
includes/builders/yoast_seo/addon-yoast_seo.php ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * File: addon-yoast_seo.php
4
+ *
5
+ * @since 2.8.4
6
+ *
7
+ * @package WPGlobus\Builders\Yoast_SEO
8
+ * @author Alex Gor(alexgff)
9
+ */
10
+
11
+ if ( defined( 'WPSEO_VERSION' ) && version_compare( WPSEO_VERSION, '17.3', '>=' ) ) {
12
+
13
+ $_file = 'wordpress-seo/wp-seo.php';
14
+ $_plugin_name = 'Yoast SEO';
15
+ if ( defined( 'WPGLOBUS_YOAST_PLUGIN_FILE' ) ) {
16
+ $_file = WPGLOBUS_YOAST_PLUGIN_FILE;
17
+ $_plugin_name = 'Yoast SEO('.$_file.')';
18
+ }
19
+
20
+ $_builder_label = 'Yoast SEO';
21
+ if ( defined( 'WPSEO_PREMIUM_VERSION' ) ) {
22
+ $_builder_label = 'Yoast SEO Premium';
23
+ }
24
+
25
+ self::$add_on['yoast_seo'] = array(
26
+ 'id' => 'yoast_seo',
27
+ 'role' => 'builder',
28
+ 'admin_bar_label' => 'Add-on',
29
+ 'supported_min_version' => '7.7',
30
+ 'const' => 'WPSEO_VERSION',
31
+ 'plugin_name' => $_plugin_name,
32
+ 'plugin_uri' => 'https://wordpress.org/plugins/wordpress-seo/',
33
+ 'path' => $_file,
34
+ 'stage' => 'production',
35
+ 'pro' => false,
36
+ 'admin_bar_builder_label' => $_builder_label,
37
+ );
38
+
39
+ self::$add_on['yoast_seo_premium'] = array(
40
+ 'id' => 'yoast_seo',
41
+ 'role' => 'builder',
42
+ 'admin_bar_label' => 'Add-on',
43
+ 'supported_min_version' => '7.7',
44
+ 'const' => 'WPSEO_PREMIUM_VERSION',
45
+ 'plugin_name' => 'Yoast SEO Premium',
46
+ 'plugin_uri' => 'https://yoast.com/wordpress/plugins/seo/',
47
+ 'path' => 'wordpress-seo-premium/wp-seo-premium.php',
48
+ 'stage' => 'production',
49
+ 'pro' => true,
50
+ 'admin_bar_builder_label' => 'Yoast SEO Premium',
51
+ );
52
+
53
+ } else {
54
+
55
+ if ( file_exists( WP_PLUGIN_DIR . '/wordpress-seo-premium/wp-seo-premium.php' ) ) {
56
+
57
+ self::$add_on['yoast_seo'] = array(
58
+ 'id' => 'yoast_seo',
59
+ 'role' => 'builder',
60
+ 'admin_bar_label' => 'Add-on',
61
+ 'supported_min_version' => '7.7',
62
+ 'const' => 'WPSEO_VERSION',
63
+ 'plugin_name' => 'Yoast SEO Premium',
64
+ 'plugin_uri' => 'https://yoast.com/wordpress/plugins/seo/',
65
+ 'path' => 'wordpress-seo-premium/wp-seo-premium.php',
66
+ 'stage' => 'production',
67
+ );
68
+
69
+ }
70
+
71
+ /**
72
+ * @since 2.3.11
73
+ */
74
+ $_file = 'wordpress-seo/wp-seo.php';
75
+ $_plugin_name = 'Yoast SEO';
76
+ if ( defined( 'WPGLOBUS_YOAST_PLUGIN_FILE' ) ) {
77
+ $_file = WPGLOBUS_YOAST_PLUGIN_FILE;
78
+ $_plugin_name = 'Yoast SEO('.$_file.')';
79
+ }
80
+
81
+ if ( file_exists( WP_PLUGIN_DIR . '/' . $_file ) ) {
82
+
83
+ if ( ! defined( 'WPSEO_PREMIUM_PLUGIN_FILE' ) ) {
84
+
85
+ self::$add_on['yoast_seo'] = array(
86
+ 'id' => 'yoast_seo',
87
+ 'role' => 'builder',
88
+ 'admin_bar_label' => 'Add-on',
89
+ 'supported_min_version' => '7.7',
90
+ 'const' => 'WPSEO_VERSION',
91
+ 'plugin_name' => $_plugin_name,
92
+ 'plugin_uri' => 'https://wordpress.org/plugins/wordpress-seo/',
93
+ 'path' => $_file,
94
+ 'stage' => 'production',
95
+ );
96
+
97
+ }
98
+ }
99
+
100
+ }
101
+
102
+ # --- EOF
includes/class-wpglobus-widget.php CHANGED
@@ -46,11 +46,12 @@ class WPGlobusWidget extends WP_Widget {
46
  */
47
  public function widget( $args, $instance ) {
48
 
49
- if ( ! empty( $instance['type'] ) ) {
50
- $type = $instance['type'];
51
- } else {
52
- $type = 'flags';
53
- }
 
54
 
55
  $inside = '';
56
 
@@ -151,9 +152,16 @@ class WPGlobusWidget extends WP_Widget {
151
  */
152
  $flag_classes = array();
153
 
 
 
 
 
 
 
 
154
  echo $args['before_widget']; // WPCS: XSS ok.
155
- if ( ! empty( $instance['title'] ) ) {
156
- echo $args['before_title'] . $instance['title'] . $args['after_title']; // WPCS: XSS ok.
157
  }
158
  foreach ( $enabled_languages as $language ) :
159
 
46
  */
47
  public function widget( $args, $instance ) {
48
 
49
+ $type = ! empty( $instance['type'] ) ? $instance['type'] : 'flags';
50
+
51
+ /**
52
+ * @since 2.8.4
53
+ */
54
+ $title = ! empty( $instance['title'] ) ? $instance['title'] : 'Language switcher';
55
 
56
  $inside = '';
57
 
152
  */
153
  $flag_classes = array();
154
 
155
+ /**
156
+ * @since 2.8.4
157
+ *
158
+ * This filter is documented in wp-includes/widgets/class-wp-widget-pages.php
159
+ */
160
+ $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
161
+
162
  echo $args['before_widget']; // WPCS: XSS ok.
163
+ if ( ! empty( $title ) ) {
164
+ echo $args['before_title'] . $title . $args['after_title']; // WPCS: XSS ok.
165
  }
166
  foreach ( $enabled_languages as $language ) :
167
 
includes/js/wpglobus-media.js CHANGED
@@ -32,6 +32,7 @@
32
  wpglobusTabs.tabs();
33
  api.iniSet();
34
  api.setContent();
 
35
  api.attachListeners();
36
  },
37
  iniSet: function() {
@@ -54,6 +55,16 @@
54
  });
55
  }
56
  },
 
 
 
 
 
 
 
 
 
 
57
  attachListeners: function() {
58
  /**
59
  * Switch language.
32
  wpglobusTabs.tabs();
33
  api.iniSet();
34
  api.setContent();
35
+ api.translate();
36
  api.attachListeners();
37
  },
38
  iniSet: function() {
55
  });
56
  }
57
  },
58
+ translate: function() {
59
+ /* Translate post title in Suvmit Box */
60
+ var $postTitle = $('#submitpost .misc-pub-uploadedto strong');
61
+ if ( $postTitle.length == 1 ) {
62
+ var title = $postTitle.text();
63
+ if ( '' != title ) {
64
+ $postTitle.text(WPGlobusCore.TextFilter(title));
65
+ }
66
+ }
67
+ },
68
  attachListeners: function() {
69
  /**
70
  * Switch language.
includes/js/wpglobus-media.min.js CHANGED
@@ -1 +1 @@
1
- !function(n){"use strict";var a;"undefined"!=typeof WPGlobusCore&&"undefined"!=typeof WPGlobusMedia&&(a={content:{},save:!0,resetContent:!0,init:function(t){var e=n(".wpglobus-post-body-tabs");1==e.length&&(e.insertBefore(".wp_attachment_details"),e.tabs(),a.iniSet(),a.setContent(),a.attachListeners())},iniSet:function(){n.each(WPGlobusMedia.attachment,function(t,e){a.content[e]=n("#"+e).val(),n("#"+e).addClass("wpglobus-translatable")})},setContent:function(t){(t=void 0===t?!1:t)?n.each(WPGlobusMedia.attachment,function(t,e){n("#"+e).val(a.content[e])}):n.each(WPGlobusMedia.attachment,function(t,e){n("#"+e).val(WPGlobusCore.TextFilter(a.content[e],WPGlobusMedia.language,"RETURN_EMPTY"))})},attachListeners:function(){n(document).on("tabsactivate",".wpglobus-post-body-tabs",function(t,e){WPGlobusMedia.language=e.newTab[0].dataset.language,a.setContent()}),n.each(WPGlobusMedia.attachment,function(t,e){n(document).on("keyup","#"+e,function(t){a.content[t.currentTarget.id]=WPGlobusCore.getString(a.content[t.currentTarget.id],t.currentTarget.value,WPGlobusMedia.language)})}),n(document).on("mouseenter","#publish",function(t){a.setContent(a.save)}).on("mouseleave","#publish",function(t){a.resetContent&&a.setContent(),a.resetContent=!0}).on("click","#publish",function(t){a.resetContent=!1}),n(document).ajaxSend(function(t,e,n){void 0!==n.data&&-1!=n.data.indexOf("action=send-attachment-to-editor")&&(n.data=n.data+"&wpglobusLanguageTab="+WPGlobusAdmin.currentTab)})}},(WPGlobusMedia=n.extend({},WPGlobusMedia,a)).init())}(jQuery);
1
+ !function(n){"use strict";var a;"undefined"!=typeof WPGlobusCore&&"undefined"!=typeof WPGlobusMedia&&(a={content:{},save:!0,resetContent:!0,init:function(t){var e=n(".wpglobus-post-body-tabs");1==e.length&&(e.insertBefore(".wp_attachment_details"),e.tabs(),a.iniSet(),a.setContent(),a.translate(),a.attachListeners())},iniSet:function(){n.each(WPGlobusMedia.attachment,function(t,e){a.content[e]=n("#"+e).val(),n("#"+e).addClass("wpglobus-translatable")})},setContent:function(t){(t=void 0===t?!1:t)?n.each(WPGlobusMedia.attachment,function(t,e){n("#"+e).val(a.content[e])}):n.each(WPGlobusMedia.attachment,function(t,e){n("#"+e).val(WPGlobusCore.TextFilter(a.content[e],WPGlobusMedia.language,"RETURN_EMPTY"))})},translate:function(){var t,e=n("#submitpost .misc-pub-uploadedto strong");1!=e.length||""!=(t=e.text())&&e.text(WPGlobusCore.TextFilter(t))},attachListeners:function(){n(document).on("tabsactivate",".wpglobus-post-body-tabs",function(t,e){WPGlobusMedia.language=e.newTab[0].dataset.language,a.setContent()}),n.each(WPGlobusMedia.attachment,function(t,e){n(document).on("keyup","#"+e,function(t){a.content[t.currentTarget.id]=WPGlobusCore.getString(a.content[t.currentTarget.id],t.currentTarget.value,WPGlobusMedia.language)})}),n(document).on("mouseenter","#publish",function(t){a.setContent(a.save)}).on("mouseleave","#publish",function(t){a.resetContent&&a.setContent(),a.resetContent=!0}).on("click","#publish",function(t){a.resetContent=!1}),n(document).ajaxSend(function(t,e,n){void 0!==n.data&&-1!=n.data.indexOf("action=send-attachment-to-editor")&&(n.data=n.data+"&wpglobusLanguageTab="+WPGlobusAdmin.currentTab)})}},(WPGlobusMedia=n.extend({},WPGlobusMedia,a)).init())}(jQuery);
includes/vendor/yoast-seo/class-wpglobus-yoastseo140.php CHANGED
@@ -707,7 +707,7 @@ class WPGlobus_YoastSEO {
707
  * The Opengraph title is received in the last saved language. Get it from meta.
708
  * @since 2.8.1
709
  */
710
- if ( empty( $meta_cache['_yoast_wpseo_focuskw'][0] ) ) {
711
  $__title = self::get_option( 'wpseo_titles', 'title-' . $presentation->model->object_sub_type );
712
  if ( ! is_null($__title) ) {
713
  $title = $__title;
707
  * The Opengraph title is received in the last saved language. Get it from meta.
708
  * @since 2.8.1
709
  */
710
+ if ( empty( $meta_cache['_yoast_wpseo_title'][0] ) ) {
711
  $__title = self::get_option( 'wpseo_titles', 'title-' . $presentation->model->object_sub_type );
712
  if ( ! is_null($__title) ) {
713
  $title = $__title;
readme.txt CHANGED
@@ -220,6 +220,12 @@ WPGlobus Version 2 supports WordPress 5.x, with Gutenberg.
220
 
221
  == Changelog ==
222
 
 
 
 
 
 
 
223
  = 2.8.3 =
224
  * (Core/JS) Added trigger handler `wpglobus_post_title`.
225
  * (Core) Added second $post parameter for `wpglobus_show_language_tabs` filter.
220
 
221
  == Changelog ==
222
 
223
+ = 2.8.4 =
224
+ * (Core/Widget class) Added `widget_title` filter.
225
+ * (Vendor/Yoast) Fixed PHP Notice: `Undefined index: _yoast_wpseo_title`.
226
+ * (Builders/Yoast) Added compatibility with Yoast from v.17.3.
227
+ * (Core/Media) Translate post title in submit box.
228
+
229
  = 2.8.3 =
230
  * (Core/JS) Added trigger handler `wpglobus_post_title`.
231
  * (Core) Added second $post parameter for `wpglobus_show_language_tabs` filter.
wpglobus.php CHANGED
@@ -15,7 +15,7 @@
15
  * Description: A WordPress Globalization / Multilingual Plugin. Posts, pages, menus, widgets and even custom fields - in multiple languages!
16
  * Text Domain: wpglobus
17
  * Domain Path: /languages/
18
- * Version: 2.8.3
19
  * Author: WPGlobus
20
  * Author URI: https://wpglobus.com/
21
  * Network: false
@@ -44,7 +44,7 @@ if ( ! defined( 'ABSPATH' ) ) {
44
  exit;
45
  }
46
 
47
- define( 'WPGLOBUS_VERSION', '2.8.3' );
48
  define( 'WPGLOBUS_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
49
  define( 'WPGLOBUS_AJAX', 'wpglobus-ajax' );
50
 
15
  * Description: A WordPress Globalization / Multilingual Plugin. Posts, pages, menus, widgets and even custom fields - in multiple languages!
16
  * Text Domain: wpglobus
17
  * Domain Path: /languages/
18
+ * Version: 2.8.4
19
  * Author: WPGlobus
20
  * Author URI: https://wpglobus.com/
21
  * Network: false
44
  exit;
45
  }
46
 
47
+ define( 'WPGLOBUS_VERSION', '2.8.4' );
48
  define( 'WPGLOBUS_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
49
  define( 'WPGLOBUS_AJAX', 'wpglobus-ajax' );
50