Are your SMM Panel orders stuck at “Pending” or “Processing” forever?
You have connected the API provider, you have added funds, but when a customer places an order, nothing happens. It just sits there.
The reason is simple: Your Cron Jobs are missing.
Think of your SMM Panel as a car. The script is the body, but the Cron Jobs are the engine. Without them, the script does not know when to send orders, check status, or drip-feed likes.

In this guide, I will show you how to set up Cron Jobs correctly on both cPanel and Hostinger (hPanel) so your orders process instantly.
Which Files Need Cron Jobs?
Most SMM scripts (SmartPanel, PerfectPanel, Rental) have a specific folder usually named cronjobs or automations. You need to set up a cron for each of these files:
- orders.php (Crucial: Sends orders to API)
- refill.php (Checks for refill tasks)
- dripfeed.php (Manages drip-feed orders)
- status.php or seller-sync.php (Updates order status from provider)
Method 1: Setup on cPanel (Standard)
If you are using Namecheap, GoDaddy, or standard hosting, use this method.
- Log in to cPanel.
- Scroll down to the “Advanced” section and click “Cron Jobs”.
- Common Settings: Select “Once Per Minute” (
* * * * *).- Note: For orders, 1 minute is best. For logs/status, 5 minutes is fine.
- Command: Use the
wgetcommand.
Bash
wget --spider -O - https://your-domain.com/automations/cronjobs/orders.php >/dev/null 2>&1
(Replace your-domain.com with your actual website link).
Repeat this step for every file (orders.php, refill.php, etc.).
Method 2: Setup on Hostinger (hPanel)
Hostinger is strict. Sometimes wget gets blocked. It is better to use the PHP Path method.
- Log in to hPanel.
- Go to Advanced > Cron Jobs.
- Type: Select “PHP”.
- Command: You need the full server path.
How to Find Your Path? Create a file named path.php in your public_html folder with this code:
PHP
<?php echo $_SERVER['DOCUMENT_ROOT']; ?>
Open that file in your browser. It will show something like /home/u123456/domains/ajtaktime.uk/public_html.
Bash
/usr/bin/php /home/u123456/domains/your-domain.com/public_html/automations/cronjobs/orders.php
Method 3: The “Run All” Trick (Save Time)
If your host limits you to only 1 or 2 Cron Jobs, you can create a single “Master File” that runs everything else.
Create a file named runall.php inside your cron folder and paste this:
PHP
<?php
$files = ['orders.php', 'refill.php', 'dripfeed.php', 'seller-sync.php'];
$domain = $_SERVER['HTTP_HOST'];
foreach ($files as $file) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://$domain/automations/cronjobs/$file");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
curl_close($ch);
}
echo "All crons executed.";
?>
Now, you only need to set up ONE Cron Job for runall.php, and it will trigger all the others automatically.
Troubleshooting
- Orders still pending? Check your Error Logs. If you see “Connection Refused”, go fix your database.Read Fix: How to Fix SQLSTATE Connection Refused Error
- PHP 8.2 Errors? If the cron runs but gives errors, you might have undefined array keys in your script.Read Fix: How to Fix Undefined Array Key in PHP 8.2
Professional Web Developer & SMM Script Expert since 2017. Fixing bugs and helping freelancers build secure websites.