PHPackages                             lopatin96/laravel-campaign - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. lopatin96/laravel-campaign

AbandonedLibrary

lopatin96/laravel-campaign
==========================

Laravel campaign

1.0.14(2y ago)05.2kMITPHPPHP &gt;=8.1

Since Sep 29Pushed 2y ago1 watchersCompare

[ Source](https://github.com/lopatin96/laravel-campaign)[ Packagist](https://packagist.org/packages/lopatin96/laravel-campaign)[ RSS](/packages/lopatin96-laravel-campaign/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (1)Versions (16)Used By (0)

Install
=======

[](#install)

### Migrations

[](#migrations)

```
php artisan vendor:publish --tag="laravel-campaign-migrations"
```

then run `php artisan migrate`

### Config

[](#config)

Publish config to manage active mails:

```
php artisan vendor:publish --tag="laravel-campaign-config"
```

### Trait and Casts

[](#trait-and-casts)

Add `HasCampaign` trait and casts to User model.

```
use Atin\LaravelCampaign\Traits\HasCampaign;

class User extends Authenticatable
{
    use HasCampaign;

    protected $casts = [
         'campaign_unsubscribed_at' => 'datetime',
    ];
}
```

### Generating Mailables

[](#generating-mailables)

New "mailable" class will be stored in the *app/Mail* directory.

```
php artisan make:mail TestMail
```

```
use Atin\LaravelMail\Mail\Mailable;

class TestMail extends Mailable
{
    public function build()
    {
         // Build email
    }
}
```

### Campaigns

[](#campaigns)

Create `app/Campaigns` directory and Campaign class:

```
use Atin\LaravelCampaign\Campaigns\Campaign;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Builder;

class TestCampaign extends Campaign
{
    protected string $mailable = '\App\Mail\TestMail';

    protected function buildQuery(): Builder
    {
         return \App\Models\User::where(function($query) {
            $query->whereDate('users.trial_ends_at', '>=', now())
                ->whereDate('users.trial_ends_at', '
