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
Log into cPanel and search for Cron Jobs (located in the Advanced section).
- 2
Under Add New Cron Job, select Once Per Minute (
* * * * *) from the Common Settings dropdown list. - 3
In the Command input field, enter the following command (replace
yourdomain.comwith 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
Click Add New Cron Job to save.
Option B: Plesk Control Panel
- 1
Log into Plesk and navigate to Websites & Domains → Scheduled Tasks (under the developer/system tabs).
- 2
Click Add Task.
- 3
Set the Task Type to Run a PHP script. In the script path input, specify:
wp-cron.php. - 4
Set the schedule interval to Cron style and fill in the interval string:
* * * * *. - 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.
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.