Polylang - Version 3.0.1

Version Description

(2021-03-10) =

  • Fix media gallery messed when editing a post in the classic editor
  • Fix missing script dependency on old WP versions
  • Fix CSS conflict with WooCommerce Bookings for WP < 5.6
  • Fix conflict resulting in '__' already defined in block-editor.js. #779
  • Fix search form removed for some themes. Props Marin Kadaka. #780
  • Fix fatal error with very old versions of Yoast SEO. Props Nicola Peluchetti. #781
Download this release

Release Info

Developer Chouby
Plugin Icon 128x128 Polylang
Version 3.0.1
Comparing to
See all releases

Code changes from version 3.0 to 3.0.1

admin/admin-base.php CHANGED
@@ -173,12 +173,12 @@ abstract class PLL_Admin_Base extends PLL_Base {
173
 
174
  // Classic editor.
175
  if ( ! method_exists( $screen, 'is_block_editor' ) || ! $screen->is_block_editor() ) {
176
- $scripts['classic-editor'] = array( array( 'post', 'media', 'async-upload' ), array( 'jquery', 'wp-ajax-response', 'post', 'jquery-ui-dialog' ), 0, 1 );
177
  }
178
 
179
  // Block editor with legacy metabox in WP 5.0+.
180
  if ( method_exists( $screen, 'is_block_editor' ) && $screen->is_block_editor() && ! pll_use_block_editor_plugin() ) {
181
- $scripts['block-editor'] = array( array( 'post' ), array( 'jquery', 'wp-ajax-response', 'wp-api-fetch', 'jquery-ui-dialog' ), 0, 1 );
182
  }
183
  }
184
 
173
 
174
  // Classic editor.
175
  if ( ! method_exists( $screen, 'is_block_editor' ) || ! $screen->is_block_editor() ) {
176
+ $scripts['classic-editor'] = array( array( 'post', 'media', 'async-upload' ), array( 'jquery', 'wp-ajax-response', 'post', 'jquery-ui-dialog', 'wp-i18n' ), 0, 1 );
177
  }
178
 
179
  // Block editor with legacy metabox in WP 5.0+.
180
  if ( method_exists( $screen, 'is_block_editor' ) && $screen->is_block_editor() && ! pll_use_block_editor_plugin() ) {
181
+ $scripts['block-editor'] = array( array( 'post' ), array( 'jquery', 'wp-ajax-response', 'wp-api-fetch', 'jquery-ui-dialog', 'wp-i18n' ), 0, 1 );
182
  }
183
  }
184
 
css/build/selectmenu.css CHANGED
@@ -109,6 +109,7 @@
109
  display: block;
110
  }
111
 
 
112
  .ui-selectmenu-button.ui-button {
113
  display: inline-block;
114
  overflow: hidden;
@@ -119,6 +120,8 @@
119
  white-space: nowrap;
120
  vertical-align: top;
121
  padding: 0;
 
 
122
  }
123
 
124
  .ui-selectmenu-button span.ui-icon {
@@ -138,6 +141,7 @@
138
  }
139
 
140
 
 
141
  .ui-selectmenu-button span.ui-selectmenu-text {
142
  text-align: left;
143
  padding: 0.1em 2.1em 0.2em 2em;
@@ -156,6 +160,7 @@
156
 
157
  .ui-widget-content,
158
  .ui-state-default,
 
159
  .ui-button.ui-selectmenu-button-closed, /* To be compatible jQuery UI 1.12.1 since WordPress 5.6 */
160
  .ui-button.ui-selectmenu-button-open, /* To be compatible jQuery UI 1.12.1 since WordPress 5.6 */
161
  .ui-widget-content .ui-state-default,
@@ -197,6 +202,9 @@
197
  margin: 0;
198
  }
199
 
 
 
 
200
  .pll-selectmenu-menu .ui-widget-content .ui-state-hover,
201
  .pll-selectmenu-menu .ui-widget-content .ui-state-focus,
202
  .pll-selectmenu-menu .ui-widget-content .ui-state-active { /* To be compatible jQuery UI 1.12.1 since WordPress 5.6 */
109
  display: block;
110
  }
111
 
112
+ .ui-selectmenu-button, /* jQuery UI 1.11.4 - WP < 5.6 */
113
  .ui-selectmenu-button.ui-button {
114
  display: inline-block;
115
  overflow: hidden;
120
  white-space: nowrap;
121
  vertical-align: top;
122
  padding: 0;
123
+ line-height: normal; /* Override WC Bookings styles with WP < 5.6 */
124
+ height: 28px; /* Override WC Bookings styles with WP < 5.6 */
125
  }
126
 
127
  .ui-selectmenu-button span.ui-icon {
141
  }
142
 
143
 
144
+ .ui-selectmenu-button.ui-widget span.ui-selectmenu-text, /* Override WC Bookings styles with WP < 5.6 */
145
  .ui-selectmenu-button span.ui-selectmenu-text {
146
  text-align: left;
147
  padding: 0.1em 2.1em 0.2em 2em;
160
 
161
  .ui-widget-content,
162
  .ui-state-default,
163
+ .ui-selectmenu-button.ui-state-default, /* Override WC Bookings styles with WP < 5.6 */
164
  .ui-button.ui-selectmenu-button-closed, /* To be compatible jQuery UI 1.12.1 since WordPress 5.6 */
165
  .ui-button.ui-selectmenu-button-open, /* To be compatible jQuery UI 1.12.1 since WordPress 5.6 */
166
  .ui-widget-content .ui-state-default,
202
  margin: 0;
203
  }
204
 
205
+ .ui-selectmenu-open .ui-widget-content .ui-state-hover, /* Override WC Bookings styles with WP < 5.6 */
206
+ .ui-selectmenu-open .ui-widget-content .ui-state-focus, /* Override WC Bookings styles with WP < 5.6 */
207
+ .ui-selectmenu-open .ui-widget-content .ui-state-active, /* Override WC Bookings styles with WP < 5.6 */
208
  .pll-selectmenu-menu .ui-widget-content .ui-state-hover,
209
  .pll-selectmenu-menu .ui-widget-content .ui-state-focus,
