Toolset Types – Custom Post Types, Custom Fields and Taxonomies - Version 2.2.11

Version Description

  • Removed notices, to push users to activate Layouts theme integration plugins based on the current theme
  • Added filter to remove/add automatic notices on demand
Download this release

Release Info

Developer christianglingener
Plugin Icon 128x128 Toolset Types – Custom Post Types, Custom Fields and Taxonomies
Version 2.2.11
Comparing to
See all releases

Code changes from version 2.2.10 to 2.2.11

library/toolset/toolset-common/changelog.md CHANGED
@@ -1,5 +1,9 @@
1
  # Toolset Common Library
2
 
 
 
 
 
3
  ## 2.4.0
4
  - Updated Font Awesome library to 4.7.0
5
  - Included a mechanism to insert Bootstrap grid rows into selected Toolset editors.
1
  # Toolset Common Library
2
 
3
+ ## 2.4.1
4
+ - Removed notices, to push users to activate Layouts theme integration plugins based on the current theme
5
+ - Added filter to remove/add automatic notices on demand
6
+
7
  ## 2.4.0
8
  - Updated Font Awesome library to 4.7.0
9
  - Included a mechanism to insert Bootstrap grid rows into selected Toolset editors.
library/toolset/toolset-common/inc/controller/admin/notices.php CHANGED
@@ -218,23 +218,15 @@ class Toolset_Controller_Admin_Notices {
218
  }
219
 
220
  // commercial plugin active + theme we have an integration plugin for
221
- $this->layouts_theme_integration_available();
222
- $this->layouts_theme_integration_not_active();
223
- $theme_integration_active_but_theme_not = $this->layouts_theme_integration_theme_not_active();
224
  $this->integration_run_installer();
225
 
226
- // no integration plugin installed, for which theme exists (but not active)
227
  // + commercial plugin active
228
  // + types || views || layouts missing
229
- // + theme active we have no integration plugin for
230
- if( ( ! $theme_integration_active_but_theme_not instanceof Toolset_Condition_Interface
231
- || ! $theme_integration_active_but_theme_not->conditions_met() )
232
- && ( ! $this->is_views_active
233
- || ! $this->is_types_active
234
- || ! $this->is_layouts_active
235
- )
236
  ) {
237
- $this->layouts_no_theme_integration_available();
238
  }
239
  }
240
 
