Мне нужно работать с techcrunch wp-async-task для запуска задачи синхронизации в фоновом режиме в моем плагине Wordpress.wp-async-task не запускает метод run_action
Так, чтобы проверить, в нижней части основного файла у меня есть:
//top of the php file
require_once(dirname(__FILE__) . '/lib/WP_Async_Task.php');
require_once(dirname(__FILE__) . '/class/my_api_status.class.php');
define('API_URL', '...');
/* ... */
// At the bottom of the file
function my_api_status($api_url)
{
sleep(5);
$r = wp_safe_remote_get($api_url);
if (!is_wp_error($r)) {
$body = json_decode(wp_remote_retrieve_body($r));
if (isset($body->success)) {
return;
}
}
}
add_action('wp_async_api_status', 'my_api_status');
function my_init_api_status()
{
new ApiStatusTask();
do_action('api_status', constant('API_URL'));
}
add_action('plugins_loaded', 'my_init_api_status');
И статус апи класс задач
class ApiStatusTask extends WP_Async_Task {
protected $action = 'api_status';
/**
* Prepare data for the asynchronous request
* @throws Exception If for any reason the request should not happen
* @param array $data An array of data sent to the hook
* @return array
*/
protected function prepare_data($data) {
return array(
'api_url' => $data[0]
);
}
/**
* Run the async task action
*/
protected function run_action() {
if(isset($_POST['api_url'])){
do_action("wp_async_$this->action", $_POST['api_url']);
}
}
}
Функция prepare_data
правильно вызывается launch
и после этого launch_on_shutdown
является также правильно вызывается и, наконец, wp_remote_post
вызывается в конце launch_on_shutdown
с admin-post.php
. Но функция run_action
никогда не называется ... и поэтому my_api_status
в основном файле.
Возможно, что-то не так?
Hi Thomas, спасибо, что разместили это! Я попытался запустить эту аналогичную установку на своем Wordpress v4.7.5. Я установил пользовательский класс, который расширяет класс WP_Async_Task в моем файле functions.php темы. Но это не работает даже при настройке sslverify в методе 'launch_on_shutdown' класса' WP_Async_Task'. – Qwerty
Знаете ли вы, что плагин Techcrunch и этот метод будут работать в Wordpress v4.7.5. Был борется за то, чтобы этот плагин работал с крюком, даже с крюком wp_async_save_post. – Qwerty