210
  .pll-selectmenu-menu .ui-widget-content .ui-state-active { /* To be compatible jQuery UI 1.12.1 since WordPress 5.6 */
css/build/selectmenu.min.css CHANGED
@@ -1 +1 @@
1
- .ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item:not([role]){padding:0}.ui-menu-item-wrapper{padding:3px 1em 3px 2em}.rtl .ui-menu .ui-menu-item{text-align:right}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item[role]{padding-left:2em}.rtl .ui-menu-icons .ui-menu-item[role],.rtl .ui-menu-item-wrapper{padding-left:1em;padding-right:2em}.ui-menu .ui-icon,.ui-selectmenu-text .ui-icon{position:absolute;top:0;bottom:0;left:.3em;margin:auto 0}.rtl .ui-menu .ui-icon,.rtl .ui-selectmenu-text .ui-icon{right:.3em;left:auto}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:700;line-height:23px;padding:2px .4em;margin:.5em 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button.ui-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;box-sizing:border-box;text-align:left;white-space:nowrap;vertical-align:top;padding:0}.ui-selectmenu-button span.ui-icon{right:.5em;left:auto;position:absolute;top:26%;width:16px;height:16px;text-indent:0;background:none}.rtl .ui-selectmenu-button span.ui-icon{left:.5em;right:auto}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:.1em 2.1em .2em 2em;display:block;line-height:23px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0}.rtl .ui-selectmenu-button span.ui-selectmenu-text{text-align:right;padding:.2em 2em .2em 2.1em}.ui-button.ui-selectmenu-button-closed,.ui-button.ui-selectmenu-button-open,.ui-state-default,.ui-widget-content,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{background:#fff;border:1px solid #ddd;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);color:#32373c}.toplevel_page_mlang .ui-selectmenu-button.ui-selectmenu-button-closed,.toplevel_page_mlang .ui-selectmenu-button.ui-selectmenu-button-open,.toplevel_page_mlang .ui-selectmenu-button.ui-state-default{box-shadow:0 0 0 transparent;border-radius:4px;border:1px solid #7e8993}.pll-selectmenu-button.ui-widget,.pll-selectmenu-menu .ui-widget{font-size:13px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.toplevel_page_mlang .ui-button.ui-selectmenu-button:focus{color:#016087;border-color:#007cba;box-shadow:0 0 0 1px #007cba;outline:2px solid transparent;background:#fff}.toplevel_page_mlang .ui-menu-item,.toplevel_page_mlang .ui-widget-content .ui-state-active,.toplevel_page_mlang .ui-widget-content .ui-state-focus,.toplevel_page_mlang .ui-widget-content .ui-state-hover{color:#016087;margin:0}.pll-selectmenu-menu .ui-widget-content .ui-state-active,.pll-selectmenu-menu .ui-widget-content .ui-state-focus,.pll-selectmenu-menu .ui-widget-content .ui-state-hover{background:#d5d5d5;border:0}.ui-selectmenu-button.ui-state-focus{border:1px solid #5b9dd9;box-shadow:0 0 2px rgba(30,140,190,.8)}.ui-icon-triangle-1-s:before{content:"";background:#fff url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E) no-repeat right 0 top 55%;background-size:16px 16px;box-sizing:border-box;position:absolute;width:16px;height:16px}.pll-selectmenu-button.ui-button:hover,.pll-wizard .ui-button:focus,.pll-wizard .ui-button:hover{background:#fff}.ui-widget-content{max-height:231px;box-shadow:0 2px 6px hsla(0,0%,39.2%,.3)}
1
+ .ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item:not([role]){padding:0}.ui-menu-item-wrapper{padding:3px 1em 3px 2em}.rtl .ui-menu .ui-menu-item{text-align:right}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item[role]{padding-left:2em}.rtl .ui-menu-icons .ui-menu-item[role],.rtl .ui-menu-item-wrapper{padding-left:1em;padding-right:2em}.ui-menu .ui-icon,.ui-selectmenu-text .ui-icon{position:absolute;top:0;bottom:0;left:.3em;margin:auto 0}.rtl .ui-menu .ui-icon,.rtl .ui-selectmenu-text .ui-icon{right:.3em;left:auto}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:700;line-height:23px;padding:2px .4em;margin:.5em 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button,.ui-selectmenu-button.ui-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;box-sizing:border-box;text-align:left;white-space:nowrap;vertical-align:top;padding:0;line-height:normal;height:28px}.ui-selectmenu-button span.ui-icon{right:.5em;left:auto;position:absolute;top:26%;width:16px;height:16px;text-indent:0;background:none}.rtl .ui-selectmenu-button span.ui-icon{left:.5em;right:auto}.ui-selectmenu-button.ui-widget span.ui-selectmenu-text,.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:.1em 2.1em .2em 2em;display:block;line-height:23px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0}.rtl .ui-selectmenu-button span.ui-selectmenu-text{text-align:right;padding:.2em 2em .2em 2.1em}.ui-button.ui-selectmenu-button-closed,.ui-button.ui-selectmenu-button-open,.ui-selectmenu-button.ui-state-default,.ui-state-default,.ui-widget-content,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{background:#fff;border:1px solid #ddd;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);color:#32373c}.toplevel_page_mlang .ui-selectmenu-button.ui-selectmenu-button-closed,.toplevel_page_mlang .ui-selectmenu-button.ui-selectmenu-button-open,.toplevel_page_mlang .ui-selectmenu-button.ui-state-default{box-shadow:0 0 0 transparent;border-radius:4px;border:1px solid #7e8993}.pll-selectmenu-button.ui-widget,.pll-selectmenu-menu .ui-widget{font-size:13px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.toplevel_page_mlang .ui-button.ui-selectmenu-button:focus{color:#016087;border-color:#007cba;box-shadow:0 0 0 1px #007cba;outline:2px solid transparent;background:#fff}.toplevel_page_mlang .ui-menu-item,.toplevel_page_mlang .ui-widget-content .ui-state-active,.toplevel_page_mlang .ui-widget-content .ui-state-focus,.toplevel_page_mlang .ui-widget-content .ui-state-hover{color:#016087;margin:0}.pll-selectmenu-menu .ui-widget-content .ui-state-active,.pll-selectmenu-menu .ui-widget-content .ui-state-focus,.pll-selectmenu-menu .ui-widget-content .ui-state-hover,.ui-selectmenu-open .ui-widget-content .ui-state-active,.ui-selectmenu-open .ui-widget-content .ui-state-focus,.ui-selectmenu-open .ui-widget-content .ui-state-hover{background:#d5d5d5;border:0}.ui-selectmenu-button.ui-state-focus{border:1px solid #5b9dd9;box-shadow:0 0 2px rgba(30,140,190,.8)}.ui-icon-triangle-1-s:before{content:"";background:#fff url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E) no-repeat right 0 top 55%;background-size:16px 16px;box-sizing:border-box;position:absolute;width:16px;height:16px}.pll-selectmenu-button.ui-button:hover,.pll-wizard .ui-button:focus,.pll-wizard .ui-button:hover{background:#fff}.ui-widget-content{max-height:231px;box-shadow:0 2px 6px hsla(0,0%,39.2%,.3)}
css/selectmenu.css CHANGED
@@ -109,6 +109,7 @@
109
  display: block;
110
  }
