3

I'm using OctoberCMS based on Laravel.

I don't have SSH access to my server.

Each day I need to delete some users who haven't activated their account in 24 hours after registration, so I'am thinking about use a task sheduling ( like cronjobs)

According to octobercms docs I should make a function for register task sheduling in Custom Component's Plugin.php - I made it.

I made registered users without activation account and older then 1 day.

But problem is that - nothing is happening at all.

It's my code in plugin.php of component:

public function registerSchedule($schedule)
{
    $schedule->call(function() {
        \DB::connection('mydb')->table('u')->whereRaw('u.created_at <= NOW() - INTERVAL 1 DAY')->where('is_activated','=',0)->delete();
    })->everyMinute();
}

Note: I have changed ->daily() on -> everyMinute() for testing it.

B Faley
  • 17,120
  • 43
  • 133
  • 223
Z.S
  • 85
  • 1
  • 8
  • 1
    Did you set up the cron job specified here: https://octobercms.com/docs/setup/installation#crontab-setup – dragontree Apr 11 '17 at 14:51
  • No. I didn't becouse I don't have access by console to server, I don't have any Idea how to do it without ssh access. – Z.S Apr 11 '17 at 15:08

1 Answers1

2

You can use a classic HTTP call with your host or a service like https://www.setcronjob.com

Create a routes.php file in the root folder of the plugin with the route:

use Route;

Route::get('/yourprefix/delete_users', function () {
DB::connection('mydb')->table('u')->whereRaw('u.created_at <= NOW() - INTERVAL 1 DAY')->where('is_activated','=',0)->delete();
});

Of course, you can add some authentication to protect it.

  • Thank You, my friend it's solved ;).But my question is that, why my task sheduler not working ? couse I didn't set it in console ? – Z.S Apr 12 '17 at 07:57
  • https://octobercms.inetis.ch/cron-without-command-line you can also use artisan with the same technic. But you can have some troubles with the timout of the server – Pierre-André Vullioud Apr 12 '17 at 09:04