When subscribing you can add extra attributes. Here's an example where
last_name are added.
$subscription = $emailList->subscribe('firstname.lastname@example.org', [ '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
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();