• Resolved Venutius

    (@venutius)


    I’ve two sites and both get the same error. One is a test site, the other live.

    Crontrol\Schedule\{closure}(): Argument #1 ($a) must be of type array, int given
    in wp-content/paste-dump/wp-crontrol/src/schedule.php on line 88

    I tested a couple of cron plugins and they seem to work. wp_get_schedules returns the expected array.

Viewing 4 replies - 1 through 4 (of 4 total)
  • Plugin Author John Blackbourn

    (@johnbillion)

    WordPress Core Developer

    Thanks for the report. That means something has messed up one of the entries in the schedules array. Can you check the return value of wp_get_schedules() and let me know if any of the elements in the array aren’t an array? For example there might be a null value in there. Edit: Reading your error message again, it looks like there’s an integer value directly in the schedules array.

    I’ll see about adding a guard condition for this, but it does mean that some code or another plugin somewhere is inserting an invalid schedule into the array.

    Thread Starter Venutius

    (@venutius)

    here is the output –

    array(15) {
      ["interval"]=>
      int(60)
      ["display"]=>
      string(12) "Every Minute"
      ["weekly"]=>
      array(2) {
        ["interval"]=>
        int(604800)
        ["display"]=>
        string(11) "Once Weekly"
      }
      ["monthly"]=>
      array(2) {
        ["interval"]=>
        int(2592000)
        ["display"]=>
        string(7) "Monthly"
      }
      ["quarterly"]=>
      array(2) {
        ["display"]=>
        string(9) "Quarterly"
        ["interval"]=>
        int(7776000)
      }
      ["wf_scan_monitor_interval"]=>
      array(2) {
        ["interval"]=>
        int(60)
        ["display"]=>
        string(22) "Wordfence Scan Monitor"
      }
      ["everyhour"]=>
      array(2) {
        ["interval"]=>
        int(3600)
        ["display"]=>
        string(10) "Every hour"
      }
      ["every2hours"]=>
      array(2) {
        ["interval"]=>
        int(7200)
        ["display"]=>
        string(13) "Every 2 hours"
      }
      ["every4hours"]=>
      array(2) {
        ["interval"]=>
        int(14400)
        ["display"]=>
        string(13) "Every 4 hours"
      }
      ["every8hours"]=>
      array(2) {
        ["interval"]=>
        int(28800)
        ["display"]=>
        string(13) "Every 8 hours"
      }
      ["twicedaily"]=>
      array(2) {
        ["interval"]=>
        int(43200)
        ["display"]=>
        string(11) "Twice Daily"
      }
      ["daily"]=>
      array(2) {
        ["interval"]=>
        int(86400)
        ["display"]=>
        string(10) "Once Daily"
      }
      ["fortnightly"]=>
      array(2) {
        ["interval"]=>
        int(1209600)
        ["display"]=>
        string(11) "Fortnightly"
      }
      ["newsletter"]=>
      array(2) {
        ["interval"]=>
        int(300)
        ["display"]=>
        string(17) "Every 300 seconds"
      }
      ["hourly"]=>
      array(2) {
        ["interval"]=>
        int(3600)
        ["display"]=>
        string(11) "Once Hourly"
      }
    }
    Wordfence?
    Plugin Author John Blackbourn

    (@johnbillion)

    WordPress Core Developer

    Thanks. So something on your site is incorrectly using the cron_schedules filter. Note the interval and display properties which should not exist on the top level array, these properties should be contained within a named schedule such as weekly.

    Can you try temporarily deactivating your other plugins one by one to see if the error goes away?

    Thread Starter Venutius

    (@venutius)

    Found it, a class hard one. A code snippet from long ago, hidden in the functions.php

Viewing 4 replies - 1 through 4 (of 4 total)

You must be logged in to reply to this topic.