SiteOrigin Widgets Bundle - Version 1.34.0

Version Description

  • 16 May 2022 =
  • Icon: Hide icons from screen readers.
  • Google Maps: Added Custom Marker Icon image size settings.
  • Sliders: Ensured autoplaying YouTube and Vimeo background videos will pause on slide change.
  • Widgets Block: Added HTML anchor support located at Block > Advanced.
  • CSS Cache Compatibility: Added support for LiteSpeed Cache plugin.
Download this release

Release Info

Developer SiteOrigin
Plugin Icon 128x128 SiteOrigin Widgets Bundle
Version 1.34.0
Comparing to
See all releases

Code changes from version 1.33.1 to 1.34.0

base/base.php CHANGED
@@ -107,7 +107,8 @@ function siteorigin_widget_get_icon($icon_value, $icon_styles = false, $title =
107
  }
108
  return '<span class="' . esc_attr( $family_style ) . '" data-sow-icon="' . $unicode . '"
109
  ' . ( ! empty( $icon_styles ) ? 'style="' . implode( '; ', $icon_styles ) . '"' : '' ) . ' '.
110
- ( ! empty( $title ) ? 'title="' . esc_attr( $title ) .'"' : '' ) .'></span>';
 
111
  }
112
  else {
113
  return false;
107
  }
108
  return '<span class="' . esc_attr( $family_style ) . '" data-sow-icon="' . $unicode . '"
109
  ' . ( ! empty( $icon_styles ) ? 'style="' . implode( '; ', $icon_styles ) . '"' : '' ) . ' '.
110
+ ( ! empty( $title ) ? 'title="' . esc_attr( $title ) .'"' : '' ) .'
111
+ aria-hidden="true"></span>';
112
  }
113
  else {
114
  return false;
base/inc/routes/siteorigin-widgets-resource.class.php CHANGED
@@ -4,6 +4,7 @@
4
  */
5
 
6
  class SiteOrigin_Widgets_Resource extends WP_REST_Controller {
 
7
 
8
  public function register_routes() {
9
  $version = '1';
@@ -127,6 +128,10 @@ class SiteOrigin_Widgets_Resource extends WP_REST_Controller {
127
  return true;
128
  }
129
 
 
 
 
 
130
  /**
131
  * Get the collection of widgets.
132
  *
@@ -154,12 +159,21 @@ class SiteOrigin_Widgets_Resource extends WP_REST_Controller {
154
 
155
  if ( $valid_widget_class && ! empty( $widget_data ) ) {
156
  ob_start();
 
 
 
 
 
157
  /* @var $widget SiteOrigin_Widget */
158
  $instance = $widget->update( $widget_data, $widget_data );
159
  $widget->widget( array(), $instance );
160
  $rendered_widget = array();
161
  $rendered_widget['html'] = ob_get_clean();
162
 
 
 
 
 
163
  // Check if this widget loaded any icons, and if it has, store them.
164
  $styles = wp_styles();
165
  if ( ! empty( $styles->queue ) ) {
4
  */
5
 
6
  class SiteOrigin_Widgets_Resource extends WP_REST_Controller {
7
+ var $widgetAnchor;
8
 
9
  public function register_routes() {
10
  $version = '1';
128
  return true;
129
  }
130
 
131
+ function add_widget_id( $id, $instance, $widget ) {
132
+ return $this->widgetAnchor;
133
+ }
134
+
135
  /**
136
  * Get the collection of widgets.
137
  *
159
 
160
  if ( $valid_widget_class && ! empty( $widget_data ) ) {
161
  ob_start();
162
+ // Add anchor to widget wrapper.
163
+ if ( ! empty( $request['anchor'] ) ) {
164
+ $this->widgetAnchor = $request['anchor'];
165
+ add_filter( 'siteorigin_widgets_wrapper_id_' . $widget->id_base, array( $this, 'add_widget_id' ), 10, 3 );
166
+ }
167
  /* @var $widget SiteOrigin_Widget */
168
  $instance = $widget->update( $widget_data, $widget_data );
169
  $widget->widget( array(), $instance );
170
  $rendered_widget = array();
171
  $rendered_widget['html'] = ob_get_clean();
172
 
173
+ if ( ! empty( $request['anchor'] ) ) {
174
+ remove_filter( 'siteorigin_widgets_wrapper_id_' . $widget->id_base, array( $this, 'add_widget_id' ), 10 );
175
+ }
176
+
177
  // Check if this widget loaded any icons, and if it has, store them.
178
  $styles = wp_styles();
179
  if ( ! empty( $styles->queue ) ) {
base/inc/video.php CHANGED
@@ -32,7 +32,7 @@ class SiteOrigin_Video {
32
  *
33
  * @return false|mixed|null|string|string[]
34
  */
35
- function get_video_oembed( $src, $autoplay = false, $related_videos = false, $loop = false ) {
36
  if ( empty( $src ) ) {
37
  return '';
38
  }
@@ -69,6 +69,13 @@ class SiteOrigin_Video {
69
  ), $html );
70
  }
71
 
 
 
 
 
 
 
 
72
  if ( ! empty( $html ) ) {
73
  set_transient( 'sow-vid-embed[' . $hash . ']', $html, 30 * 86400 );
74
  }
@@ -119,4 +126,34 @@ class SiteOrigin_Video {
119
  );
120
  return str_replace( $match[1], $new_url, $match[0] );
121
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
122
  }
32
  *
33
  * @return false|mixed|null|string|string[]
34
  */
35
+ function get_video_oembed( $src, $autoplay = false, $related_videos = false, $loop = false, $js_api = false ) {
36
  if ( empty( $src ) ) {
37
  return '';
38
  }
69
  ), $html );
70
  }
71
 
72
+ if ( $js_api ) {
73
+ $html = preg_replace_callback( '/src=["\'](http[^"\']*)["\']/', array(
74
+ $this,
75
+ 'js_api_callback'
76
+ ), $html );
77
+ }
78
+
79
  if ( ! empty( $html ) ) {
80
  set_transient( 'sow-vid-embed[' . $hash . ']', $html, 30 * 86400 );
81
  }
126
  );
127
  return str_replace( $match[1], $new_url, $match[0] );
128
  }
129
+
130
+ /**
131
+ * The preg_replace callback that oEmbed JS API support.
132
+ *
133
+ * @param $match
134
+ *
135
+ * @return mixed
136
+ */
137
+ function js_api_callback( $match ) {
138
+ if ( strpos( $match[0], 'vimeo' ) ) {
139
+ $js_arg = array(
140
+ 'api' => 'true',
141
+ );
142
+ } else {
143
+ $js_arg = array(
144
+ 'enablejsapi' => 1,
145
+ );
146
+ }
147
+ return str_replace(
148
+ $match[1],
149
+ add_query_arg(
150
+ array(
151
+ $js_arg
152
+ ),
153
+ $match[1]
154
+ ),
155
+ $match[0]
156
+ );
157
+ }
158
+
159
  }
base/inc/widgets/base-slider.class.php CHANGED
@@ -585,7 +585,7 @@ abstract class SiteOrigin_Widget_Base_Slider extends SiteOrigin_Widget {
585
  $video_file = sow_esc_url( $video['url'] );
586
  } else {
587
  echo '<div class="sow-slide-video-oembed" ' . $opacity . '>';
588
- echo $so_video->get_video_oembed( $video['url'], ! empty( $video['autoplay'] ), false, $loop, $opacity );
589
  echo '</div>';
590
  continue;
591
  }
585
  $video_file = sow_esc_url( $video['url'] );
586
  } else {
587
  echo '<div class="sow-slide-video-oembed" ' . $opacity . '>';
588
+ echo $so_video->get_video_oembed( $video['url'], ! empty( $video['autoplay'] ), false, $loop, true );
589
  echo '</div>';
590
  continue;
591
  }
base/siteorigin-widget.class.php CHANGED
@@ -235,12 +235,17 @@ abstract class SiteOrigin_Widget extends WP_Widget {
235
  $this
236
  );
237
  $wrapper_classes = array_map( 'sanitize_html_class', $wrapper_classes );
 
238
 
239
  $wrapper_data_string = $this->get_wrapper_data( $instance );
240
 
241
  do_action( 'siteorigin_widgets_before_widget_' . $this->id_base, $instance, $this );
242
  echo $args['before_widget'];
243
- echo '<div class="' . esc_attr( implode( ' ', $wrapper_classes ) ) . '"' . $wrapper_data_string . '>';
 
 
 
 
244
  echo $template_html;
245
  echo '</div>';
246
  echo $args['after_widget'];
235
  $this
236
  );
237
  $wrapper_classes = array_map( 'sanitize_html_class', $wrapper_classes );
238
+ $wrapper_id = apply_filters( 'siteorigin_widgets_wrapper_id_' . $this->id_base, '', $instance, $this );
239
 
240
  $wrapper_data_string = $this->get_wrapper_data( $instance );
241
 
242
  do_action( 'siteorigin_widgets_before_widget_' . $this->id_base, $instance, $this );
243
  echo $args['before_widget'];
244
+ echo '<div
245
+ ' . ( ! empty( $wrapper_id ) ? 'id="' . esc_attr( $wrapper_id ) . '"' : '' ) . '
246
+ class="' . esc_attr( implode( ' ', $wrapper_classes ) ) . '"
247
+ ' . $wrapper_data_string . '
248
+ >';
249
  echo $template_html;
250
  echo '</div>';
251
  echo $args['after_widget'];
compat/block-editor/widget-block.js CHANGED
@@ -46,12 +46,16 @@
46
 
47
  supports: {
48
  html: false,
 
49
  },
50
 
51
  attributes: {
52
  widgetClass: {
53
  type: 'string',
54
  },
 
 
 
55
  widgetData: {
56
  type: 'object',
57
  },
@@ -97,6 +101,7 @@
97
  xhr.setRequestHeader( 'X-WP-Nonce', sowbBlockEditorAdmin.nonce );
98
  },
99
  data: {
 
100
  widgetClass: props.attributes.widgetClass,
101
  widgetData: widgetData ? widgetData : props.attributes.widgetData || {}
102
  }
46
 
47
  supports: {
48
  html: false,
49
+ anchor: true,
50
  },
51
 
52
  attributes: {
53
  widgetClass: {
54
  type: 'string',
55
  },
56
+ anchor: {
57
+ type: 'string',
58
+ },
59
  widgetData: {
60
  type: 'object',
61
  },
101
  xhr.setRequestHeader( 'X-WP-Nonce', sowbBlockEditorAdmin.nonce );
102
  },
103
  data: {
104
+ anchor: props.attributes.anchor,
105
  widgetClass: props.attributes.widgetClass,
106
  widgetData: widgetData ? widgetData : props.attributes.widgetData || {}
107
  }
