Support » Plugin: Toolset Types - Custom Post Types, Custom Fields and Taxonomies » Dashboard toolset-notice not dismissable

  • Resolved wunch


    After upgrading from Types v2.2.8 to v2.2.9, a new admin notice appears at the top of the WordPress Dashboard. When I click on the ‘x’ to dismiss it, nothing happens.

    More info:
    Looking in my network tools, I see a 500 response from the ajax call to admin-ajax.php
    The request params are:

    "action": "toolset_admin_notices_manager",
    "toolset-admin-notice-nonce": "<10-digit code here>",
    "toolset-admin-notice-action": "toolset-dismissible",
    "notice-id": "how-to-design-with-toolset"

    In the apache log, I see an error:

    AH01071: Got error 'PHP message: PHP Warning:  Illegal string offset 'dismissed-notices' in /var/www/test/web/app/plugins/types/library/toolset/toolset-common/utility/admin/notices/manager.php on line 265
    PHP message: PHP Fatal error:  Uncaught Error: Cannot use string offset as an array in /var/www/test/web/app/plugins/types/library/toolset/toolset-common/utility/admin/notices/manager.php:265
    Stack trace:
    #0 /var/www/test/web/app/plugins/types/library/toolset/toolset-common/utility/admin/notices/manager.php(144): Toolset_Admin_Notices_Manager::dismiss_notice_by_id('how-to-design-w...', false)
    #1 /var/www/test/web/wp/wp-includes/class-wp-hook.php(298): Toolset_Admin_Notices_Manager::ajax('')
    #2 /var/www/test/web/wp/wp-includes/class-wp-hook.php(323): WP_Hook->apply_filters('', Array)
    #3 /var/www/test/web/wp/wp-includes/plugin.php(453): WP_Hook->do_action(Array)
    #4 /var/www/test/web/wp/wp-admin/admin-ajax.php(91): do_action('wp_ajax_toolset...')
    #5 {main}
      thrown in /var/www/test/web/app/plugins/types/library/toolset/toolset-common/utility/admin/notices/manager.php on line 265
      ', referer:

    This is on Apache 2.4, PHP 7.1

    • This topic was modified 2 years, 11 months ago by .
Viewing 5 replies - 1 through 5 (of 5 total)
  • Looking at your code, I think the problem here is that you’re loading the ‘toolset_admin_notices_manager’ user_meta as a single value (with the get_user_meta ‘true’ parameter), but then trying to assign a value to an array index on it, which will fail if it doesn’t exist because the return value of get_user_meta is not an array.

    manager.php lines 264-265:

    $user_settings = get_user_meta( $user_id, self::ID, true );
    $user_settings[ self::OPTION_FIELD_DISMISSED_NOTICE ][ $notice_id ] = true;

    I think the easy fix would be to change line 264 to

    $user_settings = get_user_meta( $user_id, self::ID, false );


    • This reply was modified 2 years, 11 months ago by .
    Plugin Support Beda


    This is strange.
    If you mean the notice about the theme working best with Toolset Plugins (which is the only notice appearing on activation), I can disable (dismiss) that just fine.

    Can you explicate to me the exact single steps to see this problem, and what exact notice you mean?

    Plugin Author Christian


    @wunch thanks for your issue report.

    I can reproduce it. Up to 7.0.14 it’s working fine, but with 7.1 I get the same result as you reported. Your fix would temporary solve it, but once you dismiss another Toolset notice the previous one will appear again, because this way you would always overwrite the option (instead of extending it).

    We implemented a fix in the development version of Types (just 2.2.9 + the fix). Here the download:

    Would be nice if you can confirm the fix.

    @christianglingener thanks. Yes, I can confirm that the development version that you linked fixes this issue for me.

    I have the same Problem with WordPress 4.7.4 an Toolset “types-access.2.3.1” the Notice is not dismissable.

    In the Console I become an 500 Error “wp-admin/admin-ajax.php 500 (Internal Server Error) VM1276:1”

    can someone help me?

    • This reply was modified 2 years, 8 months ago by guennionline.
Viewing 5 replies - 1 through 5 (of 5 total)
  • The topic ‘Dashboard toolset-notice not dismissable’ is closed to new replies.