Configuration

Cron Jobs & Background Processes

All scheduled background tasks registered by Influenzic, their intervals, and how to set up a real server cron for reliable execution in cPanel, Plesk, or Linux CLI.

Influenzic registers several scheduled background tasks using WordPress Cron (WP-Cron). These handle email delivery, invitation expiry, quality score maintenance, and other time-sensitive operations. On sites with low traffic, WP-Cron may fire unreliably — a real server cron job is strongly recommended for any production deployment.

Registered Cron Jobs

WP-Cron Hook Interval What It Does
inzc_process_email_queue Every 5 minutes Delivers queued transactional emails in batches. Most time-sensitive job — delay here means users miss time-critical emails (invitation received, project updated, etc.).
inzc_process_email_digest Hourly Batches pending notification emails for users on hourly or daily digest mode and dispatches a single digest email.
inzc_expire_invitations Hourly Scans open invitations for those past their acceptance deadline and marks them expired. Triggers automatic escrow refunds to brand wallets.
inzc_process_invitation_grace_refunds Hourly Processes early-cancellation refund requests that are past the grace window and have not yet been refunded.
inzc_orphan_media_cleanup Hourly Deletes WordPress media library attachments that were uploaded during campaign/profile creation but never attached to a published post (e.g. abandoned draft uploads).
inzc_daily_post_check Daily Post Monitor: re-fetches each active project’s submitted post URLs to confirm they are still live. Applies reputation penalties for removed posts.
inzc_prune_profile_reviews Daily Removes profile review queue entries that have been in a terminal state (approved/rejected) longer than the configured retention period.
inzc_cleanup_unverified_accounts Daily Deletes WordPress user accounts that registered but never verified their email within the configured expiry window (when email verification is enabled).
inzc_process_pending_closures Daily Processes account deletion requests that have passed the configured retention/cooling-off period.
inzc_bulk_recalculate_quality_scores Weekly Recalculates quality scores and creator levels for all influencers to catch any score drift or threshold-setting changes.

Why WP-Cron Is Unreliable on Low-Traffic Sites

WP-Cron is not a real system cron — it only fires when someone visits your WordPress site. On sites with few visitors, a 5-minute email queue job may not run for 30 minutes or more. On overnight hours, daily jobs may fire hours late.

For any production influencer platform, this is unacceptable: invitation expiry, email notifications, and post monitor checks must run on schedule.

Step 1: Disable WP-Cron Page Triggers

First, open your wp-config.php file using an FTP client or your hosting file manager. Add the following line before the line that says /* That’s all, stop editing! Happy publishing. */:

define( 'DISABLE_WP_CRON', true );

This tells WordPress not to check or run cron events on page load, saving resources and delegating all triggers to the system scheduler.

Step 2: Set Up the System Cron Job

Configure a system task scheduler using one of the three options below depending on your hosting environment.

Option A: cPanel (Shared Hosting)

  1. 1
    Log into cPanel and search for Cron Jobs (located in the Advanced section).
  2. 2
    Under Add New Cron Job, select Once Per Minute (* * * * *) from the Common Settings dropdown list.
  3. 3
    In the Command input field, enter the following command (replace yourdomain.com with your actual site URL):
    wget -q -O - https://yourdomain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
    Alternatively, if wget is blocked, use:
    curl -s https://yourdomain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
  4. 4
    Click Add New Cron Job to save.

Option B: Plesk Control Panel

  1. 1
    Log into Plesk and navigate to Websites & Domains → Scheduled Tasks (under the developer/system tabs).
  2. 2
    Click Add Task.
  3. 3
    Set the Task Type to Run a PHP script. In the script path input, specify: wp-cron.php.
  4. 4
    Set the schedule interval to Cron style and fill in the interval string: * * * * *.
  5. 5
    Click OK to run the scheduled script.

Option C: Linux Server (VPS or Dedicated CLI)

If you run a virtual private server, SSH into your server as the user who owns the web directory (e.g. www-data) and edit the cron configuration:

crontab -u www-data -e

Add the following line to the end of the file. It is best to trigger via WP-CLI as it bypasses the HTTP web service overhead entirely:

* * * * * cd /var/www/html && wp cron event run --due-now --quiet

Save and close the editor. The cron daemon will automatically reload the configuration.

Why every minute? Even though the most frequent job (inzc_process_email_queue) runs every 5 minutes, firing the cron trigger every minute ensures WP-Cron always fires within 60 seconds of when a scheduled event is due — regardless of traffic.

Verifying Cron Health

Install the WP Crontrol plugin temporarily to inspect your cron schedule:

  • Navigate to Tools → Cron Events to see all registered events and their next scheduled run time.
  • All 10 Influenzic jobs should appear. If any are missing, deactivate and reactivate the Influenzic plugin to re-register them.
  • The Next Run column should show times in the recent past (fired and rescheduled) or near future — never far in the future if your cron is working.
Do not deactivate/reactivate repeatedly to fix cron issues. This reschedules all cron events to fire immediately and can cause a burst of simultaneous email sending. Fix the underlying cron configuration instead.

Was this article helpful?