Visual Portfolio, Photo Gallery & Post Grid - Version 2.15.1

Version Description

Download this release

Release Info

Developer nko
Plugin Icon 128x128 Visual Portfolio, Photo Gallery & Post Grid
Version 2.15.1
Comparing to
See all releases

Code changes from version 2.15.0 to 2.15.1

assets/admin/js/elementor.js CHANGED
@@ -2,7 +2,7 @@
2
  * Additional js for Elementor
3
  *
4
  * Name : Visual Portfolio
5
- * Version : 2.15.0
6
  * Author : nK https://nkdev.info
7
  */
8
  import { throttle } from 'throttle-debounce';
2
  * Additional js for Elementor
3
  *
4
  * Name : Visual Portfolio
5
+ * Version : 2.15.1
6
  * Author : nK https://nkdev.info
7
  */
8
  import { throttle } from 'throttle-debounce';
assets/admin/js/mce-dropdown.js CHANGED
@@ -1,6 +1,6 @@
1
  /*!
2
  * Name : Visual Portfolio
3
- * Version : 2.15.0
4
  * Author : nK https://nkdev.info
5
  */
6
  const {
1
  /*!
2
  * Name : Visual Portfolio
3
+ * Version : 2.15.1
4
  * Author : nK https://nkdev.info
5
  */
6
  const {
assets/admin/js/script.js CHANGED
@@ -1,6 +1,6 @@
1
  /*!
2
  * Name : Visual Portfolio
3
- * Version : 2.15.0
4
  * Author : nK https://nkdev.info
5
  */
6
  import { debounce } from 'throttle-debounce';
1
  /*!
2
  * Name : Visual Portfolio
3
+ * Version : 2.15.1
4
  * Author : nK https://nkdev.info
5
  */
6
  import { debounce } from 'throttle-debounce';
assets/admin/js/vc-frontend.js CHANGED
@@ -2,7 +2,7 @@
2
  * Additional js for frontend VC
3
  *
4
  * Name : Visual Portfolio
5
- * Version : 2.15.0
6
  * Author : nK https://nkdev.info
7
  */
8
  const {
2
  * Additional js for frontend VC
3
  *
4
  * Name : Visual Portfolio
5
+ * Version : 2.15.1
6
  * Author : nK https://nkdev.info
7
  */
8
  const {
assets/js/preview.js CHANGED
@@ -1,6 +1,6 @@
1
  /*!
2
  * Name : Visual Portfolio
3
- * Version : 2.15.0
4
  * Author : nK https://nkdev.info
5
  */
6
  const $ = window.jQuery;
1
  /*!
2
  * Name : Visual Portfolio
3
+ * Version : 2.15.1
4
  * Author : nK https://nkdev.info
5
  */
6
  const $ = window.jQuery;
class-visual-portfolio.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Plugin Name: Visual Portfolio, Posts & Image Gallery
4
  * Description: Modern gallery and portfolio plugin with advanced layouts editor. Clean and powerful gallery styles with enormous settings in the Gutenberg block.
5
- * Version: 2.15.0
6
  * Author: nK
7
  * Author URI: https://nkdev.info
8
  * License: GPLv2 or later
2
  /**
3
  * Plugin Name: Visual Portfolio, Posts & Image Gallery
4
  * Description: Modern gallery and portfolio plugin with advanced layouts editor. Clean and powerful gallery styles with enormous settings in the Gutenberg block.
5
+ * Version: 2.15.1
6
  * Author: nK
7
  * Author URI: https://nkdev.info
8
  * License: GPLv2 or later
classes/3rd/plugins/class-elementor-widget.php CHANGED
@@ -33,9 +33,9 @@ class Visual_Portfolio_3rd_Elementor_Widget extends \Elementor\Widget_Base {
33
 
34
  if ( $this->is_preview_mode() ) {
35
  wp_register_script( 'iframe-resizer', visual_portfolio()->plugin_url . 'assets/vendor/iframe-resizer/js/iframeResizer.min.js', '', '4.2.11', true );
36
- wp_register_script( 'visual-portfolio-elementor', visual_portfolio()->plugin_url . 'assets/admin/js/elementor.min.js', array( 'elementor-frontend', 'iframe-resizer', 'jquery' ), '2.15.0', true );
37
 
38
- wp_register_style( 'visual-portfolio-elementor', visual_portfolio()->plugin_url . 'assets/admin/css/elementor.min.css', array(), '2.15.0' );
39
  wp_style_add_data( 'visual-portfolio-elementor', 'rtl', 'replace' );
40
  wp_style_add_data( 'visual-portfolio-elementor', 'suffix', '.min' );
41
  }
@@ -130,9 +130,11 @@ class Visual_Portfolio_3rd_Elementor_Widget extends \Elementor\Widget_Base {
130
  // Don't use WP_Query on the admin side https://core.trac.wordpress.org/ticket/18408 .
131
  $vp_query = get_posts(
132
  array(
133
- 'post_type' => 'vp_lists',
134
- 'posts_per_page' => -1,
135
- 'paged' => -1,
 
 
136
  )
137
  );
138
 
33
 
34
  if ( $this->is_preview_mode() ) {
35
  wp_register_script( 'iframe-resizer', visual_portfolio()->plugin_url . 'assets/vendor/iframe-resizer/js/iframeResizer.min.js', '', '4.2.11', true );
36
+ wp_register_script( 'visual-portfolio-elementor', visual_portfolio()->plugin_url . 'assets/admin/js/elementor.min.js', array( 'elementor-frontend', 'iframe-resizer', 'jquery' ), '2.15.1', true );
37
 
38
+ wp_register_style( 'visual-portfolio-elementor', visual_portfolio()->plugin_url . 'assets/admin/css/elementor.min.css', array(), '2.15.1' );
39
  wp_style_add_data( 'visual-portfolio-elementor', 'rtl', 'replace' );
40
  wp_style_add_data( 'visual-portfolio-elementor', 'suffix', '.min' );
41
  }
130
  // Don't use WP_Query on the admin side https://core.trac.wordpress.org/ticket/18408 .
131
  $vp_query = get_posts(
132
  array(
133
+ 'post_type' => 'vp_lists',
134
+ 'posts_per_page' => -1,
135
+ 'paged' => -1,
136
+ 'update_post_meta_cache' => false,
137
+ 'update_post_term_cache' => false,
138
  )
139
  );
140
 
classes/3rd/plugins/class-tinymce.php CHANGED
@@ -55,9 +55,11 @@ class Visual_Portfolio_3rd_TinyMCE {
55
  // Don't use WP_Query on the admin side https://core.trac.wordpress.org/ticket/18408 .
56
  $vp_query = get_posts(
57
  array(
58
- 'post_type' => 'vp_lists',
59
- 'posts_per_page' => -1,
60
- 'paged' => -1,
 
 
61
  )
62
  );
63
  foreach ( $vp_query as $post ) {
@@ -72,7 +74,7 @@ class Visual_Portfolio_3rd_TinyMCE {
72
  return;
73
  }
74
 
75
- wp_enqueue_script( 'visual-portfolio-tinymce-localize', visual_portfolio()->plugin_url . 'assets/admin/js/mce-localize.min.js', array(), '2.15.0', true );
76
  wp_localize_script( 'visual-portfolio-tinymce-localize', 'VPTinyMCEData', $data_tiny_mce );
77
  }
78
  }
55
  // Don't use WP_Query on the admin side https://core.trac.wordpress.org/ticket/18408 .
56
  $vp_query = get_posts(
57
  array(
58
+ 'post_type' => 'vp_lists',
59
+ 'posts_per_page' => -1,
60
+ 'paged' => -1,
61
+ 'update_post_meta_cache' => false,
62
+ 'update_post_term_cache' => false,
63
  )
64
  );
65
  foreach ( $vp_query as $post ) {
74
  return;
75
  }
76
 
77
+ wp_enqueue_script( 'visual-portfolio-tinymce-localize', visual_portfolio()->plugin_url . 'assets/admin/js/mce-localize.min.js', array(), '2.15.1', true );
78
  wp_localize_script( 'visual-portfolio-tinymce-localize', 'VPTinyMCEData', $data_tiny_mce );
79
  }
80
  }
classes/3rd/plugins/class-vc.php CHANGED
@@ -35,7 +35,7 @@ class Visual_Portfolio_3rd_VC {
35
  */
36
  public function admin_enqueue_scripts( $page ) {
37
  if ( 'post.php' === $page || 'post-new.php' === $page ) {
38
- wp_enqueue_script( 'visual-portfolio-vc-frontend', visual_portfolio()->plugin_url . 'assets/admin/js/vc-frontend.min.js', array( 'jquery' ), '2.15.0', true );
39
  }
40
  }
41
 
@@ -48,9 +48,11 @@ class Visual_Portfolio_3rd_VC {
48
  // Don't use WP_Query on the admin side https://core.trac.wordpress.org/ticket/18408 .
49
  $vp_query = get_posts(
50
  array(
51
- 'post_type' => 'vp_lists',
52
- 'posts_per_page' => -1,
53
- 'paged' => -1,
 
 
54
  )
55
  );
56
 
35
  */
36
  public function admin_enqueue_scripts( $page ) {
37
  if ( 'post.php' === $page || 'post-new.php' === $page ) {
38
+ wp_enqueue_script( 'visual-portfolio-vc-frontend', visual_portfolio()->plugin_url . 'assets/admin/js/vc-frontend.min.js', array( 'jquery' ), '2.15.1', true );
39
  }
40
  }
41
 
48
  // Don't use WP_Query on the admin side https://core.trac.wordpress.org/ticket/18408 .
49
  $vp_query = get_posts(
50
  array(
51
+ 'post_type' => 'vp_lists',
52
+ 'posts_per_page' => -1,
53
+ 'paged' => -1,
54
+ 'update_post_meta_cache' => false,
55
+ 'update_post_term_cache' => false,
56
  )
57
  );
58
 
classes/class-admin.php CHANGED
@@ -44,9 +44,9 @@ class Visual_Portfolio_Admin {
44
  'nonce' => wp_create_nonce( 'vp-ajax-nonce' ),
45
  );
46
 
47
- wp_enqueue_script( 'visual-portfolio-admin', visual_portfolio()->plugin_url . 'assets/admin/js/script.min.js', array( 'jquery', 'wp-data' ), '2.15.0', true );
48
  wp_localize_script( 'visual-portfolio-admin', 'VPAdminVariables', $data_init );
49
- wp_enqueue_style( 'visual-portfolio-admin', visual_portfolio()->plugin_url . 'assets/admin/css/style.min.css', array(), '2.15.0' );
50
  wp_style_add_data( 'visual-portfolio-admin', 'rtl', 'replace' );
51
  wp_style_add_data( 'visual-portfolio-admin', 'suffix', '.min' );
52
  }
@@ -60,8 +60,8 @@ class Visual_Portfolio_Admin {
60
  );
61
 
62
  if ( 'vp_lists' === get_post_type() ) {
63
- wp_enqueue_script( 'visual-portfolio-saved-layouts', visual_portfolio()->plugin_url . 'gutenberg/layouts-editor.min.js', array( 'jquery' ), '2.15.0', true );
64
- wp_enqueue_style( 'visual-portfolio-saved-layouts', visual_portfolio()->plugin_url . 'gutenberg/layouts-editor.min.css', array(), '2.15.0' );
65
  wp_style_add_data( 'visual-portfolio-saved-layouts', 'rtl', 'replace' );
66
  wp_style_add_data( 'visual-portfolio-saved-layouts', 'suffix', '.min' );
67
 
@@ -216,7 +216,7 @@ class Visual_Portfolio_Admin {
216
  // phpcs:ignore
217
  if ( 'visual_portfolio_go_pro' === $_GET['page'] ) {
218
  // phpcs:ignore
219
- wp_redirect( 'https://visualportfolio.co/pro/?utm_source=freeplugin&utm_medium=link&utm_campaign=admin_page&utm_content=2.15.0' );
220
  exit();
221
  }
222
  }
44
  'nonce' => wp_create_nonce( 'vp-ajax-nonce' ),
45
  );
46
 
47
+ wp_enqueue_script( 'visual-portfolio-admin', visual_portfolio()->plugin_url . 'assets/admin/js/script.min.js', array( 'jquery', 'wp-data' ), '2.15.1', true );
48
  wp_localize_script( 'visual-portfolio-admin', 'VPAdminVariables', $data_init );
49
+ wp_enqueue_style( 'visual-portfolio-admin', visual_portfolio()->plugin_url . 'assets/admin/css/style.min.css', array(), '2.15.1' );
50
  wp_style_add_data( 'visual-portfolio-admin', 'rtl', 'replace' );
51
  wp_style_add_data( 'visual-portfolio-admin', 'suffix', '.min' );
52
  }
60
  );
61
 
62
  if ( 'vp_lists' === get_post_type() ) {
63
+ wp_enqueue_script( 'visual-portfolio-saved-layouts', visual_portfolio()->plugin_url . 'gutenberg/layouts-editor.min.js', array( 'jquery' ), '2.15.1', true );
64
+ wp_enqueue_style( 'visual-portfolio-saved-layouts', visual_portfolio()->plugin_url . 'gutenberg/layouts-editor.min.css', array(), '2.15.1' );
65
  wp_style_add_data( 'visual-portfolio-saved-layouts', 'rtl', 'replace' );
66
  wp_style_add_data( 'visual-portfolio-saved-layouts', 'suffix', '.min' );
67
 
216
  // phpcs:ignore
217
  if ( 'visual_portfolio_go_pro' === $_GET['page'] ) {
218
  // phpcs:ignore
219
+ wp_redirect( 'https://visualportfolio.co/pro/?utm_source=freeplugin&utm_medium=link&utm_campaign=admin_page&utm_content=2.15.1' );
220
  exit();
221
  }
222
  }
classes/class-archive-mapping.php CHANGED
@@ -297,20 +297,18 @@ class Visual_Portfolio_Archive_Mapping {
297
  $slug = get_post_field( 'post_name', $this->archive_page );
298
  add_rewrite_tag( '%vp_page%', '([^&]+)' );
299
  add_rewrite_tag( '%vp_page_archive%', '([^&]+)' );
300
- add_rewrite_tag( '%vp_filter%', '([^&]+)' );
301
 
302
  add_rewrite_rule(
303
  '^' . $slug . '/page/?([0-9]{1,})/?',
304
  'index.php?post_type=portfolio&vp_page_archive=1&vp_page=$matches[1]',
305
  'top'
306
  );
307
-
308
  add_rewrite_rule(
309
  '^' . $this->permalinks['category_base'] . '/([^/]*)/?',
310
- 'index.php?post_type=portfolio&vp_page_archive=1&vp_filter=portfolio_category:$matches[1]',
311
  'top'
312
  );
313
-
314
  add_rewrite_rule(
315
  '^' . $this->permalinks['tag_base'] . '/([^/]*)/?',
316
  'index.php?post_type=portfolio&vp_page_archive=1&portfolio_tag=$matches[1]',
@@ -374,9 +372,18 @@ class Visual_Portfolio_Archive_Mapping {
374
  $query->is_singular = true;
375
  $query->is_page = true;
376
  $query->is_post_type_archive = false;
 
 
 
 
 
 
 
 
 
377
  if (
378
- isset( $query->query['vp_filter'] ) &&
379
- ! empty( $query->query['vp_filter'] ) &&
380
  (
381
  (
382
  // phpcs:ignore
297
  $slug = get_post_field( 'post_name', $this->archive_page );
298
  add_rewrite_tag( '%vp_page%', '([^&]+)' );
299
  add_rewrite_tag( '%vp_page_archive%', '([^&]+)' );
300
+ add_rewrite_tag( '%vp_category%', '([^&]+)' );
301
 
302
  add_rewrite_rule(
303
  '^' . $slug . '/page/?([0-9]{1,})/?',
304
  'index.php?post_type=portfolio&vp_page_archive=1&vp_page=$matches[1]',
305
  'top'
306
  );
 
307
  add_rewrite_rule(
308
  '^' . $this->permalinks['category_base'] . '/([^/]*)/?',
309
+ 'index.php?post_type=portfolio&vp_page_archive=1&vp_category=$matches[1]',
310
  'top'
311
  );
 
312
  add_rewrite_rule(
313
  '^' . $this->permalinks['tag_base'] . '/([^/]*)/?',
314
  'index.php?post_type=portfolio&vp_page_archive=1&portfolio_tag=$matches[1]',
372
  $query->is_singular = true;
373
  $query->is_page = true;
374
  $query->is_post_type_archive = false;
375
+
376
+ if (
377
+ isset( $query->query['vp_category'] ) &&
378
+ ! empty( $query->query['vp_category'] ) &&
379
+ ! isset( $query->query['vp_filter'] )
380
+ ) {
381
+ $query->set( 'vp_filter', 'portfolio_category:' . $query->query['vp_category'] );
382
+ }
383
+
384
  if (
385
+ isset( $query->query['vp_category'] ) &&
386
+ ! empty( $query->query['vp_category'] ) &&
387
  (
388
  (
389
  // phpcs:ignore
classes/class-ask-review.php CHANGED
@@ -93,7 +93,7 @@ class Visual_Portfolio_Ask_Review_Notice {
93
  return;
94
  }
95
 
96
- wp_enqueue_script( 'visual-portfolio-ask-review-notice', visual_portfolio()->plugin_url . 'assets/admin/js/ask-review-notice.min.js', array( 'jquery' ), '2.15.0', true );
97
  wp_localize_script(
98
  'visual-portfolio-ask-review-notice',
99
  'VPAskReviewNotice',
93
  return;
94
  }
95
 
96
+ wp_enqueue_script( 'visual-portfolio-ask-review-notice', visual_portfolio()->plugin_url . 'assets/admin/js/ask-review-notice.min.js', array( 'jquery' ), '2.15.1', true );
97
  wp_localize_script(
98
  'visual-portfolio-ask-review-notice',
99
  'VPAskReviewNotice',
classes/class-assets.php CHANGED
@@ -105,11 +105,11 @@ class Visual_Portfolio_Assets {
105
  foreach ( self::$stored_assets[ $type ] as $name => $data ) {
106
  if ( isset( $data['value'] ) && $data['value'] ) {
107
  if ( 'script' === $type ) {
108
- wp_enqueue_script( $name, '', array(), '2.15.0', true );
109
  } elseif ( is_string( $data['value'] ) ) {
110
- visual_portfolio()->include_template_style( $name, $data['value'], array(), '2.15.0' );
111
  } else {
112
- wp_enqueue_style( $name, '', array(), '2.15.0' );
113
  }
114
 
115
  self::$stored_assets[ $type ]['value'] = false;
@@ -272,13 +272,13 @@ class Visual_Portfolio_Assets {
272
 
273
  // Enqueue custom CSS.
274
  if ( ! self::$head_css_included ) {
275
- wp_register_style( $controls_css_handle, false, array(), '2.15.0' );
276
  wp_enqueue_style( $controls_css_handle );
277
  wp_add_inline_style( $controls_css_handle, $dynamic_styles ? $dynamic_styles : ' ' );
278
 
279
  // Enqueue JS instead of CSS when rendering in <body> to prevent W3C errors.
280
  } elseif ( ! wp_script_is( $controls_css_handle, 'enqueued' ) ) {
281
- wp_register_script( $controls_css_handle, false, array(), '2.15.0', true );
282
  wp_enqueue_script( $controls_css_handle );
283
  wp_add_inline_script(
284
  $controls_css_handle,
@@ -394,7 +394,7 @@ class Visual_Portfolio_Assets {
394
  // LazySizes.
395
  if ( apply_filters( 'vpf_enqueue_plugin_lazysizes', true ) ) {
396
  wp_register_script( 'lazysizes-object-fit-cover', visual_portfolio()->plugin_url . 'assets/js/lazysizes-object-fit-cover.min.js', array(), '4.1.0', true );
397
- wp_register_script( 'lazysizes-config', visual_portfolio()->plugin_url . 'assets/js/lazysizes-cfg.min.js', array(), '2.15.0', true );
398
  wp_register_script( 'lazysizes', visual_portfolio()->plugin_url . 'assets/vendor/lazysizes/lazysizes.min.js', array( 'lazysizes-object-fit-cover', 'lazysizes-config' ), '5.2.2', true );
399
  }
400
 
@@ -442,7 +442,7 @@ class Visual_Portfolio_Assets {
442
  );
443
 
444
  foreach ( $vp_styles as $name => $data ) {
445
- wp_register_style( $name, visual_portfolio()->plugin_url . $data[0], $data[1], '2.15.0' );
446
  wp_style_add_data( $name, 'rtl', 'replace' );
447
  wp_style_add_data( $name, 'suffix', '.min' );
448
  }
@@ -560,7 +560,7 @@ class Visual_Portfolio_Assets {
560
  );
561
 
562
  foreach ( $vp_scripts as $name => $data ) {
563
- wp_register_script( $name, visual_portfolio()->plugin_url . $data[0], $data[1], '2.15.0', true );
564
  }
565
 
566
  do_action( 'vpf_after_assets_register' );
105
  foreach ( self::$stored_assets[ $type ] as $name => $data ) {
106
  if ( isset( $data['value'] ) && $data['value'] ) {
107
  if ( 'script' === $type ) {
108
+ wp_enqueue_script( $name, '', array(), '2.15.1', true );
109
  } elseif ( is_string( $data['value'] ) ) {
110
+ visual_portfolio()->include_template_style( $name, $data['value'], array(), '2.15.1' );
111
  } else {
112
+ wp_enqueue_style( $name, '', array(), '2.15.1' );
113
  }
114
 
115
  self::$stored_assets[ $type ]['value'] = false;
272
 
273
  // Enqueue custom CSS.
274
  if ( ! self::$head_css_included ) {
275
+ wp_register_style( $controls_css_handle, false, array(), '2.15.1' );
276
  wp_enqueue_style( $controls_css_handle );
277
  wp_add_inline_style( $controls_css_handle, $dynamic_styles ? $dynamic_styles : ' ' );
278
 
279
  // Enqueue JS instead of CSS when rendering in <body> to prevent W3C errors.
280
  } elseif ( ! wp_script_is( $controls_css_handle, 'enqueued' ) ) {
281
+ wp_register_script( $controls_css_handle, false, array(), '2.15.1', true );
282
  wp_enqueue_script( $controls_css_handle );
283
  wp_add_inline_script(
284
  $controls_css_handle,
394
  // LazySizes.
395
  if ( apply_filters( 'vpf_enqueue_plugin_lazysizes', true ) ) {
396
  wp_register_script( 'lazysizes-object-fit-cover', visual_portfolio()->plugin_url . 'assets/js/lazysizes-object-fit-cover.min.js', array(), '4.1.0', true );
397
+ wp_register_script( 'lazysizes-config', visual_portfolio()->plugin_url . 'assets/js/lazysizes-cfg.min.js', array(), '2.15.1', true );
398
  wp_register_script( 'lazysizes', visual_portfolio()->plugin_url . 'assets/vendor/lazysizes/lazysizes.min.js', array( 'lazysizes-object-fit-cover', 'lazysizes-config' ), '5.2.2', true );
399
  }
400
 
442
  );
443
 
444
  foreach ( $vp_styles as $name => $data ) {
445
+ wp_register_style( $name, visual_portfolio()->plugin_url . $data[0], $data[1], '2.15.1' );
446
  wp_style_add_data( $name, 'rtl', 'replace' );
447
  wp_style_add_data( $name, 'suffix', '.min' );
448
  }
560
  );
561
 
562
  foreach ( $vp_scripts as $name => $data ) {
563
+ wp_register_script( $name, visual_portfolio()->plugin_url . $data[0], $data[1], '2.15.1', true );
564
  }
565
 
566
  do_action( 'vpf_after_assets_register' );
classes/class-custom-post-type.php CHANGED
@@ -256,7 +256,7 @@ class Visual_Portfolio_Custom_Post_Type {
256
 
257
  global $wp_version;
258
 
259
- $check_string = 'Plugin: 2.15.0 WP: ' . $wp_version;
260
 
261
  if ( get_option( 'visual_portfolio_updated_caps' ) === $check_string ) {
262
  return;
@@ -637,10 +637,12 @@ class Visual_Portfolio_Custom_Post_Type {
637
  // Don't use WP_Query on the admin side https://core.trac.wordpress.org/ticket/18408 .
638
  $vp_query = get_posts(
639
  array(
640
- 'post_type' => 'vp_lists',
641
- 'posts_per_page' => -1,
642
- 'paged' => -1,
643
- 'post__in' => $layouts,
 
 
644
  )
645
  );
646
  foreach ( $vp_query as $post ) {
@@ -729,7 +731,7 @@ class Visual_Portfolio_Custom_Post_Type {
729
  esc_html__( 'Documentation', 'visual-portfolio' ),
730
  esc_html__( 'Documentation', 'visual-portfolio' ),
731
  'manage_options',
732
- 'https://visualportfolio.co/documentation/getting-started/'
733
  );
734
  }
735
 
@@ -773,7 +775,7 @@ class Visual_Portfolio_Custom_Post_Type {
773
  </h3>
774
  <div>
775
  <p><?php echo esc_html__( 'Send a collection of photographs to your client for approval.', 'visual-portfolio' ); ?></p>
776
- <a class="vpf-settings-info-pro-button" target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/pro/?utm_source=freeplugin&amp;utm_medium=link&amp;utm_campaign=plugin_settings&amp;utm_content=2.15.0">
777
  <?php echo esc_html__( 'Read More', 'visual-portfolio' ); ?>
778
  </a>
779
  </div>
256
 
257
  global $wp_version;
258
 
259
+ $check_string = 'Plugin: 2.15.1 WP: ' . $wp_version;
260
 
261
  if ( get_option( 'visual_portfolio_updated_caps' ) === $check_string ) {
262
  return;
637
  // Don't use WP_Query on the admin side https://core.trac.wordpress.org/ticket/18408 .
638
  $vp_query = get_posts(
639
  array(
640
+ 'post_type' => 'vp_lists',
641
+ 'posts_per_page' => -1,
642
+ 'paged' => -1,
643
+ 'post__in' => $layouts,
644
+ 'update_post_meta_cache' => false,
645
+ 'update_post_term_cache' => false,
646
  )
647
  );
648
  foreach ( $vp_query as $post ) {
731
  esc_html__( 'Documentation', 'visual-portfolio' ),
732
  esc_html__( 'Documentation', 'visual-portfolio' ),
733
  'manage_options',
734
+ 'https://visualportfolio.co/documentation/getting-started/?utm_source=plugin_menu&utm_medium=link&utm_campaign=docs&utm_content=2.15.1'
735
  );
736
  }
737
 
775
  </h3>
776
  <div>
777
  <p><?php echo esc_html__( 'Send a collection of photographs to your client for approval.', 'visual-portfolio' ); ?></p>
778
+ <a class="vpf-settings-info-pro-button" target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/pro/?utm_source=freeplugin&amp;utm_medium=link&amp;utm_campaign=plugin_settings&amp;utm_content=2.15.1">
779
  <?php echo esc_html__( 'Read More', 'visual-portfolio' ); ?>
780
  </a>
781
  </div>
classes/class-get-portfolio.php CHANGED
@@ -1233,10 +1233,12 @@ class Visual_Portfolio_Get {
1233
  // Find all used attachments.
1234
  $all_attachments = get_posts(
1235
  array(
1236
- 'post_type' => 'attachment',
1237
- 'posts_per_page' => -1,
1238
- 'paged' => -1,
1239
- 'post__in' => $images_ids,
 
 
1240
  )
1241
  );
1242
 
1233
  // Find all used attachments.
1234
  $all_attachments = get_posts(
1235
  array(
1236
+ 'post_type' => 'attachment',
1237
+ 'posts_per_page' => -1,
1238
+ 'paged' => -1,
1239
+ 'post__in' => $images_ids,
1240
+ 'update_post_meta_cache' => false,
1241
+ 'update_post_term_cache' => false,
1242
  )
1243
  );
1244
 
classes/class-gutenberg.php CHANGED
@@ -174,14 +174,14 @@ class Visual_Portfolio_Gutenberg_Block {
174
  'visual-portfolio-gutenberg',
175
  plugins_url( '../gutenberg/index.min.js', __FILE__ ),
176
  array( 'wp-i18n', 'wp-element', 'wp-components', 'jquery' ),
177
- '2.15.0',
178
  true
179
  );
180
  wp_enqueue_style(
181
  'visual-portfolio-gutenberg',
182
  plugins_url( '../gutenberg/style.min.css', __FILE__ ),
183
  array(),
184
- '2.15.0'
185
  );
186
  wp_style_add_data( 'visual-portfolio-gutenberg', 'rtl', 'replace' );
187
  wp_style_add_data( 'visual-portfolio-gutenberg', 'suffix', '.min' );
@@ -202,7 +202,7 @@ class Visual_Portfolio_Gutenberg_Block {
202
  'visual-portfolio-gutenberg-custom-post-meta',
203
  plugins_url( '../gutenberg/custom-post-meta.min.js', __FILE__ ),
204
  array( 'wp-i18n', 'wp-element', 'wp-components', 'wp-plugins', 'jquery' ),
205
- '2.15.0',
206
  true
207
  );
208
 
174
  'visual-portfolio-gutenberg',
175
  plugins_url( '../gutenberg/index.min.js', __FILE__ ),
176
  array( 'wp-i18n', 'wp-element', 'wp-components', 'jquery' ),
177
+ '2.15.1',
178
  true
179
  );
180
  wp_enqueue_style(
181
  'visual-portfolio-gutenberg',
182
  plugins_url( '../gutenberg/style.min.css', __FILE__ ),
183
  array(),
184
+ '2.15.1'
185
  );
186
  wp_style_add_data( 'visual-portfolio-gutenberg', 'rtl', 'replace' );
187
  wp_style_add_data( 'visual-portfolio-gutenberg', 'suffix', '.min' );
202
  'visual-portfolio-gutenberg-custom-post-meta',
203
  plugins_url( '../gutenberg/custom-post-meta.min.js', __FILE__ ),
204
  array( 'wp-i18n', 'wp-element', 'wp-components', 'wp-plugins', 'jquery' ),
205
+ '2.15.1',
206
  true
207
  );
208
 
classes/class-migration.php CHANGED
@@ -18,7 +18,7 @@ class Visual_Portfolio_Migrations {
18
  *
19
  * @var string
20
  */
21
- protected $version = '2.15.0';
22
 
23
  /**
24
  * Initial version.
18
  *
19
  * @var string
20
  */
21
+ protected $version = '2.15.1';
22
 
23
  /**
24
  * Initial version.
classes/class-preview.php CHANGED
@@ -232,7 +232,7 @@ class Visual_Portfolio_Preview {
232
 
233
  // Enqueue assets.
234
  wp_enqueue_script( 'iframe-resizer-content', visual_portfolio()->plugin_url . 'assets/vendor/iframe-resizer/js/iframeResizer.contentWindow.min.js', array(), '4.2.11', true );
235
- wp_enqueue_script( 'visual-portfolio-preview', visual_portfolio()->plugin_url . 'assets/js/preview.min.js', array( 'jquery', 'iframe-resizer-content' ), '2.15.0', true );
236
 
237
  // Post data for script.
238
  wp_localize_script(
@@ -275,7 +275,7 @@ class Visual_Portfolio_Preview {
275
  Visual_Portfolio_Assets::enqueue( $options );
276
 
277
  // Custom styles.
278
- visual_portfolio()->include_template_style( 'visual-portfolio-preview', 'preview/style', array(), '2.15.0' );
279
 
280
  // Output template.
281
  visual_portfolio()->include_template(
232
 
233
  // Enqueue assets.
234
  wp_enqueue_script( 'iframe-resizer-content', visual_portfolio()->plugin_url . 'assets/vendor/iframe-resizer/js/iframeResizer.contentWindow.min.js', array(), '4.2.11', true );
235
+ wp_enqueue_script( 'visual-portfolio-preview', visual_portfolio()->plugin_url . 'assets/js/preview.min.js', array( 'jquery', 'iframe-resizer-content' ), '2.15.1', true );
236
 
237
  // Post data for script.
238
  wp_localize_script(
275
  Visual_Portfolio_Assets::enqueue( $options );
276
 
277
  // Custom styles.
278
+ visual_portfolio()->include_template_style( 'visual-portfolio-preview', 'preview/style', array(), '2.15.1' );
279
 
280
  // Output template.
281
  visual_portfolio()->include_template(
classes/class-rest.php CHANGED
@@ -87,9 +87,11 @@ class Visual_Portfolio_Rest extends WP_REST_Controller {
87
  $layouts = array();
88
  $vp_query = get_posts(
89
  array(
90
- 'post_type' => 'vp_lists',
91
- 'posts_per_page' => -1,
92
- 'paged' => -1,
 
 
93
  )
94
  );
95
  foreach ( $vp_query as $post ) {
87
  $layouts = array();
88
  $vp_query = get_posts(
89
  array(
90
+ 'post_type' => 'vp_lists',
91
+ 'posts_per_page' => -1,
92
+ 'paged' => -1,
93
+ 'update_post_meta_cache' => false,
94
+ 'update_post_term_cache' => false,
95
  )
96
  );
97
  foreach ( $vp_query as $post ) {
classes/class-settings.php CHANGED
@@ -138,7 +138,7 @@ class Visual_Portfolio_Settings {
138
  */
139
  public static function admin_enqueue_scripts( $page ) {
140
  if ( 'portfolio_page_visual-portfolio-settings' === $page ) {
141
- wp_enqueue_script( 'visual-portfolio-archive-page-selector', visual_portfolio()->plugin_url . 'assets/admin/js/archive-page-selector.min.js', array( 'jquery', 'select2' ), '2.15.0', true );
142
  }
143
  }
144
 
@@ -608,7 +608,7 @@ class Visual_Portfolio_Settings {
608
  <h3>' . esc_html__( 'Pro Feature', 'visual-portfolio' ) . '</h3>
609
  <div>
610
  <p>' . esc_html__( 'Protect your works using watermarks', 'visual-portfolio' ) . '</p>
611
- <a class="vpf-settings-info-pro-button" target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/pro/?utm_source=freeplugin&utm_medium=link&utm_campaign=plugin_settings&utm_content=2.15.0">' . esc_html__( 'Read More', 'visual-portfolio' ) . '</a>
612
  </div>
613
  </div>
614
  ',
@@ -623,7 +623,7 @@ class Visual_Portfolio_Settings {
623
  <h3>' . esc_html__( 'Pro Feature', 'visual-portfolio' ) . '</h3>
624
  <div>
625
  <p>' . esc_html__( 'Social feeds such as Instagram, Youtube, Flickr, Twitter, etc...', 'visual-portfolio' ) . '</p>
626
- <a class="vpf-settings-info-pro-button" target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/pro/?utm_source=freeplugin&utm_medium=link&utm_campaign=plugin_settings&utm_content=2.15.0">' . esc_html__( 'Read More', 'visual-portfolio' ) . '</a>
627
  </div>
628
  </div>
629
  ',
@@ -638,7 +638,7 @@ class Visual_Portfolio_Settings {
638
  <h3>' . esc_html__( 'Pro Feature', 'visual-portfolio' ) . '</h3>
639
  <div>
640
  <p>' . esc_html__( 'Remove our plugin brand and logos from Front and Admin areas', 'visual-portfolio' ) . '</p>
641
- <a class="vpf-settings-info-pro-button" target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/pro/?utm_source=freeplugin&utm_medium=link&utm_campaign=plugin_settings&utm_content=2.15.0">' . esc_html__( 'Read More', 'visual-portfolio' ) . '</a>
642
  </div>
643
  </div>
644
  ',
@@ -722,10 +722,12 @@ class Visual_Portfolio_Settings {
722
  public static function get_posts_ajax_callback() {
723
  $return = array();
724
  $query_opts = array(
725
- 'post_status' => 'publish',
726
- 'ignore_sticky_posts' => 1,
727
- 'posts_per_page' => 50,
728
- 'post_type' => 'page',
 
 
729
  );
730
 
731
  // phpcs:disable
138
  */
139
  public static function admin_enqueue_scripts( $page ) {
140
  if ( 'portfolio_page_visual-portfolio-settings' === $page ) {
141
+ wp_enqueue_script( 'visual-portfolio-archive-page-selector', visual_portfolio()->plugin_url . 'assets/admin/js/archive-page-selector.min.js', array( 'jquery', 'select2' ), '2.15.1', true );
142
  }
143
  }
144
 
608
  <h3>' . esc_html__( 'Pro Feature', 'visual-portfolio' ) . '</h3>
609
  <div>
610
  <p>' . esc_html__( 'Protect your works using watermarks', 'visual-portfolio' ) . '</p>
611
+ <a class="vpf-settings-info-pro-button" target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/pro/?utm_source=freeplugin&utm_medium=link&utm_campaign=plugin_settings&utm_content=2.15.1">' . esc_html__( 'Read More', 'visual-portfolio' ) . '</a>
612
  </div>
613
  </div>
614
  ',
623
  <h3>' . esc_html__( 'Pro Feature', 'visual-portfolio' ) . '</h3>
624
  <div>
625
  <p>' . esc_html__( 'Social feeds such as Instagram, Youtube, Flickr, Twitter, etc...', 'visual-portfolio' ) . '</p>
626
+ <a class="vpf-settings-info-pro-button" target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/pro/?utm_source=freeplugin&utm_medium=link&utm_campaign=plugin_settings&utm_content=2.15.1">' . esc_html__( 'Read More', 'visual-portfolio' ) . '</a>
627
  </div>
628
  </div>
629
  ',
638
  <h3>' . esc_html__( 'Pro Feature', 'visual-portfolio' ) . '</h3>
639
  <div>
640
  <p>' . esc_html__( 'Remove our plugin brand and logos from Front and Admin areas', 'visual-portfolio' ) . '</p>
641
+ <a class="vpf-settings-info-pro-button" target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/pro/?utm_source=freeplugin&utm_medium=link&utm_campaign=plugin_settings&utm_content=2.15.1">' . esc_html__( 'Read More', 'visual-portfolio' ) . '</a>
642
  </div>
643
  </div>
644
  ',
722
  public static function get_posts_ajax_callback() {
723
  $return = array();
724
  $query_opts = array(
725
+ 'post_status' => 'publish',
726
+ 'ignore_sticky_posts' => 1,
727
+ 'posts_per_page' => 50,
728
+ 'post_type' => 'page',
729
+ 'update_post_meta_cache' => false,
730
+ 'update_post_term_cache' => false,
731
  );
732
 
733
  // phpcs:disable
classes/class-supported-themes.php CHANGED
@@ -86,7 +86,7 @@ class Visual_Portfolio_Supported_Themes {
86
  public function wp_enqueue_scripts() {
87
  $theme_compat = $this->get_theme_compatibility_style();
88
  if ( $theme_compat ) {
89
- wp_enqueue_style( $theme_compat['name'], $theme_compat['url'], array(), '2.15.0' );
90
  wp_style_add_data( $theme_compat['name'], 'rtl', 'replace' );
91
  wp_style_add_data( $theme_compat['name'], 'suffix', '.min' );
92
  }
86
  public function wp_enqueue_scripts() {
87
  $theme_compat = $this->get_theme_compatibility_style();
88
  if ( $theme_compat ) {
89
+ wp_enqueue_style( $theme_compat['name'], $theme_compat['url'], array(), '2.15.1' );
90
  wp_style_add_data( $theme_compat['name'], 'rtl', 'replace' );
91
  wp_style_add_data( $theme_compat['name'], 'suffix', '.min' );
92
  }
classes/class-welcome-screen.php CHANGED
@@ -88,7 +88,7 @@ class Visual_Portfolio_Welcome_Screen {
88
  <div>
89
  <?php
90
  // translators: %s - pro link.
91
- echo sprintf( esc_html__( 'Want to get more power with Pro? Visit %s', 'visual-portfolio' ), '<a target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/pro/?utm_source=plugin_welcome&utm_medium=link&utm_campaign=pro&utm_content=2.15.0">visualportfolio.co/pro</a>' );
92
  ?>
93
  </div>
94
  </div>
@@ -146,8 +146,8 @@ class Visual_Portfolio_Welcome_Screen {
146
  <hr>
147
 
148
  <div class="vpf-welcome-content-buttons">
149
- <a target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/?utm_source=plugin_welcome&utm_medium=link&utm_campaign=demo&utm_content=2.15.0"><?php echo esc_html__( 'More Features', 'visual-portfolio' ); ?></a>
150
- <a target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/documentation/getting-started/?utm_source=plugin_welcome&utm_medium=link&utm_campaign=docs&utm_content=2.15.0"><?php echo esc_html__( 'Documentation', 'visual-portfolio' ); ?></a>
151
  </div>
152
  </div>
153
 
@@ -169,7 +169,7 @@ class Visual_Portfolio_Welcome_Screen {
169
  <li><?php echo esc_html__( 'White Label', 'visual-portfolio' ); ?></li>
170
  <li><?php echo esc_html__( 'And much more...', 'visual-portfolio' ); ?></li>
171
  </ul>
172
- <a target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/pro/?utm_source=plugin_welcome&utm_medium=link&utm_campaign=pro&utm_content=2.15.0"><?php echo esc_html__( 'Upgrade to PRO Now', 'visual-portfolio' ); ?></a>
173
  </div>
174
  </div>
175
  <?php
88
  <div>
89
  <?php
90
  // translators: %s - pro link.
91
+ echo sprintf( esc_html__( 'Want to get more power with Pro? Visit %s', 'visual-portfolio' ), '<a target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/pro/?utm_source=plugin_welcome&utm_medium=link&utm_campaign=pro&utm_content=2.15.1">visualportfolio.co/pro</a>' );
92
  ?>
93
  </div>
94
  </div>
146
  <hr>
147
 
148
  <div class="vpf-welcome-content-buttons">
149
+ <a target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/?utm_source=plugin_welcome&utm_medium=link&utm_campaign=demo&utm_content=2.15.1"><?php echo esc_html__( 'More Features', 'visual-portfolio' ); ?></a>
150
+ <a target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/documentation/getting-started/?utm_source=plugin_welcome&utm_medium=link&utm_campaign=docs&utm_content=2.15.1"><?php echo esc_html__( 'Documentation', 'visual-portfolio' ); ?></a>
151
  </div>
152
  </div>
153
 
169
  <li><?php echo esc_html__( 'White Label', 'visual-portfolio' ); ?></li>
170
  <li><?php echo esc_html__( 'And much more...', 'visual-portfolio' ); ?></li>
171
  </ul>
172
+ <a target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/pro/?utm_source=plugin_welcome&utm_medium=link&utm_campaign=pro&utm_content=2.15.1"><?php echo esc_html__( 'Upgrade to PRO Now', 'visual-portfolio' ); ?></a>
173
  </div>
174
  </div>
175
  <?php
gutenberg/components/controls-render/index.js CHANGED
@@ -474,7 +474,7 @@ ControlsRender.Control = function( props ) {
474
  { renderControlHelp ? (
475
  <p>{ renderControlHelp }</p>
476
  ) : '' }
477
- <ProNote.Button target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/pro/?utm_source=freeplugin&amp;utm_medium=link&amp;utm_campaign=block_settings&amp;utm_content=2.15.0">
478
  { __( 'Read More', 'visual-portfolio' ) }
479
  </ProNote.Button>
480
  </ProNote>
474
  { renderControlHelp ? (
475
  <p>{ renderControlHelp }</p>
476
  ) : '' }
477
+ <ProNote.Button target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/pro/?utm_source=freeplugin&amp;utm_medium=link&amp;utm_campaign=block_settings&amp;utm_content=2.15.1">
478
  { __( 'Read More', 'visual-portfolio' ) }
479
  </ProNote.Button>
480
  </ProNote>
languages/visual-portfolio.pot CHANGED
@@ -263,7 +263,7 @@ msgstr ""
263
  msgid "Caption Links Hover Color"
264
  msgstr ""
265
 
266
- #: dist/visual-portfolio/classes/class-admin.php:915, dist/visual-portfolio/classes/class-admin.php:977, dist/visual-portfolio/classes/class-admin.php:1028, dist/visual-portfolio/classes/class-admin.php:1137, dist/visual-portfolio/classes/class-admin.php:1537, dist/visual-portfolio/classes/class-admin.php:1704, dist/visual-portfolio/classes/class-admin.php:1724, dist/visual-portfolio/classes/class-admin.php:2279, dist/visual-portfolio/classes/class-admin.php:2612, dist/visual-portfolio/classes/class-custom-post-type.php:772, dist/visual-portfolio/classes/class-settings.php:608, dist/visual-portfolio/classes/class-settings.php:623, dist/visual-portfolio/classes/class-settings.php:638
267
  msgid "Pro Feature"
268
  msgstr ""
269
 
@@ -854,7 +854,7 @@ msgstr ""
854
  msgid "If you like, you may enter custom structures for your portfolio URLs here. For example, using <code>portfolio</code> would make your portfolio links like <code>%sportfolio/sample-portfolio/</code>. This setting affects portfolio URLs only, not things such as portfolio categories."
855
  msgstr ""
856
 
857
- #: dist/visual-portfolio/classes/class-archive-mapping.php:183, dist/visual-portfolio/classes/class-archive-mapping.php:282, dist/visual-portfolio/classes/class-archive-mapping.php:631
858
  msgctxt "default-slug"
859
  msgid "portfolio"
860
  msgstr ""
@@ -875,11 +875,11 @@ msgstr ""
875
  msgid "Enter a custom base to use. A base must be set or WordPress will use default instead."
876
  msgstr ""
877
 
878
- #: dist/visual-portfolio/classes/class-archive-mapping.php:570
879
  msgid "Portfolio"
880
  msgstr ""
881
 
882
- #: dist/visual-portfolio/classes/class-archive-mapping.php:617
883
  msgid "Portfolio Page"
884
  msgstr ""
885
 
@@ -1154,44 +1154,44 @@ msgstr ""
1154
  msgid "All sources"
1155
  msgstr ""
1156
 
1157
- #: dist/visual-portfolio/classes/class-custom-post-type.php:729, dist/visual-portfolio/classes/class-custom-post-type.php:730, dist/visual-portfolio/classes/class-welcome-screen.php:150
1158
  msgid "Documentation"
1159
  msgstr ""
1160
 
1161
- #: dist/visual-portfolio/classes/class-custom-post-type.php:745, dist/visual-portfolio/classes/class-custom-post-type.php:746
1162
  msgid "Proofing"
1163
  msgstr ""
1164
 
1165
- #: dist/visual-portfolio/classes/class-custom-post-type.php:775
1166
  msgid "Send a collection of photographs to your client for approval."
1167
  msgstr ""
1168
 
1169
- #: dist/visual-portfolio/classes/class-custom-post-type.php:777, dist/visual-portfolio/classes/class-settings.php:611, dist/visual-portfolio/classes/class-settings.php:626, dist/visual-portfolio/classes/class-settings.php:641
1170
  msgid "Read More"
1171
  msgstr ""
1172
 
1173
- #: dist/visual-portfolio/classes/class-get-portfolio.php:1904
1174
  msgid "Default sorting"
1175
  msgstr ""
1176
 
1177
- #: dist/visual-portfolio/classes/class-get-portfolio.php:1905
1178
  msgid "Sort by date (newest)"
1179
  msgstr ""
1180
 
1181
- #: dist/visual-portfolio/classes/class-get-portfolio.php:1906
1182
  msgid "Sort by date (oldest)"
1183
  msgstr ""
1184
 
1185
- #: dist/visual-portfolio/classes/class-get-portfolio.php:1907
1186
  msgid "Sort by title (A-Z)"
1187
  msgstr ""
1188
 
1189
- #: dist/visual-portfolio/classes/class-get-portfolio.php:1908
1190
  msgid "Sort by title (Z-A)"
1191
  msgstr ""
1192
 
1193
  #. translators: %s - published in human format.
1194
- #: dist/visual-portfolio/classes/class-get-portfolio.php:2034
1195
  msgid "%s ago"
1196
  msgstr ""
1197
 
@@ -1215,11 +1215,11 @@ msgstr ""
1215
  msgid "Sorry, you are not allowed to read saved layouts data."
1216
  msgstr ""
1217
 
1218
- #: dist/visual-portfolio/classes/class-rest.php:106
1219
  msgid "Layouts not found."
1220
  msgstr ""
1221
 
1222
- #: dist/visual-portfolio/classes/class-rest.php:117
1223
  msgid "Sorry, you are not allowed to edit saved layouts data."
1224
  msgstr ""
1225
 
@@ -1227,7 +1227,7 @@ msgstr ""
1227
  msgid "Settings"
1228
  msgstr ""
1229
 
1230
- #: dist/visual-portfolio/classes/class-settings.php:154, dist/visual-portfolio/classes/3rd/plugins/class-elementor-widget.php:147
1231
  msgid "General"
1232
  msgstr ""
1233
 
@@ -1640,19 +1640,19 @@ msgstr ""
1640
  msgid "Visual Portfolio, Posts & Image Gallery for WordPress"
1641
  msgstr ""
1642
 
1643
- #: dist/visual-portfolio/classes/3rd/plugins/class-elementor-widget.php:155, dist/visual-portfolio/classes/3rd/plugins/class-vc.php:71
1644
  msgid "Select Layout"
1645
  msgstr ""
1646
 
1647
- #: dist/visual-portfolio/classes/3rd/plugins/class-vc.php:79
1648
  msgid "Custom Classes"
1649
  msgstr ""
1650
 
1651
- #: dist/visual-portfolio/classes/3rd/plugins/class-vc.php:86
1652
  msgid "CSS"
1653
  msgstr ""
1654
 
1655
- #: dist/visual-portfolio/classes/3rd/plugins/class-vc.php:88
1656
  msgid "Design Options"
1657
  msgstr ""
1658
 
263
  msgid "Caption Links Hover Color"
264
  msgstr ""
265
 
266
+ #: dist/visual-portfolio/classes/class-admin.php:915, dist/visual-portfolio/classes/class-admin.php:977, dist/visual-portfolio/classes/class-admin.php:1028, dist/visual-portfolio/classes/class-admin.php:1137, dist/visual-portfolio/classes/class-admin.php:1537, dist/visual-portfolio/classes/class-admin.php:1704, dist/visual-portfolio/classes/class-admin.php:1724, dist/visual-portfolio/classes/class-admin.php:2279, dist/visual-portfolio/classes/class-admin.php:2612, dist/visual-portfolio/classes/class-custom-post-type.php:774, dist/visual-portfolio/classes/class-settings.php:608, dist/visual-portfolio/classes/class-settings.php:623, dist/visual-portfolio/classes/class-settings.php:638
267
  msgid "Pro Feature"
268
  msgstr ""
269
 
854
  msgid "If you like, you may enter custom structures for your portfolio URLs here. For example, using <code>portfolio</code> would make your portfolio links like <code>%sportfolio/sample-portfolio/</code>. This setting affects portfolio URLs only, not things such as portfolio categories."
855
  msgstr ""
856
 
857
+ #: dist/visual-portfolio/classes/class-archive-mapping.php:183, dist/visual-portfolio/classes/class-archive-mapping.php:282, dist/visual-portfolio/classes/class-archive-mapping.php:638
858
  msgctxt "default-slug"
859
  msgid "portfolio"
860
  msgstr ""
875
  msgid "Enter a custom base to use. A base must be set or WordPress will use default instead."
876
  msgstr ""
877
 
878
+ #: dist/visual-portfolio/classes/class-archive-mapping.php:577
879
  msgid "Portfolio"
880
  msgstr ""
881
 
882
+ #: dist/visual-portfolio/classes/class-archive-mapping.php:624
883
  msgid "Portfolio Page"
884
  msgstr ""
885
 
1154
  msgid "All sources"
1155
  msgstr ""
1156
 
1157
+ #: dist/visual-portfolio/classes/class-custom-post-type.php:731, dist/visual-portfolio/classes/class-custom-post-type.php:732, dist/visual-portfolio/classes/class-welcome-screen.php:150
1158
  msgid "Documentation"
1159
  msgstr ""
1160
 
1161
+ #: dist/visual-portfolio/classes/class-custom-post-type.php:747, dist/visual-portfolio/classes/class-custom-post-type.php:748
1162
  msgid "Proofing"
1163
  msgstr ""
1164
 
1165
+ #: dist/visual-portfolio/classes/class-custom-post-type.php:777
1166
  msgid "Send a collection of photographs to your client for approval."
1167
  msgstr ""
1168
 
1169
+ #: dist/visual-portfolio/classes/class-custom-post-type.php:779, dist/visual-portfolio/classes/class-settings.php:611, dist/visual-portfolio/classes/class-settings.php:626, dist/visual-portfolio/classes/class-settings.php:641
1170
  msgid "Read More"
1171
  msgstr ""
1172
 
1173
+ #: dist/visual-portfolio/classes/class-get-portfolio.php:1906
1174
  msgid "Default sorting"
1175
  msgstr ""
1176
 
1177
+ #: dist/visual-portfolio/classes/class-get-portfolio.php:1907
1178
  msgid "Sort by date (newest)"
1179
  msgstr ""
1180
 
1181
+ #: dist/visual-portfolio/classes/class-get-portfolio.php:1908
1182
  msgid "Sort by date (oldest)"
1183
  msgstr ""
1184
 
1185
+ #: dist/visual-portfolio/classes/class-get-portfolio.php:1909
1186
  msgid "Sort by title (A-Z)"
1187
  msgstr ""
1188
 
1189
+ #: dist/visual-portfolio/classes/class-get-portfolio.php:1910
1190
  msgid "Sort by title (Z-A)"
1191
  msgstr ""
1192
 
1193
  #. translators: %s - published in human format.
1194
+ #: dist/visual-portfolio/classes/class-get-portfolio.php:2036
1195
  msgid "%s ago"
1196
  msgstr ""
1197
 
1215
  msgid "Sorry, you are not allowed to read saved layouts data."
1216
  msgstr ""
1217
 
1218
+ #: dist/visual-portfolio/classes/class-rest.php:108
1219
  msgid "Layouts not found."
1220
  msgstr ""
1221
 
1222
+ #: dist/visual-portfolio/classes/class-rest.php:119
1223
  msgid "Sorry, you are not allowed to edit saved layouts data."
1224
  msgstr ""
1225
 
1227
  msgid "Settings"
1228
  msgstr ""
1229
 
1230
+ #: dist/visual-portfolio/classes/class-settings.php:154, dist/visual-portfolio/classes/3rd/plugins/class-elementor-widget.php:149
1231
  msgid "General"
1232
  msgstr ""
1233
 
1640
  msgid "Visual Portfolio, Posts & Image Gallery for WordPress"
1641
  msgstr ""
1642
 
1643
+ #: dist/visual-portfolio/classes/3rd/plugins/class-elementor-widget.php:157, dist/visual-portfolio/classes/3rd/plugins/class-vc.php:73
1644
  msgid "Select Layout"
1645
  msgstr ""
1646
 
1647
+ #: dist/visual-portfolio/classes/3rd/plugins/class-vc.php:81
1648
  msgid "Custom Classes"
1649
  msgstr ""
1650
 
1651
+ #: dist/visual-portfolio/classes/3rd/plugins/class-vc.php:88
1652
  msgid "CSS"
1653
  msgstr ""
1654
 
1655
+ #: dist/visual-portfolio/classes/3rd/plugins/class-vc.php:90
1656
  msgid "Design Options"
1657
  msgstr ""
1658
 
readme.md CHANGED
@@ -5,7 +5,7 @@
5
  * Requires at least: 5.8
6
  * Tested up to: 5.8
7
  * Requires PHP: 7.2
8
- * Stable tag: 2.15.0
9
  * License: GPLv2 or later
10
  * License URI: <http://www.gnu.org/licenses/gpl-2.0.html>
11
 
@@ -312,6 +312,11 @@ For more information, feel free to visit [Visual Portfolio official website](htt
312
 
313
  ## Changelog ##
314
 
 
 
 
 
 
315
  = 2.15.0 =
316
 
317
  * added support for Portfolio post type archives. Read more <https://visualportfolio.co/documentation/portfolio-archive/>
5
  * Requires at least: 5.8
6
  * Tested up to: 5.8
7
  * Requires PHP: 7.2
8
+ * Stable tag: 2.15.1
9
  * License: GPLv2 or later
10
  * License URI: <http://www.gnu.org/licenses/gpl-2.0.html>
11
 
312
 
313
  ## Changelog ##
314
 
315
+ = 2.15.1 =
316
+
317
+ * fixed category filter working in galleries placed on the Homepage
318
+ * fixed massive updating post meta, when running `get_posts()` when using WPBakery shortcode (and in other similar places)
319
+
320
  = 2.15.0 =
321
 
322
  * added support for Portfolio post type archives. Read more <https://visualportfolio.co/documentation/portfolio-archive/>
vendors/class-settings-api.php CHANGED
@@ -141,7 +141,7 @@ class Visual_Portfolio_Settings_API {
141
 
142
  if ( $is_pro ) {
143
  $class_name .= ' vpf-settings-control-pro';
144
- $label .= '<a class="vpf-settings-control-pro-label" target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/pro/?utm_source=freeplugin&utm_medium=link&utm_campaign=plugin_settings&utm_content=2.15.0">?<span>' . esc_html__( 'This feature is available in the Pro plugin only.', 'visual-portfolio' ) . '</span></a>';
145
  }
146
 
147
  $args = array(
141
 
142
  if ( $is_pro ) {
143
  $class_name .= ' vpf-settings-control-pro';
144
+ $label .= '<a class="vpf-settings-control-pro-label" target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/pro/?utm_source=freeplugin&utm_medium=link&utm_campaign=plugin_settings&utm_content=2.15.1">?<span>' . esc_html__( 'This feature is available in the Pro plugin only.', 'visual-portfolio' ) . '</span></a>';
145
  }
146
 
147
  $args = array(