PHP code example of danlapteacru / facetwp-builder

1. Go to this page and download the library: Download danlapteacru/facetwp-builder library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

danlapteacru / facetwp-builder example snippets


$builder
    ->addAutocomplete('autocomplete', [
        'label' => 'Autocomplete',
        'source' => 'post_title',
        'placeholder' => 'Placeholder',
  ]);

$builder
    ->addCheckbox('checkbox', [
        'label' => 'Categories',
        'source' => 'tax/category',
        'parent_term' => '',
        'hierarchical' => 'no',
        'show_expanded' => 'no',
        'ghosts' => 'no',
        'preserve_ghosts' => 'no',
        'operator' => 'and',
        'orderby' => 'count',
        'count' => '10',
        'soft_limit' => '5',
  ]);

$builder
    ->addDateRange('date_range', [
        'label' => 'Date Range',
        'source' => 'post_type',
        'compare_type' => '',
        'fields' => 'both',
        'format' => '',
  ]);

$builder
    ->addDropdown('dropdown', [
        'label' => 'Dropdown',
        'source' => 'post_type',
        'label_any' => 'Any',
        'parent_term' => '',
        'modifier_type' => 'off',
        'modifier_values' => '',
        'hierarchical' => 'no',
        'orderby' => 'count',
        'count' => '10',
  ]);

$builder
    ->addFselect('fselect', [
        'label' => 'fSelect',
        'source' => 'post_type',
        'label_any' => 'Any',
        'parent_term' => '',
        'modifier_type' => 'off',
        'modifier_values' => '',
        'hierarchical' => 'no',
        'multiple' => 'no',
        'ghosts' => 'no',
        'preserve_ghosts' => 'no',
        'operator' => 'and',
        'orderby' => 'count',
        'count' => '10',
  ]);

$builder
    ->addHierarchy('hierarchy', [
        'label' => 'Hierarchy',
        'source' => 'post_type',
        'label_any' => 'Any',
        'modifier_type' => 'off',
        'modifier_values' => '',
        'orderby' => 'count',
        'soft_limit' => '5',
  ]);

$builder
    ->addNumberRange('number_range', [
        'label' => 'Number Range',
        'source' => 'post_type',
        'compare_type' => '',
        'fields' => 'both',
  ]);

$builder
    ->addPager('pager', [
        'label' => 'Pager',
        'pager_type' => 'numbers',
        'inner_size' => '2',
        'dots_label' => '…',
        'prev_label' => '« Prev',
        'next_label' => 'Next »',
        'count_text_plural' => '[lower] - [upper] of [total] results',
        'count_text_singular' => '1 result',
        'count_text_none' => 'No results',
        'load_more_text' => 'Load more',
        'loading_text' => 'Loading...',
        'default_label' => 'Per page',
        'per_page_options' => '10, 25, 50, 100',
  ]);

$builder
    ->addProximity('proximity', [
        'label' => 'Proximity',
        'source' => 'post_type',
        'unit' => 'mi',
        'radius_ui' => 'dropdown',
        'radius_options' => '10, 25, 50, 100, 250',
        'radius_min' => '1',
        'radius_max' => '50',
        'radius_default' => '25',
        'placeholder' => '',
  ]);

$builder
    ->addRadio('radio', [
        'label' => 'Radio',
        'source' => 'post_type',
        'label_any' => 'Any',
        'parent_term' => '',
        'modifier_type' => 'off',
        'modifier_values' => '',
        'ghosts' => 'no',
        'preserve_ghosts' => 'no',
        'orderby' => 'count',
        'count' => '10',
  ]);

$builder
    ->addReset('reset', [
        'label' => 'Reset',
        'reset_ui' => 'button',
        'reset_text' => 'Reset',
        'reset_mode' => 'off',
        'auto_hide' => 'no',
        'reset_facets' => [],
  ]);

$builder
    ->addSearch('search', [
        'label' => 'Search',
        'search_engine' => '',
        'placeholder' => '',
        'auto_refresh' => 'no',
  ]);

