WPGlobus – Multilingual Everything! - Version 2.1.15

Version Description

  • Internal: (Builders/Elementor) Beta-3 version of the Elementor support.
Download this release

Release Info

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

Code changes from version 2.1.14 to 2.1.15

includes/builders/class-wpglobus-builders.php CHANGED
@@ -52,14 +52,15 @@ if ( ! class_exists( 'WPGlobus_Builders' ) ) :
52
  );
53
 
54
  self::$add_on['js_composer'] = array(
55
- 'id' => 'js_composer',
56
- 'role' => 'builder',
57
- 'supported_min_version' => '5.4.0',
58
- 'const' => 'WPB_VC_VERSION',
59
- 'plugin_name' => 'WPBakery Page Builder',
60
- 'plugin_uri' => 'https://wpbakery.com/',
61
- 'path' => 'js_composer/js_composer.php',
62
- 'stage' => 'production',
 
63
  );
64
 
65
  self::$add_on['elementor'] = array(
@@ -71,7 +72,7 @@ if ( ! class_exists( 'WPGlobus_Builders' ) ) :
71
  'plugin_uri' => 'https://wordpress.org/plugins/elementor/',
72
  'path' => 'elementor/elementor.php',
73
  'stage' => 'beta',
74
- 'beta_version' => '2'
75
  );
76
 
77
  if ( file_exists( WP_PLUGIN_DIR . '/wordpress-seo-premium/wp-seo-premium.php' ) ) {
@@ -218,7 +219,7 @@ if ( ! class_exists( 'WPGlobus_Builders' ) ) :
218
  * @since 1.9.17
219
  */
220
  if ( ! $builder ) {
221
- // if ( ! $builder || ! $builder['builder_page'] ) {
222
  $builder = self::is_js_composer();
223
  if ( $builder && $builder['builder_page'] ) {
224
  return $builder;
@@ -238,7 +239,7 @@ if ( ! class_exists( 'WPGlobus_Builders' ) ) :
238
  } else {
239
  /** @noinspection PhpIncludeInspection */
240
  include_once WPGlobus::$PLUGIN_DIR_PATH . 'includes/builders/elementor/class-wpglobus-elementor-front.php';
241
- WPGlobus_Elementor_Front::init();
242
  }
243
  }
244
  }
@@ -428,21 +429,22 @@ if ( ! class_exists( 'WPGlobus_Builders' ) ) :
428
 
