• Hello,
    I’m having problem regarding admin pointers. The dismissed pointers are not being saved as dismissed pointers for the user meta due to which it is appearing again. To be clear, the dismissed pointers are supposed to be stored in the database but in my case it is not getting saved.
    The code are written below:

    function wptuts_pointer_load( $hook_suffix ) {
    
        // Don't run on WP < 3.3
        if ( get_bloginfo( 'version' ) < '3.3' )
            return;
    
        $screen = get_current_screen();
        $screen_id = $screen->id;
    
        // Get pointers for this screen
        $pointers = apply_filters( 'wptuts_admin_pointers-wen_skill', array() );
    
        if ( ! $pointers || ! is_array( $pointers ) )
            return;
    
        // Get dismissed pointers
        $dismissed = explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) );
        print_r($dismissed);
        $valid_pointers =array();
    
        // Check pointers and remove dismissed ones.
        foreach ( $pointers as $pointer_id => $pointer ) {
    
            // Sanity check
            if ( in_array( $pointer_id, $dismissed ) || empty( $pointer )  || empty( $pointer_id ) || empty( $pointer['target'] ) || empty( $pointer['options'] ) )
                continue;
    
            $pointer['pointer_id'] = $pointer_id;
    
            // Add the pointer to $valid_pointers array
            $valid_pointers['pointers'][] =  $pointer;
            //var_dump($valid_pointers);
    
        }
     print_r($valid_pointers);
        // No valid pointers? Stop here.
        if ( empty( $valid_pointers ) )
            return;
    
        // Add pointers style to queue.
        wp_enqueue_style( 'wp-pointer' );
    
        // Add pointers script to queue. Add custom script.
        wp_enqueue_script( 'wptuts-pointer', plugins_url( 'js/wptuts-pointer.js', __FILE__ ), array( 'wp-pointer' ) );
    
        // Add pointer options to script.
        wp_localize_script( 'wptuts-pointer', 'wptutsPointer', $valid_pointers );
    }
        function wptuts_register_pointer_testing( $p ) {
            $p['abf'] = array(
                'target' => '#wen_skill_charts_settings_metabox',
                'options' => array(
                    'content' => sprintf( '<h3> %s </h3> <p> %s </p>',
                        __( 'Title' ,'plugindomain'),
                        __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.','plugindomain')
                    ),
                    'position' => array( 'edge' => 'left', 'align' => 'middle' )
                )
            );
            $p['cgi'] = array(
                'target' => '#wen_skill_charts_content_skills',
                'options' => array(
                    'content' => sprintf( '<h3> %s </h3> <p> %s </p>',
                        __( 'Title' ,'plugindomain'),
                        __( 'New Lorem ipsum dolor sit amet, consectetur adipiscing elit.','plugindomain')
                    ),
                    'position' => array( 'edge' => 'bottom', 'align' => 'middle' )
                )
            );
            return $p;
        }

    And the js:

    jQuery(document).ready( function($) {
        wptuts_open_pointer(0);
        function wptuts_open_pointer(i) {
            //pointer = wptutsPointer.pointers[i];
        $.each(wptutsPointer.pointers, function (index, value) {
            options = $.extend( wptutsPointer.pointers.options, {
                close: function() {
                    $.post( ajaxurl, {
                        pointer: value.pointer_id,
                        action: 'dismiss-wp-pointer'
                    });
                }
            });
            $(value.target).pointer(value.options ).pointer('open');
        });
        }
    });

    Any help would be highly appreciated.
    Thanks!

  • The topic ‘WordPress Admin Pointers Appearing after dismiss’ is closed to new replies.