WordPress.org

Make WordPress Core

Ticket #18693: 18693.2.diff

File 18693.2.diff, 1.9 KB (added by nacin, 7 years ago)
  • wp-admin/admin-ajax.php

     
    172172        $return = ( $wp_embed->cache_oembed( $_GET['post'] ) ) ? '1' : '0';
    173173        die( $return );
    174174        break;
     175case 'dismiss-wp-pointer' :
     176        $pointer = $_POST['pointer'];
     177        if ( $pointer != sanitize_key( $pointer ) )
     178                die( '0' );
     179
     180//      check_ajax_referer( 'dismiss-pointer_' . $pointer );
     181
     182        $dismissed = explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) );
     183
     184        if ( in_array( $pointer, $dismissed ) )
     185                die( '0' );
     186
     187        $dismissed[] = $pointer;
     188        $dismissed = implode( ',', $dismissed );
     189
     190        update_user_meta( get_current_user_id(), 'dismissed_wp_pointers', $dismissed );
     191        die( '1' );
     192        break;
    175193default :
    176194        do_action( 'wp_ajax_' . $_GET['action'] );
    177195        die('0');
  • wp-admin/includes/template.php

     
    16401640function wp_pointer_enqueue( $hook_suffix ) {
    16411641        $enqueue = false;
    16421642
    1643         $admin_bar = get_user_setting( 'p0', 0 );
    1644         if ( ! $admin_bar && apply_filters( 'show_wp_pointer_admin_bar', true ) ) {
     1643        $dismissed = (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true );
     1644        $dismissed = array_map( 'sanitize_key', explode( ',', $dismissed ) );
     1645
     1646        if ( ! in_array( 'wp330-admin-bar', $dismissed ) && apply_filters( 'show_wp_pointer_admin_bar', true ) ) {
    16451647                $enqueue = true;
    16461648                add_action( 'admin_print_footer_scripts', '_wp_pointer_print_admin_bar' );
    16471649        }
     
    16711673                        offset: '-25 0'
    16721674                },
    16731675                close: function() {
    1674                         setUserSetting( 'p0', '1' );
     1676                        $.post( ajaxurl, {
     1677                                        pointer: 'wp330-admin-bar',
     1678                                //      _ajax_nonce: $('#_ajax_nonce').val(),
     1679                                        action: 'dismiss-wp-pointer'
     1680                        });
    16751681                }
    16761682        }).pointer('open');
    16771683});