Просмотр версии плагина WordPress Удалить Обновить сейчас

Вопрос или проблема

Я хотел бы убрать “Обновить сейчас” под названием плагина.

Это моя информация об обновлении:

{
"slug" : "simple-wp-plugin-update",
"version" : "2.5",
"url": "https://my-website.com",
"package": "foo",
"tested" : "5.8",
"requires_php" : "5.3",
"name" : "Пример названия плагина",
"author" : "<a href="https://my-website.com">Имя</a>",
"requires" : "3.0",
"last_updated" : "2023-05-20 16:00:00",
"sections" : {
    "description" : "Описание для вкладки Описание в модальном окне",
    "installation" : "Описание для вкладки Установка в модальном окне",
    "changelog" : "<h4>2.0</h4><ul><li>Исправление ошибок</li></ul>"
}
}

Php, который получает информацию об обновлении:

add_filter('update_plugins_my-domain', 'check_update', 10, 4);
    
function check_update($update, $plugin_data, $plugin_file, $locales) {
    $remote = wp_remote_get(api_url);
    if(!is_wp_error( $remote )) {
        $remote = json_decode( wp_remote_retrieve_body( $remote ) );
    }
    return $remote;
}

Это показывает мне:

Доступна новая версия Пример названия плагина. Просмотреть детали версии 2.5 или обновить сейчас.

Если я добавлю это:

add_action( 'in_plugin_update_message-simple-wp-plugin-update/simple-wp-plugin-update.php', 'display_update_message', 10, 2 );

function display_update_message( $plugin_info_array, $plugin_info_object ) {
    
    echo ' Некоторый текст здесь.';
    
}

Это показывает этот текст после “Обновить сейчас”:

В следующем руководстве они убирают “Обновить сейчас”, но оставляют “Посмотреть текст версии…”

https://rudrastyh.com/wordpress/check-license-key-in-plugin-updates.html

Как я могу этого достичь? Они используют “site_transient_update_plugins”, но я использую add_filter(‘update_plugins…

Я пробовал это: https://stackoverflow.com/a/27074740/1009466, но это полностью убирает все (Посмотреть версию и Обновить сейчас)

add_filter('site_transient_update_plugins', 'remove_update_notification');
function remove_update_notification($value) {
    unset($value->response[ plugin_basename(__FILE__) ]);
    return $value;
} 

Ответ или решение

Для того чтобы удалить текст "Обновить сейчас" из уведомления об обновлении плагина в WordPress, но оставить текст "Посмотреть версию …", вам необходимо использовать фильтры и действия, согласно рекомендации, на которую вы ссылаетесь.

Вот пример кода, который поможет вам достичь желаемого результата:

add_filter('site_transient_update_plugins', 'custom_remove_update_notice');

function custom_remove_update_notice($updates) {
    if (isset($updates->response[plugin_basename(__FILE__)])) {
        // Получаем информацию о плагине
        $plugin_info = $updates->response[plugin_basename(__FILE__)];

        // Изменяем на ваше собственное сообщение
        $plugin_info->upgrade_notice = 'Ваше кастомное сообщение здесь.';

        // Удаляем "Обновить сейчас", но оставляем данные о версии
        unset($updates->response[plugin_basename(__FILE__)]);

        // Возвращаем информацию о плагине
        $updates->response[plugin_basename(__FILE__)] = $plugin_info;
    }

    return $updates;
}

// Это для того, чтобы корректно отображалось ваше сообщение
add_action('in_plugin_update_message-simple-wp-plugin-update/simple-wp-plugin-update.php', 'custom_update_message', 10, 2 );

function custom_update_message($plugin_info_array, $plugin_info_object) {
    echo '<p>Ваше кастомное сообщение здесь.</p>'; // Ваше уникальное сообщение
}

Разъяснения:

  1. custom_remove_update_notice: Эта функция обрабатывает массив обновлений и удаляет уведомление "Обновить сейчас", сохраняя при этом остальные сведения, в том числе о новой версии. Мы изменяем содержимое уведомления на ваше собственное через upgrade_notice.

  2. custom_update_message: Эта функция позволяет вам добавить собственный текст под уведомлением о обновлении. Он будет отображаться вместо стандартного "Обновить сейчас".

Таким образом, вы получите возможность кастомизировать уведомления, убирая ненужные вам элементы, оставляя только те, которые вы хотите видеть.

Примечание:

  • Убедитесь, что вы имеете подходящий доступ к коду вашего плагина, чтобы внести изменения.
  • Тестируйте указанную реализацию на локальной или тестовой среде, чтобы избежать потери функциональности на рабочем сайте.

Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их!

Оцените материал
Добавить комментарий

Капча загружается...