Intereting Posts
Какой тип объекта WP_Query? Как я могу запустить код в functions.php, когда вызывается switch_theme ()? Сообщение Ответить с цитатой Частное обновление темы с zip-архивом без деактивации темы Личный кабинет Датчика Смерти? помощь Я изменил одну валюту в woocommerce, и все разрушено Как сделать переменные wp_localize_script доступными для дочерней темы? Почему ретранслятор моего скрипта имеет обратную косую черту? Несколько навигационных меню в одном месте короткий код вызова в javascript Как назначить категорию странице, когда оба создаются при инициировании темы? Показать наиболее популярные за последние два дня Скрыть заголовок H1 с использованием фильтра the_title Не удается заставить слайд-шоу перейти на мою домашнюю страницу. Он сказал, что преимущество переместилось Какие методы использовать для создания небольших редактируемых фрагментов текста для статических страниц?

Подключиться к обновлению WordPress?

Я хотел бы узнать, есть ли способ подключиться к процессу обновления WordPress и отправить переменную $_POST для обновления сервера?

Я доставляю обновления плагина / темы с личного сервера, и я подключаюсь к этому:

add_filter('pre_set_site_transient_update_themes', 'check_for_update');

который работает просто отлично. В Dashboard> Updates появляется новая версия темы / плагина, и я могу ее обновить. Но проблема в том, что я хочу, чтобы пользователи могли загружать / обновлять, только если они предоставили правильный логин / пароль (сначала с помощью add_option() ). В идеале прямая ссылка никогда не должна работать, если клиент не отправит $_POST с логином / паролем на update.php (файлы на сервере обновлений, которые будут отправлять плагин.ZIP взамен).

Я ищу что-то вроде этого:

 add_filter('updating', 'my_func'); function my_func($request){ $request['login'] = get_option('login'); $request['pass'] = get_option('pass'); return $request; } 

И WordPress, обновляя тему / плагин, должен отправлять $_POST['login'] и $_POST['pass'] на http://example.com/update.php, а update.php должен разрешать загрузку / обновление только в случае входа соответствует указанному там (update.php – файл на сервере обновлений, который отправляет ZIP-пакет с новым плагином в WordPress).

Надеюсь, это понятно 🙂

Solutions Collecting From Web of "Подключиться к обновлению WordPress?"

Обновление и внутренний API HTTP HTTP

Немного измененная версия моего ответа на этот вопрос , но также как плагин, который показывает, как он может работать.

Примечание. Код не протестирован – я не знаю настройки вашего сервера и т. Д. – и просто выписан из моей головы. Вам придется протестировать его, найти правильную позицию для слияния аргументов и указать свой URL и т. Д.

Первоначальный тест (# 1) можно было бы улучшить, если пользовательский удаленный репозиторий отправляет обратно используемые заголовки (что не так часто бывает). Поэтому, если это так, вам лучше использовать wp_remote_head() поскольку он делает HTTP-запрос более легким.

 <?php defined( 'ABSPATH' ) OR exit; /** * Plugin Name: (#78267) Custom Theme Update Args * Description: Adds custom arguments to the HTTP request for a theme or plugin update from a custom location. * Version: 2013-04-02.2139 * Author: Franz Josef Kaiser <wecodemore@gmail.com> * Author URI: http://unserkaiser.com * License: The MIT License (MIT) * LicenseURI: http://www.opensource.org/licenses/mit-license.php */ add_filter( 'http_request_args', 'custom_upgrade_process', 9, 2 ); /** * Callback for a HTTP request used to switch the * SSL verification in case of a WP error response * and routing to a custom Theme or Plugin repository. * @param array $r Request arguments * @param string $url Request URL * @return array $r */ function custom_upgrade_process( $r, $url ) { // Alter the following settings according to your // update procedure and admin pages that deliver it. # A) The admin URL $custom_repo = 'https://example.com?foo=bar'; if ( 0 !== strpos( $url, 'http://api.wordpress.org/plugins/update-check' ) XOR 0 !== strpos( $url, 'http://api.wordpress.org/themes/update-check' ) ) return $r; # 1) Do an initial test to check if things are working as expected $response = wp_remote_get( $custom_repo, array( 'timeout' => 120, 'httpversion' => '1.1', ) ); # 2) Turn off SSL verification in case the HTTP request didn't work out if ( is_wp_error( $response ) AND strstr( $response->get_error_message(), 'SSL: certificate subject name' ) ) add_filter( 'https_ssl_verify', '__return_false' ); # 3) Add your custom request arguments $r = array_merge( $r, array( 'login' => get_option( 'login' ), 'pass' => get_option( 'pass' ), ) ); return $r; } 

Удачи. 🙂