Como desabilitar a notificação de atualização do plugin para um plugin específico no Multisite

4

Como é possível desativar a verificação e a notificação da atualização do plug-in para um plug-in específico personalizado no WP Multisite .

Eu acho que também é importante, o plugin é utilizável como ativação única em cada blog da rede e também como plug-in ativo em toda a rede. A verificação é diferente em uma ativação em um único blog na rede do WP mu.

Antecedentes: eu escrevo muitos plugins para clientes e em todos os plugins eu desativo o checkup e a notificação com a solução a seguir (é também o mesmo deste pergunta no 20580 ). Mas isso funciona apenas em uma única instalação do WordPress, não em uma instalação Multisite. O filtro funciona apenas um blog dentro da rede.

Se você está dentro do backend da rede, então execute a verificação novamente sobre todos os plugins, também o plugin que esta fonte.

Talvez outras pessoas tenham o mesmo requisito e / ou soluções, obrigado.

add_filter( 'site_transient_update_plugins', array( $this, 'remove_update_nag' ) );
/**
 * Disable plugin update notifications
 * 
 * @param  array string $value
 * @since  1.2.3
 * @link   http://dd32.id.au/2011/03/01/disable-plugin-update-notification-for-a-specific-plugin-in-wordpress-3-1/       
 * @retrun array string $value
 */
public function remove_update_nag( $value ) {

    if ( isset( $value ) && is_object( $value ) )
        unset( $value->response[plugin_basename(__FILE__)] );

    return $value;
}
    
por bueltge 31.07.2012 / 12:53

3 respostas

2

Eu encontrei uma solução para mim. Crie um plugin, ativo na rede - em toda a rede. Isso é importante em uma instalação mu. Se o cheque só em um plugin, não está ativo em um blog de uma instalação mu, então foi o cheque só ativo neste blog e a verificação de atualização e aviso estava ativo na rede.

Defina os plugins, lá você não irá verificar se há atualização na matriz de var $blocked_plugins .

<?php
/**
 * Plugin Name: Plugin updates blocker
 * Plugin URI:  
 * Description: Disable plugin update check for specific plugins list
 * Version:     1.0.0
 * Author:      Frank Bültge
 * Author URI:  http://bueltge.de
 * License:     GPLv3
 */

! defined( 'ABSPATH' ) and exit;

add_filter( 'http_request_args', 'fb_block_update_specific_plugins', 5, 2 );
function fb_block_update_specific_plugins( $r, $url ) {

    //var_dump( unserialize( $r['body']['plugins'] ) );

    if ( 0 !== strpos( $url, 'http://api.wordpress.org/plugins/update-check' ) )
        return $r;

    // array for the plugin slug - folder/file
    $blocked_plugins = array(
        'oembed-gist.php', // plugin without folder
        'subtitle/class-post_subtitle.php',
        'wp-slabText/wp-slabtext.php',
    );
    if ( 0 === (int) count( $blocked_plugins ) )
        return $r;

    $installed_plugins = unserialize( $r['body']['plugins'] );
    foreach( $blocked_plugins as $p ) {
        unset( $installed_plugins->plugins[ $p ] );
        unset( $installed_plugins->active[ array_key_exists( $p, $installed_plugins ) ] );
    }
    $r['body']['plugins'] = serialize( $installed_plugins );

    return $r;
}
    
por bueltge 02.11.2012 / 13:18
1

use o código abaixo em seu functions.php

function jm_update_notice()
{
remove_action( 'load-update-core.php', 'wp_update_plugins' );
}
add_filter( 'pre_site_transient_update_plugins', '__return_null' ); 
    
por Varun Sridharan 31.07.2012 / 13:03
0

Ainda mais fácil: abra o diretório de plugins específico; encontre o arquivo php no qual a versão do plugin é mencionada; alterar o número da versão para um número alto (ou seja, versão 1.1 para a versão 100.1)

    
por PHdJ 25.05.2018 / 12:56