@@ -291,64 +283,11 @@ class Toolset_Controller_Admin_Notices {
291
  /**
292
  * @return Toolset_Admin_Notice_Dismissible
293
  */
294
- protected function layouts_theme_integration_available() {
295
- if( defined( 'TOOLSET_INTEGRATION_PLUGIN_THEME_NAME' ) ) {
296
- // don't show this message if already a integration plugin is running
297
- // return;
298
- }
299
- $notice = new Toolset_Admin_Notice_Dismissible( 'layouts-theme-integration' );
300
- $notice->set_content( $this->tpl_path . '/commercial-plugin-installed/layouts-support-available.phtml' );
301
- $notice->add_condition( new Toolset_Condition_Theme_Layouts_Support_Native_Missing() );
302
- $notice->add_condition( new Toolset_Condition_Theme_Layouts_Support_Plugin_Available() );
303
- $notice->add_condition( new Toolset_Condition_Theme_Layouts_Support_Plugin_Not_Installed() );
304
- Toolset_Admin_Notices_Manager::add_notice( $notice );
305
-
306
- return $notice;
307
- }
308
-
309
- /**
310
- * @return Toolset_Admin_Notice_Dismissible
311
- */
312
- protected function layouts_theme_integration_not_active() {
313
- $notice = new Toolset_Admin_Notice_Dismissible( 'layouts-theme-integration-not-active' );
314
- $notice->set_content( $this->tpl_path . '/commercial-plugin-installed/layouts-support-plugin-not-active.phtml' );
315
- $notice->add_condition( new Toolset_Condition_Theme_Layouts_Support_Native_Missing() );
316
- $notice->add_condition( new Toolset_Condition_Theme_Layouts_Support_Plugin_Available() );
317
- $notice->add_condition( new Toolset_Condition_Theme_Layouts_Support_Plugin_Not_Active() );
318
- $notice->add_condition( new Toolset_Condition_Theme_Avada_Not_Active_Or_Greater_Equal_5_0() );
319
- Toolset_Admin_Notices_Manager::add_notice( $notice );
320
-
321
- return $notice;
322
- }
323
-
324
- /**
325
- * @return Toolset_Admin_Notice_Dismissible
326
- */
327
- protected function layouts_theme_integration_theme_not_active() {
328
- if( defined( 'LAYOUTS_INTEGRATION_THEME_NAME' ) ) {
329
- // Layouts define this constant if there is an active integration (plugin and theme installed and active)
330
- return false;
331
- }
332
-
333
- $notice = new Toolset_Admin_Notice_Dismissible( 'layouts-theme-integration-theme-not-active' );
334
- $notice->set_content( $this->tpl_path . '/commercial-plugin-installed/layouts-support-theme-not-active.phtml' );
335
- $notice->add_condition( new Toolset_Condition_Theme_Layouts_Support_Native_Missing() );
336
- $notice->add_condition( new Toolset_Condition_Theme_Layouts_Support_Plugin_Active() );
337
- $notice->add_condition( new Toolset_Condition_Theme_Layouts_Support_Theme_Installed() );
338
- $notice->add_condition( new Toolset_Condition_Theme_Layouts_Support_Theme_Not_Active() );
339
- Toolset_Admin_Notices_Manager::add_notice( $notice );
340
-
341
- return $notice;
342
- }
343
-
344
- /**
345
- * @return Toolset_Admin_Notice_Dismissible
346
- */
347
- protected function layouts_no_theme_integration_available() {
348
  $notice = new Toolset_Admin_Notice_Dismissible( 'layouts-no-theme-integration' );
349
- $notice->set_content( $this->tpl_path . '/commercial-plugin-installed/layouts-support-missing.phtml' );
350
- $notice->add_condition( new Toolset_Condition_Theme_Layouts_Support_Native_Missing() );
351
- $notice->add_condition( new Toolset_Condition_Theme_Layouts_Support_Plugin_Missing() );
352
  Toolset_Admin_Notices_Manager::add_notice( $notice );
353
 
354
  return $notice;
218
  }
219
 
220
  // commercial plugin active + theme we have an integration plugin for
 
 
 
221
  $this->integration_run_installer();
222
 
 
223
  // + commercial plugin active
224
  // + types || views || layouts missing
225
+ if( ! $this->is_views_active
226
+ || ! $this->is_types_active
227
+ || ! $this->is_layouts_active
 
 
 
 
228
  ) {
229
+ $this->types_views_or_layouts_missing();
230
  }
231
  }
232
 
283
  /**
284
  * @return Toolset_Admin_Notice_Dismissible
285
  */
