# Funnel Model | DB Table Name | {wp_db_prefix}_fc_funnels | |---------------|----------------------------------------------------------------| | Schema | Check Schema | | Source File | fluent-crm/app/Models/Funnel.php | | Name Space | FluentCrm\App\Models | | Class | FluentCrm\App\Models\Funnel | ## Global Scope This model has a global scope that filters by `type = 'funnels'`. The type is auto-set on create. ## Attributes
Attribute Data Type Comment
id Integer
type String Auto-set to 'funnels' by global scope
title String
trigger_name String
status String draft | published
conditions Text Serialized array, auto serialize/unserialize
settings Text Serialized array, auto serialize/unserialize
created_by Integer
created_at Date Time
updated_at Date Time
## Usage Please check Model Basic for Common methods. ### Accessing Attributes ```php $funnel = FluentCrm\App\Models\Funnel::find(1); $funnel->id; // returns id $funnel->status; // returns status $funnel->settings; // returns deserialized array $funnel->conditions; // returns deserialized array ....... ``` ## Fillable Attributes ```php 'type', // Default: funnels 'title', 'trigger_name', 'status', // draft | published 'conditions', 'settings', 'created_by', 'updated_at' ``` ## Scopes ### published() Returns only published funnels #### Usage: ```php $funnels = FluentCrm\App\Models\Funnel::published()->get(); ``` ## Relations ### actions Get all the actions of Funnel Sequence related to this funnel - return `FluentCrm\App\Models\FunnelSequence` Model Collections #### Example: ```php // Accessing actions $funnelActions = $funnel->actions; // Get Funnels which have sequence ids: 1/2 $funnels = FluentCrm\App\Models\Funnel::whereHas('actions', function($query) { $query->whereIn('id', [1,2]); })->get(); ``` ### subscribers Get all the funnel subscribers related to this funnel - return `FluentCrm\App\Models\FunnelSubscriber` Model Collections #### Example: ```php // returns all the funnel subscribers related to funnel $subscribersOfFunnel = $funnel->subscribers; // Get funnels filtered by funnel subscribers $funnels = FluentCrm\App\Models\Funnel::whereHas('subscribers', function($query) { $query->whereIn('id', [1,2,3]); })->get(); // Inverse filter $funnels = FluentCrm\App\Models\Funnel::whereDoesntHave('subscribers', function($query) { $query->whereIn('id', [1,2,3]); })->get(); ``` ### labelsTerm Access labels attached to this funnel via the `fc_term_relations` pivot table - return `FluentCrm\App\Models\Label` Model Collections (BelongsToMany) #### Example: ```php $labels = $funnel->labelsTerm; ```
## Methods ### getSubscribersCount() Get the number of subscribers in this funnel - Parameters - none - Returns `int` #### Usage ```php $count = $funnel->getSubscribersCount(); ``` ### updateMeta($key, $value) Create or update a meta value for this funnel - Parameters - $key `string` - $value `mixed` - Returns `mixed` #### Usage ```php $funnel->updateMeta('some_setting', 'value'); ``` ### getMeta($key, $default) Get a meta value for this funnel - Parameters - $key `string` - $default `mixed` — Default: `''` - Returns `mixed` #### Usage ```php $value = $funnel->getMeta('some_setting', 'default_value'); ``` ### deleteMeta($key) Delete a meta value for this funnel - Parameters - $key `string` - Returns `mixed` #### Usage ```php $funnel->deleteMeta('some_setting'); ``` ### labels() Get all labels attached to this funnel - Parameters - none - Returns `Collection` of `FluentCrm\App\Models\Label` #### Usage ```php $labels = $funnel->labels(); ``` ### getFormattedLabels() Get labels in simplified format - Parameters - none - Returns `Collection` of `['id', 'slug', 'title', 'color']` arrays #### Usage ```php $labels = $funnel->getFormattedLabels(); ``` ### attachLabels($labelIds) Attach labels to this funnel - Parameters - $labelIds `int` or `array` - Returns `FluentCrm\App\Models\Funnel` #### Usage ```php $funnel->attachLabels([1, 2, 3]); ``` ### detachLabels($labelIds) Remove labels from this funnel - Parameters - $labelIds `int` or `array` - Returns `FluentCrm\App\Models\Funnel` #### Usage ```php $funnel->detachLabels([1, 2]); ```