429
  if ( 'admin-ajax.php' === $pagenow ) {
430
 
431
- // phpcs:ignore WordPress.CSRF.NonceVerification
432
  if ( ! isset( $_REQUEST['action'] ) || 'elementor_ajax' !== $_REQUEST['action'] ) {
433
  return false;
434
  }
435
- // phpcs:ignore WordPress.CSRF.NonceVerification
436
  if ( false !== strpos( $_REQUEST['actions'], 'save_builder' ) ) {
437
  $ajax_actions = 'save_builder';
438
- // phpcs:ignore WordPress.CSRF.NonceVerification
439
  } elseif ( false !== strpos( $_REQUEST['actions'], '"action":"render_widget"' ) ) {
440
  $ajax_actions = 'render_widget';
441
  } else {
442
  return false;
443
  }
444
  $load_elementor = true;
445
- $post_id = sanitize_text_field( $_REQUEST['editor_post_id'] );
 
446
 
447
  } elseif ( 'index.php' === $pagenow ) {
448
 
@@ -459,7 +461,7 @@ if ( ! class_exists( 'WPGlobus_Builders' ) ) :
459
  } elseif ( 'post.php' === $pagenow ) {
460
 
461
  $is_admin = true;
462
- // phpcs:ignore WordPress.CSRF.NonceVerification
463
  if ( isset( $_GET['action'] ) && 'elementor' === $_GET['action'] ) {
464
  //$is_admin = false;
465
  $load_elementor = true;
@@ -472,11 +474,12 @@ if ( ! class_exists( 'WPGlobus_Builders' ) ) :
472
  */
473
  $cpt_support = get_option( 'elementor_cpt_support', array( 'page', 'post' ) );
474
 
475
- // phpcs:ignore WordPress.CSRF.NonceVerification
476
  if ( isset( $_GET['post_type'] ) ) {
477
  /**
478
  * For post-new.php page.
479
  */
 
480
  $post_type = sanitize_text_field( $_GET['post_type'] );
481
  }
482
 
@@ -509,14 +512,17 @@ if ( ! class_exists( 'WPGlobus_Builders' ) ) :
509
  }
510
 
511
  $_attrs = array(
512
- 'id' => 'elementor',
513
- 'version' => ELEMENTOR_VERSION,
514
- 'is_admin' => $is_admin,
515
- 'class' => 'WPGlobus_Elementor',
516
- 'post_type' => $post_type,
517
- 'post_id' => $post_id,
518
- 'builder_page' => false,
519
- 'ajax_actions' => $ajax_actions,
 
 
 
520
  );
521
 
522
  if ( $load_elementor ) {
@@ -576,7 +582,7 @@ if ( ! class_exists( 'WPGlobus_Builders' ) ) :
576
  * Before update post we can get empty $_GET array.
577
  * Let's check $_POST.
578
  */
579
- // phpcs:ignore WordPress.CSRF.NonceVerification
580
  $post_id = isset( $_POST['post_ID'] ) ? sanitize_text_field( $_POST['post_ID'] ) : '';
581
  }
582
 
@@ -849,27 +855,27 @@ if ( ! class_exists( 'WPGlobus_Builders' ) ) :
849
  $load_gutenberg = true;
850
 
851
  $actions = array( 'edit', 'editpost' );
852
- // phpcs:ignore WordPress.CSRF.NonceVerification
853
  if ( ! empty( $_GET['action'] ) ) {
854
- // phpcs:ignore WordPress.CSRF.NonceVerification
855
  if ( in_array( $_GET['action'], $actions, true ) ) {
856
- // phpcs:ignore WordPress.CSRF.NonceVerification
857
  if ( array_key_exists( 'classic-editor', $_GET ) ) {
858
  $load_gutenberg = false;
859
  }
860
- // phpcs:ignore WordPress.CSRF.NonceVerification
861
  if ( isset( $_GET['meta_box'] ) && 1 === (int) $_GET['meta_box'] ) {
862
  $load_gutenberg = true;
863
  }
864
  }
865
  } elseif ( ! empty( $_POST['action'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
866
- // phpcs:ignore WordPress.CSRF.NonceVerification
867
  if ( in_array( $_POST['action'], $actions, true ) ) {
868
- // phpcs:ignore WordPress.CSRF.NonceVerification
869
  if ( array_key_exists( 'classic-editor', $_POST ) ) {
870
  $load_gutenberg = false;
871
  }
872
- // phpcs:ignore WordPress.CSRF.NonceVerification
873
  if ( isset( $_POST['meta_box'] ) && 1 === (int) $_POST['meta_box'] ) {
874
  $load_gutenberg = true;
875
  }
@@ -1056,7 +1062,7 @@ if ( ! class_exists( 'WPGlobus_Builders' ) ) :
1056
  protected static function is_gutenberg_ajax() {
1057
  $result = false;
1058
 
1059
- // phpcs:ignore WordPress.CSRF.NonceVerification
1060
  if ( empty( $_POST ) || empty( $_POST['action'] ) ) {
1061
  return $result;
1062
  }
@@ -1161,7 +1167,7 @@ if ( ! class_exists( 'WPGlobus_Builders' ) ) :
1161
  /**
1162
  * Case when Update button was clicked on term.php page .
1163
  */
1164
- // phpcs:ignore WordPress.CSRF.NonceVerification
1165
  $tax = empty( $_POST['taxonomy'] ) ? false : sanitize_text_field( wp_unslash( $_POST['taxonomy'] ) );
1166
 
1167
  if ( $tax ) {
@@ -1204,7 +1210,7 @@ if ( ! class_exists( 'WPGlobus_Builders' ) ) :
1204
  */
1205
  protected static function get_attrs( $attrs ) {
1206
  $_attrs = array_merge( self::$attrs, $attrs );
1207
- // phpcs:ignore Generic.CodeAnalysis.EmptyStatement.DetectedIF
1208
  if ( isset( $_attrs['is_admin'] ) && ! $_attrs['is_admin'] ) {
1209
  // do nothing.
1210
  } else {
@@ -1218,17 +1224,20 @@ if ( ! class_exists( 'WPGlobus_Builders' ) ) :
1218
  *
1219
  * @since WPGlobus 2.0 we are working with single post only.
1220
  */
 
1221
  $_attrs['post_id'] = sanitize_text_field( $_GET['post'] );
1222
- } elseif ( isset( $_REQUEST['post_ID'] ) && is_string( $_REQUEST['post_ID'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
 
 
1223
  $_attrs['post_id'] = sanitize_text_field( $_REQUEST['post_ID'] );
1224
  // } else {
1225
  // @todo Check additional ways to get post ID.
1226
  }
1227
  }
1228
-
1229
  // @todo may be disable post type here.
1230
  // $_attrs['builder_page'] = false;
1231
- // error_log(print_r($_attrs, true));
1232
  return $_attrs;
1233
  }
1234
 
52
  );
53
 
54
  self::$add_on['js_composer'] = array(
55
+ 'id' => 'js_composer',
56
+ 'role' => 'builder',
57
+ 'supported_min_version' => '5.4.0',
58
+ 'const' => 'WPB_VC_VERSION',
59
+ 'plugin_name' => 'WPBakery Page Builder',
60
+ 'admin_bar_builder_label' => 'WPBakery PB',
61
+ 'plugin_uri' => 'https://wpbakery.com/',
62
+ 'path' => 'js_composer/js_composer.php',
63
+ 'stage' => 'production',
64
  );
65
 
66
  self::$add_on['elementor'] = array(
72
  'plugin_uri' => 'https://wordpress.org/plugins/elementor/',
73
  'path' => 'elementor/elementor.php',
74
  'stage' => 'beta',
75
+ 'beta_version' => '3',
76
  );
77
 
78
  if ( file_exists( WP_PLUGIN_DIR . '/wordpress-seo-premium/wp-seo-premium.php' ) ) {
219
  * @since 1.9.17
220
  */
221
  if ( ! $builder ) {
222
+ // if ( ! $builder || ! $builder['builder_page'] ) {
223
  $builder = self::is_js_composer();
224
  if ( $builder && $builder['builder_page'] ) {
225
  return $builder;
239
  } else {
240
  /** @noinspection PhpIncludeInspection */
241
  include_once WPGlobus::$PLUGIN_DIR_PATH . 'includes/builders/elementor/class-wpglobus-elementor-front.php';
242
+ WPGlobus_Elementor_Front::init( $builder );
243
  }
244
  }
245
  }
429
 
430
  if ( 'admin-ajax.php' === $pagenow ) {
431
 
432
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
433
  if ( ! isset( $_REQUEST['action'] ) || 'elementor_ajax' !== $_REQUEST['action'] ) {
434
  return false;
435
  }
436
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
437
  if ( false !== strpos( $_REQUEST['actions'], 'save_builder' ) ) {
438
  $ajax_actions = 'save_builder';
439
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
440
  } elseif ( false !== strpos( $_REQUEST['actions'], '"action":"render_widget"' ) ) {
441
  $ajax_actions = 'render_widget';
442
  } else {
443
  return false;
444
  }
445
  $load_elementor = true;
446
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
447
+ $post_id = sanitize_text_field( $_REQUEST['editor_post_id'] );
448
 
449
  } elseif ( 'index.php' === $pagenow ) {
450
 
461
  } elseif ( 'post.php' === $pagenow ) {
462
 
463
  $is_admin = true;
464
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
465
  if ( isset( $_GET['action'] ) && 'elementor' === $_GET['action'] ) {
466
  //$is_admin = false;
467
  $load_elementor = true;
474
  */
475
  $cpt_support = get_option( 'elementor_cpt_support', array( 'page', 'post' ) );
476
 
477
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
478
  if ( isset( $_GET['post_type'] ) ) {
479
  /**
480
  * For post-new.php page.
481
  */
482
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
483
  $post_type = sanitize_text_field( $_GET['post_type'] );
484
  }
485
 
512
  }
513
 
514
  $_attrs = array(
515
+ 'id' => 'elementor',
516
+ 'version' => ELEMENTOR_VERSION,
517
+ 'is_admin' => $is_admin,
518
+ 'class' => 'WPGlobus_Elementor',
519
+ 'post_type' => $post_type,
520
+ 'post_id' => $post_id,
521
+ 'builder_page' => false,
522
+ 'ajax_actions' => $ajax_actions,
523
+ 'post_css_meta_key' => '_wpglobus_elementor_css',
524
+ 'elementor_data_meta_key' => '_elementor_data',
525
+ 'elementor_css_meta_key' => '_elementor_css',
526
  );
527
 
528
  if ( $load_elementor ) {
582
  * Before update post we can get empty $_GET array.
583
  * Let's check $_POST.
584
  */
585
+ // phpcs:ignore WordPress.Security.NonceVerification.Missing
586
  $post_id = isset( $_POST['post_ID'] ) ? sanitize_text_field( $_POST['post_ID'] ) : '';
587
  }
588
 
855
  $load_gutenberg = true;
856
 
857
  $actions = array( 'edit', 'editpost' );
858
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
859
  if ( ! empty( $_GET['action'] ) ) {
860
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
861
  if ( in_array( $_GET['action'], $actions, true ) ) {
862
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
863
  if ( array_key_exists( 'classic-editor', $_GET ) ) {
864
  $load_gutenberg = false;
865
  }
866
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
867
  if ( isset( $_GET['meta_box'] ) && 1 === (int) $_GET['meta_box'] ) {
868
  $load_gutenberg = true;
869
  }
870
  }
871
  } elseif ( ! empty( $_POST['action'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
872
+ // phpcs:ignore WordPress.Security.NonceVerification.Missing
873
  if ( in_array( $_POST['action'], $actions, true ) ) {
874
+ // phpcs:ignore WordPress.Security.NonceVerification.Missing
875
  if ( array_key_exists( 'classic-editor', $_POST ) ) {
876
  $load_gutenberg = false;
877
  }
878
+ // phpcs:ignore WordPress.Security.NonceVerification.Missing
879
  if ( isset( $_POST['meta_box'] ) && 1 === (int) $_POST['meta_box'] ) {
880
  $load_gutenberg = true;
881
  }
1062
  protected static function is_gutenberg_ajax() {
1063
  $result = false;
1064
 
1065
+ // phpcs:ignore WordPress.Security.NonceVerification.Missing
1066
  if ( empty( $_POST ) || empty( $_POST['action'] ) ) {
1067
  return $result;
1068
  }
1167
  /**
1168
  * Case when Update button was clicked on term.php page .
1169
  */
1170
+ // phpcs:ignore WordPress.Security.NonceVerification.Missing
1171
  $tax = empty( $_POST['taxonomy'] ) ? false : sanitize_text_field( wp_unslash( $_POST['taxonomy'] ) );
1172
 
1173
  if ( $tax ) {
1210
  */
1211
  protected static function get_attrs( $attrs ) {
1212
  $_attrs = array_merge( self::$attrs, $attrs );
1213
+ // phpcs:ignore Generic.CodeAnalysis.EmptyStatement.DetectedIf
1214
  if ( isset( $_attrs['is_admin'] ) && ! $_attrs['is_admin'] ) {
1215
  // do nothing.
1216
  } else {
1224
  *
1225
  * @since WPGlobus 2.0 we are working with single post only.
1226
  */
1227
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
1228
  $_attrs['post_id'] = sanitize_text_field( $_GET['post'] );
1229
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
1230
+ } elseif ( isset( $_REQUEST['post_ID'] ) && is_string( $_REQUEST['post_ID'] ) ) {
1231
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
1232
  $_attrs['post_id'] = sanitize_text_field( $_REQUEST['post_ID'] );
1233
  // } else {
1234
  // @todo Check additional ways to get post ID.
1235
  }
1236
  }
1237
+
1238
  // @todo may be disable post type here.
1239
  // $_attrs['builder_page'] = false;
1240
+ // error_log(print_r($_attrs, true));
1241
  return $_attrs;
1242
  }
1243
 
includes/builders/elementor/class-wpglobus-elementor-front.php CHANGED
@@ -6,32 +6,107 @@
6
  * @author Alex Gor(alexgff)
7
  */
8
 
9
- // W.I.P
10
- // use Elementor\Core\Files\CSS\Post as Post_CSS;
 
 
11
 
12
  if ( ! class_exists( 'WPGlobus_Elementor_Front' ) ) :
13
 
14
  /**
15
  * Class WPGlobus_Elementor_Front.
16
  */
17
- class WPGlobus_Elementor_Front{
18
-
19
- const ELEMENTOR_DATA_META_KEY = '_elementor_data';
20
 
21
  public static $file_prefix = 'post-';
22
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  /**
24
  * Init.
25
  */
26
- public static function init() {
27
- add_filter( 'get_post_metadata', array( __CLASS__, 'filter__post_metadata' ), 5, 4 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
 
29
  /**
30
  * @since 2.1.13
 
31
  */
32
- add_filter( 'elementor/files/file_name', array( __CLASS__, 'filter__elementor_files_file_name' ), 5, 4 );
33
  }
34
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  /**
36
  * Filters the file name
37
  *
@@ -75,12 +150,12 @@ if ( ! class_exists( 'WPGlobus_Elementor_Front' ) ) :
75
  *
76
  * @return string
77
  */
78
- public static function filter__post_metadata(
79
  $check, $object_id, $meta_key, /** @noinspection PhpUnusedParameterInspection */
80
  $single
81
  ) {
82
 
83
- if ( self::ELEMENTOR_DATA_META_KEY === $meta_key ) {
84
 
85
  $meta_cache = wp_cache_get( $object_id, 'post_meta' );
86
 
@@ -99,33 +174,139 @@ if ( ! class_exists( 'WPGlobus_Elementor_Front' ) ) :
99
 
100
  }
101
 
102
- } elseif ( '_elementor_css' === $meta_key ) {
 
 
 
 
103
 
104
- // @todo W.I.P
105
- /*
106
  $meta_cache = wp_cache_get( $object_id, 'post_meta' );
107
-
108
- if ( isset( $meta_cache[ $meta_key ] ) && isset( $meta_cache[ $meta_key ][0] ) ) {
109
 
110
  $_value = '';
 
 
111
 
112
- if ( WPGlobus_Core::has_translations( $meta_cache[ $meta_key ][0] ) ) {
113
- $_value = WPGlobus_Core::text_filter( $meta_cache[ $meta_key ][0], WPGlobus::Config()->language );
114
- //$_value = WPGlobus_Core::text_filter( $meta_cache[ $meta_key ][0], WPGlobus::Config()->language, WPGlobus::RETURN_EMPTY );
115
- } else {
116
- $_value = $meta_cache[ $meta_key ][0];
117
  }
118
 
119
- return $_value;
 
 
 
 
 
 
 
 
 
120
 
 
121
  }
122
- // */
123
  }
124
 
125
  return $check;
126
-
127
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
 
129
- }
130
 
131
  endif;
6
  * @author Alex Gor(alexgff)
7
  */
8
 
9
+ /**
10
+ * @see elementor\core\files\css\post.php
11
+ */
12
+ use Elementor\Core\Files\CSS\Post as Post_CSS;
13
 
14
  if ( ! class_exists( 'WPGlobus_Elementor_Front' ) ) :
15
 
16
  /**
17
  * Class WPGlobus_Elementor_Front.
18
  */
19
+ class WPGlobus_Elementor_Front {
 
 
20
 
21
  public static $file_prefix = 'post-';
22
 
23
+ /**
24
+ * @since 2.1.15
25
+ */
26
+ protected static $post_css_meta_key = null;
27
+
28
+ /**
29
+ * @since 2.1.15
30
+ */
31
+ protected static $elementor_data_meta_key = null;
32
+
33
+ /**
34
+ * @since 2.1.15
35
+ */
36
+ protected static $elementor_css_meta_key = null;
37
+
38
  /**
39
  * Init.
40
  */
41
+ public static function init($attrs) {
42
+
43
+ if ( ! empty($attrs['post_css_meta_key']) ) {
44
+ self::$post_css_meta_key = $attrs['post_css_meta_key'];
45
+ }
46
+
47
+ if ( ! empty($attrs['elementor_data_meta_key']) ) {
48
+ self::$elementor_data_meta_key = $attrs['elementor_data_meta_key'];
49
+ }
50
+
51
+ if ( ! empty($attrs['elementor_css_meta_key']) ) {
52
+ self::$elementor_css_meta_key = $attrs['elementor_css_meta_key'];
53
+ }
54
+
55
+ add_filter( 'get_post_metadata', array( __CLASS__, 'filter__get_metadata' ), 5, 4 );
56
+
57
+ /**
58
+ * @since 2.1.15
59
+ */
60
+ add_filter( 'update_post_metadata', array( __CLASS__, 'filter__update_metadata' ), 5, 5 );
61
+
62
+ /**
63
+ * @since 2.1.15
64
+ */
65
+ add_action( 'wp_enqueue_scripts', array( __CLASS__, 'on__enqueue_styles' ), 20 );
66
+
67
+ /**
68
+ * @todo may be use elementor action instead of `wp_enqueue_scripts`.
69
+ */
70
+ //add_action( 'elementor/frontend/after_enqueue_styles', array( __CLASS__, 'on__enqueue_styles' ) );
71
 
72
  /**
73
  * @since 2.1.13
74
+ * @see elementor\core\files\base.php
75
  */
76
+ add_action( 'elementor/files/file_name', array( __CLASS__, 'filter__elementor_files_file_name' ), 5, 4 );
77
  }
78
 
79
+ /**
80
+ * @since 2.1.15
81
+ */
82
+ public static function on__enqueue_styles() {
83
+
84
+ if ( WPGlobus::Config()->language == WPGlobus::Config()->default_language ) {
85
+ return;
86
+ }
87
+
88
+ $css_file = new Post_CSS( get_the_ID() );
89
+
90
+ /**
91
+ * @see elementor\core\files\css\post.php
92
+ */
93
+ $handle = 'elementor-post-' . $css_file->get_post_id() .'-' . WPGlobus::Config()->language;
94
+
95
+ /**
96
+ * @see elementor\core\files\base.php
97
+ */
98
+ $url = $css_file->get_url();
99
+
100
+ wp_register_style(
101
+ $handle,
102
+ $url,
103
+ array(),
104
+ 'wpglobus-' . WPGLOBUS_VERSION
105
+
106
+ );
107
+ wp_enqueue_style($handle);
108
+ }
109
+
110
  /**
111
  * Filters the file name
112
  *
150
  *
151
  * @return string
152
  */
153
+ public static function filter__get_metadata(
154
  $check, $object_id, $meta_key, /** @noinspection PhpUnusedParameterInspection */
155
  $single
156
  ) {
157
 
158
+ if ( self::$elementor_data_meta_key === $meta_key ) {
159
 
160
  $meta_cache = wp_cache_get( $object_id, 'post_meta' );
161
 
174
 
175
  }
176
 
177
+ } elseif ( self::$elementor_css_meta_key === $meta_key ) {
178
+
179
+ if ( WPGlobus::Config()->language == WPGlobus::Config()->default_language ) {
180
+ return $check;
181
+ }
182
 
 
 
183
  $meta_cache = wp_cache_get( $object_id, 'post_meta' );
184
+
185
+ if ( isset( $meta_cache[ self::$post_css_meta_key ] ) && isset( $meta_cache[ self::$post_css_meta_key ][0] ) ) {
186
 
187
  $_value = '';
188
+
189
+ $has_translations = WPGlobus_Core::has_translations( $meta_cache[ self::$post_css_meta_key ][0] );
190
 
191
+ if ( $has_translations ) {
192
+ $_value = WPGlobus_Core::text_filter( $meta_cache[ self::$post_css_meta_key ][0], WPGlobus::Config()->language, WPGlobus::RETURN_EMPTY );
 
 
 
193
  }
194
 
195
+ if ( ! empty($_value) ) {
196
+ $_value = maybe_unserialize( $_value );
197
+
198
+ /**
199
+ * @todo may be better return value for default language.
200
+ */
201
+ //if ( isset( $meta_cache[ self::$elementor_css_meta_key ] ) && isset( $meta_cache[ self::$elementor_css_meta_key ][0] ) ) {
202
+ //$_value = maybe_unserialize( $meta_cache[ self::$elementor_css_meta_key ] );
203
+ //}
204
+ }
205
 
206
+ return $_value;
207
  }
208
+
209
  }
210
 
211
  return $check;
 
212
  }
213
+
214
+ /**
215
+ * @since 2.1.15
216
+ */
217
+ public static function filter__update_metadata( $check, $object_id, $meta_key, $meta_value, $prev_value ) {
218
+
219
+ if ( self::$elementor_css_meta_key != $meta_key ) {
220
+ return $check;
221
+ }
222
+
223
+ if ( WPGlobus::Config()->language == WPGlobus::Config()->default_language ) {
224
+ return $check;
225
+ }
226
+
227
+ $meta_cache = wp_cache_get( $object_id, 'post_meta' );
228
+
229
+ if ( isset( $meta_cache[ self::$post_css_meta_key ] ) && isset( $meta_cache[ self::$post_css_meta_key ][0] ) ) {
230
+
231
+ $new_value = $check;
232
+ $_tr = array();
233
+
234
+ foreach( WPGlobus::Config()->enabled_languages as $language ) {
235
+ $_s = WPGlobus_Core::text_filter( $meta_cache[ self::$post_css_meta_key ][0], $language, WPGlobus::RETURN_EMPTY );
236
+ if ( ! empty( $_s ) ) {
237
+ $_tr[$language] = $_s;
238
+ }
239
+ }
240
+
241
+ /**
242
+ * Fix for $meta_value[0].
243
+ */
244
+ $meta_value[0] = '';
245
+
246
+ $_tr[WPGlobus::Config()->language] = maybe_serialize($meta_value);
247
+ $new_value = WPGlobus_Utils::build_multilingual_string($_tr);
248
+
249
+ if ( $new_value != $check ) {
250
+
251
+ global $wpdb;
252
+
253
+ $meta_value = $new_value;
254
+ $table = _get_meta_table('post');
255
+ $data = compact( 'meta_value' );
256
+ $where = array(
257
+ 'post_id' => $object_id,
258
+ 'meta_key' => self::$post_css_meta_key
259
+ );
260
+
261
+ $result = $wpdb->update( $table, $data, $where );
262
+
263
+ if ( ! $result ) {
264
+ return false;
265
+ }
266
+
267
+ }
268
+
269
+ return $new_value;
270
+
271
+ } else {
272
+
273
+ /**
274
+ * $meta_cache[ $meta_key ] is undefined.
275
+ */
276
+
277
+ global $wpdb;
278
+
279
+ $_tr = array();
280
+ $_tr[WPGlobus::Config()->language] = maybe_serialize($meta_value);
281
+ $new_value = WPGlobus_Utils::build_multilingual_string($_tr);
282
+
283
+ $table = _get_meta_table('post');
284
+
285
+ $result = $wpdb->insert(
286
+ $table,
287
+ array(
288
+ 'post_id' => $object_id,
289
+ 'meta_key' => self::$post_css_meta_key,
290
+ 'meta_value' => $new_value
291
+ ),
292
+ array(
293
+ '%d',
294
+ '%s',
295
+ '%s'
296
+ )
297
+ );
298
+
299
+ if ( ! $result ) {
300
+ return false;
301
+ }
302
+
303
+ return $new_value;
304
+ }
305
+
306
+ return $check;
307
+
308
+ }
309
 
310
+ } // end class WPGlobus_Elementor_Front.
311
 
312
  endif;
includes/builders/elementor/class-wpglobus-elementor.php CHANGED
@@ -6,6 +6,10 @@
6
  * @author Alex Gor(alexgff)
7
  */
8
 
 
 
 
 
9
  if ( ! class_exists( 'WPGlobus_Elementor' ) ) :
10
 
11
  /**
@@ -13,12 +17,20 @@ if ( ! class_exists( 'WPGlobus_Elementor' ) ) :
13
  */
14
  class WPGlobus_Elementor extends WPGlobus_Builder {
15
 
16
- const ELEMENTOR_DATA_META_KEY = '_elementor_data';
17
-
18
  protected $base_redirect_url = '';
19
 
20
  protected $post_content = null;
 
 
 
 
 
21
 
 
 
 
 
 
22
  /**
23
  * Constructor.
24
  */
@@ -26,6 +38,14 @@ if ( ! class_exists( 'WPGlobus_Elementor' ) ) :
26
 
27
  parent::__construct( 'elementor' );
28
 
 
 
 
 
 
 
 
 
29
  if ( isset( $_GET['action'] ) && 'elementor' === $_GET['action'] ) { // phpcs:ignore WordPress.CSRF.NonceVerification
30
  /**
31
  * @see wp-includes/revision.php
@@ -46,16 +66,38 @@ if ( ! class_exists( 'WPGlobus_Elementor' ) ) :
46
  remove_action( 'wp_insert_post_data', array( 'WPGlobus', 'on_save_post_data' ), 10 );
47
 
48
  add_filter( 'get_post_metadata', array( $this, 'filter__post_metadata' ), 13, 4 );
49
-
 
 
 
50
  /**
51
  * Elementor editor footer.
52
  *
53
  * @see_file elementor\includes\editor.php
54
  */
55
  add_action( 'elementor/editor/footer', array( $this, 'on__elementor_footer' ), 100 );
56
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
  if ( is_admin() ) {
58
-
59
  add_filter( 'the_post', array( $this, 'filter__the_post' ), 5 );
60
 
61
  /**
@@ -85,7 +127,7 @@ if ( ! class_exists( 'WPGlobus_Elementor' ) ) :
85
  }
86
 
87
  }
88
-
89
  /**
90
  * To avoid output content with language marks from $post->post_content field on elementor builder page
91
  * if "_elementor_data" meta has not content in extra language.
@@ -115,7 +157,17 @@ if ( ! class_exists( 'WPGlobus_Elementor' ) ) :
115
  return $object;
116
 
117
  }
118
-
 
 
 
 
 
 
 
 
 
 
119
  /**
120
  * Get meta callback.
121
  *
@@ -131,7 +183,7 @@ if ( ! class_exists( 'WPGlobus_Elementor' ) ) :
131
  $single
132
  ) {
133
 
134
- if ( self::ELEMENTOR_DATA_META_KEY === $meta_key ) {
135
 
136
  $meta_cache = wp_cache_get( $object_id, 'post_meta' );
137
 
@@ -142,14 +194,9 @@ if ( ! class_exists( 'WPGlobus_Elementor' ) ) :
142
  $_value = '';
143
 
144
  if ( WPGlobus_Core::has_translations( $meta_cache[ $meta_key ][0] ) ) {
145
- // @todo remove after testing
146
- // $_value = WPGlobus_Core::text_filter( $meta_cache[ $meta_key ][0], WPGlobus::Config()->builder->get_language(), WPGlobus::RETURN_EMPTY );
147
  $_value = WPGlobus_Core::text_filter( $meta_cache[ $meta_key ][0], WPGlobus::Config()->builder->get_language() );
148
  } else {
149
- // @todo remove after testing
150
- // if ( WPGlobus::Config()->builder->get_language() === WPGlobus::Config()->default_language ) {
151
- $_value = $meta_cache[ $meta_key ][0];
152
- // }
153
  }
154
 
155
  return $_value;
6
  * @author Alex Gor(alexgff)
7
  */
8
 
9
+ if ( file_exists( WP_PLUGIN_DIR . '/elementor/core/files/manager.php' ) ) {
10
+ require_once( WP_PLUGIN_DIR . '/elementor/core/files/manager.php' );
11
+ }
12
+
13
  if ( ! class_exists( 'WPGlobus_Elementor' ) ) :
14
 
15
  /**
17
  */
18
  class WPGlobus_Elementor extends WPGlobus_Builder {
19
 
 
 
20
  protected $base_redirect_url = '';
21
 
22
  protected $post_content = null;
23
+
24
+ /**
25
+ * @since 2.1.15
26
+ */
27
+ protected static $post_css_meta_key = null;
28
 
29
+ /**
30
+ * @since 2.1.15
31
+ */
32
+ protected static $elementor_data_meta_key = null;
33
+
34
  /**
35
  * Constructor.
36
  */
38
 
39
  parent::__construct( 'elementor' );
40
 
41
+ if ( ! empty( WPGlobus::Config()->builder->get('post_css_meta_key') ) ) {
42
+ self::$post_css_meta_key = WPGlobus::Config()->builder->get('post_css_meta_key');
43
+ }
44
+
45
+ if ( ! empty( WPGlobus::Config()->builder->get('elementor_data_meta_key') ) ) {
46
+ self::$elementor_data_meta_key = WPGlobus::Config()->builder->get('elementor_data_meta_key');
47
+ }
48
+
49
  if ( isset( $_GET['action'] ) && 'elementor' === $_GET['action'] ) { // phpcs:ignore WordPress.CSRF.NonceVerification
50
  /**
51
  * @see wp-includes/revision.php
66
  remove_action( 'wp_insert_post_data', array( 'WPGlobus', 'on_save_post_data' ), 10 );
67
 
68
  add_filter( 'get_post_metadata', array( $this, 'filter__post_metadata' ), 13, 4 );
69
+
70
+ // @todo may be need this filter for admin, @see includes\builders\elementor\class-wpglobus-elementor-front.php
71
+ //add_filter( 'update_post_metadata', array( $this, 'filter__update_metadata' ), 5, 5 );
72
+
73
  /**
74
  * Elementor editor footer.
75
  *
76
  * @see_file elementor\includes\editor.php
77
  */
78
  add_action( 'elementor/editor/footer', array( $this, 'on__elementor_footer' ), 100 );
79
+
80
+ /**
81
+ * AJAX handling.
82
+ */
83
+ if ( defined('DOING_AJAX') && DOING_AJAX ) {
84
+ if ( 'elementor_ajax' == $_POST['action'] && false !== strpos($_POST['actions'], '"action":"save_builder"') ) {
85
+ if ( class_exists( '\Elementor\Core\Files\Manager' ) ) {
86
+ /**
87
+ * Clear Elementor cache and WPGlobus css meta.
88
+ * @since 2.1.15
89
+ */
90
+ $_fm = new \Elementor\Core\Files\Manager;
91
+ $_fm->clear_cache();
92
+ if ( ! is_null(self::$post_css_meta_key) ) {
93
+ update_post_meta( WPGlobus::Config()->builder->get('post_id'), self::$post_css_meta_key, '' );
94
+ }
95
+ }
96
+ }
97
+ }
98
+
99
  if ( is_admin() ) {
100
+
101
  add_filter( 'the_post', array( $this, 'filter__the_post' ), 5 );
102
 
103
  /**
127
  }
128
 
129
  }
130
+
131
  /**
132
  * To avoid output content with language marks from $post->post_content field on elementor builder page
133
  * if "_elementor_data" meta has not content in extra language.
157
  return $object;
158
 
159
  }
160
+
161
+ /**
162
+ * @todo W.I.P
163
+ */
164
+ public static function filter__update_metadata( $check, $object_id, $meta_key, $meta_value, $prev_value ) {
165
+ if ( '_elementor_css' != $meta_key ) {
166
+ return $check;
167
+ }
168
+ return $check;
169
+ }
170
+
171
  /**
172
  * Get meta callback.
173
  *
183
  $single
184
  ) {
185
 
186
+ if ( self::$elementor_data_meta_key === $meta_key ) {
187
 
188
  $meta_cache = wp_cache_get( $object_id, 'post_meta' );
189
 
194
  $_value = '';
195
 
196
  if ( WPGlobus_Core::has_translations( $meta_cache[ $meta_key ][0] ) ) {
 
 
197
  $_value = WPGlobus_Core::text_filter( $meta_cache[ $meta_key ][0], WPGlobus::Config()->builder->get_language() );
198
  } else {
199
+ $_value = $meta_cache[ $meta_key ][0];
 
 
 
200
  }
201
 
202
  return $_value;
languages/wpglobus-ar.po CHANGED
@@ -820,11 +820,11 @@ msgstr "البانى"
820
  msgid "Сompatibility Settings"
821
  msgstr ""
822
 
823
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
824
  msgid "WPGlobus languages"
825
  msgstr ""
826
 
827
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
828
  msgid "current"
829
  msgstr ""
830
 
820
  msgid "Сompatibility Settings"
821
  msgstr ""
822
 
823
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
824
  msgid "WPGlobus languages"
825
  msgstr ""
826
 
827
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
828
  msgid "current"
829
  msgstr ""
830
 
languages/wpglobus-be.po CHANGED
@@ -871,11 +871,11 @@ msgstr ""
871
  msgid "Сompatibility Settings"
872
  msgstr ""
873
 
874
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
875
  msgid "WPGlobus languages"
876
  msgstr ""
877
 
878
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
879
  msgid "current"
880
  msgstr ""
881
 
871
  msgid "Сompatibility Settings"
872
  msgstr ""
873
 
874
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
875
  msgid "WPGlobus languages"
876
  msgstr ""
877
 
878
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
879
  msgid "current"
880
  msgstr ""
881
 
languages/wpglobus-bg_BG.po CHANGED
@@ -796,11 +796,11 @@ msgstr ""
796
  msgid "Сompatibility Settings"
797
  msgstr ""
798
 
799
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
800
  msgid "WPGlobus languages"
801
  msgstr ""
802
 
803
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
804
  msgid "current"
805
  msgstr ""
806
 
796
  msgid "Сompatibility Settings"
797
  msgstr ""
798
 
799
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
800
  msgid "WPGlobus languages"
801
  msgstr ""
802
 
803
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
804
  msgid "current"
805
  msgstr ""
806
 
languages/wpglobus-de_CH.po CHANGED
@@ -832,11 +832,11 @@ msgstr ""
832
  msgid "Сompatibility Settings"
833
  msgstr ""
834
 
835
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
836
  msgid "WPGlobus languages"
837
  msgstr ""
838
 
839
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
840
  msgid "current"
841
  msgstr ""
842
 
832
  msgid "Сompatibility Settings"
833
  msgstr ""
834
 
835
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
836
  msgid "WPGlobus languages"
837
  msgstr ""
838
 
839
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
840
  msgid "current"
841
  msgstr ""
842
 
languages/wpglobus-de_DE.po CHANGED
@@ -831,11 +831,11 @@ msgstr ""
831
  msgid "Сompatibility Settings"
832
  msgstr ""
833
 
834
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
835
  msgid "WPGlobus languages"
836
  msgstr ""
837
 
838
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
839
  msgid "current"
840
  msgstr ""
841
 
831
  msgid "Сompatibility Settings"
832
  msgstr ""
833
 
834
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
835
  msgid "WPGlobus languages"
836
  msgstr ""
837
 
838
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
839
  msgid "current"
840
  msgstr ""
841
 
languages/wpglobus-el.po CHANGED
@@ -797,11 +797,11 @@ msgstr ""
797
  msgid "Сompatibility Settings"
798
  msgstr ""
799
 
800
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
801
  msgid "WPGlobus languages"
802
  msgstr ""
803
 
804
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
805
  msgid "current"
806
  msgstr ""
807
 
797
  msgid "Сompatibility Settings"
798
  msgstr ""
799
 
800
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
801
  msgid "WPGlobus languages"
802
  msgstr ""
803
 
804
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
805
  msgid "current"
806
  msgstr ""
807
 
languages/wpglobus-en_AU.po CHANGED
@@ -871,11 +871,11 @@ msgstr ""
871
  msgid "Сompatibility Settings"
872
  msgstr ""
873
 
874
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
875
  msgid "WPGlobus languages"
876
  msgstr ""
877
 
878
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
879
  msgid "current"
880
  msgstr ""
881
 
871
  msgid "Сompatibility Settings"
872
  msgstr ""
873
 
874
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
875
  msgid "WPGlobus languages"
876
  msgstr ""
877
 
878
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
879
  msgid "current"
880
  msgstr ""
881
 
languages/wpglobus-en_CA.po CHANGED
@@ -870,11 +870,11 @@ msgstr ""
870
  msgid "Сompatibility Settings"
871
  msgstr ""
872
 
873
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
874
  msgid "WPGlobus languages"
875
  msgstr ""
876
 
877
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
878
  msgid "current"
879
  msgstr ""
880
 
870
  msgid "Сompatibility Settings"
871
  msgstr ""
872
 
873
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
874
  msgid "WPGlobus languages"
875
  msgstr ""
876
 
877
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
878
  msgid "current"
879
  msgstr ""
880
 
languages/wpglobus-en_GB.po CHANGED
@@ -871,11 +871,11 @@ msgstr ""
871
  msgid "Сompatibility Settings"
872
  msgstr ""
873
 
874
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
875
  msgid "WPGlobus languages"
876
  msgstr ""
877
 
878
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
879
  msgid "current"
880
  msgstr ""
881
 
871
  msgid "Сompatibility Settings"
872
  msgstr ""
873
 
874
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
875
  msgid "WPGlobus languages"
876
  msgstr ""
877
 
878
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
879
  msgid "current"
880
  msgstr ""
881
 
languages/wpglobus-en_NZ.po CHANGED
@@ -870,11 +870,11 @@ msgstr ""
870
  msgid "Сompatibility Settings"
871
  msgstr ""
872
 
873
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
874
  msgid "WPGlobus languages"
875
  msgstr ""
876
 
877
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
878
  msgid "current"
879
  msgstr ""
880
 
870
  msgid "Сompatibility Settings"
871
  msgstr ""
872
 
873
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
874
  msgid "WPGlobus languages"
875
  msgstr ""
876
 
877
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
878
  msgid "current"
879
  msgstr ""
880
 
languages/wpglobus-en_US.po CHANGED
@@ -874,11 +874,11 @@ msgstr "Builder"
874
  msgid "Сompatibility Settings"
875
  msgstr "Сompatibility Settings"
876
 
877
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
878
  msgid "WPGlobus languages"
879
  msgstr "WPGlobus languages"
880
 
881
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
882
  msgid "current"
883
  msgstr ""
884
 
874
  msgid "Сompatibility Settings"
875
  msgstr "Сompatibility Settings"
876
 
877
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
878
  msgid "WPGlobus languages"
879
  msgstr "WPGlobus languages"
880
 
881
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
882
  msgid "current"
883
  msgstr ""
884
 
languages/wpglobus-en_ZA.po CHANGED
@@ -870,11 +870,11 @@ msgstr ""
870
  msgid "Сompatibility Settings"
871
  msgstr ""
872
 
873
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
874
  msgid "WPGlobus languages"
875
  msgstr ""
876
 
877
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
878
  msgid "current"
879
  msgstr ""
880
 
870
  msgid "Сompatibility Settings"
871
  msgstr ""
872
 
873
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
874
  msgid "WPGlobus languages"
875
  msgstr ""
876
 
877
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
878
  msgid "current"
879
  msgstr ""
880
 
languages/wpglobus-es_AR.po CHANGED
@@ -831,11 +831,11 @@ msgstr ""
831
  msgid "Сompatibility Settings"
832
  msgstr ""
833
 
834
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
835
  msgid "WPGlobus languages"
836
  msgstr ""
837
 
838
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
839
  msgid "current"
840
  msgstr ""
841
 
831
  msgid "Сompatibility Settings"
832
  msgstr ""
833
 
834
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
835
  msgid "WPGlobus languages"
836
  msgstr ""
837
 
838
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
839
  msgid "current"
840
  msgstr ""
841
 
languages/wpglobus-es_CL.po CHANGED
@@ -831,11 +831,11 @@ msgstr ""
831
  msgid "Сompatibility Settings"
832
  msgstr ""
833
 
834
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
835
  msgid "WPGlobus languages"
836
  msgstr ""
837
 
838
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
839
  msgid "current"
840
  msgstr ""
841
 
831
  msgid "Сompatibility Settings"
832
  msgstr ""
833
 
834
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
835
  msgid "WPGlobus languages"
836
  msgstr ""
837
 
838
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
839
  msgid "current"
840
  msgstr ""
841
 
languages/wpglobus-es_CO.po CHANGED
@@ -831,11 +831,11 @@ msgstr ""
831
  msgid "Сompatibility Settings"
832
  msgstr ""
833
 
834
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
835
  msgid "WPGlobus languages"
836
  msgstr ""
837
 
838
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
839
  msgid "current"
840
  msgstr ""
841
 
831
  msgid "Сompatibility Settings"
832
  msgstr ""
833
 
834
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
835
  msgid "WPGlobus languages"
836
  msgstr ""
837
 
838
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
839
  msgid "current"
840
  msgstr ""
841
 
languages/wpglobus-es_CR.po CHANGED
@@ -831,11 +831,11 @@ msgstr ""
831
  msgid "Сompatibility Settings"
832
  msgstr ""
833
 
834
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
835
  msgid "WPGlobus languages"
836
  msgstr ""
837
 
838
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
839
  msgid "current"
840
  msgstr ""
841
 
831
  msgid "Сompatibility Settings"
832
  msgstr ""
833
 
834
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
835
  msgid "WPGlobus languages"
836
  msgstr ""
837
 
838
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
839
  msgid "current"
840
  msgstr ""
841
 
languages/wpglobus-es_ES.po CHANGED
@@ -831,11 +831,11 @@ msgstr ""
831
  msgid "Сompatibility Settings"
832
  msgstr ""
833
 
834
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
835
  msgid "WPGlobus languages"
836
  msgstr ""
837
 
838
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
839
  msgid "current"
840
  msgstr ""
841
 
831
  msgid "Сompatibility Settings"
832
  msgstr ""
833
 
834
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
835
  msgid "WPGlobus languages"
836
  msgstr ""
837
 
838
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
839
  msgid "current"
840
  msgstr ""
841
 
languages/wpglobus-es_GT.po CHANGED
@@ -831,11 +831,11 @@ msgstr ""
831
  msgid "Сompatibility Settings"
832
  msgstr ""
833
 
834
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
835
  msgid "WPGlobus languages"
836
  msgstr ""
837
 
838
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
839
  msgid "current"
840
  msgstr ""
841
 
831
  msgid "Сompatibility Settings"
832
  msgstr ""
833
 
834
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
835
  msgid "WPGlobus languages"
836
  msgstr ""
837
 
838
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
839
  msgid "current"
840
  msgstr ""
841
 
languages/wpglobus-es_MX.po CHANGED
@@ -831,11 +831,11 @@ msgstr ""
831
  msgid "Сompatibility Settings"
832
  msgstr ""
833
 
834
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
835
  msgid "WPGlobus languages"
836
  msgstr ""
837
 
838
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
839
  msgid "current"
840
  msgstr ""
841
 
831
  msgid "Сompatibility Settings"
832
  msgstr ""
833
 
834
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
835
  msgid "WPGlobus languages"
836
  msgstr ""
837
 
838
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
839
  msgid "current"
840
  msgstr ""
841
 
languages/wpglobus-es_PE.po CHANGED
@@ -831,11 +831,11 @@ msgstr ""
831
  msgid "Сompatibility Settings"
832
  msgstr ""
833
 
834
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
835
  msgid "WPGlobus languages"
836
  msgstr ""
837
 
838
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
839
  msgid "current"
840
  msgstr ""
841
 
831
  msgid "Сompatibility Settings"
832
  msgstr ""
833
 
834
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
835
  msgid "WPGlobus languages"
836
  msgstr ""
837
 
838
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
839
  msgid "current"
840
  msgstr ""
841
 
languages/wpglobus-es_PR.po CHANGED
@@ -831,11 +831,11 @@ msgstr ""
831
  msgid "Сompatibility Settings"
832
  msgstr ""
833
 
834
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
835
  msgid "WPGlobus languages"
836
  msgstr ""
837
 
838
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
839
  msgid "current"
840
  msgstr ""
841
 
831
  msgid "Сompatibility Settings"
832
  msgstr ""
833
 
834
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
835
  msgid "WPGlobus languages"
836
  msgstr ""
837
 
838
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
839
  msgid "current"
840
  msgstr ""
841
 
languages/wpglobus-es_VE.po CHANGED
@@ -831,11 +831,11 @@ msgstr ""
831
  msgid "Сompatibility Settings"
832
  msgstr ""
833
 
834
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
835
  msgid "WPGlobus languages"
836
  msgstr ""
837
 
838
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
839
  msgid "current"
840
  msgstr ""
841
 
831
  msgid "Сompatibility Settings"
832
  msgstr ""
833
 
834
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
835
  msgid "WPGlobus languages"
836
  msgstr ""
837
 
838
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
839
  msgid "current"
840
  msgstr ""
841
 
languages/wpglobus-et.po CHANGED
@@ -797,11 +797,11 @@ msgstr ""
797
  msgid "Сompatibility Settings"
798
  msgstr ""
799
 
800
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
801
  msgid "WPGlobus languages"
802
  msgstr ""
803
 
804
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
805
  msgid "current"
806
  msgstr ""
807
 
797
  msgid "Сompatibility Settings"
798
  msgstr ""
799
 
800
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
801
  msgid "WPGlobus languages"
802
  msgstr ""
803
 
804
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
805
  msgid "current"
806
  msgstr ""
807
 
languages/wpglobus-fr_BE.po CHANGED
@@ -894,11 +894,11 @@ msgstr ""
894
  msgid "Сompatibility Settings"
895
  msgstr ""
896
 
897
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
898
  msgid "WPGlobus languages"
899
  msgstr ""
900
 
901
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
902
  msgid "current"
903
  msgstr ""
904
 
894
  msgid "Сompatibility Settings"
895
  msgstr ""
896
 
897
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
898
  msgid "WPGlobus languages"
899
  msgstr ""
900
 
901
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
902
  msgid "current"
903
  msgstr ""
904
 
languages/wpglobus-fr_CA.po CHANGED
@@ -896,11 +896,11 @@ msgstr ""
896
  msgid "Сompatibility Settings"
897
  msgstr ""
898
 
899
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
900
  msgid "WPGlobus languages"
901
  msgstr ""
902
 
903
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
904
  msgid "current"
905
  msgstr ""
906
 
896
  msgid "Сompatibility Settings"
897
  msgstr ""
898
 
899
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
900
  msgid "WPGlobus languages"
901
  msgstr ""
902
 
903
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
904
  msgid "current"
905
  msgstr ""
906
 
languages/wpglobus-fr_FR.po CHANGED
@@ -896,11 +896,11 @@ msgstr "Constructeur"
896
  msgid "Сompatibility Settings"
897
  msgstr ""
898
 
899
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
900
  msgid "WPGlobus languages"
901
  msgstr ""
902
 
903
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
904
  msgid "current"
905
  msgstr ""
906
 
896
  msgid "Сompatibility Settings"
897
  msgstr ""
898
 
899
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
900
  msgid "WPGlobus languages"
901
  msgstr ""
902
 
903
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
904
  msgid "current"
905
  msgstr ""
906
 
languages/wpglobus-id_ID.po CHANGED
@@ -871,11 +871,11 @@ msgstr "Builder"
871
  msgid "Сompatibility Settings"
872
  msgstr ""
873
 
874
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
875
  msgid "WPGlobus languages"
876
  msgstr ""
877
 
878
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
879
  msgid "current"
880
  msgstr ""
881
 
871
  msgid "Сompatibility Settings"
872
  msgstr ""
873
 
874
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
875
  msgid "WPGlobus languages"
876
  msgstr ""
877
 
878
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
879
  msgid "current"
880
  msgstr ""
881
 
languages/wpglobus-ko_KR.po CHANGED
@@ -796,11 +796,11 @@ msgstr ""
796
  msgid "Сompatibility Settings"
797
  msgstr ""
798
 
799
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
800
  msgid "WPGlobus languages"
801
  msgstr ""
802
 
803
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
804
  msgid "current"
805
  msgstr ""
806
 
796
  msgid "Сompatibility Settings"
797
  msgstr ""
798
 
799
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
800
  msgid "WPGlobus languages"
801
  msgstr ""
802
 
803
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
804
  msgid "current"
805
  msgstr ""
806
 
languages/wpglobus-pl_PL.po CHANGED
@@ -823,11 +823,11 @@ msgstr "Generator"
823
  msgid "Сompatibility Settings"
824
  msgstr ""
825
 
826
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
827
  msgid "WPGlobus languages"
828
  msgstr ""
829
 
830
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
831
  msgid "current"
832
  msgstr ""
833
 
823
  msgid "Сompatibility Settings"
824
  msgstr ""
825
 
826
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
827
  msgid "WPGlobus languages"
828
  msgstr ""
829
 
830
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
831
  msgid "current"
832
  msgstr ""
833
 
languages/wpglobus-pt_BR.po CHANGED
@@ -796,11 +796,11 @@ msgstr "Construtor"
796
  msgid "Сompatibility Settings"
797
  msgstr ""
798
 
799
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
800
  msgid "WPGlobus languages"
801
  msgstr ""
802
 
803
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
804
  msgid "current"
805
  msgstr ""
806
 
796
  msgid "Сompatibility Settings"
797
  msgstr ""
798
 
799
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
800
  msgid "WPGlobus languages"
801
  msgstr ""
802
 
803
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
804
  msgid "current"
805
  msgstr ""
806
 
languages/wpglobus-pt_PT.po CHANGED
@@ -796,11 +796,11 @@ msgstr ""
796
  msgid "Сompatibility Settings"
797
  msgstr ""
798
 
799
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
800
  msgid "WPGlobus languages"
801
  msgstr ""
802
 
803
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
804
  msgid "current"
805
  msgstr ""
806
 
796
  msgid "Сompatibility Settings"
797
  msgstr ""
798
 
799
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
800
  msgid "WPGlobus languages"
801
  msgstr ""
802
 
803
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
804
  msgid "current"
805
  msgstr ""
806
 
languages/wpglobus-ro_RO.po CHANGED
@@ -826,11 +826,11 @@ msgstr ""
826
  msgid "Сompatibility Settings"
827
  msgstr ""
828
 
829
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
830
  msgid "WPGlobus languages"
831
  msgstr ""
832
 
833
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
834
  msgid "current"
835
  msgstr ""
836
 
826
  msgid "Сompatibility Settings"
827
  msgstr ""
828
 
829
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
830
  msgid "WPGlobus languages"
831
  msgstr ""
832
 
833
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
834
  msgid "current"
835
  msgstr ""
836
 
languages/wpglobus-ru_RU.po CHANGED
@@ -877,11 +877,11 @@ msgstr "Билдер"
877
  msgid "Сompatibility Settings"
878
  msgstr "Совместимость"
879
 
880
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
881
  msgid "WPGlobus languages"
882
  msgstr "Языки WPGlobus"
883
 
884
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
885
  msgid "current"
886
  msgstr ""
887
 
877
  msgid "Сompatibility Settings"
878
  msgstr "Совместимость"
879
 
880
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
881
  msgid "WPGlobus languages"
882
  msgstr "Языки WPGlobus"
883
 
884
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
885
  msgid "current"
886
  msgstr ""
887
 
languages/wpglobus-sv_SE.po CHANGED
@@ -819,11 +819,11 @@ msgstr ""
819
  msgid "Сompatibility Settings"
820
  msgstr ""
821
 
822
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
823
  msgid "WPGlobus languages"
824
  msgstr ""
825
 
826
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
827
  msgid "current"
828
  msgstr ""
829
 
819
  msgid "Сompatibility Settings"
820
  msgstr ""
821
 
822
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
823
  msgid "WPGlobus languages"
824
  msgstr ""
825
 
826
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
827
  msgid "current"
828
  msgstr ""
829
 
languages/wpglobus-tr_TR.po CHANGED
@@ -822,11 +822,11 @@ msgstr "Kurucu"
822
  msgid "Сompatibility Settings"
823
  msgstr ""
824
 
825
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
826
  msgid "WPGlobus languages"
827
  msgstr ""
828
 
829
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
830
  msgid "current"
831
  msgstr ""
832
 
822
  msgid "Сompatibility Settings"
823
  msgstr ""
824
 
825
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
826
  msgid "WPGlobus languages"
827
  msgstr ""
828
 
829
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
830
  msgid "current"
831
  msgstr ""
832
 
languages/wpglobus-uk.po CHANGED
@@ -854,11 +854,11 @@ msgstr "Конструктор"
854
  msgid "Сompatibility Settings"
855
  msgstr ""
856
 
857
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
858
  msgid "WPGlobus languages"
859
  msgstr ""
860
 
861
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
862
  msgid "current"
863
  msgstr ""
864
 
854
  msgid "Сompatibility Settings"
855
  msgstr ""
856
 
857
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
858
  msgid "WPGlobus languages"
859
  msgstr ""
860
 
861
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
862
  msgid "current"
863
  msgstr ""
864
 
languages/wpglobus.pot CHANGED
@@ -647,11 +647,11 @@ msgstr ""
647
  msgid "Сompatibility Settings"
648
  msgstr ""
649
 
650
- #: includes/builders/elementor/class-wpglobus-elementor.php:211
651
  msgid "WPGlobus languages"
652
  msgstr ""
653
 
654
- #: includes/builders/elementor/class-wpglobus-elementor.php:217
655
  msgid "current"
656
  msgstr ""
657
 
647
  msgid "Сompatibility Settings"
648
  msgstr ""
649
 
650
+ #: includes/builders/elementor/class-wpglobus-elementor.php:258
651
  msgid "WPGlobus languages"
652
  msgstr ""
653
 
654
+ #: includes/builders/elementor/class-wpglobus-elementor.php:264
655
  msgid "current"
656
  msgstr ""
657
 
readme.txt CHANGED
@@ -218,6 +218,10 @@ WPGlobus Version 2 supports WordPress 5.x, with Gutenberg.
218
 
219
  == Changelog ==
220
 
 
 
 
 
221
  = 2.1.14 =
222
 
223
  * Fixed: (Core/JS) Issue with an incorrect behavior of the dialog form with `hidden` class.
@@ -226,17 +230,12 @@ WPGlobus Version 2 supports WordPress 5.x, with Gutenberg.
226
 
227
  = 2.1.13 =
228
 
229
- * Internal: (Builders/Elementor) Beta-2 version for Elementor support.
230
 
231
  = 2.1.12 =
232
 
233
  * Internal: (Core/Options) Updated the `Compatibility` tab on the `WPGlobus Options` page.
234
 
235
- = 2.1.11 =
236
-
237
- * Fixed: (Vendor/ACF) Do not reset the `table` field of the `ACF:Table Field` plugin.
238
- * Fixed: Do not filter meta and multilingual fields for no-builder pages.
239
-
240
  = Earlier versions and Add-ons =
241
 
242
  * [See the complete changelog here](https://github.com/WPGlobus/WPGlobus/blob/master/CHANGELOG.md)
218
 
219
  == Changelog ==
220
 
221
+ = 2.1.15 =
222
+
223
+ * Internal: (Builders/Elementor) Beta-3 version of the `Elementor` support.
224
+
225
  = 2.1.14 =
226
 
227
  * Fixed: (Core/JS) Issue with an incorrect behavior of the dialog form with `hidden` class.
230
 
231
  = 2.1.13 =
232
 
233
+ * Internal: (Builders/Elementor) Beta-2 version of the `Elementor` support.
234
 
235
  = 2.1.12 =
236
 
237
  * Internal: (Core/Options) Updated the `Compatibility` tab on the `WPGlobus Options` page.
238
 
 
 
 
 
 
239
  = Earlier versions and Add-ons =
240
 
241
  * [See the complete changelog here](https://github.com/WPGlobus/WPGlobus/blob/master/CHANGELOG.md)
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.1.14
19
  * Author: WPGlobus
20
  * Author URI: https://wpglobus.com/
21
  * Network: false
@@ -42,7 +42,7 @@ if ( ! defined( 'ABSPATH' ) ) {
42
  exit;
43
  }
44
 
45
- define( 'WPGLOBUS_VERSION', '2.1.14' );
46
  define( 'WPGLOBUS_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
47
 
48
  /**
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.1.15
19
  * Author: WPGlobus
20
  * Author URI: https://wpglobus.com/
21
  * Network: false
42
  exit;
43
  }
44
 
45
+ define( 'WPGLOBUS_VERSION', '2.1.15' );
46
  define( 'WPGLOBUS_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
47
 
48
  /**