Scheduling Issues
3 min read
If campaigns aren’t starting or ending at the expected times, or recurring campaigns (Pro) aren’t following their schedule, this guide helps diagnose and resolve scheduling issues.
Quick Checklist #
- ☐ WordPress timezone is correctly configured
- ☐ WP-Cron or Action Scheduler is functioning
- ☐ Server time matches expected timezone
- ☐ Campaign dates are set correctly
- ☐ Recurring settings are properly configured
Common Causes #
1. Timezone Misconfiguration #
Symptom: Campaigns activate hours early or late.
Check:
- Go to Settings → General
- Look at “Timezone” setting
- Verify it matches your intended timezone
Solution:
- Set correct timezone (city-based is best, e.g., “America/New_York”)
- Save settings
- Campaign times will use this timezone
Note: UTC offsets don’t handle daylight saving time automatically.
2. WP-Cron Not Running #
Symptom: Scheduled campaigns don’t activate on time.
Why This Happens:
- WP-Cron triggers on page visits
- Low-traffic sites may not have visits at scheduled times
- Some hosts disable WP-Cron
Check:
- Go to SC Discounts → Tools
- Run Health Check
- Look for WP-Cron status
Solution A: Server-Level Cron (Recommended)
- Add to server crontab:
*/5 * * * * wget -q -O - https://yoursite.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
- Add to wp-config.php:
define( 'DISABLE_WP_CRON', true );
Solution B: Cron Plugin
- Install a plugin like “WP Crontrol”
- Use external service like UptimeRobot to ping wp-cron.php
3. Action Scheduler Issues #
Symptom: Scheduled actions are pending but not running.
Check:
- Go to Tools → Scheduled Actions
- Look for pending Smart Cycle Discounts actions
- Check if actions are stuck or failing
Solution:
- Failed actions can be retried manually
- Clear very old pending actions
- Ensure WP-Cron is running (Action Scheduler needs it)
4. Server Time Mismatch #
Symptom: Timing is off by a consistent amount.
Check:
Add this temporarily to a page to check server time:
<?php echo 'Server time: ' . date('Y-m-d H:i:s'); ?>
Solution:
- Contact hosting provider if server time is wrong
- Server should use NTP for time synchronization
5. Campaign Dates Set Incorrectly #
Symptom: Campaign activates at unexpected time.
Check:
- Edit the campaign
- Go to Schedule step
- Verify start and end dates/times
Common Mistakes:
- AM/PM confusion (12:00 PM vs 12:00 AM)
- Wrong date (December 15 vs November 15)
- Date format confusion (MM/DD vs DD/MM)
6. Recurring Schedule Misconfiguration #
Symptom: Recurring campaign runs on wrong days/times.
Check:
- Edit the campaign
- Go to Schedule step
- Review recurring settings:
- Frequency (daily, weekly, etc.)
- Selected days
- Active time window
Common Issues:
- Wrong days selected for weekly schedule
- Time window set incorrectly
- End date reached for recurring campaign
Diagnostic Steps #
Step 1: Verify Timezone #
Go to: Settings → General Check: Timezone setting Best: Use city-based timezone (e.g., "New York")
Step 2: Check Current Time #
WordPress shows current time at: Settings → General (below timezone) Should match your expected local time
Step 3: Review Campaign Schedule #
Edit campaign → Schedule step Verify: - Start date and time - End date and time - Recurring settings (if enabled)
Step 4: Check Scheduled Actions #
Go to: Tools → Scheduled Actions Filter by: "scd" or "smart_cycle" Look for: Pending activation/expiration tasks
Step 5: Test Cron #
Visit: https://yoursite.com/wp-cron.php Or go to: SC Discounts → Tools → Health Check
Recurring Campaign Scheduling #
Understanding Recurring Windows #
Recurring campaigns have active windows:
Example: Weekend Sale Frequency: Weekly Days: Saturday, Sunday Time: 12:00 AM - 11:59 PM Active: Saturday 12:00 AM → Sunday 11:59 PM Inactive: Monday → Friday Active: Next Saturday 12:00 AM → Sunday 11:59 PM
Why Recurring Campaign Seems Inactive #
- Current time is outside the recurring window
- Campaign is between occurrences
- This is expected behavior
Verifying Next Occurrence #
- Open campaign overview panel
- Look for “Next occurrence” information
- Shows when campaign will next be active
Daylight Saving Time #
DST Transitions #
If using city-based timezone (recommended), DST is handled automatically.
Spring Forward:
- Campaign scheduled for 2:30 AM may skip (time doesn’t exist)
- Activates at next valid time
Fall Back:
- Campaign may trigger twice if scheduled during repeated hour
- System handles gracefully
UTC Offset Issues #
If using UTC offset (e.g., “UTC-5”):
- DST is NOT automatically handled
- You must manually adjust twice per year
- Recommend switching to city-based timezone
Manual Intervention #
Force Campaign Activation #
If a scheduled campaign should be active now:
- Edit the campaign
- Change start date to past date/time
- Save
- Campaign should activate immediately
Force Campaign Expiration #
If a campaign should have expired:
- Edit the campaign
- Change end date to past date/time
- Save
- Campaign will expire
Manually Run Scheduled Tasks #
- Go to Tools → Scheduled Actions
- Find the pending task
- Click “Run” to execute immediately
Preventing Scheduling Issues #
Best Practices #
- Use city-based timezone – Handles DST automatically
- Set up server cron – More reliable than WP-Cron
- Test before launch – Create test campaigns first
- Double-check times – Especially AM/PM
- Monitor scheduled actions – Check for stuck tasks
Scheduling Notifications #
Enable notifications to confirm scheduling works:
- Campaign Start notifications confirm activation
- Campaign Expiration warnings alert before end
Still Having Issues? #
Enable Debug Mode #
- Go to SC Discounts → Settings → Advanced
- Enable Debug Mode
- Wait for scheduled event to occur
- Check debug log for scheduling information
Contact Support With #
- System report
- Campaign schedule settings (screenshot)
- WordPress timezone setting
- Current time vs. expected activation time
- Scheduled Actions screenshot if relevant