lopatin96/laravel-campaign
最新稳定版本:1.0.14
Composer 安装命令:
composer require lopatin96/laravel-campaign
包简介
Laravel campaign
README 文档
README
Migrations
php artisan vendor:publish --tag="laravel-campaign-migrations"
then run php artisan migrate
Config
Publish config to manage active mails:
php artisan vendor:publish --tag="laravel-campaign-config"
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
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
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', '<', now()->addDay()); }); } }
<?php return [ 'active_mails' => [ '\App\Campaigns\TestCampaign' => 'daily', ] ];
Don't forget to add your campaign class to laravel-campaign config.
Schedule
Register schedule task in app/Concole/Kernel.php
use Atin\LaravelCampaign\Console\SendCampaignEmails; class Kernel extends ConsoleKernel { protected function schedule(Schedule $schedule): void { $schedule->call(new SendCampaignEmails()) ->hourly(); }
Publishing
Config
php artisan vendor:publish --tag="laravel-campaign-config"
Views
php artisan vendor:publish --tag="laravel-campaign-views"
Localization
php artisan vendor:publish --tag="laravel-campaign-lang"
Migrations
php artisan vendor:publish --tag="laravel-campaign-migrations"
统计信息
- 总下载量: 5.2k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-09-28