111
 
 
112
  .ui-selectmenu-button.ui-button {
113
  display: inline-block;
114
  overflow: hidden;
@@ -119,6 +120,8 @@
119
  white-space: nowrap;
120
  vertical-align: top;
121
  padding: 0;
 
 
122
  }
123
 
124
  .ui-selectmenu-button span.ui-icon {
@@ -138,6 +141,7 @@
138
  }
139
 
140
 
 
141
  .ui-selectmenu-button span.ui-selectmenu-text {
142
  text-align: left;
143
  padding: 0.1em 2.1em 0.2em 2em;
@@ -156,6 +160,7 @@
156
 
157
  .ui-widget-content,
158
  .ui-state-default,
 
159
  .ui-button.ui-selectmenu-button-closed, /* To be compatible jQuery UI 1.12.1 since WordPress 5.6 */
160
  .ui-button.ui-selectmenu-button-open, /* To be compatible jQuery UI 1.12.1 since WordPress 5.6 */
161
  .ui-widget-content .ui-state-default,
@@ -197,6 +202,9 @@
197
  margin: 0;
198
  }
199
 
 
 
 
200
  .pll-selectmenu-menu .ui-widget-content .ui-state-hover,
201
  .pll-selectmenu-menu .ui-widget-content .ui-state-focus,
202
  .pll-selectmenu-menu .ui-widget-content .ui-state-active { /* To be compatible jQuery UI 1.12.1 since WordPress 5.6 */
109
  display: block;
110
  }
111
 
112
+ .ui-selectmenu-button, /* jQuery UI 1.11.4 - WP < 5.6 */
113
  .ui-selectmenu-button.ui-button {
114
  display: inline-block;
115
  overflow: hidden;
120
  white-space: nowrap;
121
  vertical-align: top;
122
  padding: 0;
123
+ line-height: normal; /* Override WC Bookings styles with WP < 5.6 */
124
+ height: 28px; /* Override WC Bookings styles with WP < 5.6 */
125
  }
126
 
127
  .ui-selectmenu-button span.ui-icon {
141
  }
142
 
143
 
144
+ .ui-selectmenu-button.ui-widget span.ui-selectmenu-text, /* Override WC Bookings styles with WP < 5.6 */
145
  .ui-selectmenu-button span.ui-selectmenu-text {
146
  text-align: left;
147
  padding: 0.1em 2.1em 0.2em 2em;
160
 
161
  .ui-widget-content,
162
  .ui-state-default,
163
+ .ui-selectmenu-button.ui-state-default, /* Override WC Bookings styles with WP < 5.6 */
164
  .ui-button.ui-selectmenu-button-closed, /* To be compatible jQuery UI 1.12.1 since WordPress 5.6 */
165
  .ui-button.ui-selectmenu-button-open, /* To be compatible jQuery UI 1.12.1 since WordPress 5.6 */
166
  .ui-widget-content .ui-state-default,
202
  margin: 0;
203
  }
204
 
205
+ .ui-selectmenu-open .ui-widget-content .ui-state-hover, /* Override WC Bookings styles with WP < 5.6 */
206
+ .ui-selectmenu-open .ui-widget-content .ui-state-focus, /* Override WC Bookings styles with WP < 5.6 */
207
+ .ui-selectmenu-open .ui-widget-content .ui-state-active, /* Override WC Bookings styles with WP < 5.6 */
208
  .pll-selectmenu-menu .ui-widget-content .ui-state-hover,
209
  .pll-selectmenu-menu .ui-widget-content .ui-state-focus,
