Filter extends Model Uses HasUniqueIdentifier, HasChildren
Representation of an individual filter.
Table of Contents
- $fillable : array<string|int, mixed>
 - $timestamps : bool
 - $appends : array<string|int, mixed>
 - $casts : array<string|int, mixed>
 - Automatically cast attributes in specific ways.\
 - $childColumn : string
 - Indicates the column that should be used by the HasChildren trait to return the appropriate model.
 - $childTypes : array<string|int, mixed>
 - Maps a filter_by value to the appropriate model.
 - $primaryKey : string
 - $table : string
 - __construct() : void
 - Create a new instance of the model.
 - create() : self
 - Create the filter.
 - delete() : bool
 - Delete the filter from the database.
 - get_attribute_orderby_args() : mixed
 - get_groups() : Collection
 - Get a list of the groups to which the filter belongs to.
 - get_option() : mixed
 - Get the value of a specific option if it exists.
 - get_options() : array<string|int, mixed>
 - Get the filter's options.
 - getGroupsAttribute() : array<string|int, mixed>
 - Lazy load the list of groups to which the filter has been added to.
 - getGroupsNamesAttribute() : array<string|int, mixed>
 - Lazy load the list of groups to which the filter has been added to.
 - getHiddenAttribute() : bool
 - Determine if this filter is hidden in the admin panel.
 - getInputNameAttribute() : string
 - Retrieve the human readable name of the selected input type for the filter.
 - getSearchQueryAttribute() : mixed
 - Get the search query parameters assigned to the filter.
 - getSourceNameAttribute() : string
 - Retrieve the human readable name of the selected source for the filter.
 - incrementSlug() : string
 - Increment slug
 - maybe_regenerate_child_filters() : void
 - Regenerate the child filters for attributes filters.
 - setSearchQueryAttribute() : Filter
 - Attach search parameters criteria to the filter.
 - setSlugAttribute() : void
 - Automatically set the slug attribute by counting for existing ones.
 - update_groups() : Filter
 - Add the filter to the new groups and remove the filter from all other groups.
 - getChildModel() : mixed
 
Properties
$fillable
    public
        array<string|int, mixed>
    $fillable
     = ['name', 'slug', 'filter_by', 'priority', 'options', 'parent_filter']
    
    
    
$timestamps
    public
        bool
    $timestamps
     = \false
    
    
    
$appends
    protected
        array<string|int, mixed>
    $appends
     = ['source_name', 'input_name', 'search_query', 'hidden']
    
    
    
$casts
Automatically cast attributes in specific ways.\
    protected
        array<string|int, mixed>
    $casts
     = ['options' => 'array']
    
    
    
$childColumn
Indicates the column that should be used by the HasChildren trait to return the appropriate model.
    protected
        string
    $childColumn
     = 'filter_by'
    
    
    
$childTypes
Maps a filter_by value to the appropriate model.
    protected
        array<string|int, mixed>
    $childTypes
     = ['categories' => \Barn2\Plugin\WC_Filters\Model\Filters\Taxonomy::class, 'tags' => \Barn2\Plugin\WC_Filters\Model\Filters\Taxonomy::class, 'attributes' => \Barn2\Plugin\WC_Filters\Model\Filters\Attribute::class, 'colors' => \Barn2\Plugin\WC_Filters\Model\Filters\Color::class, 'price' => \Barn2\Plugin\WC_Filters\Model\Filters\Price::class, 'ratings' => \Barn2\Plugin\WC_Filters\Model\Filters\Rating::class, 'in_stock' => \Barn2\Plugin\WC_Filters\Model\Filters\Stock::class, 'on_sale' => \Barn2\Plugin\WC_Filters\Model\Filters\Sale::class, 'taxonomy' => \Barn2\Plugin\WC_Filters\Model\Filters\Taxonomy::class, 'sorter' => \Barn2\Plugin\WC_Filters\Model\Filters\Sorter::class, 'cf' => \Barn2\Plugin\WC_Filters\Model\Filters\Custom_Field::class, 'search' => \Barn2\Plugin\WC_Filters\Model\Filters\Search::class]
    
    
    
$primaryKey
    protected
        string
    $primaryKey
     = 'id'
    
    
    