compat/block-editor/widget-block.min.js CHANGED
@@ -1 +1 @@
1
- !function(t,e,i,o,n,s,d){var r=o.createElement,a=e.registerBlockType,l=d.BlockControls,w=n.ComboboxControl,g=s.withState,c=n.Toolbar,u=n.ToolbarButton,m=n.Placeholder,b=n.Spinner,p=i.__,v=function(t){var e="";return t.hasOwnProperty("responseJSON")?e=t.responseJSON.message:t.hasOwnProperty("responseText")&&(e=t.responseText),e};a("sowb/widget-block",{title:p("SiteOrigin Widget","so-widgets-bundle"),description:p("Select a SiteOrigin widget from the dropdown.","so-widgets-bundle"),icon:function(){return r("span",{className:"widget-icon so-widget-icon so-block-editor-icon"})},category:"widgets",keywords:[sowbBlockEditorAdmin.widgets.reduce((function(t,e){return t.length>0&&(t+=","),t+e.name}),"")],supports:{html:!1},attributes:{widgetClass:{type:"string"},widgetData:{type:"object"},widgetHtml:{type:"string"},widgetIcons:{type:"array"}},edit:g({editing:!1,formInitialized:!1,previewInitialized:!1,widgetFormHtml:"",widgetSettingsChanged:!1,widgetPreviewHtml:""})((function(t){function e(e=!1){wp.data.dispatch("core/editor").lockPostSaving(),jQuery.post({url:sowbBlockEditorAdmin.restUrl+"sowb/v1/widgets/previews",beforeSend:function(t){t.setRequestHeader("X-WP-Nonce",sowbBlockEditorAdmin.nonce)},data:{widgetClass:t.attributes.widgetClass,widgetData:e||(t.attributes.widgetData||{})}}).done((function(e){t.setState({widgetPreviewHtml:e.html,previewInitialized:!1}),t.setAttributes({widgetHtml:e.html,widgetIcons:e.icons}),wp.data.dispatch("core/editor").unlockPostSaving()})).fail((function(e){t.setState({widgetFormHtml:"<div>"+v(e)+"</div>"})}))}function i(){t.setState({editing:!1,previewInitialized:!1})}if(!t.editing&&t.attributes.widgetClass&&t.attributes.widgetData){var o=!t.loadingWidgets&&!t.editing&&!t.widgetPreviewHtml&&t.attributes.widgetClass&&t.attributes.widgetData;o&&(t.setAttributes({widgetHtml:null,widgetIcons:null}),e());var n=t.widgetPreviewHtml?t.widgetPreviewHtml:"";return[r(l,{key:"controls"},r(c,{label:p("Preview widget.","so-widgets-bundle")},r(u,{className:"components-icon-button components-toolbar__control",label:p("Edit widget.","so-widgets-bundle"),onClick:function(){t.setState({editing:!0,formInitialized:!1})},icon:"edit"}))),r("div",{key:"preview",className:"so-widget-preview-container"},o?r("div",{className:"so-widgets-spinner-container"},r("span",null,r(b))):r("div",{dangerouslySetInnerHTML:{__html:n},ref:function(){t.previewInitialized||(jQuery(window.sowb).trigger("setup_widgets",{preview:!0}),t.setState({previewInitialized:!0}))}}))]}var s=[];sowbBlockEditorAdmin.widgets&&(s=sowbBlockEditorAdmin.widgets.map((function(t){return{value:t.class,label:t.name}})));var d=t.attributes.widgetClass&&!t.widgetFormHtml;d&&jQuery.post({url:sowbBlockEditorAdmin.restUrl+"sowb/v1/widgets/forms",beforeSend:function(t){t.setRequestHeader("X-WP-Nonce",sowbBlockEditorAdmin.nonce)},data:{widgetClass:t.attributes.widgetClass,widgetData:t.attributes.widgetData}}).done((function(e){t.setState({widgetFormHtml:e})})).fail((function(e){t.setState({widgetFormHtml:"<div>"+v(e)+"</div>"})}));var a=t.widgetFormHtml?t.widgetFormHtml:"";return[!!a&&r(l,{key:"controls"},r(c,{label:p("Preview widget.","so-widgets-bundle")},r(u,{className:"components-icon-button components-toolbar__control",label:p("Preview widget.","so-widgets-bundle"),onClick:i,icon:"visibility"}))),r(m,{key:"placeholder",className:"so-widget-placeholder",label:p("SiteOrigin Widget","so-widgets-bundle"),instructions:p("Select the type of widget you want to use:","so-widgets-bundle")},t.loadingWidgets||d?r(b):r("div",{className:"so-widget-block-container"},r(w,{className:"so-widget-autocomplete-field",label:p("Widget type","so-widgets-bundle"),value:t.attributes.widgetClass,onFilterValueChange:function(t){},onChange:function(e){if(""!==e){if(t.widgetSettingsChanged&&!confirm(sowbBlockEditorAdmin.confirmChangeWidget))return!1;t.setAttributes({widgetClass:e,widgetData:null}),t.setState({editing:!0,widgetFormHtml:null,formInitialized:!1,widgetSettingsChanged:!1,widgetPreviewHtml:null,previewInitialized:!1})}},options:s}),r("div",{className:"so-widget-block-form-container",dangerouslySetInnerHTML:{__html:a},ref:function(o){var n=jQuery(o).find(".siteorigin-widget-form-main");n.length>0&&!t.formInitialized&&(n.siblings(".siteorigin-widget-preview").find("> a").on("click",(function(t){t.stopImmediatePropagation(),i()})),n.data("backupDisabled",!0),n.sowSetupForm(),t.attributes.widgetData?sowbForms.setWidgetFormValues(n,t.attributes.widgetData):t.setAttributes({widgetData:sowbForms.getWidgetFormValues(n)}),n.on("change",(function(){t.setState({widgetSettingsChanged:!0,widgetPreviewHtml:null,previewInitialized:!1});var i=sowbForms.getWidgetFormValues(n);t.setAttributes({widgetData:i}),e(i)})),t.setState({formInitialized:!0}))}})))]})),save:function(t){return null}})}(window.wp.editor,window.wp.blocks,window.wp.i18n,window.wp.element,window.wp.components,window.wp.compose,window.wp.blockEditor);
1
+ !function(t,e,i,o,n,s,d){var r=o.createElement,a=e.registerBlockType,l=d.BlockControls,w=n.ComboboxControl,g=s.withState,c=n.Toolbar,u=n.ToolbarButton,m=n.Placeholder,b=n.Spinner,p=i.__,v=function(t){var e="";return t.hasOwnProperty("responseJSON")?e=t.responseJSON.message:t.hasOwnProperty("responseText")&&(e=t.responseText),e};a("sowb/widget-block",{title:p("SiteOrigin Widget","so-widgets-bundle"),description:p("Select a SiteOrigin widget from the dropdown.","so-widgets-bundle"),icon:function(){return r("span",{className:"widget-icon so-widget-icon so-block-editor-icon"})},category:"widgets",keywords:[sowbBlockEditorAdmin.widgets.reduce((function(t,e){return t.length>0&&(t+=","),t+e.name}),"")],supports:{html:!1,anchor:!0},attributes:{widgetClass:{type:"string"},anchor:{type:"string"},widgetData:{type:"object"},widgetHtml:{type:"string"},widgetIcons:{type:"array"}},edit:g({editing:!1,formInitialized:!1,previewInitialized:!1,widgetFormHtml:"",widgetSettingsChanged:!1,widgetPreviewHtml:""})((function(t){function e(e=!1){wp.data.dispatch("core/editor").lockPostSaving(),jQuery.post({url:sowbBlockEditorAdmin.restUrl+"sowb/v1/widgets/previews",beforeSend:function(t){t.setRequestHeader("X-WP-Nonce",sowbBlockEditorAdmin.nonce)},data:{anchor:t.attributes.anchor,widgetClass:t.attributes.widgetClass,widgetData:e||(t.attributes.widgetData||{})}}).done((function(e){t.setState({widgetPreviewHtml:e.html,previewInitialized:!1}),t.setAttributes({widgetHtml:e.html,widgetIcons:e.icons}),wp.data.dispatch("core/editor").unlockPostSaving()})).fail((function(e){t.setState({widgetFormHtml:"<div>"+v(e)+"</div>"})}))}function i(){t.setState({editing:!1,previewInitialized:!1})}if(!t.editing&&t.attributes.widgetClass&&t.attributes.widgetData){var o=!t.loadingWidgets&&!t.editing&&!t.widgetPreviewHtml&&t.attributes.widgetClass&&t.attributes.widgetData;o&&(t.setAttributes({widgetHtml:null,widgetIcons:null}),e());var n=t.widgetPreviewHtml?t.widgetPreviewHtml:"";return[r(l,{key:"controls"},r(c,{label:p("Preview widget.","so-widgets-bundle")},r(u,{className:"components-icon-button components-toolbar__control",label:p("Edit widget.","so-widgets-bundle"),onClick:function(){t.setState({editing:!0,formInitialized:!1})},icon:"edit"}))),r("div",{key:"preview",className:"so-widget-preview-container"},o?r("div",{className:"so-widgets-spinner-container"},r("span",null,r(b))):r("div",{dangerouslySetInnerHTML:{__html:n},ref:function(){t.previewInitialized||(jQuery(window.sowb).trigger("setup_widgets",{preview:!0}),t.setState({previewInitialized:!0}))}}))]}var s=[];sowbBlockEditorAdmin.widgets&&(s=sowbBlockEditorAdmin.widgets.map((function(t){return{value:t.class,label:t.name}})));var d=t.attributes.widgetClass&&!t.widgetFormHtml;d&&jQuery.post({url:sowbBlockEditorAdmin.restUrl+"sowb/v1/widgets/forms",beforeSend:function(t){t.setRequestHeader("X-WP-Nonce",sowbBlockEditorAdmin.nonce)},data:{widgetClass:t.attributes.widgetClass,widgetData:t.attributes.widgetData}}).done((function(e){t.setState({widgetFormHtml:e})})).fail((function(e){t.setState({widgetFormHtml:"<div>"+v(e)+"</div>"})}));var a=t.widgetFormHtml?t.widgetFormHtml:"";return[!!a&&r(l,{key:"controls"},r(c,{label:p("Preview widget.","so-widgets-bundle")},r(u,{className:"components-icon-button components-toolbar__control",label:p("Preview widget.","so-widgets-bundle"),onClick:i,icon:"visibility"}))),r(m,{key:"placeholder",className:"so-widget-placeholder",label:p("SiteOrigin Widget","so-widgets-bundle"),instructions:p("Select the type of widget you want to use:","so-widgets-bundle")},t.loadingWidgets||d?r(b):r("div",{className:"so-widget-block-container"},r(w,{className:"so-widget-autocomplete-field",label:p("Widget type","so-widgets-bundle"),value:t.attributes.widgetClass,onFilterValueChange:function(t){},onChange:function(e){if(""!==e){if(t.widgetSettingsChanged&&!confirm(sowbBlockEditorAdmin.confirmChangeWidget))return!1;t.setAttributes({widgetClass:e,widgetData:null}),t.setState({editing:!0,widgetFormHtml:null,formInitialized:!1,widgetSettingsChanged:!1,widgetPreviewHtml:null,previewInitialized:!1})}},options:s}),r("div",{className:"so-widget-block-form-container",dangerouslySetInnerHTML:{__html:a},ref:function(o){var n=jQuery(o).find(".siteorigin-widget-form-main");n.length>0&&!t.formInitialized&&(n.siblings(".siteorigin-widget-preview").find("> a").on("click",(function(t){t.stopImmediatePropagation(),i()})),n.data("backupDisabled",!0),n.sowSetupForm(),t.attributes.widgetData?sowbForms.setWidgetFormValues(n,t.attributes.widgetData):t.setAttributes({widgetData:sowbForms.getWidgetFormValues(n)}),n.on("change",(function(){t.setState({widgetSettingsChanged:!0,widgetPreviewHtml:null,previewInitialized:!1});var i=sowbForms.getWidgetFormValues(n);t.setAttributes({widgetData:i}),e(i)})),t.setState({formInitialized:!0}))}})))]})),save:function(t){return null}})}(window.wp.editor,window.wp.blocks,window.wp.i18n,window.wp.element,window.wp.components,window.wp.compose,window.wp.blockEditor);
compat/block-editor/widget-block.php CHANGED
@@ -1,6 +1,7 @@
1
  <?php
