Activer la notification de mise à jour, désactiver les mises à jour

10

Il y a beaucoup de questions sur la façon de désactiver les mises à jour et / ou de supprimer les notifications de mise à jour. Mais toutes les solutions qui désactivent la mise à jour désactivent également les notifications de mise à jour.

Mais je veux désactiver la possibilité de mettre à jour tout en étant informé des mises à jour disponibles.

Actuellement j'utilise define( 'DISALLOW_FILE_MODS', true ); Codex

Le problème est qu'il désactive non seulement le processus de mise à jour mais également les notifications.

Edit: D'accord, je suis descendu un peu dans le terrier du lapin. Je suppose que je devrais également préciser que je ne parle pas (seulement) des mises à jour principales, mais aussi des plugins et des thèmes.

Si je comprends bien, c'est parce que sur /wp-admin/includes/update.php:250, la fonction revient tôt.

Je vois donc deux options:

  • rajouter l' update_pluginsoption qui va à l'encontre du but et je ne suis pas sûr des effets secondaires
  • ajouter mon propre crochet au admin_inittype de réplication wp_plugin_update_rows. J'ai essayé mais ça ne se ressemble toujours pas. Il semble y avoir encore plus, cela ne semble pas non plus être un moyen très propre de le faire.

EDIT: Il existe un ticket couvrant ce problème au cas où vous voudriez y travailler: https://core.trac.wordpress.org/ticket/25219

kraftner
la source
Vraiment? J'utilise cela et je vois toujours la notification de mise à jour. Il me dit de "s'il vous plaît aviser l'administrateur du site"
Stephen Harris
J'ai mis à jour ma question.
kraftner
1
Pourquoi n'utilisez-vous pas le système wpremove ou infinitewp pour rester informé des mises à jour. Avec ceux-ci, vous pouvez toujours désactiver les mises à jour. Je l'utilise moi-même.
Robert hue
4
Merci Robert pour l'idée, mais ce n'est qu'une autre dépendance et ne répond pas non plus, mais contourne uniquement mon problème / question.
kraftner

Réponses:

1

Ajoutez le code suivant dans votre thème enfant functions.phpou empaquetez-le en tant que plugin personnalisé pour activer / désactiver facilement:

add_action( 'wp_before_admin_bar_render', 'wpse161696_toolbar_menu' );
add_action( 'admin_menu', 'wpse161696_updates' );

function wpse161696_toolbar_menu() { // Remove update menu item from the toolbar
    global $wp_admin_bar;
    $wp_admin_bar -> remove_menu( 'updates' );
}

function wpse161696_updates() { // Remove all updating related functions
    remove_submenu_page( 'index.php', 'update-core.php' ); // Remove Update submenu
    // Redirect to Dashboard if update page is accessed
    global $pagenow;
    $page = array(
        'update-core.php',
        'update.php',
        'update.php?action=upgrade-plugin'
        );
    if ( in_array( $pagenow, $page, true ) ) {
        wp_redirect( admin_url( 'index.php' ), 301 );
        // wp_die( 'Updates are disabled.' ); // An error message can be displayed instead
        exit;
    }
}

Cela devrait vous donner quelque chose à travailler. Il supprime les liens de mise à jour de la barre latérale et de la barre d'outils du tableau de bord tout en laissant les notifications de mise à jour activées.

Cependant, la mise à jour s'affichera toujours sous chaque plugin, ce qui permettrait à l'utilisateur d'effectuer des mises à jour:

entrez la description de l'image ici

Une solution à cela consiste à masquer le lien via CSS. Je ne pouvais pas vraiment faire fonctionner cette partie, mais étant donné que cette question est très ancienne, je ne voulais pas perdre de temps non plus. Je sentais que cette question devait être fermée.

Ethan Jinks O'Sullivan
la source
Merci d'avoir regardé. Mais ce que vous faites n'est pas vraiment ce que je cherchais. Tout d'abord, cacher des éléments du menu ne les supprime pas / ne les désactive pas réellement. Si vous connaissez l'URL, elle est toujours là. La redirection est également fragile. DISALLOW_FILE_MODSfait bien plus que bloquer les mises à jour. Mettre également la redirection admin_menuest au mauvais endroit. Il s'agit clairement d'un bogue de base qui doit y être corrigé. Tout le reste est des hacks sales et fragiles. Merci d'avoir essayé quand même;)
kraftner
Comment la redirection est-elle fragile exactement? Qu'est-ce qui fait tout le reste dirty?
Ethan Jinks O'Sullivan
Les mises à jour? Je voudrais savoir ce qui fragilise la redirection, un exemple m'aidera à mieux comprendre.
Ethan Jinks O'Sullivan
Désolé de ne pas être revenu. "sale" fait référence au fait que cela devrait être corrigé dans le noyau. Ma formulation portait trop de déception sur le fait qu'elle ne l'était pas, désolé pour cela. "Fragile" se réfère au fait que cela suppose trop d'URL de page et pourrait rompre avec les modifications de WP (par exemple, des mises à jour brillantes viennent de se produire, je ne sais pas si cela pourrait changer quoi que ce soit) Enfin, ma principale préoccupation est que je souhaite utiliser DISALLOW_FILE_MODSpour d'autres raisons également, par exemple la désactivation de l'éditeur. Mais sa définition truedéclenche ce problème. Désolé, la question n'a pas été claire.
kraftner
Je vois. Cette question ne serait donc pas résolue selon vos besoins car elle nécessiterait de peaufiner les fichiers principaux.
Ethan Jinks O'Sullivan