1. Go to this page and download the library: Download elegantly/laravel-referrer library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
elegantly / laravel-referrer example snippets
use Elegantly\Referrer\Enums\Strategy;
return [
/*
|--------------------------------------------------------------------------
| Referrer Sources
|--------------------------------------------------------------------------
|
| These classes contain the logic to detect the visitor's referrer.
| You can disable specific sources or add as many as needed.
| Regardless of the number of sources defined, all values will be stored.
|
*/
'sources' => [
\Elegantly\Referrer\Sources\UtmReferrerSource::class,
\Elegantly\Referrer\Sources\RequestHeaderSource::class,
\Elegantly\Referrer\Sources\GoogleClickIdSource::class,
\Elegantly\Referrer\Sources\MetaClickIdSource::class,
\Elegantly\Referrer\Sources\TikTokClickIdSource::class,
],
/*
|--------------------------------------------------------------------------
| Referrer Strategy
|--------------------------------------------------------------------------
|
| Define the strategy for storing referrer values. You can also customize
| the strategy for each source.
|
| 'last' : Stores only the last captured value, ignoring previous ones.
| 'first' : Stores only the first captured value, ignoring subsequent ones.
| 'all' : Stores all captured values.
|
*/
'strategy' => Strategy::All,
/*
|--------------------------------------------------------------------------
| Referrer Drivers
|--------------------------------------------------------------------------
|
| These classes contain the logic to store the visitor's referrer.
| By default, all drivers are disabled. To enable a driver, uncomment it
| or add a custom driver.
|
| Regardless of the number of drivers defined, they will all store
| referrer sources. When accessing referrer data, drivers may be merged,
| with the last driver overwriting the others.
|
| It is recommended to enable at least the Cookie driver for long-term
| storage and the Session driver for immediate storage.
|
*/
'drivers' => [
// \Elegantly\Referrer\Drivers\CookieDriver::class => [
// 'name' => Str::slug(env('APP_NAME', 'laravel'), '_') . '_referrer',
// /**
// * Lifetime in seconds.
// */
// 'lifetime' => 60 * 60 * 24 * 365,
// ],
// \Elegantly\Referrer\Drivers\SessionDriver::class => [
// 'key' => 'referrer',
// ],
// \Elegantly\Referrer\Drivers\ContextDriver::class => [
// 'key' => 'referrer',
// ],
],
];
use Elegantly\Referrer\CaptureReferrerMiddleware;
->withMiddleware(function (Middleware $middleware) {
$middleware->append(CaptureReferrerMiddleware::class);
})
use Elegantly\Referrer\CaptureReferrerMiddleware;
namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
{
protected $middlewareGroups = [
'web' => [
// ...
\Elegantly\Referrer\CaptureReferrerMiddleware::class,
],
];
}
use Elegantly\Referrer\Enums\Strategy;
return [
//...
'strategy' => Strategy::Last,
//...
]
use \Elegantly\Referrer\Facades\Referrer;
Referrer::getSources(); // Merges all drivers together, with the last one having priority
Referrer::getSourcesByDriver(); // Retrieves all driver values
use \Elegantly\Referrer\Sources\UtmReferrerSource;
use \Elegantly\Referrer\Sources\GoogleClickIdSource;
use \Elegantly\Referrer\Facades\Referrer;
Referrer::getSources()->getFirst(UtmReferrerSource::class);
// Returns an instance of UtmReferrerSource
Referrer::getSources()->getLast(GoogleClickIdSource::class);
// Returns an instance of GoogleClickIdSource
use \Elegantly\Referrer\Facades\Referrer;
Referrer::getSources()->getOldest();
// Returns an instance of ReferrerSource
Referrer::getSources()->getLatest();
// Returns an instance of ReferrerSource
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Http\Requests\Auth\RegisterRequest;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
use Elegantly\Referrer\Facades\Referrer;
use \Elegantly\Referrer\Sources\UtmReferrerSource;
class RegisteredUserController extends Controller
{
public function store(RegisterRequest $request)
{
$validated = $request->validated();
$user = new User($validated);
/**
* The value returned will be the latest referrer value captured among all sources
*/
$user->referrer = (string) Referrer::getSources()->getLatest();
/**
* The value returned will be the first UTM captured
*/
$user->utm = (string) Referrer::getSources()->getFirst(UtmReferrerSource::class);
$user->save();
Auth::login($user);
return redirect("/");
}
}