Проблема с созданием задания cron wordpress


В настоящее время я пытаюсь создать плагин wordpress, где я могу торговать биткоинами. Я должен создать задание cron, в котором я хочу проверить значение, которое я получаю от некоторых вызовов API, но мое задание cron не активируется должным образом.

Я также попытался сделать случайное "эхо", чтобы узнать, не является ли проблема моим кодом API, но я думаю, что проблема в том, что wordpress не активирует мою работу cron.

Это мой код:

    function my_activation() {
    if (!wp_next_scheduled ( 'my_periodic_event' )) {
    wp_schedule_event(time(), 'thirtysec', 'my_periodic_event');
    }
    add_action('my_periodic_event', 'checkCurrencyValue');
}

    function checkCurrencyValue() {
        global $market, $quantita, $durata, $wpdb, $table_name;
        $table_name = $wpdb->prefix."bittrex_account_info";
        $users = $wpdb->get_results( "SELECT chiave FROM $table_name");
                    // The query will get the complete users login id/login name
        foreach ( $users as $user ) {
        echo $user->chiave;
        }
        $users = $wpdb->get_results( "SELECT chiave FROM $table_name WHERE email = '[email protected]'");
        $wpdb->update( $table_name, array( 'chiave' => $key, 'secret' => $users),array('email'=>'[email protected]'));

        $d = new BittrexxApi ($key, $secret);
        $quantita = $wpdb->get_var("SELECT quantita FROM wp_bittrex_account_info WHERE email = '$mail'");
        $discesaMax = $wpdb->get_var("SELECT discesaMax FROM wp_bittrex_account_info WHERE email = '$mail'");
        $maxValDol = $wpdb->get_var("SELECT maxvaldol FROM wp_bittrex_account_info WHERE email = '$mail'");
        $summ = $d->getMarketSummary("USDT-BTC");
        if($summ<discesaMax){
            //$balance = $d->buyLimit($market, $quantita, $durata);
        }
        else if($summ>maxValDol){
            //$balance = $d->sellLimit($market, $quantita, $durata);
        }       
}

Мой регистровый крючок работает: функция my_activation() выполняется, но не функция checkCurrencyValue(). Есть какая-то проблема?

Заранее благодарю тебя, Филиппо

Author: Filippo Momentè, 2017-12-13

1 answers

Вот уменьшенная ссылка, которую я использую для настройки cron Wordpress, которая все из wp_schedule_event() и cron_schedules:

Настройка Cron

// SETUP CRON
add_action('wp', 'myplugin_schedule_cron');
function myplugin_schedule_cron() {
  if ( !wp_next_scheduled( 'myplugin_cron' ) )
    wp_schedule_event(time(), 'daily', 'myplugin_cron');
}

Функция Cron

// the CRON hook for firing function
add_action('myplugin_cron', 'myplugin_cron_function');
#add_action('wp_head', 'myplugin_cron_function'); //test on page load

// the actual function
function myplugin_cron_function() {
    // see if fires via email notification
    wp_mail('[email protected]','Cron Worked', date('r'));
}

Пользовательский временной интервал Cron

Если часового, ежедневного по умолчанию Wordpress недостаточно, вы можете создать свой собственный.

// CUSTOM TIME INTERVAL
add_filter('cron_schedules', 'myplugin_cron_add_intervals');
function myplugin_cron_add_intervals( $schedules ) {
  $schedules['customTime'] = array(
    'interval' => 30,
    'display' => __('Every 30sec')
  );
  return $schedules;
}

Замена daily в wp_schedule_event() на customTime

Просмотр крон

Вы также можете просматривать свой cron через графический интерфейс с помощью плагина: https://wordpress.org/plugins/search/cron +просмотр/

 6
Author: David Sword, 2017-12-15 00:38:02