|
<?php |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#[AllowDynamicProperties] |
|
final class WP_Internal_Pointers { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static function enqueue_scripts( $hook_suffix ) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$registered_pointers = array( |
|
|
|
); |
|
|
|
|
|
if ( empty( $registered_pointers[ $hook_suffix ] ) ) { |
|
return; |
|
} |
|
|
|
$pointers = (array) $registered_pointers[ $hook_suffix ]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$caps_required = array( |
|
|
|
); |
|
|
|
|
|
$dismissed = explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) ); |
|
|
|
$got_pointers = false; |
|
foreach ( array_diff( $pointers, $dismissed ) as $pointer ) { |
|
if ( isset( $caps_required[ $pointer ] ) ) { |
|
foreach ( $caps_required[ $pointer ] as $cap ) { |
|
if ( ! current_user_can( $cap ) ) { |
|
continue 2; |
|
} |
|
} |
|
} |
|
|
|
|
|
add_action( 'admin_print_footer_scripts', array( 'WP_Internal_Pointers', 'pointer_' . $pointer ) ); |
|
$got_pointers = true; |
|
} |
|
|
|
if ( ! $got_pointers ) { |
|
return; |
|
} |
|
|
|
|
|
wp_enqueue_style( 'wp-pointer' ); |
|
wp_enqueue_script( 'wp-pointer' ); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static function print_js( $pointer_id, $selector, $args ) { |
|
if ( empty( $pointer_id ) || empty( $selector ) || empty( $args ) || empty( $args['content'] ) ) { |
|
return; |
|
} |
|
|
|
?> |
|
<script type="text/javascript"> |
|
(function($){ |
|
var options = <?php echo wp_json_encode( $args ); ?>, setup; |
|
|
|
if ( ! options ) |
|
return; |
|
|
|
options = $.extend( options, { |
|
close: function() { |
|
$.post( ajaxurl, { |
|
pointer: '<?php echo $pointer_id; ?>', |
|
action: 'dismiss-wp-pointer' |
|
}); |
|
} |
|
}); |
|
|
|
setup = function() { |
|
$('<?php echo $selector; ?>').first().pointer( options ).pointer('open'); |
|
}; |
|
|
|
if ( options.position && options.position.defer_loading ) |
|
$(window).bind( 'load.wp-pointers', setup ); |
|
else |
|
$( function() { |
|
setup(); |
|
} ); |
|
|
|
})( jQuery ); |
|
</script> |
|
<?php |
|
} |
|
|
|
public static function pointer_wp330_toolbar() {} |
|
public static function pointer_wp330_media_uploader() {} |
|
public static function pointer_wp330_saving_widgets() {} |
|
public static function pointer_wp340_customize_current_theme_link() {} |
|
public static function pointer_wp340_choose_image_from_library() {} |
|
public static function pointer_wp350_media() {} |
|
public static function pointer_wp360_revisions() {} |
|
public static function pointer_wp360_locks() {} |
|
public static function pointer_wp390_widgets() {} |
|
public static function pointer_wp410_dfw() {} |
|
public static function pointer_wp496_privacy() {} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static function dismiss_pointers_for_new_users( $user_id ) { |
|
add_user_meta( $user_id, 'dismissed_wp_pointers', '' ); |
|
} |
|
} |
|
|