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

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

Solutions Collecting From Web of "Как автоматически обновлять мой плагин?"

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

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

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

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

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

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

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

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

Затем настройте страницу, использующую этот шаблон, скажем, «last-plugin-version». Если теперь вы просматриваете эту страницу в своем браузере, все, что она должна сказать, это текст со страницы без дополнительного 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, так как он добавит параметр, если он еще не существует.

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

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