jared
  • 0
Эксперт

Как автоматически обновить мой плагин?

  • 0

Как мне сделать так, чтобы мой плагин New version available. Upgrade Automatically появлялся с этим диалоговым окном, когда у моего плагина есть новая версия? Специально для плагинов, не размещенных в репозитории WP.org.

Share
  1. Вы конкретно спрашиваете о плагинах, которые не размещены в репозитории WordPress.org? Если это так, вы должны четко указать это в вопросе.

    • 0
  2. Эта библиотека интегрирует автоматические обновления для плагинов, размещенных в частном порядке. Выглядит отлично.

    • 0
  3. Самый простой способ, который я могу придумать, — это заставить ваш плагин «звонить домой», чтобы проверить URL-адрес на вашем веб-сайте, который возвращает текущую версию вашего плагина.

    Таким образом, ваш плагин (установленный на другом веб-сайте) может сравнить свою версию с «текущей» версией на вашем веб-сайте, чтобы узнать, является ли она такой же или более новой.

    Изменить: пример кода

    Я должен указать, прежде чем вы реализуете это : это добавит баннер в верхней части экрана. Если вы просто хотите, чтобы ваш плагин показывал обновление, доступное в меню слева, я думаю, что он автоматически делает это, когда вы загружаете новую версию в репозиторий WordPress. Если вы хотите, чтобы баннер располагался сверху, продолжайте.

    Я бы создал шаблон специально для этой страницы, чтобы верхний и нижний колонтитулы не включались:

    <?php
    
        // Template Name: Bare Template
    
        while (have_posts()) : the_post();
            the_content();
        endwhile;
    
    ?>
    

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

    Затем настройте страницу, использующую этот шаблон, например, «последняя версия плагина». Если вы сейчас просмотрите эту страницу в своем браузере, все, что она должна сказать, это текст со страницы без дополнительного html.

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

    function yourpluginname_check_for_new_version() {
    
        /* You probably shouldn't check for updates more than once a day, 
        for everyone's bandwidth's sake. */
    
        $last_check = get_option('yourpluginname_lastcheck');
        if ( $last_check + 86400 > time() ) { return; }
    
        // If we're still here, check your site for a new version.
    
        $current_version = get_option('yourpluginname_version');
        $latest_version = file_get_contents('http://www.yourdomain.com/latest-plugin-version/');
    
        if ( $current_version != $latest_version ) {
            ?>
            <div style="background: #FFDDDD; color: red; width: 600px; 
                        margin: 20px auto; padding: 10px; text-align: center;
                        border: 2px red solid;">
                There's a new version of MY PLUGIN available! You should upgrade now.
            </div>
            <?php
        }
    
        // Log that we've checked for an update now.
        update_option('yourpluginname_lastcheck', time());
    
    }
    

    А затем, чтобы связать его, чтобы он запускал функцию:

    add_action('admin_notices', 'yourpluginname_check_for_new_version');
    

    Теперь в вашей функции установки вы должны добавить опцию сохранения номера версии в WordPress пользователя:

    update_option( 'yourpluginname_version', '2.0' );
    

    Вы можете использовать update_option вместо add_option, так как он добавит параметр, если он еще не существует.

    Это должно сделать это.

    • 0
  4. Существует бесплатный плагин, который позволяет автоматически обновлять плагины, размещенные в частном порядке: https://github.com/meglio/wp-upgrademe.

    • 0

Оставить ответ

You must login to add an answer.