run:R W Run
7.85 KB
2026-03-11 16:18:51
R W Run
3.54 KB
2026-03-11 16:18:51
R W Run
148.33 KB
2026-03-11 16:18:51
R W Run
11.45 KB
2026-03-11 16:18:51
R W Run
3.58 KB
2026-03-11 16:18:51
R W Run
2.53 KB
2026-03-11 16:18:51
R W Run
2.6 KB
2026-03-11 16:18:51
R W Run
6.59 KB
2026-03-11 16:18:51
R W Run
14.83 KB
2026-03-11 16:18:51
R W Run
21.18 KB
2026-03-11 16:18:51
R W Run
48.13 KB
2026-03-11 16:18:51
R W Run
4.07 KB
2026-03-11 16:18:51
R W Run
5.3 KB
2026-03-11 16:18:51
R W Run
8.28 KB
2026-03-11 16:18:51
R W Run
26.73 KB
2026-03-11 16:18:51
R W Run
2.8 KB
2026-03-11 16:18:51
R W Run
15.2 KB
2026-03-11 16:18:51
R W Run
192.08 KB
2026-03-11 16:18:51
R W Run
11.77 KB
2026-03-11 16:18:51
R W Run
3.2 KB
2026-03-11 16:18:51
R W Run
22.89 KB
2026-03-11 16:18:51
R W Run
12.77 KB
2026-03-11 16:18:51
R W Run
4.08 KB
2026-03-11 16:18:51
R W Run
26.27 KB
2026-03-11 16:18:51
R W Run
4.97 KB
2026-03-11 16:18:51
R W Run
5.57 KB
2026-03-11 16:18:51
R W Run
13.93 KB
2026-03-11 16:18:51
R W Run
4.09 KB
2026-03-11 16:18:51
R W Run
6.79 KB
2026-03-11 16:18:51
R W Run
60.45 KB
2026-03-11 16:18:51
R W Run
32.4 KB
2026-03-11 16:18:51
R W Run
18.24 KB
2026-03-11 16:18:51
R W Run
66.01 KB
2026-03-11 16:18:51
R W Run
23.84 KB
2026-03-11 16:18:51
R W Run
17.72 KB
2026-03-11 16:18:51
R W Run
22.71 KB
2026-03-11 16:18:51
R W Run
18.05 KB
2026-03-11 16:18:51
R W Run
22.76 KB
2026-03-11 16:18:51
R W Run
7.34 KB
2026-03-11 16:18:51
R W Run
4.51 KB
2026-03-11 16:18:51
R W Run
9.02 KB
2026-03-11 16:18:51
R W Run
1.46 KB
2026-03-11 16:18:51
R W Run
51.76 KB
2026-03-11 16:18:51
R W Run
25.29 KB
2026-03-11 16:18:51
R W Run
21.61 KB
2026-03-11 16:18:51
R W Run
27.77 KB
2026-03-11 16:18:51
R W Run
15.35 KB
2026-03-11 16:18:51
R W Run
24.54 KB
2026-03-11 16:18:51
R W Run
56.44 KB
2026-03-11 16:18:51
R W Run
1.42 KB
2026-03-11 16:18:51
R W Run
63.66 KB
2026-03-11 16:18:51
R W Run
31.9 KB
2026-03-11 16:18:51
R W Run
14.44 KB
2026-03-11 16:18:51
R W Run
36.47 KB
2026-03-11 16:18:51
R W Run
14 KB
2026-03-11 16:18:51
R W Run
121.89 KB
2026-03-11 16:18:51
R W Run
6.26 KB
2026-03-11 16:18:51
R W Run
20.73 KB
2026-03-11 16:18:51
R W Run
15.23 KB
2026-03-11 16:18:51
R W Run
10.14 KB
2026-03-11 16:18:51
R W Run
6.94 KB
2026-03-11 16:18:51
R W Run
1.44 KB
2026-03-11 16:18:51
R W Run
46.85 KB
2026-03-11 16:18:51
R W Run
18.61 KB
2026-03-11 16:18:51
R W Run
6.08 KB
2026-03-11 16:18:51
R W Run
20.06 KB
2026-03-11 16:18:51
R W Run
5.73 KB
2026-03-11 16:18:51
R W Run
68.18 KB
2026-03-11 16:18:51
R W Run
40.8 KB
2026-03-11 16:18:51
R W Run
1.44 KB
2026-03-11 16:18:51
R W Run
25.26 KB
2026-03-11 16:18:51
R W Run
95.94 KB
2026-03-11 16:18:51
R W Run
43.12 KB
2026-03-11 16:18:51
R W Run
41.73 KB
2026-03-11 16:18:51
R W Run
6.46 KB
2026-03-11 16:18:51
R W Run
3.71 KB
2026-03-11 16:18:51
R W Run
116.31 KB
2026-03-11 16:18:51
R W Run
9.39 KB
2026-03-11 16:18:51
R W Run
64.34 KB
2026-03-11 16:18:51
R W Run
44.73 KB
2026-03-11 16:18:51
R W Run
1.27 KB
2026-03-11 16:18:51
R W Run
3.68 KB
2026-03-11 16:18:51
R W Run
33.53 KB
2026-03-11 16:18:51
R W Run
48.84 KB
2026-03-11 16:18:51
R W Run
26.35 KB
2026-03-11 16:18:51
R W Run
1.12 KB
2026-03-11 16:18:51
R W Run
4.19 KB
2026-03-11 16:18:51
R W Run
38.19 KB
2026-03-11 16:18:51
R W Run
91.33 KB
2026-03-11 16:18:51
R W Run
80.39 KB
2026-03-11 16:18:51
R W Run
32.67 KB
2026-03-11 16:18:51
R W Run
16.18 KB
2026-03-11 16:18:51
R W Run
44.46 KB
2026-03-11 16:18:51
R W Run
6.23 KB
2026-03-11 16:18:51
R W Run
8.23 KB
2026-03-11 16:18:51
R W Run
96.96 KB
2026-03-11 16:18:51
R W Run
6.83 KB
2026-03-11 16:18:51
R W Run
46.62 KB
2026-03-11 16:18:51
R W Run
10.82 KB
2026-03-11 16:18:51
R W Run
68.86 KB
2026-03-11 16:18:51
R W Run
33.63 KB
2026-03-11 16:18:51
R W Run
113.3 KB
2026-03-11 16:18:51
R W Run
22.98 KB
2026-03-11 16:18:51
R W Run
10.66 KB
2026-03-11 16:18:51
R W Run
error_log
📄class-wp-internal-pointers.php
1<?php
2/**
3 * Administration API: WP_Internal_Pointers class
4 *
5 * @package WordPress
6 * @subpackage Administration
7 * @since 4.4.0
8 */
9
10/**
11 * Core class used to implement an internal admin pointers API.
12 *
13 * @since 3.3.0
14 */
15#[AllowDynamicProperties]
16final class WP_Internal_Pointers {
17 /**
18 * Initializes the new feature pointers.
19 *
20 * @since 3.3.0
21 *
22 * All pointers can be disabled using the following:
23 * remove_action( 'admin_enqueue_scripts', array( 'WP_Internal_Pointers', 'enqueue_scripts' ) );
24 *
25 * Individual pointers (e.g. wp390_widgets) can be disabled using the following:
26 *
27 * function yourprefix_remove_pointers() {
28 * remove_action(
29 * 'admin_print_footer_scripts',
30 * array( 'WP_Internal_Pointers', 'pointer_wp390_widgets' )
31 * );
32 * }
33 * add_action( 'admin_enqueue_scripts', 'yourprefix_remove_pointers', 11 );
34 *
35 * @param string $hook_suffix The current admin page.
36 */
37 public static function enqueue_scripts( $hook_suffix ) {
38 /*
39 * Register feature pointers
40 *
41 * Format:
42 * array(
43 * hook_suffix => pointer callback
44 * )
45 *
46 * Example:
47 * array(
48 * 'themes.php' => 'wp390_widgets'
49 * )
50 */
51 $registered_pointers = array(
52 // None currently.
53 );
54
55 // Check if screen related pointer is registered.
56 if ( empty( $registered_pointers[ $hook_suffix ] ) ) {
57 return;
58 }
59
60 $pointers = (array) $registered_pointers[ $hook_suffix ];
61
62 /*
63 * Specify required capabilities for feature pointers
64 *
65 * Format:
66 * array(
67 * pointer callback => Array of required capabilities
68 * )
69 *
70 * Example:
71 * array(
72 * 'wp390_widgets' => array( 'edit_theme_options' )
73 * )
74 */
75 $caps_required = array(
76 // None currently.
77 );
78
79 // Get dismissed pointers.
80 $dismissed = explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) );
81
82 $got_pointers = false;
83 foreach ( array_diff( $pointers, $dismissed ) as $pointer ) {
84 if ( isset( $caps_required[ $pointer ] ) ) {
85 foreach ( $caps_required[ $pointer ] as $cap ) {
86 if ( ! current_user_can( $cap ) ) {
87 continue 2;
88 }
89 }
90 }
91
92 // Bind pointer print function.
93 add_action( 'admin_print_footer_scripts', array( 'WP_Internal_Pointers', 'pointer_' . $pointer ) );
94 $got_pointers = true;
95 }
96
97 if ( ! $got_pointers ) {
98 return;
99 }
100
101 // Add pointers script and style to queue.
102 wp_enqueue_style( 'wp-pointer' );
103 wp_enqueue_script( 'wp-pointer' );
104 }
105
106 /**
107 * Prints the pointer JavaScript data.
108 *
109 * @since 3.3.0
110 *
111 * @param string $pointer_id The pointer ID.
112 * @param string $selector The HTML elements, on which the pointer should be attached.
113 * @param array $args Arguments to be passed to the pointer JS (see wp-pointer.js).
114 */
115 private static function print_js( $pointer_id, $selector, $args ) {
116 if ( empty( $pointer_id ) || empty( $selector ) || empty( $args ) || empty( $args['content'] ) ) {
117 return;
118 }
119
120 ?>
121 <script type="text/javascript">
122 (function($){
123 var options = <?php echo wp_json_encode( $args, JSON_HEX_TAG | JSON_UNESCAPED_SLASHES ); ?>, setup;
124
125 if ( ! options )
126 return;
127
128 options = $.extend( options, {
129 close: function() {
130 $.post( ajaxurl, {
131 pointer: '<?php echo $pointer_id; ?>',
132 action: 'dismiss-wp-pointer'
133 });
134 }
135 });
136
137 setup = function() {
138 $('<?php echo $selector; ?>').first().pointer( options ).pointer('open');
139 };
140
141 if ( options.position && options.position.defer_loading )
142 $(window).bind( 'load.wp-pointers', setup );
143 else
144 $( function() {
145 setup();
146 } );
147
148 })( jQuery );
149 </script>
150 <?php
151 }
152
153 public static function pointer_wp330_toolbar() {}
154 public static function pointer_wp330_media_uploader() {}
155 public static function pointer_wp330_saving_widgets() {}
156 public static function pointer_wp340_customize_current_theme_link() {}
157 public static function pointer_wp340_choose_image_from_library() {}
158 public static function pointer_wp350_media() {}
159 public static function pointer_wp360_revisions() {}
160 public static function pointer_wp360_locks() {}
161 public static function pointer_wp390_widgets() {}
162 public static function pointer_wp410_dfw() {}
163 public static function pointer_wp496_privacy() {}
164
165 /**
166 * Prevents new users from seeing existing 'new feature' pointers.
167 *
168 * @since 3.3.0
169 *
170 * @param int $user_id User ID.
171 */
172 public static function dismiss_pointers_for_new_users( $user_id ) {
173 add_user_meta( $user_id, 'dismissed_wp_pointers', '' );
174 }
175}
176