Si cambio el nombre de un complemento (en su archivo php principal), ¿sigo recibiendo notificaciones de actualización?

17

Recientemente me he visto obligado a editar los archivos principales de un complemento. He actualizado el título de dicho complemento para indicar que se ha editado.

Mi pregunta es si el complemento aún recibirá notificaciones de actualización. Si es así, es probable que desactive las actualizaciones de este complemento para evitar que alguien se olvide de mis actualizaciones y las sobrescriba.

Idealmente, me gustaría ver si el complemento obtiene actualizaciones, pero no permitir que sucedan simplemente haciendo clic en actualizar. (Tendría que desinstalarlo y reinstalarlo o similar).

Zach Lysobey
fuente
Sobre este problema, recientemente publiqué un informe de error en WordPress Track: Copia de seguridad de un directorio de plugins / temas. Creo que una copia de seguridad automática simple en el interior pero antes de la función de actualización automática facilitaría mucho las cosas para todos. No veo ninguna razón por la cual esto no se hizo cuando se lanzó la actualización automática por primera vez, ni por qué no se hizo mientras tanto, ni por qué no debería hacerse.
Ando

Respuestas:

17

Como dice SickHippie y AFAIK, no puedes tener ambos. Estoy agregando una respuesta con la información que recopilé en esta Pila.


Deshabilitar la notificación de actualización para complementos individuales

Bainternet en un comentario:

Simplemente abra el archivo de complemento y cambie el número de versión a algo como 9.9.9

Respuesta de Hameedullah Khan (eliminando el aviso de actualización de Akismet):

function filter_plugin_updates( $value ) {
    unset( $value->response['akismet/akismet.php'] );
    return $value;
}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );

Qué desencadena una alerta de actualización de complemento

Respuesta de Otto:

La API utiliza un mecanismo bastante elaborado para hacer coincidir los complementos con los complementos que conoce, pero estas son las principales cosas que se verifican: URI del complemento, nombre del complemento y slug del complemento (el nombre del directorio en el que se encuentra el complemento)

Cambie cualquiera de ellos y reducirá las posibilidades de que encuentre una coincidencia, pero aún podría obtenerla si dos coinciden, por ejemplo.

La información en el archivo readme.txt no se usa para esto. Se usa el encabezado del archivo PHP del complemento.


Enfoque alternativo 1


Enfoque alternativo 2 extraído de los comentarios

  • cambiar el nombre del complemento, el número de versión y el nombre del directorio
  • instale el complemento original pero déjelo desactivado para recibir avisos de actualización
  • agregar un mensaje personalizado a la descripción del complemento (o reemplazar el original)
  • eliminar las acciones del complemento (Activar | Editar | Eliminar) y la casilla de verificación para Acciones masivas

ingrese la descripción de la imagen aquí

add_filter( 'all_plugins', 'wpse_56968_on_list_plugins' );
add_filter( 'plugin_action_links_akismet/akismet.php', 'wpse_56968_remove_plugin_actions', 10, 4 );
add_action( 'admin_head-plugins.php', 'wpse_56968_remove_plugin_checkbox' );

function wpse_56968_on_list_plugins( $plugins )
{
    $plugins['akismet/akismet.php']['Description'] = '<strong>*** NOTICE: PLUGIN ONLY TO CHECK UPDATES IN THE ORIGINAL ONE! ***</strong> ';// . $plugins['akismet/akismet.php']['Description'];
    return $plugins;
}

function wpse_56968_remove_plugin_actions( $actions, $plugin_file, $plugin_data, $context ) 
{
    unset( $actions['activate'], $actions['edit'], $actions['delete'] );
    return $actions; 
}

function wpse_56968_remove_plugin_checkbox()
{
    ?>
        <script type="text/javascript">
            jQuery(document).ready( function($) {
                $('tr#akismet th.check-column').html('&nbsp;')
            });     
        </script>
    <?php
}

Entradas Core relacionadas

brasofilo
fuente
Respuesta impresionante! Tal vez cambie el nombre del complemento, el número de versión y el nombre del directorio, y luego instale el complemento original, pero lo dejaré desactivado para que pueda ver cuándo se actualiza.
Zach Lysobey
1
@ZachL - ¡Brillante! ¡Eso debería funcionar bien!
SickHippie
2
También puede modificar el encabezado del complemento original Descriptiony agregar algún aviso, como:Description: ONLY FOR REFERENCE, DON'T ACTIVATE!...[rest of the description]
brasofilo
1
@ZachL - Se agregó una segunda alternativa completa basada en estos Comentarios :)
brasofilo
3

No puede deshabilitar las actualizaciones pero no las notificaciones de actualización, están unidas.

Para deshabilitar las notificaciones por completo, cambie el nombre de la carpeta en la que se encuentra el complemento.

Mi método personal es anteponer 3 a al título del complemento en el menú principal plugin.php archivo , así que en mi lista de complementos veo AAA/Plugin Name. Esto lo coloca en la parte superior de la lista como referencia, y se mostrará en la lista de complementos y en la lista de actualizaciones. Es básicamente una bandera personal, así que sé que no debo actualizar automáticamente esos complementos específicos.

SickHippie
fuente
Gracias por la respuesta. Solo para aclarar, ¿estás diciendo que cambiar el nombre de un complemento NO detiene sus notificaciones de actualización?
Zach Lysobey
En cuanto a su primera oración ... Estoy seguro de que podría encontrar alguna forma de lograr este efecto, tal vez con algunos astutos js para eliminar el enlace de la notificación.
Zach Lysobey
AFAIK, renombrar el archivo principal o el título de un complemento en ese archivo principal no detiene las notificaciones de actualización. Estoy bastante seguro de que el repositorio de complementos se basa en el nombre de la carpeta (el zip descargado del repositorio debe tener el mismo nombre más el número de versión). Para la desactivación de la actualización, está la lista de complementos y la lista de actualizaciones, así que asegúrese de que su JS esté disparando en ambos lugares (también, comparta ese JS, podría ser útil).
SickHippie