famdirksen/laravel-referral

一个用于轻松注册引荐的 Laravel 包。

1.0 2022-09-06 14:27 UTC

This package is auto-updated.

Last update: 2024-09-06 18:56:00 UTC


README

Latest Version on Packagist GitHub Tests Action Status Total Downloads

使用此包,您可以轻松地为您的用户/模型注册引荐。

Package info

安装

您可以通过 composer 安装此包。

composer require famdirksen/laravel-referral

用法

此示例展示了具有多个 referralAccounts 的用户 (App\Models\User)。基于系统中创建的 Order 订单,它将为引荐账户注册引荐。

App\Models\User 中添加 CanReferralContract & CanReferralTrait

<?php

namespace App\Models;

use Famdirksen\LaravelReferral\Contracts\CanReferralContract;
use Famdirksen\LaravelReferral\Traits\CanReferralTrait;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable implements CanReferralContract
{
    use CanReferralTrait;
    
    //...
}

App\Models\Order 中添加 HandleReferralContract & HandleReferralTrait

<?php

namespace App;

use Famdirksen\LaravelReferral\Contracts\HandleReferralContract;
use Famdirksen\LaravelReferral\Traits\HandleReferralTrait;
use Illuminate\Database\Eloquent\Model;

class Order extends Model implements HandleReferralContract
{
    use HandleReferralTrait;
    
    //...
}

最后,您需要注册跟踪引荐的中间件。

CheckReferralMiddleware 添加到 App\Http\Kernel

<?php

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
    protected $middlewareGroups = [
        'web' => [
            //...
            
            \Famdirksen\LaravelReferral\Http\Middleware\CheckReferralMiddleware::class,
            
            //...
        ],
    ];
    
    //...
}

用法

  • 为用户创建引荐账户
$user = auth()->user();

// create a referral account for the user
// `name` parameter is used for many type of referral systems
$user->makeReferralAccount('default');
  • 获取所有引荐账户、引荐链接和引荐账户的引荐
$user = auth()->user();

// get all referralAccounts for the current authenticated user
$referralAccounts = $user->referralAccounts;

// get the default referral account
$defaultReferralAccount = $referralAccounts->first();

// get the referral link for the default referral account
$referralLink = $defaultReferralAccount->getReferralLink();

// get all referrals for a referral account
$referrals = $defaultReferralAccount->referrals->get();
  • Order 模型触发 created 事件时,它将根据 referral 饼干为引荐账户注册引荐。

配置

测试

composer test

变更日志

请参阅 CHANGELOG 了解最近的变化。

贡献

请参阅 CONTRIBUTING 了解详情。

安全漏洞

请审查 我们的安全策略 了解如何报告安全漏洞。

鸣谢

许可

MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。