perch_shop_custom()
This add-on is deprecated. Please use the Perch Shop app.
Much like the default perch_content_custom() function, Shop has perch_shop_custom(). This function enables you to get a product listing customized by any of the available parameters.
Requires
- Perch Shop FoxyCart installed
Parameters
| Type | Description |
|---|---|
| Array | Options array, see table below |
| Boolean | Set to true to have the value returned instead of echoed. |
Options array
| Name | Value |
|---|---|
| category | A single category slug or array of category slugs to return content for. To exclude a category, prefix its name with an exclamation point. |
| template | The name of a template to use to display the content. |
| sort | The ID of the field to sort on. |
| sort-order | Either ASC (ascending), DESC (descending) or RAND (random). |
| sort-type | Either alpha or numeric. Default is alpha. |
| count | The number of items to display. |
| start | The item number to start displaying from. |
| filter | The ID of a field to filter the results by. |
| match | Used with filter, see the below table for values |
| value | Used with filter and match. The value to match. For between and in, takes a comma delimited string. For regex takes PCRE regular expression. |
| category | Filter by one or more categories. See Category filtering |
| category-match | Either any or all. See Category filtering |
| skip-template | True or false. Bypass template processing and return the content in an associative array. |
| return-html | True or false. For use with skip-template. Adds the HTML onto the end of the returned array with key html. |
| split-items | True or false. Return an array of individually templated items. |
| raw | True or false. Returns unprocessed content, for use alongside skip-template. |
Possible values for match
| Value | Aliases | Description |
|---|---|---|
| eq | is, exact |
equal to |
| neq | not, !eq |
not equal to |
| gt | greater than | |
| gte | greater than or equal to | |
| lt | less than | |
| lte | less than or equal to | |
| contains | the value exists within the content (a simple search) | |
| !contains | opposite of contains: the value does not exist within the content |
|
| regex | regexp |
using a PCRE regular expression |
| between | match between two values | |
| !between | opposite of between |
|
| eqbetween | match between two values inclusively | |
| !eqbetween | opposite of eqbetween |
|
| in | within |
match within a comma delimited content list (like a list of tags) |
| !in | !within |
opposite of in |
Usage examples
The below example filters on price, returning products equal to or between 10 and 20 units of currency, which are in the category ‘widgets’. I have also passed in a custom template for this listing.
<?php
perch_shop_custom(array(
'filter'=>'productPrice',
'match'=>'eqbetween',
'value'=>'10, 20',
'category'=>'widgets',
'template'=>'shop/special_listing.html'
));
?>
The perch_shop_custom function is very useful for displaying a customised list of products to given parameters.
The options for filter, match and value work just like perch_content_custom. Category can be either a single item or an array.