I'm currently trying to create a wordpress plugin where i can trade bitcoins. I should create a cron job where I want to check a value I get from some API calls, but my cron job isn't activating properly.

I also tried to do some random "echo" to see if the problem is my API code but I think the problem is that wordpress isn't activating my cron job.

This is my code:

    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");
            //$balance = $d->buyLimit($market, $quantita, $durata);
        else if($summ>maxValDol){
            //$balance = $d->sellLimit($market, $quantita, $durata);

My register hook is working: the my_activation() function is executed but not the checkCurrencyValue() function. Is there some problem?

Thank you in advance, Filippo

  • did you modify cron_schedules, setting a value for $schedules['thirtysec'] to 30 seconds? Commented Dec 13, 2017 at 22:52
  • Yes, I did that before Commented Dec 15, 2017 at 18:13

1 Answer 1


Here's the minified reference I use for setting up Wordpress cron, which is all from wp_schedule_event() and cron_schedules:

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 Function

// 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'));

Custom Cron Time Interval

if Wordpress's default hourly, daily, aren't enough, you can create your own.

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

replacing daily in wp_schedule_event() with customTime

Viewing Crons

You can also view your cron via a gui with a plugin: https://wordpress.org/plugins/search/cron+view/


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.