You are currently reading the documentation for v5, while the latest version is v8.

Working with extra attributes on subscribers

When subscribing you can add extra attributes. Here’s an example where first_name and last_name are added.

$subscription = $emailList->subscribe('john@example.com', [
    'first_name' => 'John',
    'last_name' => 'Doe'
]);

When you are adding subscribers from an external form, you can also add extra attributes by using a specific input name pattern attributes['name-of-your-new-attribute']. This is what that looks like for storing a user’s job.

<input type="text" name="attributes[job]" value="developer">

To make this work, you also have to make sure job is defined as an allowed extra field on your email list’s field allowed_form_extra_attributes.

Here are examples of methods to work with those extra attributes.

$subscriber = $subscription->subscriber;

// get all extra attributes
$subscriber->extra_attributes->all(); // return an array with all extra attributes;

// updating an extra attibute
$subscriber->extra_attributes->first_name = 'Other name';
$subscriber->save();

// replacing all extra attributes in one go
$subscriber->extra_attributes = ['first_name' => 'Jane', 'last_name' => 'Dane'];
$subscriber->save();

// returns all models with a first_name set to John
$subscriber->withExtraAttributes(['first_name' => 'John'])->get();
Introduction
Working with tags