Cómo deshabilitar la notificación de actualización del complemento para un complemento específico en Multisite

4

Cómo es posible desactivar la verificación de actualizaciones de complementos y la notificación para un complemento específico en WP Multisite .

Creo que también es importante, el complemento se puede utilizar como activación única en cada blog de la red y también como un complemento activo de toda la red. La verificación es diferente en una activación en un solo blog en la red de WP mu.

Antecedentes: escribo muchos complementos para los clientes y en todos los complementos desactivo el chequeo y la notificación con la siguiente solución (también es igual que este pregunta no 20580 ). Pero esto solo funciona en una única instalación de WordPress, no en una instalación multisitio. El filtro solo funciona en un blog dentro de la red.

Si está dentro del backend de la red, ejecute la comprobación nuevamente sobre todos los complementos, también el complemento que se encuentra en esta fuente.

Quizás otras personas tengan el mismo requisito o soluciones, gracias.

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;
}
    
pregunta bueltge 31.07.2012 - 12:53

3 respuestas

2

He encontrado una solución para mí. Cree un complemento, activo en la red, en toda la red. Esto es importante en una instalación de mu. Si la comprobación solo está en un complemento, está activa en un blog de una instalación de mu, entonces la comprobación solo está activa en este blog y la comprobación de actualización y el aviso estaban activos en la red.

Defina los complementos, allí no buscará actualizaciones en la 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;
}
    
respondido por el bueltge 02.11.2012 - 13:18
1

use el siguiente código en sus funciones.php

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

Aún más fácil: abrir el directorio del plugin específico; encuentre el archivo php en el que se menciona la versión del complemento; cambie el número de versión a un número alto (es decir, la versión 1.1 a la versión 100.1)

    
respondido por el PHdJ 25.05.2018 - 12:56

Lea otras preguntas en las etiquetas