Stock extends Filter implements Indexable_Interface, Filterable_Interface, Countable_Interface, Preloadable_Interface Uses Simple_Finder, Counts_Provider
Represents the "in stock" filter.
Interfaces, Classes and Traits
- Indexable_Interface
- Indexable_Interface provides a single method "generate_index_data".
- Filterable_Interface
- Indicates that a filter is capable of filtering the WP query.
- Countable_Interface
- Indicates that the filter can provide a list of counts of the available choices.
- Preloadable_Interface
- Indicates that a filter should preload counts of possible choices on page load.
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.
- find_posts() : mixed
- generate_index_data() : array<string|int, mixed>
- Generate data for the indexer.
- get_all_choices_counts() : mixed
- get_attribute_orderby_args() : mixed
- get_choices_counts() : 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.
- get_search_query() : mixed
- Return the formatted searched string attached to the filter.
- 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 —find_posts()
public
find_posts() : mixed
Tags
Return values
mixed —generate_index_data()
Generate data for the indexer.
public
generate_index_data(array<string|int, mixed> $defaults, string $post_id) : array<string|int, mixed>
Parameters
- $defaults : array<string|int, mixed>
-
default index values
- $post_id : string
-
the ID of the post to index
Tags
Return values
array<string|int, mixed> —get_all_choices_counts()
public
get_all_choices_counts([array<string|int, mixed> $post_ids = [] ]) : mixed
Parameters
- $post_ids : array<string|int, mixed> = []
Tags
Return values
mixed —get_attribute_orderby_args()
public
get_attribute_orderby_args(mixed $taxonomy) : mixed
Parameters
- $taxonomy : mixed
Return values
mixed —get_choices_counts()
public
get_choices_counts(array<string|int, mixed> $post_ids[, mixed $filters = false ][, mixed $prefilling = false ]) : mixed
Parameters
- $post_ids : array<string|int, mixed>
- $filters : mixed = false
- $prefilling : mixed = false
Tags
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> —get_search_query()
Return the formatted searched string attached to the filter.
public
get_search_query() : mixed
Tags
Return values
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>