2
 
3
  class SiteOrigin_Widgets_Bundle_Widget_Block {
 
4
  /**
5
  * Get the singleton instance
6
  *
@@ -58,7 +59,7 @@ class SiteOrigin_Widgets_Bundle_Widget_Block {
58
  $widget_class = end( $classes );
59
  // For SiteOrigin widgets, just display the widget's name. For third party widgets, display the Author
60
  // to try avoid confusion when the widgets have the same name.
61
- if ( ! empty( $widget['Author'] ) && $widget['Author'] != 'SiteOrigin' && strpos( $widget['Name'], $widget['Author'] ) === false ) {
62
  $widget_name = sprintf( __( '%s by %s', 'so-widgets-bundle' ), $widget['Name'], $widget['Author'] );
63
  } else {
64
  $widget_name = $widget['Name'];
@@ -127,6 +128,10 @@ class SiteOrigin_Widgets_Bundle_Widget_Block {
127
  $so_widgets_bundle->enqueue_registered_widgets_scripts();
128
  }
129
 
 
 
 
 
130
  public function render_widget_block( $attributes ) {
131
  if ( empty( $attributes['widgetClass'] ) ) {
132
  return '<div>'.
@@ -134,8 +139,8 @@ class SiteOrigin_Widgets_Bundle_Widget_Block {
134
  '</div>';
135
  }
136
 
137
- $widget_class = $attributes['widgetClass'];
138
 
 
139
  global $wp_widget_factory;
140
 
141
  $widget = ! empty( $wp_widget_factory->widgets[ $widget_class ] ) ? $wp_widget_factory->widgets[ $widget_class ] : false;
@@ -156,8 +161,9 @@ class SiteOrigin_Widgets_Bundle_Widget_Block {
156
  $GLOBALS['SITEORIGIN_WIDGET_BLOCK_RENDER'] = true;
157
  $instance = $attributes['widgetData'];
158
  add_filter( 'siteorigin_widgets_wrapper_classes_' . $widget->id_base, $add_custom_class_name );
159
- ob_start();
160
 
 
 
161
  // If we have pre-generated widgetHTML or there's a valid $_POST, generate the widget.
162
  // We don't show the pre-generated widget when there's a valid $_POST
163
  // as widgets will likely change when that happens.
@@ -182,6 +188,11 @@ class SiteOrigin_Widgets_Bundle_Widget_Block {
182
  )
183
  )
184
  ) {
 
 
 
 
 
185
  /* @var $widget SiteOrigin_Widget */
186
  $instance = $widget->update( $instance, $instance );
187
  $widget->widget( array(
@@ -190,6 +201,10 @@ class SiteOrigin_Widgets_Bundle_Widget_Block {
190
  'before_title' => '<h3 class="widget-title">',
191
  'after_title' => '</h3>',
192
  ), $instance );
 
 
 
 
193
  } else {
194
  $widget->generate_and_enqueue_instance_styles( $instance );
195
  $widget->enqueue_frontend_scripts( $instance );
1
  <?php
2
 
3
  class SiteOrigin_Widgets_Bundle_Widget_Block {
4
+ var $widgetAnchor;
5
  /**
6
  * Get the singleton instance
7
  *
59
  $widget_class = end( $classes );
60
  // For SiteOrigin widgets, just display the widget's name. For third party widgets, display the Author
61
  // to try avoid confusion when the widgets have the same name.
62
+ if ( $widget['Author'] != 'SiteOrigin' && strpos( $widget['Name'], $widget['Author'] ) === false ) {
63
  $widget_name = sprintf( __( '%s by %s', 'so-widgets-bundle' ), $widget['Name'], $widget['Author'] );
64
  } else {
65
  $widget_name = $widget['Name'];
128
  $so_widgets_bundle->enqueue_registered_widgets_scripts();
129
  }
130
 
131
+ function add_widget_id( $id, $instance, $widget ) {
132
+ return $this->widgetAnchor;
133
+ }
134
+
135
  public function render_widget_block( $attributes ) {
136
  if ( empty( $attributes['widgetClass'] ) ) {
137
  return '<div>'.
139
  '</div>';
140
  }
141
 
 
142
 
143
+ $widget_class = $attributes['widgetClass'];
144
  global $wp_widget_factory;
145
 
146
  $widget = ! empty( $wp_widget_factory->widgets[ $widget_class ] ) ? $wp_widget_factory->widgets[ $widget_class ] : false;
161
  $GLOBALS['SITEORIGIN_WIDGET_BLOCK_RENDER'] = true;
162
  $instance = $attributes['widgetData'];
163
  add_filter( 'siteorigin_widgets_wrapper_classes_' . $widget->id_base, $add_custom_class_name );
 
164
 
165
+
166
+ ob_start();
167
  // If we have pre-generated widgetHTML or there's a valid $_POST, generate the widget.
168
  // We don't show the pre-generated widget when there's a valid $_POST
169
  // as widgets will likely change when that happens.
188
  )
189
  )
190
  ) {
191
+ // Add anchor to widget wrapper.
192
+ if ( ! empty( $attributes['anchor'] ) ) {
193
+ $this->widgetAnchor = $attributes['anchor'];
194
+ add_filter( 'siteorigin_widgets_wrapper_id_' . $widget->id_base, array( $this, 'add_widget_id' ), 10, 3 );
195
+ }
196
  /* @var $widget SiteOrigin_Widget */
197
  $instance = $widget->update( $instance, $instance );
198
  $widget->widget( array(
201
  'before_title' => '<h3 class="widget-title">',
202
  'after_title' => '</h3>',
203
  ), $instance );
204
+
205
+ if ( ! empty( $attributes['anchor'] ) ) {
206
+ remove_filter( 'siteorigin_widgets_wrapper_id_' . $widget->id_base, array( $this, 'add_widget_id' ), 10 );
207
+ }
208
  } else {
209
  $widget->generate_and_enqueue_instance_styles( $instance );
210
  $widget->enqueue_frontend_scripts( $instance );
compat/compat.php CHANGED
@@ -73,7 +73,6 @@ class SiteOrigin_Widgets_Bundle_Compatibility {
73
  }
74
  }
75
 
76
-
77
  /**
78
  * Tell cache plugins that they need to regenerate a page cache.
79
  *
@@ -102,6 +101,13 @@ class SiteOrigin_Widgets_Bundle_Compatibility {
102
  if ( function_exists( 'breeze_varnish_purge_cache' ) ) {
103
  breeze_varnish_purge_cache( get_the_permalink( $id ) );
104
  }
 
 
 
 
 
 
 
105
  }
106
  }
107
 
@@ -124,6 +130,10 @@ class SiteOrigin_Widgets_Bundle_Compatibility {
124
  if ( class_exists( 'Breeze_PurgeCache' ) ) {
125
  Breeze_PurgeCache::breeze_cache_flush();
126
  }
 
 
 
 
127
  }
128
 
129
  }
73
  }
74
  }
75
 
 
76
  /**
77
  * Tell cache plugins that they need to regenerate a page cache.
78
  *
101
  if ( function_exists( 'breeze_varnish_purge_cache' ) ) {
102
  breeze_varnish_purge_cache( get_the_permalink( $id ) );
103
  }
104
+
105
+ if ( function_exists( 'run_litespeed_cache' ) ) {
106
+ $url = parse_url( get_the_permalink( $id ) );
107
+ if ( ! empty( $url ) ) {
108
+ header( 'x-litespeed-purge: ' . $url['path'] );
109
+ }
110
+ }
111
  }
112
  }
113
 
130
  if ( class_exists( 'Breeze_PurgeCache' ) ) {
131
  Breeze_PurgeCache::breeze_cache_flush();
132
  }
133
+
134
+ if ( function_exists( 'run_litespeed_cache' ) ) {
135
+ header( 'x-litespeed-purge: *' );
136
+ }
137
  }
138
 
139
  }
js/slider/jquery.slider.js CHANGED
@@ -10,6 +10,13 @@ sowb.SiteOriginSlider = function($) {
10
  this.play();
11
  }
12
  });
 
 
 
 
 
 
 
13
  },
14
 
15
  pauseSlideVideo: function(el) {
@@ -18,6 +25,13 @@ sowb.SiteOriginSlider = function($) {
18
  this.pause();
19
  }
20
  });
 
 
 
 
 
 
 
21
  },
22
 
23
  setupActiveSlide: function(slider, newActive, speed){
10
  this.play();
11
  }
12
  });
13
+ var embed = $( el ).find( '.sow-slide-video-oembed iframe' );
14
+ if ( embed.length ) {
15
+ // Vimeo
16
+ embed[0].contentWindow.postMessage( '{"method":"play"}', "*" );
17
+ // YouTube
18
+ embed[0].contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}', '*')
19
+ }
20
  },
21
 
22
  pauseSlideVideo: function(el) {
25
  this.pause();
26
  }
27
  });
28
+ var embed = $( el ).find( '.sow-slide-video-oembed iframe' );
29
+ if ( embed.length ) {
30
+ // Vimeo
31
+ embed[0].contentWindow.postMessage( '{"method":"pause"}', "*" );
32
+ // YouTube
33
+ embed[0].contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}', '*')
34
+ }
35
  },
36
 
37
  setupActiveSlide: function(slider, newActive, speed){
js/slider/jquery.slider.min.js CHANGED
@@ -1 +1 @@
1
- var sowb=window.sowb||{};sowb.SiteOriginSlider=function(e){return{playSlideVideo:function(i){e(i).find("video").each((function(){void 0!==this.play&&this.play()}))},pauseSlideVideo:function(i){e(i).find("video").each((function(){void 0!==this.pause&&this.pause()}))},setupActiveSlide:function(i,t,s){var o=e(i).find(".cycle-sentinel"),n=e(t),a=n.find("video.sow-background-element"),d=e(i).prev();if(void 0===s?o.css("height",n.outerHeight()+"px"):o.animate({height:n.outerHeight()},s),d.length){e(i).find(".sow-slider-image > video").prop("muted",!0);var l=n.find("> video");if(l.length){d.clearQueue().fadeIn(s);var r=d.siblings(".sow-slider-images").data("settings");l.hasClass("sow-player-unmuted")?(l.prop("muted",!1),d.addClass("sow-player-unmuted"),d.attr("aria-label",r.muteLoc)):(d.removeClass("sow-player-unmuted"),d.attr("aria-label",r.unmuteLoc))}else d.clearQueue().fadeOut(s)}a.length&&(n.outerWidth()/n.outerHeight()>a.outerWidth()/a.outerHeight()?a.css({width:"100%",height:"auto"}):a.css({width:"auto",height:"100%"}),a.css({"margin-left":-Math.ceil(a.width()/2),"margin-top":-Math.ceil(a.height()/2)}))}}},jQuery((function(e){sowb.setupSliders=sowb.setupSlider=function(){var i=new sowb.SiteOriginSlider(e);e(".sow-slider-images").each((function(){var t=e(this);if(t.data("initialized"))return t;var s=t.siblings(".sow-slider-pagination"),o=t.closest(".sow-slider-base"),n=o.find(".sow-slide-nav"),a=t.find(".sow-slider-image"),d=t.data("settings");d.breakpoint&&e(window).on("load resize",(function(){window.matchMedia("(max-width: "+d.breakpoint+")").matches?o.addClass("sow-slider-is-mobile"):o.removeClass("sow-slider-is-mobile")})),a.each((function(i,t){var s=e(t),o=s.data("url");void 0!==o&&o.hasOwnProperty("url")&&(s.on("click",(function(e){e.preventDefault(),window.open(o.url,o.hasOwnProperty("new_window")&&o.new_window?"_blank":"_self").opener=null})),s.find("a").on("click",(function(e){e.stopPropagation()})))}));var l=function(){var r=t.closest(".so-widget-fittext-wrapper");if(r.length>0&&!r.data("fitTextDone"))r.on("fitTextDone",(function(){l()}));else{o.show();var c=function(){t.find(".sow-slider-image").each((function(){var i=e(this);i.css("height",i.find(".sow-slider-image-wrapper").outerHeight()+"px")}))};if(e(window).on("resize panelsStretchRows",c).trigger("resize"),e(sowb).on("setup_widgets",c),t.on({"cycle-after":function(t,s,o,n,a){var d=e(this);i.playSlideVideo(n),i.setupActiveSlide(d,n),e(n).trigger("sowSlideCycleAfter")},"cycle-before":function(t,o,n,a,d){var l=e(this);s.find("> li").removeClass("sow-active").eq(o.slideNum-1).addClass("sow-active"),i.pauseSlideVideo(n),i.setupActiveSlide(l,a,o.speed),e(a).trigger("sowSlideCycleBefore")},"cycle-initialized":function(o,a){i.playSlideVideo(e(this).find(".cycle-slide-active")),i.setupActiveSlide(t,a.slides[0]),s.find(">li").removeClass("sow-active").eq(0).addClass("sow-active"),e(this).find(".cycle-slide-active").trigger("sowSlideInitial"),a.slideCount<=1&&(s.hide(),n.hide()),e(window).trigger("resize"),setTimeout((function(){c(),i.setupActiveSlide(t,a.slides[0]),t.find(".cycle-sentinel").empty()}),200)}}).cycle({slides:"> .sow-slider-image",speed:d.speed,timeout:d.timeout,swipe:d.swipe,paused:d.paused,pauseOnHover:d.pause_on_hover,"swipe-fx":"scrollHorz",log:!1}),t.find("video.sow-background-element").on("loadeddata",(function(){i.setupActiveSlide(t,t.find(".cycle-slide-active"))})),s.add(n).hide(),a.length>1)if(o.hasClass("sow-slider-is-mobile"))d.nav_always_show_mobile&&window.matchMedia("(max-width: "+d.breakpoint+")").matches&&(s.show(),n.show());else if(d.nav_always_show_desktop&&window.matchMedia("(min-width: "+d.breakpoint+")").matches)s.show(),n.show();else{var u=!1;o.on("mouseenter",(function(){s.add(n).clearQueue().fadeIn(150),u=!1})).on("mouseleave",(function(){u=!0,setTimeout((function(){u&&s.add(n).clearQueue().fadeOut(150),u=!1}),750)}))}var w=function(){i.setupActiveSlide(t,t.find(".cycle-slide-active"))};e(window).on("resize",w),e(sowb).on("setup_widgets",w),s.find("> li > a").on("click",(function(i){i.preventDefault(),t.cycle("goto",e(this).data("goto"))})),n.find("> a").on("click",(function(i){i.preventDefault(),t.cycle(e(this).data("action"))})),o.on("keydown",(function(e){37===e.which?t.cycle("prev"):39===e.which&&t.cycle("next")})),d.unmute&&o.find(".sow-player-controls-sound").on("click",(function(){var i=e(this),t=i.next().find(".cycle-slide-active > video");t.prop("muted",!t.prop("muted")),t.prop("muted")?(i.removeClass("sow-player-unmuted"),t.removeClass("sow-player-muted"),i.attr("aria-label",d.unmuteLoc)):(i.addClass("sow-player-unmuted"),t.addClass("sow-player-unmuted"),i.attr("aria-label",d.muteLoc))}))}},r=t.find("img.sow-slider-background-image, img.sow-slider-foreground-image"),c=0,u=!1;r.each((function(){e(this);this.complete?c++:e(this).one("load",(function(){++c!==r.length||u||(l(),u=!0)})).attr("src",e(this).attr("src")),c!==r.length||u||(l(),u=!0)})),0===r.length&&l(),t.data("initialized",!0)}))},sowb.setupSliders(),e(sowb).on("setup_widgets",sowb.setupSliders)})),window.sowb=sowb;
1
+ var sowb=window.sowb||{};sowb.SiteOriginSlider=function(e){return{playSlideVideo:function(i){e(i).find("video").each((function(){void 0!==this.play&&this.play()}));var t=e(i).find(".sow-slide-video-oembed iframe");t.length&&(t[0].contentWindow.postMessage('{"method":"play"}',"*"),t[0].contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*"))},pauseSlideVideo:function(i){e(i).find("video").each((function(){void 0!==this.pause&&this.pause()}));var t=e(i).find(".sow-slide-video-oembed iframe");t.length&&(t[0].contentWindow.postMessage('{"method":"pause"}',"*"),t[0].contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*"))},setupActiveSlide:function(i,t,s){var o=e(i).find(".cycle-sentinel"),n=e(t),a=n.find("video.sow-background-element"),d=e(i).prev();if(void 0===s?o.css("height",n.outerHeight()+"px"):o.animate({height:n.outerHeight()},s),d.length){e(i).find(".sow-slider-image > video").prop("muted",!0);var l=n.find("> video");if(l.length){d.clearQueue().fadeIn(s);var r=d.siblings(".sow-slider-images").data("settings");l.hasClass("sow-player-unmuted")?(l.prop("muted",!1),d.addClass("sow-player-unmuted"),d.attr("aria-label",r.muteLoc)):(d.removeClass("sow-player-unmuted"),d.attr("aria-label",r.unmuteLoc))}else d.clearQueue().fadeOut(s)}a.length&&(n.outerWidth()/n.outerHeight()>a.outerWidth()/a.outerHeight()?a.css({width:"100%",height:"auto"}):a.css({width:"auto",height:"100%"}),a.css({"margin-left":-Math.ceil(a.width()/2),"margin-top":-Math.ceil(a.height()/2)}))}}},jQuery((function(e){sowb.setupSliders=sowb.setupSlider=function(){var i=new sowb.SiteOriginSlider(e);e(".sow-slider-images").each((function(){var t=e(this);if(t.data("initialized"))return t;var s=t.siblings(".sow-slider-pagination"),o=t.closest(".sow-slider-base"),n=o.find(".sow-slide-nav"),a=t.find(".sow-slider-image"),d=t.data("settings");d.breakpoint&&e(window).on("load resize",(function(){window.matchMedia("(max-width: "+d.breakpoint+")").matches?o.addClass("sow-slider-is-mobile"):o.removeClass("sow-slider-is-mobile")})),a.each((function(i,t){var s=e(t),o=s.data("url");void 0!==o&&o.hasOwnProperty("url")&&(s.on("click",(function(e){e.preventDefault(),window.open(o.url,o.hasOwnProperty("new_window")&&o.new_window?"_blank":"_self").opener=null})),s.find("a").on("click",(function(e){e.stopPropagation()})))}));var l=function(){var r=t.closest(".so-widget-fittext-wrapper");if(r.length>0&&!r.data("fitTextDone"))r.on("fitTextDone",(function(){l()}));else{o.show();var c=function(){t.find(".sow-slider-image").each((function(){var i=e(this);i.css("height",i.find(".sow-slider-image-wrapper").outerHeight()+"px")}))};if(e(window).on("resize panelsStretchRows",c).trigger("resize"),e(sowb).on("setup_widgets",c),t.on({"cycle-after":function(t,s,o,n,a){var d=e(this);i.playSlideVideo(n),i.setupActiveSlide(d,n),e(n).trigger("sowSlideCycleAfter")},"cycle-before":function(t,o,n,a,d){var l=e(this);s.find("> li").removeClass("sow-active").eq(o.slideNum-1).addClass("sow-active"),i.pauseSlideVideo(n),i.setupActiveSlide(l,a,o.speed),e(a).trigger("sowSlideCycleBefore")},"cycle-initialized":function(o,a){i.playSlideVideo(e(this).find(".cycle-slide-active")),i.setupActiveSlide(t,a.slides[0]),s.find(">li").removeClass("sow-active").eq(0).addClass("sow-active"),e(this).find(".cycle-slide-active").trigger("sowSlideInitial"),a.slideCount<=1&&(s.hide(),n.hide()),e(window).trigger("resize"),setTimeout((function(){c(),i.setupActiveSlide(t,a.slides[0]),t.find(".cycle-sentinel").empty()}),200)}}).cycle({slides:"> .sow-slider-image",speed:d.speed,timeout:d.timeout,swipe:d.swipe,paused:d.paused,pauseOnHover:d.pause_on_hover,"swipe-fx":"scrollHorz",log:!1}),t.find("video.sow-background-element").on("loadeddata",(function(){i.setupActiveSlide(t,t.find(".cycle-slide-active"))})),s.add(n).hide(),a.length>1)if(o.hasClass("sow-slider-is-mobile"))d.nav_always_show_mobile&&window.matchMedia("(max-width: "+d.breakpoint+")").matches&&(s.show(),n.show());else if(d.nav_always_show_desktop&&window.matchMedia("(min-width: "+d.breakpoint+")").matches)s.show(),n.show();else{var u=!1;o.on("mouseenter",(function(){s.add(n).clearQueue().fadeIn(150),u=!1})).on("mouseleave",(function(){u=!0,setTimeout((function(){u&&s.add(n).clearQueue().fadeOut(150),u=!1}),750)}))}var w=function(){i.setupActiveSlide(t,t.find(".cycle-slide-active"))};e(window).on("resize",w),e(sowb).on("setup_widgets",w),s.find("> li > a").on("click",(function(i){i.preventDefault(),t.cycle("goto",e(this).data("goto"))})),n.find("> a").on("click",(function(i){i.preventDefault(),t.cycle(e(this).data("action"))})),o.on("keydown",(function(e){37===e.which?t.cycle("prev"):39===e.which&&t.cycle("next")})),d.unmute&&o.find(".sow-player-controls-sound").on("click",(function(){var i=e(this),t=i.next().find(".cycle-slide-active > video");t.prop("muted",!t.prop("muted")),t.prop("muted")?(i.removeClass("sow-player-unmuted"),t.removeClass("sow-player-muted"),i.attr("aria-label",d.unmuteLoc)):(i.addClass("sow-player-unmuted"),t.addClass("sow-player-unmuted"),i.attr("aria-label",d.muteLoc))}))}},r=t.find("img.sow-slider-background-image, img.sow-slider-foreground-image"),c=0,u=!1;r.each((function(){e(this);this.complete?c++:e(this).one("load",(function(){++c!==r.length||u||(l(),u=!0)})).attr("src",e(this).attr("src")),c!==r.length||u||(l(),u=!0)})),0===r.length&&l(),t.data("initialized",!0)}))},sowb.setupSliders(),e(sowb).on("setup_widgets",sowb.setupSliders)})),window.sowb=sowb;
lang/so-widgets-bundle.pot CHANGED
@@ -40,7 +40,7 @@ msgstr ""
40
  msgid "Invalid request."
41
  msgstr ""
42
 
43
- #: so-widgets-bundle.php:391, so-widgets-bundle.php:414, so-widgets-bundle.php:457, base/inc/routes/siteorigin-widgets-resource.class.php:55
44
  msgid "Insufficient permissions."
45
  msgstr ""
46
 
@@ -76,43 +76,43 @@ msgstr ""
76
  msgid "Addons"
77
  msgstr ""
78
 
79
- #: base/siteorigin-widget.class.php:516
80
  msgid "Preview"
81
  msgstr ""
82
 
83
- #: base/siteorigin-widget.class.php:521
84
  msgid "Help"
85
  msgstr ""
86
 
87
- #: base/siteorigin-widget.class.php:591
88
  msgid "This widget has scripts and styles that need to be loaded before you can use it. Please save and reload your current page."
89
  msgstr ""
90
 
91
- #: base/siteorigin-widget.class.php:592
92
  msgid "You will only need to do this once."
93
  msgstr ""
94
 
95
- #: base/siteorigin-widget.class.php:619
96
  msgid "Are you sure?"
97
  msgstr ""
98
 
99
- #: base/siteorigin-widget.class.php:621
100
  msgid "There is a newer version of this widget's content available."
101
  msgstr ""
102
 
103
- #: base/siteorigin-widget.class.php:622, base/siteorigin-widget.class.php:626
104
  msgid "Restore"
105
  msgstr ""
106
 
107
- #: base/siteorigin-widget.class.php:623
108
  msgid "Dismiss"
109
  msgstr ""
110
 
111
- #: base/siteorigin-widget.class.php:625
112
  msgid "Clicking %s will replace the current widget contents. You can revert by refreshing the page before updating."
113
  msgstr ""
114
 
115
- #: base/siteorigin-widget.class.php:676, base/inc/actions.php:53
116
  msgid "Widget Preview"
117
  msgstr ""
118
 
@@ -156,7 +156,7 @@ msgstr ""
156
  msgid "Filter Widgets"
157
  msgstr ""
158
 
159
- #: admin/tpl/admin.php:17, widgets/google-map/google-map.php:358, base/inc/fields/posts.class.php:23
160
  msgid "All"
161
  msgstr ""
162
 
@@ -232,7 +232,7 @@ msgstr ""
232
  msgid "Clear"
233
  msgstr ""
234
 
235
- #: compat/beaver-builder/beaver-builder.php:68, widgets/google-map/google-map.php:290, widgets/image/image.php:48, widgets/image/image.php:60, base/inc/fields/posts.class.php:141
236
  msgid "Default"
237
  msgstr ""
238
 
@@ -244,19 +244,19 @@ msgstr ""
244
  msgid "Current Color"
245
  msgstr ""
246
 
247
- #: compat/block-editor/widget-block.php:62, compat/block-editor/widget-block.php:97
248
  msgid "%s by %s"
249
  msgstr ""
250
 
251
- #: compat/block-editor/widget-block.php:117, compat/visual-composer/visual-composer.php:77
252
  msgid "Selecting a different widget will revert any changes. Continue?"
253
  msgstr ""
254
 
255
- #: compat/block-editor/widget-block.php:133
256
  msgid "You need to select a widget type before you'll see anything here. :)"
257
  msgstr ""
258
 
259
- #: compat/block-editor/widget-block.php:216
260
  msgid "Invalid widget class %s. Please make sure the widget has been activated in %sSiteOrigin Widgets%s."
261
  msgstr ""
262
 
@@ -404,7 +404,7 @@ msgstr ""
404
  msgid "Font size"
405
  msgstr ""
406
 
407
- #: widgets/anything-carousel/anything-carousel.php:103, widgets/contact/contact.php:400, widgets/contact/contact.php:524, widgets/contact/contact.php:693, widgets/features/features.php:154, widgets/features/features.php:175, widgets/features/features.php:196, widgets/google-map/google-map.php:368, widgets/headline/headline.php:80, widgets/headline/headline.php:161, widgets/headline/headline.php:231, widgets/icon/icon.php:36, widgets/taxonomy/taxonomy.php:56, base/inc/widgets/base-carousel.class.php:382
408
  msgid "Color"
409
  msgstr ""
410
 
@@ -1040,7 +1040,7 @@ msgstr ""
1040
  msgid "Field descriptions"
1041
  msgstr ""
1042
 
1043
- #: widgets/contact/contact.php:529, widgets/contact/contact.php:676, widgets/google-map/google-map.php:321, widgets/headline/headline.php:215
1044
  msgid "Style"
1045
  msgstr ""
1046
 
@@ -1213,7 +1213,7 @@ msgstr ""
1213
  msgid "Button align"
1214
  msgstr ""
1215
 
1216
- #: widgets/cta/cta.php:109, widgets/google-map/google-map.php:498, widgets/hero/hero.php:79, widgets/hero/hero.php:91
1217
  msgid "Button"
1218
  msgstr ""
1219
 
@@ -1497,346 +1497,354 @@ msgstr ""
1497
  msgid "Replaces the default map marker with your own image."
1498
  msgstr ""
1499
 
1500
- #: widgets/google-map/google-map.php:223
1501
- msgid "Draggable markers"
1502
  msgstr ""
1503
 
1504
  #: widgets/google-map/google-map.php:227
 
 
 
 
1505
  msgid "Marker positions"
1506
  msgstr ""
1507
 
1508
- #: widgets/google-map/google-map.php:228
1509
  msgid "Marker"
1510
  msgstr ""
1511
 
1512
- #: widgets/google-map/google-map.php:238
1513
  msgid "Place"
1514
  msgstr ""
1515
 
1516
- #: widgets/google-map/google-map.php:243
1517
  msgid "Info Window Content"
1518
  msgstr ""
1519
 
1520
- #: widgets/google-map/google-map.php:247
1521
  msgid "Info Window max width"
1522
  msgstr ""
1523
 
1524
- #: widgets/google-map/google-map.php:252
1525
  msgid "Custom Marker icon"
1526
  msgstr ""
1527
 
1528
- #: widgets/google-map/google-map.php:253
1529
  msgid "Replace the default map marker with your own image for each marker."
1530
  msgstr ""
1531
 
1532
- #: widgets/google-map/google-map.php:259
 
 
 
 
1533
  msgid "When should Info Windows be displayed?"
1534
  msgstr ""
1535
 
1536
- #: widgets/google-map/google-map.php:262
1537
  msgid "Click"
1538
  msgstr ""
1539
 
1540
- #: widgets/google-map/google-map.php:263
1541
  msgid "Mouse over"
1542
  msgstr ""
1543
 
1544
- #: widgets/google-map/google-map.php:264
1545
  msgid "Always"
1546
  msgstr ""
1547
 
1548
- #: widgets/google-map/google-map.php:269
1549
  msgid "Allow multiple simultaneous Info Windows?"
1550
  msgstr ""
1551
 
1552
- #: widgets/google-map/google-map.php:277
1553
  msgid "Styles"
1554
  msgstr ""
1555
 
1556
- #: widgets/google-map/google-map.php:279
1557
  msgid "Apply custom colors to map features, or hide them completely."
1558
  msgstr ""
1559
 
1560
- #: widgets/google-map/google-map.php:284
1561
  msgid "Map styles"
1562
  msgstr ""
1563
 
1564
- #: widgets/google-map/google-map.php:291
1565
  msgid "Custom"
1566
  msgstr ""
1567
 
1568
- #: widgets/google-map/google-map.php:292
1569
  msgid "Predefined Styles"
1570
  msgstr ""
1571
 
1572
- #: widgets/google-map/google-map.php:301
1573
  msgid "Styled map name"
1574
  msgstr ""
1575
 
1576
- #: widgets/google-map/google-map.php:311
1577
  msgid "Raw JSON styles"
1578
  msgstr ""
1579
 
1580
- #: widgets/google-map/google-map.php:312
1581
  msgid "Copy and paste predefined styles here from <a href=\"http://snazzymaps.com/\" target=\"_blank\" rel=\"noopener noreferrer\">Snazzy Maps</a>."
1582
  msgstr ""
1583
 
1584
- #: widgets/google-map/google-map.php:320
1585
  msgid "Custom map styles"
1586
  msgstr ""
1587
 
1588
- #: widgets/google-map/google-map.php:331
1589
  msgid "Select map feature to style"
1590
  msgstr ""
1591
 
1592
- #: widgets/google-map/google-map.php:333
1593
  msgid "Water"
1594
  msgstr ""
1595
 
1596
- #: widgets/google-map/google-map.php:334
1597
  msgid "Highways"
1598
  msgstr ""
1599
 
1600
- #: widgets/google-map/google-map.php:335
1601
  msgid "Arterial roads"
1602
  msgstr ""
1603
 
1604
- #: widgets/google-map/google-map.php:336
1605
  msgid "Local roads"
1606
  msgstr ""
1607
 
1608
- #: widgets/google-map/google-map.php:337
1609
  msgid "Transit lines"
1610
  msgstr ""
1611
 
1612
- #: widgets/google-map/google-map.php:338
1613
  msgid "Transit stations"
1614
  msgstr ""
1615
 
1616
- #: widgets/google-map/google-map.php:339
1617
  msgid "Man-made landscape"
1618
  msgstr ""
1619
 
1620
- #: widgets/google-map/google-map.php:340
1621
  msgid "Natural landscape landcover"
1622
  msgstr ""
1623
 
1624
- #: widgets/google-map/google-map.php:341
1625
  msgid "Natural landscape terrain"
1626
  msgstr ""
1627
 
1628
- #: widgets/google-map/google-map.php:342
1629
  msgid "Point of interest - Attractions"
1630
  msgstr ""
1631
 
1632
- #: widgets/google-map/google-map.php:343
1633
  msgid "Point of interest - Business"
1634
  msgstr ""
1635
 
1636
- #: widgets/google-map/google-map.php:344
1637
  msgid "Point of interest - Government"
1638
  msgstr ""
1639
 
1640
- #: widgets/google-map/google-map.php:345
1641
  msgid "Point of interest - Medical"
1642
  msgstr ""
1643
 
1644
- #: widgets/google-map/google-map.php:346
1645
  msgid "Point of interest - Parks"
1646
  msgstr ""
1647
 
1648
- #: widgets/google-map/google-map.php:347
1649
  msgid "Point of interest - Places of worship"
1650
  msgstr ""
1651
 
1652
- #: widgets/google-map/google-map.php:348
1653
  msgid "Point of interest - Schools"
1654
  msgstr ""
1655
 
1656
- #: widgets/google-map/google-map.php:349
1657
  msgid "Point of interest - Sports complexes"
1658
  msgstr ""
1659
 
1660
- #: widgets/google-map/google-map.php:354
1661
  msgid "Select element type to style"
1662
  msgstr ""
1663
 
1664
- #: widgets/google-map/google-map.php:356
1665
  msgid "Geometry"
1666
  msgstr ""
1667
 
1668
- #: widgets/google-map/google-map.php:357
1669
  msgid "Labels"
1670
  msgstr ""
1671
 
1672
- #: widgets/google-map/google-map.php:364
1673
  msgid "Visible"
1674
  msgstr ""
1675
 
1676
- #: widgets/google-map/google-map.php:376
1677
  msgid "Directions"
1678
  msgstr ""
1679
 
1680
- #: widgets/google-map/google-map.php:383
1681
  msgid "Display a route on your map, with waypoints between your starting point and destination. Please ensure you have enabled the %sDirections API%s in the %sGoogle APIs Dashboard%s."
1682
  msgstr ""
1683
 
1684
- #: widgets/google-map/google-map.php:392
1685
  msgid "Starting point"
1686
  msgstr ""
1687
 
1688
- #: widgets/google-map/google-map.php:396
1689
  msgid "Destination"
1690
  msgstr ""
1691
 
1692
- #: widgets/google-map/google-map.php:400
1693
  msgid "Travel mode"
1694
  msgstr ""
1695
 
1696
- #: widgets/google-map/google-map.php:403
1697
  msgid "Driving"
1698
  msgstr ""
1699
 
1700
- #: widgets/google-map/google-map.php:404
1701
  msgid "Walking"
1702
  msgstr ""
1703
 
1704
- #: widgets/google-map/google-map.php:405
1705
  msgid "Bicycling"
1706
  msgstr ""
1707
 
1708
- #: widgets/google-map/google-map.php:406
1709
  msgid "Transit"
1710
  msgstr ""
1711
 
1712
- #: widgets/google-map/google-map.php:411
1713
  msgid "Avoid highways"
1714
  msgstr ""
1715
 
1716
- #: widgets/google-map/google-map.php:415
1717
  msgid "Avoid tolls"
1718
  msgstr ""
1719
 
1720
- #: widgets/google-map/google-map.php:419
1721
  msgid "Preserve viewport"
1722
  msgstr ""
1723
 
1724
- #: widgets/google-map/google-map.php:420
1725
  msgid "This will prevent the map from centering and zooming around the directions. Use this when you have other markers or features on your map."
1726
  msgstr ""
1727
 
1728
- #: widgets/google-map/google-map.php:424
1729
  msgid "Waypoints"
1730
  msgstr ""
1731
 
1732
- #: widgets/google-map/google-map.php:425
1733
  msgid "Waypoint"
1734
  msgstr ""
1735
 
1736
- #: widgets/google-map/google-map.php:435, widgets/testimonial/testimonial.php:66
1737
  msgid "Location"
1738
  msgstr ""
1739
 
1740
- #: widgets/google-map/google-map.php:440
1741
  msgid "Stopover"
1742
  msgstr ""
1743
 
1744
- #: widgets/google-map/google-map.php:441
1745
  msgid "Whether or not this is a stop on the route or just a route preference."
1746
  msgstr ""
1747
 
1748
- #: widgets/google-map/google-map.php:447
1749
  msgid "Optimize waypoints"
1750
  msgstr ""
1751
 
1752
- #: widgets/google-map/google-map.php:449
1753
  msgid "Allow the Google Maps service to reorder waypoints for the shortest travelling distance."
1754
  msgstr ""
1755
 
1756
- #: widgets/google-map/google-map.php:460
1757
  msgid "API key"
1758
  msgstr ""
1759
 
1760
- #: widgets/google-map/google-map.php:463
1761
  msgid "Enter your %sAPI key%s. Your map won't function correctly without one."
1762
  msgstr ""
1763
 
1764
- #: widgets/google-map/google-map.php:471
1765
  msgid "Require consent before loading Maps API"
1766
  msgstr ""
1767
 
1768
- #: widgets/google-map/google-map.php:472
1769
  msgid "Consent is required for the Google Maps widget to comply with regulations like DSGVO, or GDPR."
1770
  msgstr ""
1771
 
1772
- #: widgets/google-map/google-map.php:478
1773
  msgid "Consent button text"
1774
  msgstr ""
1775
 
1776
- #: widgets/google-map/google-map.php:479
1777
  msgid "Load map"
1778
  msgstr ""
1779
 
1780
- #: widgets/google-map/google-map.php:484
1781
  msgid "Consent prompt text"
1782
  msgstr ""
1783
 
1784
- #: widgets/google-map/google-map.php:485
1785
  msgid "This is text is displayed when a user is prompted to consent to load the Google Maps API."
1786
  msgstr ""
1787
 
1788
- #: widgets/google-map/google-map.php:486
1789
  msgid ""
1790
  "By loading, you agree to Google's privacy policy.\n"
1791
  "\n"
1792
  " <a href='https://policies.google.com/privacy?hl=en&amp;gl=en' target='_blank' rel='noopener noreferrer'>Read more</a>"
1793
  msgstr ""
1794
 
1795
- #: widgets/google-map/google-map.php:493
1796
  msgid "Consent prompt design"
1797
  msgstr ""
1798
 
1799
- #: widgets/google-map/google-map.php:503
1800
  msgid "Consent prompt button text color"
1801
  msgstr ""
1802
 
1803
- #: widgets/google-map/google-map.php:508
1804
  msgid "Consent prompt button text hover color"
1805
  msgstr ""
1806
 
1807
- #: widgets/google-map/google-map.php:512
1808
  msgid "Consent prompt button background color"
1809
  msgstr ""
1810
 
1811
- #: widgets/google-map/google-map.php:517
1812
  msgid "Consent prompt button background hover color"
1813
  msgstr ""
1814
 
1815
- #: widgets/google-map/google-map.php:527
1816
  msgid "Responsive breakpoint"
1817
  msgstr ""
1818
 
1819
- #: widgets/google-map/google-map.php:529
1820
  msgid "This setting controls when the map will use the mobile zoom. This breakpoint will only be used if a mobile zoom is set in the SiteOrigin Google Maps settings. The default value is 780px"
1821
  msgstr ""
1822
 
1823
- #: widgets/google-map/google-map.php:678
1824
  msgid "There were no results for the place you entered. Please try another."
1825
  msgstr ""
1826
 
1827
- #: widgets/google-map/google-map.php:699
1828
  msgid "Custom Map"
1829
  msgstr ""
1830
 
1831
- #: widgets/google-map/google-map.php:931
1832
  msgid "Get additional map consent design settings with %sSiteOrigin Premium%s"
1833
  msgstr ""
1834
 
1835
- #: widgets/google-map/google-map.php:936
1836
  msgid "Get a curated list of predefined map styles with %sSiteOrigin Premium%s"
1837
  msgstr ""
1838
 
1839
- #: widgets/google-map/google-map.php:941
1840
  msgid "Use Google Fonts right inside the Google Maps Widget with %sSiteOrigin Premium%s"
1841
  msgstr ""
1842
 
40
  msgid "Invalid request."
41
  msgstr ""
42
 
43
+ #: so-widgets-bundle.php:391, so-widgets-bundle.php:414, so-widgets-bundle.php:457, base/inc/routes/siteorigin-widgets-resource.class.php:56
44
  msgid "Insufficient permissions."
45
  msgstr ""
46
 
76
  msgid "Addons"
77
  msgstr ""
78
 
79
+ #: base/siteorigin-widget.class.php:521
80
  msgid "Preview"
81
  msgstr ""
82
 
83
+ #: base/siteorigin-widget.class.php:526
84
  msgid "Help"
85
  msgstr ""
86
 
87
+ #: base/siteorigin-widget.class.php:596
88
  msgid "This widget has scripts and styles that need to be loaded before you can use it. Please save and reload your current page."
89
  msgstr ""
90
 
91
+ #: base/siteorigin-widget.class.php:597
92
  msgid "You will only need to do this once."
93
  msgstr ""
94
 
95
+ #: base/siteorigin-widget.class.php:624
96
  msgid "Are you sure?"
97
  msgstr ""
98
 
99
+ #: base/siteorigin-widget.class.php:626
100
  msgid "There is a newer version of this widget's content available."
101
  msgstr ""
102
 
103
+ #: base/siteorigin-widget.class.php:627, base/siteorigin-widget.class.php:631
104
  msgid "Restore"
105
  msgstr ""
106
 
107
+ #: base/siteorigin-widget.class.php:628
108
  msgid "Dismiss"
109
  msgstr ""
110
 
111
+ #: base/siteorigin-widget.class.php:630
112
  msgid "Clicking %s will replace the current widget contents. You can revert by refreshing the page before updating."
113
  msgstr ""
114
 
115
+ #: base/siteorigin-widget.class.php:681, base/inc/actions.php:53
116
  msgid "Widget Preview"
117
  msgstr ""
118
 
156
  msgid "Filter Widgets"
157
  msgstr ""
158
 
159
+ #: admin/tpl/admin.php:17, widgets/google-map/google-map.php:366, base/inc/fields/posts.class.php:23
160
  msgid "All"
161
  msgstr ""
162
 
232
  msgid "Clear"
233
  msgstr ""
234
 
235
+ #: compat/beaver-builder/beaver-builder.php:68, widgets/google-map/google-map.php:298, widgets/image/image.php:48, widgets/image/image.php:60, base/inc/fields/posts.class.php:141
236
  msgid "Default"
237
  msgstr ""
238
 
244
  msgid "Current Color"
245
  msgstr ""
246
 
247
+ #: compat/block-editor/widget-block.php:63, compat/block-editor/widget-block.php:98
248
  msgid "%s by %s"
249
  msgstr ""
250
 
251
+ #: compat/block-editor/widget-block.php:118, compat/visual-composer/visual-composer.php:77
252
  msgid "Selecting a different widget will revert any changes. Continue?"
253
  msgstr ""
254
 
255
+ #: compat/block-editor/widget-block.php:138
256
  msgid "You need to select a widget type before you'll see anything here. :)"
257
  msgstr ""
258
 
259
+ #: compat/block-editor/widget-block.php:231
260
  msgid "Invalid widget class %s. Please make sure the widget has been activated in %sSiteOrigin Widgets%s."
261
  msgstr ""
262
 
404
  msgid "Font size"
405
  msgstr ""
406
 
407
+ #: widgets/anything-carousel/anything-carousel.php:103, widgets/contact/contact.php:400, widgets/contact/contact.php:524, widgets/contact/contact.php:693, widgets/features/features.php:154, widgets/features/features.php:175, widgets/features/features.php:196, widgets/google-map/google-map.php:376, widgets/headline/headline.php:80, widgets/headline/headline.php:161, widgets/headline/headline.php:231, widgets/icon/icon.php:36, widgets/taxonomy/taxonomy.php:56, base/inc/widgets/base-carousel.class.php:382
408
  msgid "Color"
409
  msgstr ""
410
 
1040
  msgid "Field descriptions"
1041
  msgstr ""
1042
 
1043
+ #: widgets/contact/contact.php:529, widgets/contact/contact.php:676, widgets/google-map/google-map.php:329, widgets/headline/headline.php:215
1044
  msgid "Style"
1045
  msgstr ""
1046
 
1213
  msgid "Button align"
1214
  msgstr ""
1215
 
1216
+ #: widgets/cta/cta.php:109, widgets/google-map/google-map.php:506, widgets/hero/hero.php:79, widgets/hero/hero.php:91
1217
  msgid "Button"
1218
  msgstr ""
1219
 
1497
  msgid "Replaces the default map marker with your own image."
1498
  msgstr ""
1499
 
1500
+ #: widgets/google-map/google-map.php:218
1501
+ msgid "Marker icon size"
1502
  msgstr ""
1503
 
1504
  #: widgets/google-map/google-map.php:227
1505
+ msgid "Draggable markers"
1506
+ msgstr ""
1507
+
1508
+ #: widgets/google-map/google-map.php:231
1509
  msgid "Marker positions"
1510
  msgstr ""
1511
 
1512
+ #: widgets/google-map/google-map.php:232
1513
  msgid "Marker"
1514
  msgstr ""
1515
 
1516
+ #: widgets/google-map/google-map.php:242
1517
  msgid "Place"
1518
  msgstr ""
1519
 
1520
+ #: widgets/google-map/google-map.php:247
1521
  msgid "Info Window Content"
1522
  msgstr ""
1523
 
1524
+ #: widgets/google-map/google-map.php:251
1525
  msgid "Info Window max width"
1526
  msgstr ""
1527
 
1528
+ #: widgets/google-map/google-map.php:256
1529
  msgid "Custom Marker icon"
1530
  msgstr ""
1531
 
1532
+ #: widgets/google-map/google-map.php:257
1533
  msgid "Replace the default map marker with your own image for each marker."
1534
  msgstr ""
1535
 
1536
+ #: widgets/google-map/google-map.php:261
1537
+ msgid "Custom marker icon size"
1538
+ msgstr ""
1539
+
1540
+ #: widgets/google-map/google-map.php:267
1541
  msgid "When should Info Windows be displayed?"
1542
  msgstr ""
1543
 
1544
+ #: widgets/google-map/google-map.php:270
1545
  msgid "Click"
1546
  msgstr ""
1547
 
1548
+ #: widgets/google-map/google-map.php:271
1549
  msgid "Mouse over"
1550
  msgstr ""
1551
 
1552
+ #: widgets/google-map/google-map.php:272
1553
  msgid "Always"
1554
  msgstr ""
1555
 
1556
+ #: widgets/google-map/google-map.php:277
1557
  msgid "Allow multiple simultaneous Info Windows?"
1558
  msgstr ""
1559
 
1560
+ #: widgets/google-map/google-map.php:285
1561
  msgid "Styles"
1562
  msgstr ""
1563
 
1564
+ #: widgets/google-map/google-map.php:287
1565
  msgid "Apply custom colors to map features, or hide them completely."
1566
  msgstr ""
1567
 
1568
+ #: widgets/google-map/google-map.php:292
1569
  msgid "Map styles"
1570
  msgstr ""
1571
 
1572
+ #: widgets/google-map/google-map.php:299
1573
  msgid "Custom"
1574
  msgstr ""
1575
 
1576
+ #: widgets/google-map/google-map.php:300
1577
  msgid "Predefined Styles"
1578
  msgstr ""
1579
 
1580
+ #: widgets/google-map/google-map.php:309
1581
  msgid "Styled map name"
1582
  msgstr ""
1583
 
1584
+ #: widgets/google-map/google-map.php:319
1585
  msgid "Raw JSON styles"
1586
  msgstr ""
1587
 
1588
+ #: widgets/google-map/google-map.php:320
1589
  msgid "Copy and paste predefined styles here from <a href=\"http://snazzymaps.com/\" target=\"_blank\" rel=\"noopener noreferrer\">Snazzy Maps</a>."
1590
  msgstr ""
1591
 
1592
+ #: widgets/google-map/google-map.php:328
1593
  msgid "Custom map styles"
1594
  msgstr ""
1595
 
1596
+ #: widgets/google-map/google-map.php:339
1597
  msgid "Select map feature to style"
1598
  msgstr ""
1599
 
1600
+ #: widgets/google-map/google-map.php:341
1601
  msgid "Water"
1602
  msgstr ""
1603
 
1604
+ #: widgets/google-map/google-map.php:342
1605
  msgid "Highways"
1606
  msgstr ""
1607
 
1608
+ #: widgets/google-map/google-map.php:343
1609
  msgid "Arterial roads"
1610
  msgstr ""
1611
 
1612
+ #: widgets/google-map/google-map.php:344
1613
  msgid "Local roads"
1614
  msgstr ""
1615
 
1616
+ #: widgets/google-map/google-map.php:345
1617
  msgid "Transit lines"
1618
  msgstr ""
1619
 
1620
+ #: widgets/google-map/google-map.php:346
1621
  msgid "Transit stations"
1622
  msgstr ""
1623
 
1624
+ #: widgets/google-map/google-map.php:347
1625
  msgid "Man-made landscape"
1626
  msgstr ""
1627
 
1628
+ #: widgets/google-map/google-map.php:348
1629
  msgid "Natural landscape landcover"
1630
  msgstr ""
1631
 
1632
+ #: widgets/google-map/google-map.php:349
1633
  msgid "Natural landscape terrain"
1634
  msgstr ""
1635
 
1636
+ #: widgets/google-map/google-map.php:350
1637
  msgid "Point of interest - Attractions"
1638
  msgstr ""
1639
 
1640
+ #: widgets/google-map/google-map.php:351
1641
  msgid "Point of interest - Business"
1642
  msgstr ""
1643
 
1644
+ #: widgets/google-map/google-map.php:352
1645
  msgid "Point of interest - Government"
1646
  msgstr ""
1647
 
1648
+ #: widgets/google-map/google-map.php:353
1649
  msgid "Point of interest - Medical"
1650
  msgstr ""
1651
 
1652
+ #: widgets/google-map/google-map.php:354
1653
  msgid "Point of interest - Parks"
1654
  msgstr ""
1655
 
1656
+ #: widgets/google-map/google-map.php:355
1657
  msgid "Point of interest - Places of worship"
1658
  msgstr ""
1659
 
1660
+ #: widgets/google-map/google-map.php:356
1661
  msgid "Point of interest - Schools"
1662
  msgstr ""
1663
 
1664
+ #: widgets/google-map/google-map.php:357
1665
  msgid "Point of interest - Sports complexes"
1666
  msgstr ""
1667
 
1668
+ #: widgets/google-map/google-map.php:362
1669
  msgid "Select element type to style"
1670
  msgstr ""
1671
 
1672
+ #: widgets/google-map/google-map.php:364
1673
  msgid "Geometry"
1674
  msgstr ""
1675
 
1676
+ #: widgets/google-map/google-map.php:365
1677
  msgid "Labels"
1678
  msgstr ""
1679
 
1680
+ #: widgets/google-map/google-map.php:372
1681
  msgid "Visible"
1682
  msgstr ""
1683
 
1684
+ #: widgets/google-map/google-map.php:384
1685
  msgid "Directions"
1686
  msgstr ""
1687
 
1688
+ #: widgets/google-map/google-map.php:391
1689
  msgid "Display a route on your map, with waypoints between your starting point and destination. Please ensure you have enabled the %sDirections API%s in the %sGoogle APIs Dashboard%s."
1690
  msgstr ""
1691
 
1692
+ #: widgets/google-map/google-map.php:400
1693
  msgid "Starting point"
1694
  msgstr ""
1695
 
1696
+ #: widgets/google-map/google-map.php:404
1697
  msgid "Destination"
1698
  msgstr ""
1699
 
1700
+ #: widgets/google-map/google-map.php:408
1701
  msgid "Travel mode"
1702
  msgstr ""
1703
 
1704
+ #: widgets/google-map/google-map.php:411
1705
  msgid "Driving"
1706
  msgstr ""
1707
 
1708
+ #: widgets/google-map/google-map.php:412
1709
  msgid "Walking"
1710
  msgstr ""
1711
 
1712
+ #: widgets/google-map/google-map.php:413
1713
  msgid "Bicycling"
1714
  msgstr ""
1715
 
1716
+ #: widgets/google-map/google-map.php:414
1717
  msgid "Transit"
1718
  msgstr ""
1719
 
1720
+ #: widgets/google-map/google-map.php:419
1721
  msgid "Avoid highways"
1722
  msgstr ""
1723
 
1724
+ #: widgets/google-map/google-map.php:423
1725
  msgid "Avoid tolls"
1726
  msgstr ""
1727
 
1728
+ #: widgets/google-map/google-map.php:427
1729
  msgid "Preserve viewport"
1730
  msgstr ""
1731
 
1732
+ #: widgets/google-map/google-map.php:428
1733
  msgid "This will prevent the map from centering and zooming around the directions. Use this when you have other markers or features on your map."
1734
  msgstr ""
1735
 
1736
+ #: widgets/google-map/google-map.php:432
1737
  msgid "Waypoints"
1738
  msgstr ""
1739
 
1740
+ #: widgets/google-map/google-map.php:433
1741
  msgid "Waypoint"
1742
  msgstr ""
1743
 
1744
+ #: widgets/google-map/google-map.php:443, widgets/testimonial/testimonial.php:66
1745
  msgid "Location"
1746
  msgstr ""
1747
 
1748
+ #: widgets/google-map/google-map.php:448
1749
  msgid "Stopover"
1750
  msgstr ""
1751
 
1752
+ #: widgets/google-map/google-map.php:449
1753
  msgid "Whether or not this is a stop on the route or just a route preference."
1754
  msgstr ""
1755
 
1756
+ #: widgets/google-map/google-map.php:455
1757
  msgid "Optimize waypoints"
1758
  msgstr ""
1759
 
1760
+ #: widgets/google-map/google-map.php:457
1761
  msgid "Allow the Google Maps service to reorder waypoints for the shortest travelling distance."
1762
  msgstr ""
1763
 
1764
+ #: widgets/google-map/google-map.php:468
1765
  msgid "API key"
1766
  msgstr ""
1767
 
1768
+ #: widgets/google-map/google-map.php:471
1769
  msgid "Enter your %sAPI key%s. Your map won't function correctly without one."
1770
  msgstr ""
1771
 
1772
+ #: widgets/google-map/google-map.php:479
1773
  msgid "Require consent before loading Maps API"
1774
  msgstr ""
1775
 
1776
+ #: widgets/google-map/google-map.php:480
1777
  msgid "Consent is required for the Google Maps widget to comply with regulations like DSGVO, or GDPR."
1778
  msgstr ""
1779
 
1780
+ #: widgets/google-map/google-map.php:486
1781
  msgid "Consent button text"
1782
  msgstr ""
1783
 
1784
+ #: widgets/google-map/google-map.php:487
1785
  msgid "Load map"
1786
  msgstr ""
1787
 
1788
+ #: widgets/google-map/google-map.php:492
1789
  msgid "Consent prompt text"
1790
  msgstr ""
1791
 
1792
+ #: widgets/google-map/google-map.php:493
1793
  msgid "This is text is displayed when a user is prompted to consent to load the Google Maps API."
1794
  msgstr ""
1795
 
1796
+ #: widgets/google-map/google-map.php:494
1797
  msgid ""
1798
  "By loading, you agree to Google's privacy policy.\n"
1799
  "\n"
1800
  " <a href='https://policies.google.com/privacy?hl=en&amp;gl=en' target='_blank' rel='noopener noreferrer'>Read more</a>"
1801
  msgstr ""
1802
 
1803
+ #: widgets/google-map/google-map.php:501
1804
  msgid "Consent prompt design"
1805
  msgstr ""
1806
 
1807
+ #: widgets/google-map/google-map.php:511
1808
  msgid "Consent prompt button text color"
1809
  msgstr ""
1810
 
1811
+ #: widgets/google-map/google-map.php:516
1812
  msgid "Consent prompt button text hover color"
1813
  msgstr ""
1814
 
1815
+ #: widgets/google-map/google-map.php:520
1816
  msgid "Consent prompt button background color"
1817
  msgstr ""
1818
 
1819
+ #: widgets/google-map/google-map.php:525
1820
  msgid "Consent prompt button background hover color"
1821
  msgstr ""
1822
 
1823
+ #: widgets/google-map/google-map.php:535
1824
  msgid "Responsive breakpoint"
1825
  msgstr ""
1826
 
1827
+ #: widgets/google-map/google-map.php:537
1828
  msgid "This setting controls when the map will use the mobile zoom. This breakpoint will only be used if a mobile zoom is set in the SiteOrigin Google Maps settings. The default value is 780px"
1829
  msgstr ""
1830
 
1831
+ #: widgets/google-map/google-map.php:692
1832
  msgid "There were no results for the place you entered. Please try another."
1833
  msgstr ""
1834
 
1835
+ #: widgets/google-map/google-map.php:713
1836
  msgid "Custom Map"
1837
  msgstr ""
1838
 
1839
+ #: widgets/google-map/google-map.php:948
1840
  msgid "Get additional map consent design settings with %sSiteOrigin Premium%s"
1841
  msgstr ""
1842
 
1843
+ #: widgets/google-map/google-map.php:953
1844
  msgid "Get a curated list of predefined map styles with %sSiteOrigin Premium%s"
1845
  msgstr ""
1846
 
1847
+ #: widgets/google-map/google-map.php:958
1848
  msgid "Use Google Fonts right inside the Google Maps Widget with %sSiteOrigin Premium%s"
1849
  msgstr ""
1850
 
readme.txt CHANGED
@@ -3,8 +3,8 @@ Tags: widget, button, slider, hero, google maps, image, carousel, lottie, featur
3
  Requires at least: 4.2
4
  Tested up to: 5.9
5
  Requires PHP: 5.6.20
6
- Stable tag: 1.33.1
7
- Build time: 2022-04-30T21:56:36+02:00
8
  License: GPLv3 or later
9
  Contributors: gpriday, braam-genis, alexgso
10
  Donate link: https://siteorigin.com/downloads/premium/
@@ -105,6 +105,13 @@ The Widgets Bundle global interface is available at Plugins > SiteOrigin Widgets
105
 
106
  == Changelog ==
107
 
 
 
 
 
 
 
 
108
  = 1.33.1 - 30 April 2022 =
109
  * Accordion and Tabs: Added support for the SiteOrigin Premium Anchor ID Addon.
110
  * Anything Carousel: Resolved a `Previous Nav Arrow` error.
3
  Requires at least: 4.2
4
  Tested up to: 5.9
5
  Requires PHP: 5.6.20
6
+ Stable tag: 1.34.0
7
+ Build time: 2022-05-16T20:19:40+02:00
8
  License: GPLv3 or later
9
  Contributors: gpriday, braam-genis, alexgso
10
  Donate link: https://siteorigin.com/downloads/premium/
105
 
106
  == Changelog ==
107
 
108
+ = 1.34.0 - 16 May 2022 =
109
+ * Icon: Hide icons from screen readers.
110
+ * Google Maps: Added Custom Marker Icon image size settings.
111
+ * Sliders: Ensured autoplaying YouTube and Vimeo background videos will pause on slide change.
112
+ * Widgets Block: Added HTML anchor support located at Block > Advanced.
113
+ * CSS Cache Compatibility: Added support for LiteSpeed Cache plugin.
114
+
115
  = 1.33.1 - 30 April 2022 =
116
  * Accordion and Tabs: Added support for the SiteOrigin Premium Anchor ID Addon.
117
  * Anything Carousel: Resolved a `Previous Nav Arrow` error.
so-widgets-bundle.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: SiteOrigin Widgets Bundle
4
  Description: A highly customizable collection of widgets, ready to be used anywhere, neatly bundled into a single plugin.
5
- Version: 1.33.1
6
  Text Domain: so-widgets-bundle
7
  Domain Path: /lang
8
  Author: SiteOrigin
@@ -12,7 +12,7 @@ License: GPL3
12
  License URI: https://www.gnu.org/licenses/gpl-3.0.txt
13
  */
14
 
15
- define( 'SOW_BUNDLE_VERSION', '1.33.1' );
16
  define( 'SOW_BUNDLE_BASE_FILE', __FILE__ );
17
 
18
  // Allow JS suffix to be pre-set.
2
  /*
3
  Plugin Name: SiteOrigin Widgets Bundle
4
  Description: A highly customizable collection of widgets, ready to be used anywhere, neatly bundled into a single plugin.
5
+ Version: 1.34.0
6
  Text Domain: so-widgets-bundle
7
  Domain Path: /lang
8
  Author: SiteOrigin
12
  License URI: https://www.gnu.org/licenses/gpl-3.0.txt
13
  */
14
 
15
+ define( 'SOW_BUNDLE_VERSION', '1.34.0' );
16
  define( 'SOW_BUNDLE_BASE_FILE', __FILE__ );
17
 
18
  // Allow JS suffix to be pre-set.
widgets/google-map/google-map.php CHANGED
@@ -213,6 +213,10 @@ class SiteOrigin_Widget_GoogleMap_Widget extends SiteOrigin_Widget {
213
  'label' => __( 'Marker icon', 'so-widgets-bundle' ),
214
  'description' => __( 'Replaces the default map marker with your own image.', 'so-widgets-bundle' )
215
  ),
 
 
 
 
216
  'markers_draggable' => array(
217
  'type' => 'checkbox',
218
  'default' => false,
@@ -252,6 +256,10 @@ class SiteOrigin_Widget_GoogleMap_Widget extends SiteOrigin_Widget {
252
  'label' => __( 'Custom Marker icon', 'so-widgets-bundle' ),
253
  'description' => __( 'Replace the default map marker with your own image for each marker.', 'so-widgets-bundle' )
254
  ),
 
 
 
 
255
  )
256
  ),
257
  'info_display' => array(
@@ -548,7 +556,10 @@ class SiteOrigin_Widget_GoogleMap_Widget extends SiteOrigin_Widget {
548
 
549
  $settings = $instance['settings'];
550
 
551
- $mrkr_src = wp_get_attachment_image_src( $instance['markers']['marker_icon'] );
 
 
 
552
 
553
  $styles = $this->get_styles( $instance );
554
 
@@ -585,7 +596,10 @@ class SiteOrigin_Widget_GoogleMap_Widget extends SiteOrigin_Widget {
585
  if( ! empty($markerpos)) {
586
  foreach ($markerpos as &$pos) {
587
  if ( ! empty( $pos['custom_marker_icon'] ) ) {
588
- $icon_src = wp_get_attachment_image_src( $pos['custom_marker_icon'] );
 
 
 
589
  $pos['custom_marker_icon'] = $icon_src[0];
590
  }
591
  if ( ! empty( $pos['place'] ) ) {
@@ -796,7 +810,10 @@ class SiteOrigin_Widget_GoogleMap_Widget extends SiteOrigin_Widget {
796
  $markers_st = '';
797
 
798
  if ( ! empty( $markers['marker_icon'] ) ) {
799
- $mrkr_src = wp_get_attachment_image_src( $markers['marker_icon'] );
 
 
 
800
  if ( ! empty( $mrkr_src ) ) {
801
  $markers_st .= 'icon:' . $mrkr_src[0];
802
  }
213
  'label' => __( 'Marker icon', 'so-widgets-bundle' ),
214
  'description' => __( 'Replaces the default map marker with your own image.', 'so-widgets-bundle' )
215
  ),
216
+ 'marker_icon_size' => array(
217
+ 'type' => 'image-size',
218
+ 'label' => __( 'Marker icon size', 'so-widgets-bundle' ),
219
+ ),
220
  'markers_draggable' => array(
221
  'type' => 'checkbox',
222
  'default' => false,
256
  'label' => __( 'Custom Marker icon', 'so-widgets-bundle' ),
257
  'description' => __( 'Replace the default map marker with your own image for each marker.', 'so-widgets-bundle' )
258
  ),
259
+ 'custom_marker_icon_size' => array(
260
+ 'type' => 'image-size',
261
+ 'label' => __( 'Custom marker icon size', 'so-widgets-bundle' ),
262
+ ),
263
  )
264
  ),
265
  'info_display' => array(
556
 
557
  $settings = $instance['settings'];
558
 
559
+ $mrkr_src = wp_get_attachment_image_src(
560
+ $instance['markers']['marker_icon'],
561
+ ! empty( $instance['markers']['marker_icon_size'] ) ? $instance['markers']['marker_icon_size'] : 'thumbnail'
562
+ );
563
 
564
  $styles = $this->get_styles( $instance );
565
 
596
  if( ! empty($markerpos)) {
597
  foreach ($markerpos as &$pos) {
598
  if ( ! empty( $pos['custom_marker_icon'] ) ) {
599
+ $icon_src = wp_get_attachment_image_src(
600
+ $pos['custom_marker_icon'],
601
+ ! empty( $pos['custom_marker_icon_size'] ) ? $pos['custom_marker_icon_size'] : 'thumbnail'
602
+ );
603
  $pos['custom_marker_icon'] = $icon_src[0];
604
  }
605
  if ( ! empty( $pos['place'] ) ) {
810
  $markers_st = '';
811
 
812
  if ( ! empty( $markers['marker_icon'] ) ) {
813
+ $mrkr_src = wp_get_attachment_image_src(
814
+ $markers['marker_icon'],
815
+ ! empty( $markers['marker_icon_size'] ) ? $markers['marker_icon_size'] : 'thumbnail'
816
+ );
817
  if ( ! empty( $mrkr_src ) ) {
818
  $markers_st .= 'icon:' . $mrkr_src[0];
819
  }