Handle Paddle's marketing consent with Laravel.
On Paddle, a buyer can opt-in to receive marketing emails and is stored as a new audience member.
But, by using an event listener, you can handle the Paddle's marketing consent on Laravel Cashier too.
The following example code uses a subscribed
user attribute, but you can use an external service or tool like Spatie's Mailcoach and have it synced.
<?php namespace App\Listeners; use App\Models\User;use Laravel\Paddle\Events\WebhookReceived; class PaddleEventListener{ public function handle (WebhookReceived $event) { if ($event->payload['alert_name' ] === 'new_audience member') { if ($user = User::whereEmail($event->payload['email'])->first()) { $user->fill([ 'subscribed' => $event->payload['marketing_consent'], ])->save(); } } if ($event->payload['alert_name'] === 'update_audience_member') { if ($user = User::whereEmail($event->payload['new_customer_email'])->first()) { $user->fill([ 'subscribed' => $event->payload['new_marketing_consent'], ])->save(); } } }}