How to Setup Cron Jobs for SMM Panel (Fix Orders Stuck at Pending)

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.

How to Setup Cron Jobs for SMM Panel (Fix Orders Stuck at Pending)

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:

  1. orders.php (Crucial: Sends orders to API)
  2. refill.php (Checks for refill tasks)
  3. dripfeed.php (Manages drip-feed orders)
  4. 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.

  1. Log in to cPanel.
  2. Scroll down to the “Advanced” section and click “Cron Jobs”.
  3. Common Settings: Select “Once Per Minute” (* * * * *).
    • Note: For orders, 1 minute is best. For logs/status, 5 minutes is fine.
  4. Command: Use the wget command.

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.

  1. Log in to hPanel.
  2. Go to Advanced > Cron Jobs.
  3. Type: Select “PHP”.
  4. 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

Leave a Comment