210
  .pll-selectmenu-menu .ui-widget-content .ui-state-active { /* To be compatible jQuery UI 1.12.1 since WordPress 5.6 */
frontend/frontend-filters-search.php CHANGED
@@ -62,9 +62,10 @@ class PLL_Frontend_Filters_Search {
62
  if ( $form ) {
63
  if ( $this->links_model->using_permalinks ) {
64
  // Take care to modify only the url in the <form> tag.
65
- preg_match( '#<form.+>#', $form, $matches );
66
  $old = reset( $matches );
67
- $new = preg_replace( '#action="(.+)"#', 'action="' . esc_url( $this->curlang->search_url ) . '"', $old );
 
68
  $form = str_replace( $old, $new, $form );
69
  } else {
70
  $form = str_replace( '</form>', '<input type="hidden" name="lang" value="' . esc_attr( $this->curlang->slug ) . '" /></form>', $form );
62
  if ( $form ) {
63
  if ( $this->links_model->using_permalinks ) {
64
  // Take care to modify only the url in the <form> tag.
65
+ preg_match( '#<form.+?>#', $form, $matches );
66
  $old = reset( $matches );
67
+ // Replace action attribute (a text with no space and no closing tag within double quotes or simple quotes or without quotes).
68
+ $new = preg_replace( '#\saction=("[^"\r\n]+"|\'[^\'\r\n]+\'|[^\'"][^>\s]+)#', ' action="' . esc_url( $this->curlang->search_url ) . '"', $old );
69
  $form = str_replace( $old, $new, $form );
70
  } else {
71
  $form = str_replace( '</form>', '<input type="hidden" name="lang" value="' . esc_attr( $this->curlang->slug ) . '" /></form>', $form );
integrations/wpseo/wpseo.php CHANGED
@@ -84,7 +84,9 @@ class PLL_WPSEO {
84
  }
85
 
86
  if ( ! empty( $keys ) ) {
87
- WPSEO_Options::clear_cache();
 
 
88
  new PLL_Translate_Option( 'wpseo_titles', array_fill_keys( $keys, 1 ), array( 'context' => 'wordpress-seo' ) );
89
  }
90
  }
84
  }
85
 
86
  if ( ! empty( $keys ) ) {
87
+ if ( method_exists( 'WPSEO_Options', 'clear_cache' ) ) {
88
+ WPSEO_Options::clear_cache();
89
+ }
90
  new PLL_Translate_Option( 'wpseo_titles', array_fill_keys( $keys, 1 ), array( 'context' => 'wordpress-seo' ) );
91
  }
92
  }
js/build/block-editor.js CHANGED
@@ -5,14 +5,14 @@
5
  * @package Polylang
6
  */
7
 
8
- // We can't use underscore or lodash in this common code because it depends of the context classic or block editor.
9
- // Classic editor underscore is loaded, Block editor lodash is loaded.
10
- const { __ } = wp.i18n;
11
-
12
  const languagesList = jQuery( '.post_lang_choice' );
13
 
14
  // Dialog box for alerting the user about a risky changing.
15
  const initializeConfimationModal = () => {
 
 
 
 
16
  // Create dialog container.
17
  const dialogContainer = jQuery(
18
  '<div/>',
5
  * @package Polylang
6
  */
7
 
 
 
 
 
8
  const languagesList = jQuery( '.post_lang_choice' );
9
 
10
  // Dialog box for alerting the user about a risky changing.
11
  const initializeConfimationModal = () => {
12
+ // We can't use underscore or lodash in this common code because it depends of the context classic or block editor.
13
+ // Classic editor underscore is loaded, Block editor lodash is loaded.
14
+ const { __ } = wp.i18n;
15
+
16
  // Create dialog container.
17
  const dialogContainer = jQuery(
18
  '<div/>',
js/build/block-editor.min.js CHANGED
@@ -1 +1 @@
1
- "use strict";const{__}=wp.i18n,languagesList=jQuery(".post_lang_choice"),initializeConfimationModal=()=>{const t=jQuery("<div/>",{id:"pll-dialog",style:"display:none;"}).text(__("Are you sure you want to change the language of the current content?","polylang"));languagesList.after(t);const a=new Promise(((a,e)=>{const n=n=>{switch(n){case"yes":languagesList.data("old-value",languagesList.children(":selected")[0].value),a();break;case"no":languagesList.val(languagesList.data("old-value")),e("Cancel")}t.dialog("close")};t.dialog({autoOpen:!1,modal:!0,draggable:!1,resizable:!1,title:__("Change language","polylang"),minWidth:600,maxWidth:"100%",classes:{"ui-dialog":"pll-confirmation-modal"},open:function(t,a){jQuery("body").hasClass("rtl")&&jQuery(this).parent().css({right:jQuery(this).parent().css("left"),left:"auto"})},close:function(t,a){n("no")},buttons:[{text:__("OK","polylang"),click:function(t){n("yes")}},{text:__("Cancel","polylang"),click:function(t){n("no")}}]})}));return{dialogContainer:t,dialogResult:a}},initializeLanguageOldValue=()=>{languagesList.attr("data-old-value",languagesList.children(":selected")[0].value)};function getCurrentLanguage(){return document.querySelector("[name=post_lang_choice]").value}wp.apiFetch.use((function(t,a){return void 0===t.url&&(void 0===t.data||null===t.data?t.path+=(t.path.indexOf("?")>=0?"&lang=":"?lang=")+getCurrentLanguage():t.data.lang=getCurrentLanguage()),a(t)})),jQuery((function(t){function a(){t(".tr_lang").each((function(){var a=t(this).attr("id").substring(8),e=t(this).parent().parent().siblings(".pll-edit-column");t(this).autocomplete({minLength:0,source:ajaxurl+"?action=pll_posts_not_translated&post_language="+t(".post_lang_choice").val()+"&translation_language="+a+"&post_type="+t("#post_type").val()+"&_pll_nonce="+t("#_pll_nonce").val(),select:function(n,l){t("#htr_lang_"+a).val(l.item.id),e.html(l.item.link)}}),t(this).on("blur",(function(){t(this).val()||(t("#htr_lang_"+a).val(0),e.html(e.siblings(".hidden").children().clone()))}))}))}initializeLanguageOldValue(),t(".post_lang_choice").on("change",(function(e){const n=wp.data.select,l=wp.data.dispatch,i=wp.data.subscribe,o=function(){const t=wp.data.select("core/editor"),a=t.getEditedPostAttribute("title").trim(),e=t.getEditedPostAttribute("content").trim(),n=t.getEditedPostAttribute("excerpt").trim();return!a&&!e&&!n}(),s=initializeConfimationModal(),{dialogContainer:c}=s;let{dialogResult:u}=s;const r=e.target;var g;location.pathname.match(/post-new.php/gi)&&o&&(g=r.value,-1!=location.search.indexOf("new_lang")?window.location.search=window.location.search.replace(/(?:new_lang=[^&]*)(&)?(.*)/,"new_lang="+g+"$1$2"):window.location.search=window.location.search+(-1!=window.location.search.indexOf("?")?"&":"?")+"new_lang="+g),t(this).data("old-value")===r.value||o?(initializeLanguageOldValue(),u=Promise.resolve()):c.dialog("open"),u.then((()=>{var e={action:"post_lang_choice",lang:r.value,post_type:t("#post_type").val(),post_id:t("#post_ID").val(),_pll_nonce:t("#_pll_nonce").val()};t.post(ajaxurl,e,(function(e){var o=wpAjax.parseAjaxResponse(e,"ajax-response");t.each(o.responses,(function(){switch(this.what){case"translations":t(".translations").html(this.data),a();break;case"flag":t(".pll-select-flag").html(this.data)}})),function(){let t=null;const a=new Promise((function(a,e){t=i((function(){const t=n("core/editor").didPostSaveRequestSucceed(),l=n("core/editor").didPostSaveRequestFail();(t||l)&&(l?e():a())}))}));l("core/editor").savePost(),a.then((function(){window.location.reload()}),(function(){t()})).catch((function(){t()}))}()}))}),(()=>{}))})),a()}));
1
+ "use strict";const languagesList=jQuery(".post_lang_choice"),initializeConfimationModal=()=>{const{__:t}=wp.i18n,a=jQuery("<div/>",{id:"pll-dialog",style:"display:none;"}).text(t("Are you sure you want to change the language of the current content?","polylang"));languagesList.after(a);const e=new Promise(((e,n)=>{const l=t=>{switch(t){case"yes":languagesList.data("old-value",languagesList.children(":selected")[0].value),e();break;case"no":languagesList.val(languagesList.data("old-value")),n("Cancel")}a.dialog("close")};a.dialog({autoOpen:!1,modal:!0,draggable:!1,resizable:!1,title:t("Change language","polylang"),minWidth:600,maxWidth:"100%",classes:{"ui-dialog":"pll-confirmation-modal"},open:function(t,a){jQuery("body").hasClass("rtl")&&jQuery(this).parent().css({right:jQuery(this).parent().css("left"),left:"auto"})},close:function(t,a){l("no")},buttons:[{text:t("OK","polylang"),click:function(t){l("yes")}},{text:t("Cancel","polylang"),click:function(t){l("no")}}]})}));return{dialogContainer:a,dialogResult:e}},initializeLanguageOldValue=()=>{languagesList.attr("data-old-value",languagesList.children(":selected")[0].value)};function getCurrentLanguage(){return document.querySelector("[name=post_lang_choice]").value}wp.apiFetch.use((function(t,a){return void 0===t.url&&(void 0===t.data||null===t.data?t.path+=(t.path.indexOf("?")>=0?"&lang=":"?lang=")+getCurrentLanguage():t.data.lang=getCurrentLanguage()),a(t)})),jQuery((function(t){function a(){t(".tr_lang").each((function(){var a=t(this).attr("id").substring(8),e=t(this).parent().parent().siblings(".pll-edit-column");t(this).autocomplete({minLength:0,source:ajaxurl+"?action=pll_posts_not_translated&post_language="+t(".post_lang_choice").val()+"&translation_language="+a+"&post_type="+t("#post_type").val()+"&_pll_nonce="+t("#_pll_nonce").val(),select:function(n,l){t("#htr_lang_"+a).val(l.item.id),e.html(l.item.link)}}),t(this).on("blur",(function(){t(this).val()||(t("#htr_lang_"+a).val(0),e.html(e.siblings(".hidden").children().clone()))}))}))}initializeLanguageOldValue(),t(".post_lang_choice").on("change",(function(e){const n=wp.data.select,l=wp.data.dispatch,i=wp.data.subscribe,o=function(){const t=wp.data.select("core/editor"),a=t.getEditedPostAttribute("title").trim(),e=t.getEditedPostAttribute("content").trim(),n=t.getEditedPostAttribute("excerpt").trim();return!a&&!e&&!n}(),s=initializeConfimationModal(),{dialogContainer:c}=s;let{dialogResult:u}=s;const r=e.target;var g;location.pathname.match(/post-new.php/gi)&&o&&(g=r.value,-1!=location.search.indexOf("new_lang")?window.location.search=window.location.search.replace(/(?:new_lang=[^&]*)(&)?(.*)/,"new_lang="+g+"$1$2"):window.location.search=window.location.search+(-1!=window.location.search.indexOf("?")?"&":"?")+"new_lang="+g),t(this).data("old-value")===r.value||o?(initializeLanguageOldValue(),u=Promise.resolve()):c.dialog("open"),u.then((()=>{var e={action:"post_lang_choice",lang:r.value,post_type:t("#post_type").val(),post_id:t("#post_ID").val(),_pll_nonce:t("#_pll_nonce").val()};t.post(ajaxurl,e,(function(e){var o=wpAjax.parseAjaxResponse(e,"ajax-response");t.each(o.responses,(function(){switch(this.what){case"translations":t(".translations").html(this.data),a();break;case"flag":t(".pll-select-flag").html(this.data)}})),function(){let t=null;const a=new Promise((function(a,e){t=i((function(){const t=n("core/editor").didPostSaveRequestSucceed(),l=n("core/editor").didPostSaveRequestFail();(t||l)&&(l?e():a())}))}));l("core/editor").savePost(),a.then((function(){window.location.reload()}),(function(){t()})).catch((function(){t()}))}()}))}),(()=>{}))})),a()}));
js/build/classic-editor.js CHANGED
@@ -5,14 +5,14 @@
5
  * @package Polylang
6
  */
7
 
8
- // We can't use underscore or lodash in this common code because it depends of the context classic or block editor.
9
- // Classic editor underscore is loaded, Block editor lodash is loaded.
10
- const { __ } = wp.i18n;
11
-
12
  const languagesList = jQuery( '.post_lang_choice' );
13
 
14
  // Dialog box for alerting the user about a risky changing.
15
  const initializeConfimationModal = () => {
 
 
 
 
16
  // Create dialog container.
17
  const dialogContainer = jQuery(
18
  '<div/>',
@@ -388,7 +388,7 @@ var media = _.extend(
388
  * @return {wp.media.model.Attachments}
389
  */
390
  query: function( props ) {
391
- var attachments = pll.media.query.delegate();
392
 
393
  pll.media.attachmentsCollections.push( attachments );
394
 
@@ -415,22 +415,25 @@ var media = _.extend(
415
  }
416
  );
417
 
418
- /**
419
- * @since 3.0
420
- *
421
- * @memberOf pll.media
422
- */
423
- media.query = _.extend(
424
- media.query, /** @lends pll.media.query prototype */
425
- {
426
- /**
427
- * @type Function References WordPress { @see wp.media.query } constructor
428
- */
429
- delegate: wp.media.query
430
- }
431
- )
432
 
433
- // Substitute WordPress media query shortcut with our decorated function.
434
- wp.media.query = media.query
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
435
 
 
436
 
5
  * @package Polylang
6
  */
7
 
 
 
 
 
8
  const languagesList = jQuery( '.post_lang_choice' );
9
 
10
  // Dialog box for alerting the user about a risky changing.
11
  const initializeConfimationModal = () => {
12
+ // We can't use underscore or lodash in this common code because it depends of the context classic or block editor.
13
+ // Classic editor underscore is loaded, Block editor lodash is loaded.
14
+ const { __ } = wp.i18n;
15
+
16
  // Create dialog container.
17
  const dialogContainer = jQuery(
18
  '<div/>',
388
  * @return {wp.media.model.Attachments}
389
  */
390
  query: function( props ) {
391
+ var attachments = pll.media.query.delegate( props );
392
 
393
  pll.media.attachmentsCollections.push( attachments );
394
 
415
  }
416
  );
417
 
418
+ if ( 'undefined' !== typeof wp && 'undefined' !== typeof wp.media ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
419
 
420
+ /**
421
+ * @since 3.0
422
+ *
423
+ * @memberOf pll.media
424
+ */
425
+ media.query = _.extend(
426
+ media.query, /** @lends pll.media.query prototype */
427
+ {
428
+ /**
429
+ * @type Function References WordPress { @see wp.media.query } constructor
430
+ */
431
+ delegate: wp.media.query
432
+ }
433
+ )
434
+
435
+ // Substitute WordPress media query shortcut with our decorated function.
436
+ wp.media.query = media.query
437
 
438
+ }
439
 
js/build/classic-editor.min.js CHANGED
@@ -1 +1 @@
1
- "use strict";const{__}=wp.i18n,languagesList=jQuery(".post_lang_choice"),initializeConfimationModal=()=>{const t=jQuery("<div/>",{id:"pll-dialog",style:"display:none;"}).text(__("Are you sure you want to change the language of the current content?","polylang"));languagesList.after(t);const a=new Promise(((a,e)=>{const l=l=>{switch(l){case"yes":languagesList.data("old-value",languagesList.children(":selected")[0].value),a();break;case"no":languagesList.val(languagesList.data("old-value")),e("Cancel")}t.dialog("close")};t.dialog({autoOpen:!1,modal:!0,draggable:!1,resizable:!1,title:__("Change language","polylang"),minWidth:600,maxWidth:"100%",classes:{"ui-dialog":"pll-confirmation-modal"},open:function(t,a){jQuery("body").hasClass("rtl")&&jQuery(this).parent().css({right:jQuery(this).parent().css("left"),left:"auto"})},close:function(t,a){l("no")},buttons:[{text:__("OK","polylang"),click:function(t){l("yes")}},{text:__("Cancel","polylang"),click:function(t){l("no")}}]})}));return{dialogContainer:t,dialogResult:a}},initializeLanguageOldValue=()=>{languagesList.attr("data-old-value",languagesList.children(":selected")[0].value)};jQuery((function(t){t.ajaxPrefilter((function(a,e,l){var n=t(".post_lang_choice").val();"string"==typeof a.data&&-1!==a.url.indexOf("action=ajax-tag-search")&&n&&(a.data="lang="+n+"&"+a.data)}))})),jQuery((function(t){tagBox.get=function(a){var e=a.substr(a.indexOf("-")+1),l={action:"get-tagcloud",lang:t(".post_lang_choice").val(),tax:e};t.post(ajaxurl,l,(function(l,n){0!=l&&"success"==n||(l=wpAjax.broken),l=t("<div />").addClass("the-tagcloud").attr("id","tagcloud-"+e).html(l),t("a",l).on("click",(function(){return tagBox.flushTags(t(this).closest(".inside").children(".tagsdiv"),this),!1}));var i=t("#tagcloud-"+e).css("display");i?(t("#tagcloud-"+e).replaceWith(l),t("#tagcloud-"+e).css("display",i)):t("#"+a).after(l)}))}})),jQuery((function(t){var a=new Array;function e(){t(".tr_lang").each((function(){var a=t(this).attr("id").substring(8),e=t(this).parent().parent().siblings(".pll-edit-column");t(this).autocomplete({minLength:0,source:ajaxurl+"?action=pll_posts_not_translated&post_language="+t(".post_lang_choice").val()+"&translation_language="+a+"&post_type="+t("#post_type").val()+"&_pll_nonce="+t("#_pll_nonce").val(),select:function(l,n){t("#htr_lang_"+a).val(n.item.id),e.html(n.item.link)}}),t(this).on("blur",(function(){t(this).val()||(t("#htr_lang_"+a).val(0),e.html(e.siblings(".hidden").children().clone()))}))}))}t(".categorydiv").each((function(){var e,l;(e=t(this).attr("id").split("-")).shift(),l=e.join("-"),a.push(l),t("#"+l+"-add-submit").before(t("<input />").attr("type","hidden").attr("id",l+"-lang").attr("name","term_lang_choice").attr("value",t(".post_lang_choice").val()))})),initializeLanguageOldValue(),t(".post_lang_choice").on("change",(function(l){const n=initializeConfimationModal(),{dialogContainer:i}=n;let{dialogResult:s}=n;const o=l.target;t(this).data("old-value")===o.value||function(){const a=t("input#title").val(),e=t("textarea#content").val(),l=t("textarea#excerpt").val();return!a&&!e&&!l}()?s=Promise.resolve():i.dialog("open"),s.then((()=>{var l=o.options[o.options.selectedIndex].lang,n=t('.pll-translation-column > span[lang="'+l+'"]').attr("dir"),i={action:"post_lang_choice",lang:o.value,post_type:t("#post_type").val(),taxonomies:a,post_id:t("#post_ID").val(),_pll_nonce:t("#_pll_nonce").val()};t.post(ajaxurl,i,(function(a){var i=wpAjax.parseAjaxResponse(a,"ajax-response");t.each(i.responses,(function(){switch(this.what){case"translations":t(".translations").html(this.data),e();break;case"taxonomy":var a=this.data;t("#"+a+"checklist").html(this.supplemental.all),t("#"+a+"checklist-pop").html(this.supplemental.populars),t("#new"+a+"_parent").replaceWith(this.supplemental.dropdown),t("#"+a+"-lang").val(t(".post_lang_choice").val());break;case"pages":t("#parent_id").html(this.data);break;case"flag":t(".pll-select-flag").html(this.data);break;case"permalink":var l=t("#edit-slug-box");"-1"!=this.data&&l.children().length&&l.html(this.data)}})),initializeLanguageOldValue(),t(".tagcloud-link").each((function(){var a=t(this).attr("id");tagBox.get(a)})),t("body").removeClass("pll-dir-rtl").removeClass("pll-dir-ltr").addClass("pll-dir-"+n),t("#content_ifr").contents().find("html").attr("lang",l).attr("dir",n),t("#content_ifr").contents().find("body").attr("dir",n),pll.media.resetAllAttachmentsCollections()}))}),(()=>{}))})),e()}));var pll=window.pll||{};_.extend(pll,{media:{}});var media=_.extend(pll.media,{attachmentsCollections:[],query:function(t){var a=pll.media.query.delegate();return pll.media.attachmentsCollections.push(a),a},resetAllAttachmentsCollections:function(){this.attachmentsCollections.forEach((function(t){t.reset(),t.mirroring&&(t.mirroring._hasMore=!0,t.mirroring.reset())}))}});media.query=_.extend(media.query,{delegate:wp.media.query}),wp.media.query=media.query;
1
+ "use strict";const languagesList=jQuery(".post_lang_choice"),initializeConfimationModal=()=>{const{__:t}=wp.i18n,a=jQuery("<div/>",{id:"pll-dialog",style:"display:none;"}).text(t("Are you sure you want to change the language of the current content?","polylang"));languagesList.after(a);const e=new Promise(((e,l)=>{const n=t=>{switch(t){case"yes":languagesList.data("old-value",languagesList.children(":selected")[0].value),e();break;case"no":languagesList.val(languagesList.data("old-value")),l("Cancel")}a.dialog("close")};a.dialog({autoOpen:!1,modal:!0,draggable:!1,resizable:!1,title:t("Change language","polylang"),minWidth:600,maxWidth:"100%",classes:{"ui-dialog":"pll-confirmation-modal"},open:function(t,a){jQuery("body").hasClass("rtl")&&jQuery(this).parent().css({right:jQuery(this).parent().css("left"),left:"auto"})},close:function(t,a){n("no")},buttons:[{text:t("OK","polylang"),click:function(t){n("yes")}},{text:t("Cancel","polylang"),click:function(t){n("no")}}]})}));return{dialogContainer:a,dialogResult:e}},initializeLanguageOldValue=()=>{languagesList.attr("data-old-value",languagesList.children(":selected")[0].value)};jQuery((function(t){t.ajaxPrefilter((function(a,e,l){var n=t(".post_lang_choice").val();"string"==typeof a.data&&-1!==a.url.indexOf("action=ajax-tag-search")&&n&&(a.data="lang="+n+"&"+a.data)}))})),jQuery((function(t){tagBox.get=function(a){var e=a.substr(a.indexOf("-")+1),l={action:"get-tagcloud",lang:t(".post_lang_choice").val(),tax:e};t.post(ajaxurl,l,(function(l,n){0!=l&&"success"==n||(l=wpAjax.broken),l=t("<div />").addClass("the-tagcloud").attr("id","tagcloud-"+e).html(l),t("a",l).on("click",(function(){return tagBox.flushTags(t(this).closest(".inside").children(".tagsdiv"),this),!1}));var i=t("#tagcloud-"+e).css("display");i?(t("#tagcloud-"+e).replaceWith(l),t("#tagcloud-"+e).css("display",i)):t("#"+a).after(l)}))}})),jQuery((function(t){var a=new Array;function e(){t(".tr_lang").each((function(){var a=t(this).attr("id").substring(8),e=t(this).parent().parent().siblings(".pll-edit-column");t(this).autocomplete({minLength:0,source:ajaxurl+"?action=pll_posts_not_translated&post_language="+t(".post_lang_choice").val()+"&translation_language="+a+"&post_type="+t("#post_type").val()+"&_pll_nonce="+t("#_pll_nonce").val(),select:function(l,n){t("#htr_lang_"+a).val(n.item.id),e.html(n.item.link)}}),t(this).on("blur",(function(){t(this).val()||(t("#htr_lang_"+a).val(0),e.html(e.siblings(".hidden").children().clone()))}))}))}t(".categorydiv").each((function(){var e,l;(e=t(this).attr("id").split("-")).shift(),l=e.join("-"),a.push(l),t("#"+l+"-add-submit").before(t("<input />").attr("type","hidden").attr("id",l+"-lang").attr("name","term_lang_choice").attr("value",t(".post_lang_choice").val()))})),initializeLanguageOldValue(),t(".post_lang_choice").on("change",(function(l){const n=initializeConfimationModal(),{dialogContainer:i}=n;let{dialogResult:o}=n;const s=l.target;t(this).data("old-value")===s.value||function(){const a=t("input#title").val(),e=t("textarea#content").val(),l=t("textarea#excerpt").val();return!a&&!e&&!l}()?o=Promise.resolve():i.dialog("open"),o.then((()=>{var l=s.options[s.options.selectedIndex].lang,n=t('.pll-translation-column > span[lang="'+l+'"]').attr("dir"),i={action:"post_lang_choice",lang:s.value,post_type:t("#post_type").val(),taxonomies:a,post_id:t("#post_ID").val(),_pll_nonce:t("#_pll_nonce").val()};t.post(ajaxurl,i,(function(a){var i=wpAjax.parseAjaxResponse(a,"ajax-response");t.each(i.responses,(function(){switch(this.what){case"translations":t(".translations").html(this.data),e();break;case"taxonomy":var a=this.data;t("#"+a+"checklist").html(this.supplemental.all),t("#"+a+"checklist-pop").html(this.supplemental.populars),t("#new"+a+"_parent").replaceWith(this.supplemental.dropdown),t("#"+a+"-lang").val(t(".post_lang_choice").val());break;case"pages":t("#parent_id").html(this.data);break;case"flag":t(".pll-select-flag").html(this.data);break;case"permalink":var l=t("#edit-slug-box");"-1"!=this.data&&l.children().length&&l.html(this.data)}})),initializeLanguageOldValue(),t(".tagcloud-link").each((function(){var a=t(this).attr("id");tagBox.get(a)})),t("body").removeClass("pll-dir-rtl").removeClass("pll-dir-ltr").addClass("pll-dir-"+n),t("#content_ifr").contents().find("html").attr("lang",l).attr("dir",n),t("#content_ifr").contents().find("body").attr("dir",n),pll.media.resetAllAttachmentsCollections()}))}),(()=>{}))})),e()}));var pll=window.pll||{};_.extend(pll,{media:{}});var media=_.extend(pll.media,{attachmentsCollections:[],query:function(t){var a=pll.media.query.delegate(t);return pll.media.attachmentsCollections.push(a),a},resetAllAttachmentsCollections:function(){this.attachmentsCollections.forEach((function(t){t.reset(),t.mirroring&&(t.mirroring._hasMore=!0,t.mirroring.reset())}))}});"undefined"!=typeof wp&&void 0!==wp.media&&(media.query=_.extend(media.query,{delegate:wp.media.query}),wp.media.query=media.query);
js/classic-editor.js CHANGED
@@ -291,7 +291,7 @@ var media = _.extend(
291
  * @return {wp.media.model.Attachments}
292
  */
293
  query: function( props ) {
294
- var attachments = pll.media.query.delegate();
295
 
296
  pll.media.attachmentsCollections.push( attachments );
297
 
@@ -318,21 +318,24 @@ var media = _.extend(
318
  }
319
  );
320
 
321
- /**
322
- * @since 3.0
323
- *
324
- * @memberOf pll.media
325
- */
326
- media.query = _.extend(
327
- media.query, /** @lends pll.media.query prototype */
328
- {
329
- /**
330
- * @type Function References WordPress { @see wp.media.query } constructor
331
- */
332
- delegate: wp.media.query
333
- }
334
- )
 
 
335
 
336
- // Substitute WordPress media query shortcut with our decorated function.
337
- wp.media.query = media.query
338
 
 
291
  * @return {wp.media.model.Attachments}
292
  */
293
  query: function( props ) {
294
+ var attachments = pll.media.query.delegate( props );
295
 
296
  pll.media.attachmentsCollections.push( attachments );
297
 
318
  }
319
  );
320
 
321
+ if ( 'undefined' !== typeof wp && 'undefined' !== typeof wp.media ) {
322
+
323
+ /**
324
+ * @since 3.0
325
+ *
326
+ * @memberOf pll.media
327
+ */
328
+ media.query = _.extend(
329
+ media.query, /** @lends pll.media.query prototype */
330
+ {
331
+ /**
332
+ * @type Function References WordPress { @see wp.media.query } constructor
333
+ */
334
+ delegate: wp.media.query
335
+ }
336
+ )
337
 
338
+ // Substitute WordPress media query shortcut with our decorated function.
339
+ wp.media.query = media.query
340
 
341
+ }
js/lib/confirmation-modal.js CHANGED
@@ -2,14 +2,14 @@
2
  * @package Polylang
3
  */
4
 
5
- // We can't use underscore or lodash in this common code because it depends of the context classic or block editor.
6
- // Classic editor underscore is loaded, Block editor lodash is loaded.
7
- const { __ } = wp.i18n;
8
-
9
  const languagesList = jQuery( '.post_lang_choice' );
10
 
11
  // Dialog box for alerting the user about a risky changing.
12
  export const initializeConfimationModal = () => {
 
 
 
 
13
  // Create dialog container.
14
  const dialogContainer = jQuery(
15
  '<div/>',
2
  * @package Polylang
3
  */
4
 
 
 
 
 
5
  const languagesList = jQuery( '.post_lang_choice' );
6
 
7
  // Dialog box for alerting the user about a risky changing.
8
  export const initializeConfimationModal = () => {
9
+ // We can't use underscore or lodash in this common code because it depends of the context classic or block editor.
10
+ // Classic editor underscore is loaded, Block editor lodash is loaded.
11
+ const { __ } = wp.i18n;
12
+
13
  // Create dialog container.
14
  const dialogContainer = jQuery(
15
  '<div/>',
polylang.php CHANGED
@@ -10,7 +10,7 @@
10
  * Plugin Name: Polylang
11
  * Plugin URI: https://polylang.pro
12
  * Description: Adds multilingual capability to WordPress
13
- * Version: 3.0
14
  * Requires at least: 5.1
15
  * Requires PHP: 5.6
16
  * Author: WP SYNTEX
@@ -53,7 +53,7 @@ if ( defined( 'POLYLANG_VERSION' ) ) {
53
  }
54
  } else {
55
  // Go on loading the plugin
56
- define( 'POLYLANG_VERSION', '3.0' );
57
  define( 'PLL_MIN_WP_VERSION', '5.1' );
58
  define( 'PLL_MIN_PHP_VERSION', '5.6' );
59
 
10
  * Plugin Name: Polylang
11
  * Plugin URI: https://polylang.pro
12
  * Description: Adds multilingual capability to WordPress
13
+ * Version: 3.0.1
14
  * Requires at least: 5.1
15
  * Requires PHP: 5.6
16
  * Author: WP SYNTEX
53
  }
54
  } else {
55
  // Go on loading the plugin
56
+ define( 'POLYLANG_VERSION', '3.0.1' );
57
  define( 'PLL_MIN_WP_VERSION', '5.1' );
58
  define( 'PLL_MIN_PHP_VERSION', '5.6' );
59
 
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: multilingual, bilingual, translate, translation, language, multilanguage,
5
  Requires at least: 5.1
6
  Tested up to: 5.7
7
  Requires PHP: 5.6
8
- Stable tag: 3.0
9
  License: GPLv3 or later
10
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
11
 
@@ -78,6 +78,15 @@ Don't hesitate to [give your feedback](http://wordpress.org/support/view/plugin-
78
 
79
  == Changelog ==
80
 
 
 
 
 
 
 
 
 
 
81
  = 3.0 (2021-03-08) =
82
 
83
  * Add compatibility with WordPress 5.7
5
  Requires at least: 5.1
6
  Tested up to: 5.7
7
  Requires PHP: 5.6
8
+ Stable tag: 3.0.1
9
  License: GPLv3 or later
10
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
11
 
78
 
79
  == Changelog ==
80
 
81
+ = 3.0.1 (2021-03-10) =
82
+
83
+ * Fix media gallery messed when editing a post in the classic editor
84
+ * Fix missing script dependency on old WP versions
85
+ * Fix CSS conflict with WooCommerce Bookings for WP < 5.6
86
+ * Fix conflict resulting in '__' already defined in block-editor.js. #779
87
+ * Fix search form removed for some themes. Props Marián Kadaňka. #780
88
+ * Fix fatal error with very old versions of Yoast SEO. Props Nicola Peluchetti. #781
89
+
90
  = 3.0 (2021-03-08) =
91
 
92
  * Add compatibility with WordPress 5.7
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit526218cdfc05347def14cd0ba4a67216::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit5ee0dd77da0f415ad9a86c8a505132ac::getLoader();
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit526218cdfc05347def14cd0ba4a67216
6
  {
7
  private static $loader;
8
 
@@ -22,15 +22,15 @@ class ComposerAutoloaderInit526218cdfc05347def14cd0ba4a67216
22
  return self::$loader;
23
  }
24
 
25
- spl_autoload_register(array('ComposerAutoloaderInit526218cdfc05347def14cd0ba4a67216', 'loadClassLoader'), true, true);
26
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
27
- spl_autoload_unregister(array('ComposerAutoloaderInit526218cdfc05347def14cd0ba4a67216', 'loadClassLoader'));
28
 
29
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
30
  if ($useStaticLoader) {
31
  require_once __DIR__ . '/autoload_static.php';
32
 
33
- call_user_func(\Composer\Autoload\ComposerStaticInit526218cdfc05347def14cd0ba4a67216::getInitializer($loader));
34
  } else {
35
  $map = require __DIR__ . '/autoload_namespaces.php';
36
  foreach ($map as $namespace => $path) {
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit5ee0dd77da0f415ad9a86c8a505132ac
6
  {
7
  private static $loader;
8
 
22
  return self::$loader;
23
  }
24
 
25
+ spl_autoload_register(array('ComposerAutoloaderInit5ee0dd77da0f415ad9a86c8a505132ac', 'loadClassLoader'), true, true);
26
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
27
+ spl_autoload_unregister(array('ComposerAutoloaderInit5ee0dd77da0f415ad9a86c8a505132ac', 'loadClassLoader'));
28
 
29
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
30
  if ($useStaticLoader) {
31
  require_once __DIR__ . '/autoload_static.php';
32
 
33
+ call_user_func(\Composer\Autoload\ComposerStaticInit5ee0dd77da0f415ad9a86c8a505132ac::getInitializer($loader));
34
  } else {
35
  $map = require __DIR__ . '/autoload_namespaces.php';
36
  foreach ($map as $namespace => $path) {
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInit526218cdfc05347def14cd0ba4a67216
8
  {
9
  public static $classMap = array (
10
  'PLL_AS3CF' => __DIR__ . '/../..' . '/integrations/wp-offload-media/as3cf.php',
@@ -131,7 +131,7 @@ class ComposerStaticInit526218cdfc05347def14cd0ba4a67216
131
  public static function getInitializer(ClassLoader $loader)
132
  {
133
  return \Closure::bind(function () use ($loader) {
134
- $loader->classMap = ComposerStaticInit526218cdfc05347def14cd0ba4a67216::$classMap;
135
 
136
  }, null, ClassLoader::class);
137
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit5ee0dd77da0f415ad9a86c8a505132ac
8
  {
9
  public static $classMap = array (
10
  'PLL_AS3CF' => __DIR__ . '/../..' . '/integrations/wp-offload-media/as3cf.php',
131
  public static function getInitializer(ClassLoader $loader)
132
  {
133
  return \Closure::bind(function () use ($loader) {
134
+ $loader->classMap = ComposerStaticInit5ee0dd77da0f415ad9a86c8a505132ac::$classMap;
135
 
136
  }, null, ClassLoader::class);
137
  }