PHP code example of multek / laravel-customer-engagement
1. Go to this page and download the library: Download multek/laravel-customer-engagement 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/ */
multek / laravel-customer-engagement example snippets
use Multek\CustomerEngagement\Facades\Engagement;
use Multek\CustomerEngagement\DTOs\Notification;
$notification = new Notification(
title: 'Order Shipped',
body: 'Your order #456 has been shipped.',
data: ['order_id' => 456],
);
// Send to a single user
Engagement::sendToUser('user_123', $notification);
// Send to multiple users
Engagement::sendToUsers(['user_1', 'user_2'], $notification);
// Send to a segment
Engagement::sendToSegment('Active Users', $notification);
use Multek\CustomerEngagement\DTOs\Customer;
$customer = new Customer(
externalId: 'user_123',
tags: ['plan' => 'pro', 'role' => 'admin'],
);
Engagement::createUser($customer);
Engagement::updateUser($customer);
Engagement::deleteUser('user_123');
use Multek\CustomerEngagement\DTOs\CustomerEvent;
$event = new CustomerEvent(
externalId: 'user_123',
name: 'purchase',
payload: ['amount' => 99.90, 'product' => 'Pro Plan'],
);
Engagement::trackEvent($event);
// Check what the current driver supports
Engagement::syncsUsers(); // bool
Engagement::sendsNotifications(); // bool
Engagement::tracksEvents(); // bool
// Check a specific driver
Engagement::syncsUsers('onesignal'); // bool
// Override the default driver for a single call
Engagement::sendToUser('user_123', $notification, driver: 'onesignal');
use Multek\CustomerEngagement\Contracts\EngagementDriver;
use Multek\CustomerEngagement\Contracts\SendsNotifications;
use Multek\CustomerEngagement\Contracts\SyncsUsers;
class BrazeDriver implements EngagementDriver, SendsNotifications, SyncsUsers
{
public function getName(): string
{
return 'braze';
}
// Implement SendsNotifications methods...
// Implement SyncsUsers methods...
}
use Multek\CustomerEngagement\EngagementManager;
public function boot(): void
{
$this->app->make(EngagementManager::class)->extend('braze', function () {
return new BrazeDriver(config('services.braze'));
});
}