$table
    protected
        string
    $table
     = \Barn2\Plugin\WC_Filters\Plugin::META_PREFIX . 'filters'
    
    
    
Methods
__construct()
Create a new instance of the model.
    public
                __construct([array<string|int, mixed> $attributes = [] ]) : void
    
        Parameters
- $attributes : array<string|int, mixed> = []
 
Return values
void —create()
Create the filter.
    public
            static    create([array<string|int, mixed> $attributes = [] ][, array<string|int, mixed> $groups = [] ]) : self
        If this is an "all attributes" type of filter, create the child filters too.
The $groups parameter is only used for attribute fields when generating child filters.
Parameters
- $attributes : array<string|int, mixed> = []
 - $groups : array<string|int, mixed> = []
 - 
                    
list of groups to which the filter should be added to.
 
Return values
self —delete()
Delete the filter from the database.
    public
                delete() : bool
        This has a cascading effect:
- deletes all data indexed for this filter
 - removes the filter from all groups to which it was added.
 
Return values
bool —get_attribute_orderby_args()
    public
                get_attribute_orderby_args(mixed $taxonomy) : mixed
        
        Parameters
- $taxonomy : mixed
 
Return values
mixed —get_groups()
Get a list of the groups to which the filter belongs to.
    public
                get_groups() : Collection
        This method is required because when using Eloquent in WordPress, we cannot reliably build a json relationship.
Return values
Collection —get_option()
Get the value of a specific option if it exists.
    public
                get_option(string $key) : mixed
        If not, it returns false.
Parameters
- $key : string
 
Return values
mixed —false when not found
get_options()
Get the filter's options.
    public
                get_options() : array<string|int, mixed>
    
    
    
        Return values
array<string|int, mixed> —getGroupsAttribute()
Lazy load the list of groups to which the filter has been added to.
    public
                getGroupsAttribute() : array<string|int, mixed>
    
    
    
        Return values
array<string|int, mixed> —getGroupsNamesAttribute()
Lazy load the list of groups to which the filter has been added to.
    public
                getGroupsNamesAttribute() : array<string|int, mixed>
        Return an array of ID=>name.
Return values
array<string|int, mixed> —getHiddenAttribute()
Determine if this filter is hidden in the admin panel.
    public
                getHiddenAttribute() : bool
        Hidden filters are generated when an "all attributes" type of filter is created.
Return values
bool —getInputNameAttribute()
Retrieve the human readable name of the selected input type for the filter.
    public
                getInputNameAttribute() : string
    
    
    
        Return values
string —getSearchQueryAttribute()
Get the search query parameters assigned to the filter.
    public
                getSearchQueryAttribute() : mixed
    
    
    
        Return values
mixed —getSourceNameAttribute()
Retrieve the human readable name of the selected source for the filter.
    public
                getSourceNameAttribute() : string
    
    
    
        Return values
string —incrementSlug()
Increment slug
    public
                incrementSlug(string $slug) : string
    
        Parameters
- $slug : string
 
Return values
string —maybe_regenerate_child_filters()
Regenerate the child filters for attributes filters.
    public
            static    maybe_regenerate_child_filters(Filter $filter) : void
    
        Parameters
- $filter : Filter
 - 
                    
the filter to regenerate.
 
Return values
void —setSearchQueryAttribute()
Attach search parameters criteria to the filter.
    public
                setSearchQueryAttribute(mixed $value) : Filter
        These are the instructions that will be used via the Filterable_Interface method.
Parameters
- $value : mixed
 
Return values
Filter —setSlugAttribute()
Automatically set the slug attribute by counting for existing ones.
    public
                setSlugAttribute(string $value) : void
    
        Parameters
- $value : string
 
Return values
void —update_groups()
Add the filter to the new groups and remove the filter from all other groups.
    public
                update_groups(array<string|int, mixed> $selected_groups) : Filter
        This method is best used when pre-serving the position of the filter into a group is needed.
Parameters
- $selected_groups : array<string|int, mixed>
 - 
                    
list of IDs of groups to which the filter should be added to.
 
Return values
Filter —getChildModel()
    protected
                getChildModel(array<string|int, mixed> $attributes) : mixed
    
        Parameters
- $attributes : array<string|int, mixed>