WordPress插件通知

1 wordpress wordpress-plugin

我正在为我的客户开发一个插件,当我提供核心,插件或主题更新时,我会给我建议并通过电子邮件发送给我.我希望在将此插件激活为"插件更新可用但更新由公司xyz管理"之类的内容时更改默认更新通知文本.

//禁用核心更新

    # 2.3 to 2.7:
    add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 );
    add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) );

    # 2.8 to 3.0:
    remove_action( 'wp_version_check', 'wp_version_check' );
    remove_action( 'admin_init', '_maybe_update_core' );
    add_filter( 'pre_transient_update_core', create_function( '$a', "return null;" ) );

    # 3.0:
    add_filter( 'pre_site_transient_update_core', create_function( '$a', "return null;" ) );    

// Disable plugin updates

    # 2.3 to 2.7:
    add_action( 'admin_menu', create_function( '$a', "remove_action( 'load-plugins.php', 'wp_update_plugins' );") );
        # Why use the admin_menu hook? It's the only one available between the above hook being added and being applied
    add_action( 'admin_init', create_function( '$a', "remove_action( 'admin_init', 'wp_update_plugins' );"), 2 );
    add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_update_plugins' );"), 2 );
    add_filter( 'pre_option_update_plugins', create_function( '$a', "return null;" ) );

    # 2.8 to 3.0:
    remove_action( 'load-plugins.php', 'wp_update_plugins' );
    remove_action( 'load-update.php', 'wp_update_plugins' );
    remove_action( 'admin_init', '_maybe_update_plugins' );
    remove_action( 'wp_update_plugins', 'wp_update_plugins' );
    add_filter( 'pre_transient_update_plugins', create_function( '$a', "return null;" ) );

    # 3.0:
    remove_action( 'load-update-core.php', 'wp_update_plugins' );
    add_filter( 'pre_site_transient_update_plugins', create_function( '$a', "return null;" ) );
Run Code Online (Sandbox Code Playgroud)

El *_*obo 10

这不是问题的真正答案,但不幸的是,上面的代码遍布整个网络并且非常不正确.虽然将null返回到pre_site_过滤器抑制通知消息,但它也会强制wordpress持续检查更新,因为它无法判断上次更新检查的时间.

下面的代码(5.3+)实现了一个更好的版本,它可以抑制消息,而不会对每个WP管理请求进行WP运行更新检查.

$func = function ($a) {
    global $wp_version;
    return (object) array(
        'last_checked' => time(),
        'version_checked' => $wp_version,
    );
};
add_filter('pre_site_transient_update_core', $func);
add_filter('pre_site_transient_update_plugins', $func);
add_filter('pre_site_transient_update_themes', $func);
Run Code Online (Sandbox Code Playgroud)