PHPackages                             bkfdev/laravel-referrals - 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. bkfdev/laravel-referrals

ActiveLibrary

bkfdev/laravel-referrals
========================

A referrals system for a laravel projects.

v1.1.1(2y ago)020MITPHP

Since Jan 29Pushed 2y ago1 watchersCompare

[ Source](https://github.com/aeq-dev/laravel-referrals)[ Packagist](https://packagist.org/packages/bkfdev/laravel-referrals)[ Docs](https://github.com/aeq-dev/laravel-referrals)[ RSS](/packages/bkfdev-laravel-referrals/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (2)Versions (10)Used By (0)

Simple Referrals system for Laravel
===================================

[](#simple-referrals-system-for-laravel)

[![Latest Version on Packagist](https://camo.githubusercontent.com/b48c7c92f31382c4ea4f56558a4f572fd2b681d965b3aea1e678e8753c47b7ff/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6165712d6465762f6c61726176656c2d726566657272616c732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/aeq-dev/laravel-referrals)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE)[![Total Downloads](https://camo.githubusercontent.com/ba7103b86372d6cc6c8d8ee364f72e9e7b6c264f26bda9d5dc8b30082c805a78/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6165712d6465762f6c61726176656c2d726566657272616c732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/aeq-dev/laravel-referrals)

A simple system of referrals with the ability to assign different programs for different users.

This package was created based on the [lesson](https://blog.damirmiladinov.com/laravel/building-laravel-referral-system.html#.Wc4eA6xJaHo)author is Damir Miladinov, with some minor changes, for which I express my gratitude to him.

- [Installation](#installation)
- [Usage](#usage)
- [Bonus](#bonus-content)

Installation
------------

[](#installation)

### Add dependency

[](#add-dependency)

Via Composer

```
composer require bkfdev/laravel-referrals

```

Then in config/app.php add service-provider and facade alias:

```
'providers' => [
    ...
    Bkfdev\Referrals\Providers\ReferralsServiceProvider::class,
    ...
];

```

### Configuration

[](#configuration)

First of all you need to run:

```
php artisan vendor:publish --tag=referrals-config

```

to make `referrals.php` file in your `config` folder.

### Migrations

[](#migrations)

> **OPTIONAL:** If you want to make changes to the migration files, you also need to run:
>
> ```
> php artisan vendor:publish --tag=referrals-migrations
>
> ```
>
>
>
> Then change new migrations.

Run `php artisan migrate` to make tables in database.

### Middleware

[](#middleware)

Add middleware to your `web` group in `Http/Kernel.php`:

```
'web' => [
    ...
    \Bkfdev\Referrals\Http\Middleware\StoreReferralCode::class,
],

```

Add `Bkfdev\Referrals\Traits\ReferralsMember` trait to your `Users` model:

```
    class User extends Authenticatable {
        use ReferralsMember;
        ...
    }

```

Usage
-----

[](#usage)

### Add new referrer event

[](#add-new-referrer-event)

Then in `Http/Controllers/Auth/RegisterController.php` add event dispatcher:

```
...
use Bkfdev\Referrals\Events\UserReferred;

...
// overwrite registered function
public function registered(Request $request)
{
    // dispatch user referred event here
    UserReferred::dispatch(request()->cookie('ref'), $user);
}

```

From this point all referral links would be attached new users as referrals to users owners of these links.

### Create referral program

[](#create-referral-program)

And then you need to create a referral program in database and attach it to users by `referral_program_id` field:

```
    php artisan tinker

    Bkfdev\Referrals\Models\ReferralProgram::create(['name'=>'example', 'title' => 'Example Program', 'description' => 'Laravel Referrals made easy thanks to laravel-referrals package based on an article by Damir Miladinov,', 'uri' => 'register']);

```

add association to config `referrals.programs`:

```
    ...
    'example' => App\ReferralPrograms\ExampleProgram.php

```

and create the reward class `App\ReferralPrograms\ExampleProgram.php` for referral program:

```
