When someone pays with PayPal and the payment is complete, PayPal sends an IPN (Instant Payment Notification) back to the site saying the payment is complete and the actual order is created.
Sometimes that IPN can be delayed but usually only a couple of minutes. Though there have been cases where it has taken a couple of hours.
If the orders are not getting created here are some possible causes:
1) You are forcing httpS but have not updated the config file (most likely)
Step #2 from these instructions on forcing httpS must be done or it could create a redirect and make the order not get created.
2) Your PayPal account is not a Business account.
Personal PayPal accounts won't work. It need to be a business account.
3) The customer paid by eCheck
eChecks can take several days to clear and the order will not be created until then.
4) Your host has a firewall that is blocking the PayPal IPN IP address.
You would need to check with your hosting company about that.
Check the IPN Status
You can check the IPN history in your PayPal account to see if there are any errors. Log into your PayPal account then go to the following link:
You should have a Search Results section. If nothing is in it, change the dates to when a payment was made.
Date/time created - Message ID - Status - Transaction ID
See what is under Status. If it says disabled then PayPal has disabled it for some reason and you should contact PayPal support to see if they can tell you why.