暂时取消管理员指针

时间:2013-02-21 作者:Brooke.

我有一个包含未来日期的页面的自定义元字段。我想确保这永远是一个未来的日期,并决定最好的方法是创建一个管理指针,如果日期是在过去。唯一的问题是关闭指针集的默认方式user_meta_data 我想改用cookie,每天唠叨用户,直到日期改变。

好的,下面是一些代码示例:

add_action( \'admin_enqueue_scripts\', \'nifty_admin_enqueue_scripts\' );
function nifty_admin_enqueue_scripts() {
    // Using Pointers
    wp_enqueue_style( \'wp-pointer\' );
    wp_enqueue_script( \'wp-pointer\' );

    // Register our action
    add_action( \'admin_print_footer_scripts\', \'nifty_admin_print_footer_scripts\' );
}

function nifty_admin_print_footer_scripts() {
    $pointer_content = \'<h3>Meetings are are of date</h3>\';
    $pointer_content .= \'<p>It seems that next meeting date is in the past. Please update this setting.</p>\';
?>
<script type="text/javascript">
//<![CDATA[
jQuery(document).ready( function($) {
    $(\'#menu-pages\').pointer({
        content: \'<?php echo $pointer_content; ?>\',
        position: \'top\',
        close: function() {
             $.post( ajaxurl, {
                pointer: \'nifty_pointer\', //usermeta check name
                action: \'dismiss-wp-pointer\' //ajax function
            });
        }
    }).pointer(\'open\');
});
//]]>
</script>
<?php
}
如果你看看admin-ajax.php 您可以看到dismiss-wp-pointer 定义并跟踪白兔返回其设置元数据的位置。

我想应该有办法用饼干来代替。如有任何想法,将不胜感激。

EDIT:

起初我想我需要用cookie来实现这一点,但现在我想得更多了,我发现这只是一种选择。我在下面概述了其他一些方法,希望有人能想出一个方法。

使用两个用户元值一个具有上次关闭日期,另一个具有重置值使用wp_cron 并每天删除键值,让日期成为键值的一部分(即nifty\\uu$epochtime),然后循环浏览用户元数据并拆分_ 并将日期与当前日期进行核对

1 个回复
SO网友:brasofilo

您可以覆盖该操作wp_ajax_dismiss-wp-pointer 并使用自己版本的函数wp_ajax_dismiss_wp_pointer.

add_action( \'wp_ajax_dismiss-wp-pointer\', \'override_ajax_pointer\', 1 );

function override_ajax_pointer() 
{
    // Your version of the function wp_ajax_dismiss_wp_pointer
}
这与本问答中使用的技巧相同;答:Display custom list of tags in post/page editor with hooks 从中学习SO Answer.

结束