$builder
    ->addSlider('slider', [
        'label' => 'Slider',
        'source' => 'post_type',
        'compare_type' => '',
        'prefix' => '',
        'suffix' => '',
        'reset_text' => 'Reset',
        'format' => '0,0',
        'step' => '1',
  ]);

$builder
    ->addSort('sort', [
        'label' => 'Sort',
        'type' => 'sort',
        'default_label' => 'Sort by',
        'sort_options' => [
            [
                'label' => 'post_title',
                'name' => 'post_title',
                'orderby' => [
                    [
                        'key' => 'title',
                        'order' => 'ASC',
                        'type' => 'CHAR',
                    ],
                ],
            ],
        ],
  ]);

$builder
    ->addRating('star_rating', [
        'label' => 'Star Rating',
        'source' => 'post_type',
  ]);

$builder
    ->addUserSelections('user_selections', [
        'label' => 'User Selections',
  ]);

setName(string $name)
setLabel(string $label)
setSource(string $source)
setOperator(string $operator)
setOrderby(string $orderby)
setCount(int $count)
setHierarchical(bool $hierarchical)
setShowExpanded(bool $show_expanded)
setGhosts(bool $ghosts)
setPreserveGhosts(bool $preserve_ghosts)
setSoftLimit(int $soft_limit)
setLabelAny(string $label_any)
setMultiple(bool $multiple)
setSearchEngine(string $search_engine)
setPlaceholder(string $placeholder)
setAutoRefresh(bool $auto_refresh)
setStep(int $step)
setPrefix(string $prefix)
setSuffix(string $suffix)
setCompareType(string $compare_type)
setFormat(string $format)
setSourceOther(string $source_other)

$builder
    ->addTemplate('course', [
        'name' => 'course',
        'label' => 'Course',
        'type' => 'course',
        'query_array' => [
            'post_type' => 'course',
            'post_status' => 'publish',
            'posts_per_page' => 10,
            'orderby' => 'title',
            'order' => 'asc'
        ],
        'query' => '
return [
  \'post_type\' => \'course\',
  \'post_status\' => \'publish\',
  \'posts_per_page\' => 10,
  \'orderby\' => \'title\',
  \'order\' => \'asc\',
];',
        'modes' => [
            'display' => 'visual',
            'query' => 'advanced'
        ],
        '_code' => true
    ],
  ]);

$builder
    ->addTemplate('course')
    ->setLabel('Course')
    ->setQuery([
      'post_type' => 'course',
      'post_status' => 'publish',
      'posts_per_page' => 10,
      'orderby' => 'title',
      'order' => 'asc',
    ])
    ->setQueryObj([
      'post_type' => 'course',
    ])
    ->setModes([
      'display' => 'visual',
      'query' => 'advanced',
    ])

$builder
    ->addTemplate('course')
    ->setPostType('course')
    ->setPostsPerPage(9)

[
    'display' => 'visual',
    'query' => 'advanced',
]

$builder
    ->addFacet('myFacetName', 'checkbox', [
      'label' => 'My Facet Label',
    ]);

use DanLapteacru\FacetWpBuilder\FacetsBuilder;

$builder = new FacetsBuilder();
$builder
    ->addSearch('search')
    ->setLabel('Search')
    ->setPlaceholder('Search placeholder')
    ->setAutoRefresh(true)
    ->build();

use DanLapteacru\FacetWpBuilder\FacetBuilder;
use DanLapteacru\FacetWpBuilder\Facets\Checkbox;
use DanLapteacru\FacetWpBuilder\FacetsBuilder;

$facet = new FacetBuilder(static::FACET_NAME, Checkbox::TYPE);
$facet
    ->setLabel('Search')
    ->setPlaceholder('Search placeholder')
    ->setAutoRefresh(true);
$facetArray = $facet->build();

FacetsBuilder::addFacetWpHook($facetArray);

use DanLapteacru\FacetWpBuilder\TemplatesBuilder;

$builder = new TemplatesBuilder();
$builder
    ->addTemplate('course')
    ->setLabel('Courses')
    ->setQuery([
        'post_type' => 'course',
        'post_status' => 'publish',
        'posts_per_page' => 8,
        'orderby' => 'title',
        'order' => 'ASC',
    ])
    ->build();