286
+ protected function types_views_or_layouts_missing() {
287
+ // The id 'layouts-no-theme-integration' can be irritating as it no longer depends on a theme integration plugin
288
+ // But changing the id means users have to dismiss the notice again. So we keep 'layouts-no-theme-integration'.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
289
  $notice = new Toolset_Admin_Notice_Dismissible( 'layouts-no-theme-integration' );
290
+ $notice->set_content( $this->tpl_path . '/commercial-plugin-installed/types-views-or-layouts-missing.phtml' );
 
 
291
  Toolset_Admin_Notices_Manager::add_notice( $notice );
292
 
293
  return $notice;
library/toolset/toolset-common/loader.php CHANGED
@@ -30,7 +30,7 @@
30
  * Now that we have a unique version for all plugins
31
  * we define the version here
32
  */
33
- $toolset_common_version = 240017;
34
 
35
 
36
  // ----------------------------------------------------------------------//
30
  * Now that we have a unique version for all plugins
31
  * we define the version here
32
  */
33
+ $toolset_common_version = 240019;
34
 
35
 
36
  // ----------------------------------------------------------------------//
library/toolset/toolset-common/templates/admin/notice/commercial-plugin-installed/layouts-support-available.phtml DELETED
@@ -1,50 +0,0 @@
1
- <?php
2
- /**
3
- * Template File
4
- * This file is only build for classes which implements Toolset_Admin_Notice_Interface
5
- *
6
- * @var Toolset_Admin_Notice_Interface $this
7
- *
8
- * @since 2.3.0 First release
9
- */
10
-
11
- $condition = new Toolset_Condition_Theme_Layouts_Support_Plugin_Available();
12
- if( ! $integration_plugin = $condition->get_supported_plugin_integration() ) {
13
- // shouldn't happen, expect this messages is used without applying the condition to the notice
14
- return;
15
- }
16
-
17
- if( ! array_key_exists( 'theme_name', $integration_plugin )
18
- || ! array_key_exists( 'plugin_name', $integration_plugin )
19
- || ! array_key_exists( 'doc_link', $integration_plugin )
20
- ) {
21
- // missing data
22
- return;
23
- }
24
-
25
- ?>
26
- <h3>
27
- <?php _e( 'Layouts theme integration', 'wpv-views' ); ?>
28
- </h3>
29
-
30
- <p>
31
- <?php printf(
32
- __( '%s theme offers additional integration with Layouts, which will allow you to modify every part of ' .
33
- 'every page. To get this integration, go to the %sToolset Downloads%s page and get %s.', 'wpv-views' ),
34
- esc_attr( $integration_plugin['theme_name'] ) ,
35
- '<a target="_blank" href="https://wp-types.com/account/downloads/">',
36
- '</a>',
37
- esc_attr( $integration_plugin['plugin_name'] )
38
- );
39
- ?>
40
- </p>
41
-
42
- <?php
43
- echo Toolset_Admin_Notices_Manager::tpl_button_primary(
44
- sprintf(
45
- __( 'How to design %s sites with Layouts', 'wpv-views' ),
46
- esc_attr( $integration_plugin['theme_name'] )
47
- ),
48
- esc_url( $integration_plugin['doc_link'] ),
49
- true
50
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
library/toolset/toolset-common/templates/admin/notice/commercial-plugin-installed/layouts-support-plugin-not-active.phtml DELETED
@@ -1,44 +0,0 @@
1
- <?php
2
- /**
3
- * Template File
4
- * This file is only build for classes which implements Toolset_Admin_Notice_Interface
5
- *
6
- * @var Toolset_Admin_Notice_Interface $this
7
- *
8
- * @since 2.3.0 First release
9
- */
10
-
11
- $condition = new Toolset_Condition_Theme_Layouts_Support_Plugin_Not_Active();
12
- if( ! $integration_plugin = $condition->get_plugin() ) {
13
- // shouldn't happen, expect this messages is used without applying the condition to the notice
14
- return;
15
- }
16
-
17
- if( ! array_key_exists( 'Name', $integration_plugin )
18
- || ! array_key_exists( 'Path', $integration_plugin )
19
- ) {
20
- // missing data
21
- return;
22
- }
23
- ?>
24
- <p>
25
- <?php printf(
26
- __( 'You\'re almost ready. Please first activate %s. Then, you will be able to conveniently' .
27
- ' edit this theme with Toolset.', 'wpv-views' ),
28
- esc_attr( $integration_plugin['Name'] )
29
- );
30
- ?>
31
- </p>
32
-
33
- <?php
34
- $url_plugin_activation = wp_nonce_url(
35
- admin_url( 'plugins.php?action=activate&plugin='. $integration_plugin['Path'] ) ,
36
- 'activate-plugin_' . $integration_plugin['Path']
37
- );
38
- echo Toolset_Admin_Notices_Manager::tpl_button_primary(
39
- sprintf(
40
- __( 'Activate %s', 'wpv-views' ),
41
- esc_attr( $integration_plugin['Name'] )
42
- ),
43
- $url_plugin_activation
44
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
library/toolset/toolset-common/templates/admin/notice/commercial-plugin-installed/layouts-support-theme-not-active.phtml DELETED
@@ -1,52 +0,0 @@
1
- <?php
2
- /**
3
- * Template File
4
- * This file is only build for classes which implements Toolset_Admin_Notice_Interface
5
- *
6
- * @var Toolset_Admin_Notice_Interface $this
7
- *
8
- * @since 2.3.0 First release
9
- */
10
-
11
-
12
-
13
- $condition = new Toolset_Condition_Theme_Layouts_Support_Theme_Not_Active();
14
- if( ! $theme_to_integrate = $condition->get_theme() ) {
15
- // shouldn't happen, expect this messages is used without applying the condition to the notice
16
- return;
17
- }
18
-
19
- if( ! $theme_to_integrate instanceof WP_Theme ) {
20
- // invalid data
21
- return;
22
- }
23
-
24
- $condition = new Toolset_Condition_Theme_Layouts_Support_Plugin_Available();
25
- $theme_integration_info = $condition->get_supported_theme_by_name( $theme_to_integrate->get( 'Name' ) );
26
-
27
- if( ! array_key_exists( 'plugin_name', $theme_integration_info ) ) {
28
- return;
29
- }
30
- ?>
31
- <p>
32
- <?php printf(
33
- __( 'To use the %s, you should first activate the %s theme. Otherwise, don\'t ' .
34
- 'use this plugin, as it\'s only intended for this speific theme.', 'wpv-views' ),
35
- esc_attr( $theme_integration_info['plugin_name'] ),
36
- esc_attr( $theme_to_integrate->get( 'Name' ) )
37
- );
38
- ?>
39
- </p>
40
-
41
- <?php
42
- $url_plugin_activation = wp_nonce_url(
43
- admin_url( 'themes.php?action=activate&stylesheet=' . $theme_to_integrate->get_stylesheet() ) ,
44
- 'switch-theme_' . $theme_to_integrate->get_stylesheet()
45
- );
46
- echo Toolset_Admin_Notices_Manager::tpl_button_primary(
47
- sprintf(
48
- __( 'Activate %s', 'wpv-views' ),
49
- esc_attr( $theme_to_integrate->get( 'Name' ) )
50
- ),
51
- $url_plugin_activation
52
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
library/toolset/toolset-common/templates/admin/notice/commercial-plugin-installed/{layouts-support-missing.phtml → types-views-or-layouts-missing.phtml} RENAMED
File without changes
library/toolset/toolset-common/toolset-common-loader.php CHANGED
@@ -1,11 +1,11 @@
1
  <?php
2
 
3
  if( !defined('TOOLSET_VERSION') ){
4
- define('TOOLSET_VERSION', '2.4.0');
5
  }
6
 
7
  if ( ! defined('TOOLSET_COMMON_VERSION' ) ) {
8
- define( 'TOOLSET_COMMON_VERSION', '2.4.0' );
9
  }
10
 
11
  if ( ! defined('TOOLSET_COMMON_PATH' ) ) {
1
  <?php
2
 
3
  if( !defined('TOOLSET_VERSION') ){
4
+ define('TOOLSET_VERSION', '2.4.1');
5
  }
6
 
7
  if ( ! defined('TOOLSET_COMMON_VERSION' ) ) {
8
+ define( 'TOOLSET_COMMON_VERSION', '2.4.1' );
9
  }
10
 
11
  if ( ! defined('TOOLSET_COMMON_PATH' ) ) {
library/toolset/toolset-common/utility/admin/notices/manager.php CHANGED
@@ -100,11 +100,13 @@ class Toolset_Admin_Notices_Manager {
100
  * called on WordPress hook 'admin_notices'
101
  */
102
  public static function show_notices() {
103
- if( empty( self::$notices ) ) {
 
 
104
  return;
105
  }
106
 
107
- foreach( self::$notices as $notice ) {
108
  if( ! $notice->conditions_met() || self::is_notice_dismissed( $notice ) ) {
109
  // visitor don't want to see the message anymore
110
  continue;
100
  * called on WordPress hook 'admin_notices'
101
  */
102
  public static function show_notices() {
103
+ $notices = apply_filters( 'toolset-admin-notices-manager-show-notices', self::$notices );
104
+
105
+ if( empty( $notices ) ) {
106
  return;
107
  }
108
 
109
+ foreach( $notices as $notice ) {
110
  if( ! $notice->conditions_met() || self::is_notice_dismissed( $notice ) ) {
111
  // visitor don't want to see the message anymore
112
  continue;
readme.txt CHANGED
@@ -7,7 +7,7 @@ Domain Path: /embedded/locale
7
  License: GPLv2
8
  Requires at least: 3.7
9
  Tested up to: 4.7.3
10
- Stable tag: 2.2.10
11
 
12
  The complete and reliable plugin for managing custom post types, custom taxonomies and custom fields.
13
 
@@ -158,6 +158,10 @@ Additionally, Types is the only plugin that lets you define parent/child relatio
158
 
159
  == Changelog ==
160
 
 
 
 
 
161
  = 2.2.10 =
162
  * Compatibility changes for CRED 1.9
163
  * Updated Font Awesome to version 4.7.0
7
  License: GPLv2
8
  Requires at least: 3.7
9
  Tested up to: 4.7.3
10
+ Stable tag: 2.2.11
11
 
12
  The complete and reliable plugin for managing custom post types, custom taxonomies and custom fields.
13
 
158
 
159
  == Changelog ==
160
 
161
+ = 2.2.11 =
162
+ * Removed notices, to push users to activate Layouts theme integration plugins based on the current theme
163
+ * Added filter to remove/add automatic notices on demand
164
+
165
  = 2.2.10 =
166
  * Compatibility changes for CRED 1.9
167
  * Updated Font Awesome to version 4.7.0
wpcf.php CHANGED
@@ -5,7 +5,7 @@ Plugin URI: http://wordpress.org/extend/plugins/types/
5
  Description: Toolset Types defines custom content in WordPress. Easily create custom post types, fields and taxonomy and connect everything together.
6
  Author: OnTheGoSystems
7
  Author URI: http://www.onthegosystems.com
8
- Version: 2.2.10
9
  License: GPLv2 or later
10
 
11
  Types is free software: you can redistribute it and/or modify
@@ -28,7 +28,7 @@ if( !function_exists( 'add_action' ) )
28
 
29
  // version
30
  if( ! defined( 'TYPES_VERSION' ) )
31
- define( 'TYPES_VERSION', '2.2.10' );
32
 
33
  // backward compatibility
34
  if ( ! defined( 'WPCF_VERSION' ) )
@@ -37,7 +37,7 @@ if ( ! defined( 'WPCF_VERSION' ) )
37
  // release notes
38
  if( ! defined( 'TYPES_RELEASE_NOTES' ) )
39
  // Mind the end of the URL string, it contains the plugin version.
40
- define( 'TYPES_RELEASE_NOTES', 'https://wp-types.com/version/types-2-2-10/?utm_source=typesplugin&utm_campaign=types&utm_medium=release-notes-admin-notice&utm_term=Types%202.2.10%20release%20notes' );
41
 
42
  /*
43
  * Path Constants
5
  Description: Toolset Types defines custom content in WordPress. Easily create custom post types, fields and taxonomy and connect everything together.
6
  Author: OnTheGoSystems
7
  Author URI: http://www.onthegosystems.com
8
+ Version: 2.2.11
9
  License: GPLv2 or later
10
 
11
  Types is free software: you can redistribute it and/or modify
28
 
29
  // version
30
  if( ! defined( 'TYPES_VERSION' ) )
31
+ define( 'TYPES_VERSION', '2.2.11' );
32
 
33
  // backward compatibility
34
  if ( ! defined( 'WPCF_VERSION' ) )
37
  // release notes
38
  if( ! defined( 'TYPES_RELEASE_NOTES' ) )
39
  // Mind the end of the URL string, it contains the plugin version.
40
+ define( 'TYPES_RELEASE_NOTES', 'https://wp-types.com/version/types-2-2-11/?utm_source=typesplugin&utm_campaign=types&utm_medium=release-notes-admin-notice&utm_term=Types%202.2.11%20release%20notes' );
41
 
42
  /*
43
  * Path Constants