Smart Designer — Niestandardowe elementy filtrów
To rozszerzenie umożliwia tworzenie niestandardowych elementów filtru
Strona demonstracyjna: https://demo-sd.products-filter.com/
Domyślnie WOOF SD ma 4 podstawowe elementy gotowe do dostosowania:
- Checkbox (domyślnie)
- Radio
- Przełącznik
- Kolor
Więcej niestandardowych elementów znajdziesz w WOOF SD Gallery. Jeśli masz pomysł na swój niestandardowy element, napisz do nas na wsparcie.

Górny panel
- Powrót – powrót do listy elementów
- Presety – administrator może zapisać bieżący zestaw opcji, a następnie zastosować go na innych elementach tego samego typu
- Lista rozwijana ze wszystkimi możliwymi typami elementów w systemie. ‘Box tags‘ na powyższym ekranie to niestandardowy element umieszczony w szablonie potomnym WordPress. Jak stworzyć takie elementy, przeczytaj poniżej.
- Lista rozwijana ze wszystkimi rzeczywistymi taksonomiami WooCommerce sklepu, tylko dla pomocy wizualnej podczas budowania elementu filtru. Używana również dla typu elementu ‘Color’ do przypisywania kolorów i obrazów do terminów taksonomii wybranej za pomocą tej listy rozwijanej (przeczytaj o Kolorze poniżej)
- Resetuj – kliknij, aby zresetować wszystkie niestandardowe opcje bieżącego elementu filtru do ustawień domyślnych
Tworzenie i zastosowanie
- W zakładce ‘Extensions‘ aktywuj rozszerzenie ‘Smart Designer‘ (jeśli nie jest aktywowane) i naciśnij przycisk Zapisz
- Po przeładowaniu strony przejdź do zakładki ‘Smart Designer‘
- Kliknij przycisk ‘Utwórz element‘
- Ustaw tytuł nowego elementu (kliknij w jego pole)
- Kliknij przycisk ‘Edytuj‘, aby wejść w opcje nowego elementu

- Po wejściu w opcje elementu powinieneś wybrać jego typ: Checkbox, Radio, Przełącznik, Kolor lub inny, w zależności od zainstalowanych elementów w szablonie WordPress Twojej witryny (niestandardowe typy elementów opisane poniżej). Każdy typ ma własny zestaw opcji, które nie nakładają się na inne typy elementów!
- Wszystkie podstawowe elementy z wyjątkiem przełączników mają również szablony układów (lista, kafelek lub radio, checkbox), wybierz ten, który odpowiada Twoim potrzebom.

- Dla Twojej wygody możesz wybrać taksonomię, dla której tworzysz bieżący element
- Baw się opcjami, korzystając z ich opisów, aby stworzyć żądane dostosowania
- Wszystkie zmiany są zapisywane automatycznie przez AJAX
- Gdy uznasz, że to wystarczy, możesz kliknąć przycisk ‘Presety‘ i zapisać tam swoje niestandardowe opcje dla przyszłych elementów (aby nie zaczynać od zera z nowym elementem)
- Ostatnim krokiem jest przejście do zakładki ‘Structure‘ i przypisanie do taksonomii właśnie utworzonego typu elementu. Wszystkie elementy utworzone za pomocą Smart Designer mają tam prefiks w tytule ‘SD:‘

- Naciśnij przycisk Zapisz poniżej
- Przejdź na front sklepu i ciesz się 🙂
Porady dotyczące dostosowywania
- Jeśli nie wiesz, jaką rodzinę czcionek zastosować dla tekstu, użyj słowa ‘inherit‘, co spowoduje zastosowanie rodziny czcionek bieżącego motywu WordPress. I pamiętaj, że jeśli zastosujesz jakąś rodzinę czcionek, powinna być ona obsługiwana przez Twój bieżący motyw WordPress i nie ma gwarancji, że ta czcionka jest dołączona do strony wp-admin, więc wyniki wizualne nie będą w 100% takie same po stronie backendu i frontendu.

- Jeśli nie potrzebujesz koloru dla przezroczystych obrazów tła PNG, użyj słowa ‘transparent‘ zamiast kodu szesnastkowego koloru

- Różne wzory obrazów możesz znaleźć w Google, używając frazy ‘background patterns images‘
Presety
Presety zapisują Twoje opcje, abyś mógł zastosować je do podobnych elementów, co skraca czas produkcji. Możesz zrobić następujące rzeczy:
- Tworzyć presety

- Stosować presety do nowych elementów tego samego typu (checkbox, radio, color, switcher, dowolny typ niestandardowy) – wystarczy kliknąć na jego tytuł. Na przykład preset utworzony dla radio jest niewidoczny dla checkbox i odwrotnie.

- Udostępniać swój preset jako informację tekstową innej osobie (programiści, współpracownicy, strony, itp …). Kliknij przycisk oka.

- Importować kod presetu udostępniony przez kogoś. Kliknij przycisk edycji. Wklej kod. Naciśnij przycisk ‘Importuj‘.

Kolor
Element koloru – to specjalny element, który ma własną funkcjonalność – przypisywanie koloru i obrazów dla każdego terminu wybranej taksonomii (patrz rozwijana lista przed przyciskiem ‘Reset’) za pomocą wyskakującego okna


Dane są przechowywane w specjalnych kluczach meta terminów:
- woof_sd_color
- woof_sd_color_image
Te klucze mogą być przeciążone w pliku functions.php bieżącego motywu WordPress na wypadek, gdybyś już ustawił opcje kolorów dla swoich terminów w swój własny sposób, użyj następujących hooków:
- get_woof_sd_term_color_key – hook do przechowywania danych kolorów terminów taksonomii
add_filter('get_woof_sd_term_color', function ($term_id) { $meta_key = '__YOUR_OWN_KEY__'; $color = get_term_meta($term_id, $meta_key, true);//you can use your own code to get term color using its $term_id return $color ? $color : 'inherit'; }); - get_woof_sd_term_color_image_key– hook do przechowywania danych obrazów terminów taksonomii
add_filter('get_woof_sd_term_color_image', function ($term_id) { $meta_key = '__YOUR_OWN_KEY__'; $img = get_term_meta($term_id, $meta_key, true);//you can use your own code to get term color using its $term_id return $img ? $img : '__YOU_CAN_PLACE_HERE_YOUR_DEFAULT_IMAGE_LINK__'; });
Elementy niestandardowe tylko dla programistów
WOOF SD pozwala programistom tworzyć własne niestandardowe elementy, wszystko co jest potrzebne to dobry kod CSS+HTML. Oto jeden przykład: https://codepen.io/quinlo/pen/ReMRXz – to wystarczy, aby stworzyć element filtra, możesz go zobaczyć na stronie demo -> ‘Products Tags‘

Na obrazku poniżej możesz zobaczyć, jak dodać taki element do systemu:

- w bieżącym motywie WordPress (lepiej użyć motywu potomnego) utwórz folder ‘woof’
- w folderze ‘woof‘ utwórz folder ‘ext‘
- w folderze ‘ext‘ utwórz folder ‘smart_designer‘
- w folderze ‘smart_designer‘ utwórz folder elements
- w folderze ‘elements‘ utwórz folder o nazwie, jaką chcesz, użyj podkreślnika jeśli to konieczne
- folder typu elementu niestandardowego musi zawierać następujące pliki:
- css/styles.css – cały kod CSS elementu
- js/ie.js – Twoja klasa JS, rozszerza IE, po prostu skopiuj i wklej:
'use strict'; import {IE, Helper} from '../../../import.js';//created automatically //This class is for constructor on backend //!!Rename class and put its name into file data.php field js_class export default class Boxtags extends IE { draw() { super.draw(); Helper.ajax(null, {}, template => { let terms = this.visor.sd.demo_taxonomies_terms; let block = this.assemble_terms(terms, template); this.container.insertAdjacentHTML('afterbegin', block); if (this.container.querySelectorAll('input')) { this.container.querySelectorAll('input')[0].setAttribute('checked', true);//for visual test } this.container.className = `woof_list_${this.template_folder}_sd_${this.template_num}`; this.wrapper.appendChild(this.container); }, false, this.template_url); } }Zmień nazwę swojej klasy JS (zamiast Boxtags), to ważne i używane w pliku data.php
- templates/tpl.php – może mieć również więcej plików jeśli to konieczne, nazwij je tpl-1.php, tpl-2.php, itd … Wszystkie pliki szablonów muszą być zadeklarowane w pliku data.php.
- data.php – tutaj jest tablica opcji, których klucze są używane w pliku css/styles.css oraz w szablonach
<?php if (!defined('ABSPATH')) die('No direct access allowed'); //View is managed by the Data! return [ 'title' => 'Box tags', //!! 'prefix' => 'boxtags_', //!!unique prefix for css vars 'js_class' => 'Boxtags', //!!important, class name from ie.js 'templates' => [ 0 => [ 'title' => esc_html__('Template #1', 'woocommerce-products-filter'), 'use_subterms' => 0//will subterms display or only parent terms depending of the current taxonomy ] ], 'template' => 0, 'demo_taxonomies' => [ 0 => esc_html__('Example terms by real taxonomy', 'woocommerce-products-filter') ], 'selected_demo_taxonomy' => 0, //demo data for visor 'sections' => [ [ 'title' => esc_html__('Terms', 'woocommerce-products-filter'), 'table' => [ 'header' => [ [ 'value' => esc_html__('Options', 'woocommerce-products-filter'), 'width' => '50%', 'action' => 'save_custom_element_option' ], [ 'value' => esc_html__('Description', 'woocommerce-products-filter'), 'width' => '50%', ], ], 'rows' => [ 'padding_vertical' => [ ['value' => ['element' => 'ranger', 'value' => 8, 'min' => 0, 'max' => 30], 'measure' => 'px'], ['value' => esc_html__('Padding vertical', 'woocommerce-products-filter')] ], 'padding_side' => [ ['value' => ['element' => 'ranger', 'value' => 12, 'min' => 0, 'max' => 30], 'measure' => 'px'], ['value' => esc_html__('Padding horizontal', 'woocommerce-products-filter')] ], 'font_family' => [ ['value' => ['element' => 'text', 'value' => 'Segoe UI'], 'measure' => ''], ['value' => esc_html__('Text font family (theme must support)', 'woocommerce-products-filter'), 'help' => '#'] ], 'font_size' => [ ['value' => ['element' => 'ranger', 'value' => 13, 'min' => 8, 'max' => 24], 'measure' => 'px'], ['value' => esc_html__('Text font size', 'woocommerce-products-filter')] ], 'font_weight' => [ ['value' => ['element' => 'select', 'value' => 400, 'options' => [ '100' => '100', '200' => '200', '300' => '300', '400' => '400', '500' => '500', '600' => '600', '700' => '700', '800' => '800' ], 'conditions' => []]], ['value' => 'Text font weight'], //cell ], 'color' => [ ['value' => ['element' => 'color', 'value' => '#adadad']], ['value' => esc_html__('Text color', 'woocommerce-products-filter')] ], 'margin_right' => [ ['value' => ['element' => 'ranger', 'value' => 5, 'min' => 0, 'max' => 30], 'measure' => 'px'], ['value' => esc_html__('Margin right', 'woocommerce-products-filter')] ], 'margin_bottom' => [ ['value' => ['element' => 'ranger', 'value' => 5, 'min' => 0, 'max' => 30], 'measure' => 'px'], ['value' => esc_html__('Margin bottom', 'woocommerce-products-filter')] ], 'bg_color_r' => [ ['value' => ['element' => 'ranger', 'value' => 255, 'min' => 0, 'max' => 255], 'measure' => ''], ['value' => esc_html__('Background color red channel', 'woocommerce-products-filter')] ], 'bg_color_g' => [ ['value' => ['element' => 'ranger', 'value' => 255, 'min' => 0, 'max' => 255], 'measure' => ''], ['value' => esc_html__('Background color green channel', 'woocommerce-products-filter')] ], 'bg_color_b' => [ ['value' => ['element' => 'ranger', 'value' => 255, 'min' => 0, 'max' => 255], 'measure' => ''], ['value' => esc_html__('Background color blue channel', 'woocommerce-products-filter')] ], 'bg_color_op' => [ ['value' => ['element' => 'ranger', 'value' => 9, 'min' => 0, 'max' => 10], 'measure' => ''], ['value' => esc_html__('Background color opacity', 'woocommerce-products-filter')] ], 'bg_image' => [ ['value' => ['element' => 'image', 'value' => ''], 'before' => 'url(', 'after' => ')'], //cell ['value' => esc_html__('Background image', 'woocommerce-products-filter')] //cell ], 'border_width' => [ ['value' => ['element' => 'ranger', 'value' => 2, 'min' => 0, 'max' => 10], 'measure' => 'px'], ['value' => esc_html__('Border width', 'woocommerce-products-filter')] ], 'border_style' => [ ['value' => ['element' => 'select', 'value' => 'solid', 'options' => [ 'dotted' => 'dotted', 'dashed' => 'dashed', 'solid' => 'solid', 'double' => 'double', 'groove' => 'groove', 'ridge' => 'ridge', 'inset' => 'inset', 'outset' => 'outset', 'none' => 'none', 'hidden' => 'hidden' ]]], ['value' => 'Border style'], ], 'border_radius' => [ ['value' => ['element' => 'ranger', 'value' => 25, 'min' => 0, 'max' => 50], 'measure' => 'px'], ['value' => esc_html__('Border radius', 'woocommerce-products-filter')] ], 'border_color_r' => [ ['value' => ['element' => 'ranger', 'value' => 139, 'min' => 0, 'max' => 255], 'measure' => ''], ['value' => esc_html__('Border color red channel', 'woocommerce-products-filter')] ], 'border_color_g' => [ ['value' => ['element' => 'ranger', 'value' => 139, 'min' => 0, 'max' => 255], 'measure' => ''], ['value' => esc_html__('Border color green channel', 'woocommerce-products-filter')] ], 'border_color_b' => [ ['value' => ['element' => 'ranger', 'value' => 139, 'min' => 0, 'max' => 255], 'measure' => ''], ['value' => esc_html__('Border color blue channel', 'woocommerce-products-filter')] ], 'border_color_op' => [ ['value' => ['element' => 'ranger', 'value' => 3, 'min' => 0, 'max' => 10], 'measure' => ''], ['value' => esc_html__('Border color opacity', 'woocommerce-products-filter')] ], 'checkbox_font_family' => [ ['value' => ['element' => 'text', 'value' => 'Font Awesome 5 Free'], 'measure' => '', 'before' => '"', 'after' => '"'], ['value' => esc_html__('Checkbox font family (theme must support)', 'woocommerce-products-filter'), 'help' => '#'] ], 'checkbox_font_size' => [ ['value' => ['element' => 'ranger', 'value' => 12, 'min' => 8, 'max' => 72], 'measure' => 'px'], ['value' => esc_html__('Checkbox font size', 'woocommerce-products-filter')] ], 'checkbox_content' => [ ['value' => ['element' => 'text', 'value' => "\f067"], 'measure' => '', 'before' => '"', 'after' => '"'], ['value' => esc_html__('Checkbox content', 'woocommerce-products-filter'), 'help' => '#'] ], 'checkbox_content_selected' => [ ['value' => ['element' => 'text', 'value' => "\f00c"], 'measure' => '', 'before' => '"', 'after' => '"'], ['value' => esc_html__('Checkbox content selected', 'woocommerce-products-filter'), 'help' => '#'] ], 'transition' => [ ['value' => ['element' => 'ranger', 'value' => 200, 'min' => 0, 'max' => 1000], 'measure' => 's'], //cell ['value' => esc_html__('Transition (ms)', 'woocommerce-products-filter')] //cell ], ] ] ], [ 'title' => esc_html__('Hovered(Selected) Terms', 'woocommerce-products-filter'), 'table' => [ 'header' => [ [ 'value' => esc_html__('Options', 'woocommerce-products-filter'), 'width' => '50%', 'action' => 'save_custom_element_option' ], [ 'value' => esc_html__('Description', 'woocommerce-products-filter'), 'width' => '50%' ], ], 'rows' => [ 'selected_color' => [ ['value' => ['element' => 'color', 'value' => '#ffffff']], ['value' => esc_html__('Text color', 'woocommerce-products-filter')] ], 'selected_bg_color_r' => [ ['value' => ['element' => 'ranger', 'value' => 18, 'min' => 0, 'max' => 255], 'measure' => ''], ['value' => esc_html__('Background color red channel', 'woocommerce-products-filter')] ], 'selected_bg_color_g' => [ ['value' => ['element' => 'ranger', 'value' => 187, 'min' => 0, 'max' => 255], 'measure' => ''], ['value' => esc_html__('Background color green channel', 'woocommerce-products-filter')] ], 'selected_bg_color_b' => [ ['value' => ['element' => 'ranger', 'value' => 212, 'min' => 0, 'max' => 255], 'measure' => ''], ['value' => esc_html__('Background color blue channel', 'woocommerce-products-filter')] ], 'selected_bg_color_op' => [ ['value' => ['element' => 'ranger', 'value' => 10, 'min' => 0, 'max' => 10], 'measure' => ''], ['value' => esc_html__('Background color opacity', 'woocommerce-products-filter')] ], 'selected_bg_image' => [ ['value' => ['element' => 'image', 'value' => ''], 'before' => 'url(', 'after' => ')'], //cell ['value' => esc_html__('Background image', 'woocommerce-products-filter')] //cell ], 'selected_border_color_r' => [ ['value' => ['element' => 'ranger', 'value' => 27, 'min' => 0, 'max' => 255], 'measure' => ''], ['value' => esc_html__('Border color red channel', 'woocommerce-products-filter')] ], 'selected_border_color_g' => [ ['value' => ['element' => 'ranger', 'value' => 219, 'min' => 0, 'max' => 255], 'measure' => ''], ['value' => esc_html__('Border color green channel', 'woocommerce-products-filter')] ], 'selected_border_color_b' => [ ['value' => ['element' => 'ranger', 'value' => 248, 'min' => 0, 'max' => 255], 'measure' => ''], ['value' => esc_html__('Border color blue channel', 'woocommerce-products-filter')] ], 'selected_border_color_op' => [ ['value' => ['element' => 'ranger', 'value' => 10, 'min' => 0, 'max' => 10], 'measure' => ''], ['value' => esc_html__('Border color opacity', 'woocommerce-products-filter')] ], 'selected_border_width' => [ ['value' => ['element' => 'ranger', 'value' => 2, 'min' => 0, 'max' => 10], 'measure' => 'px'], ['value' => esc_html__('Border width', 'woocommerce-products-filter')] ], 'selected_border_style' => [ ['value' => ['element' => 'select', 'value' => 'solid', 'options' => [ 'dotted' => 'dotted', 'dashed' => 'dashed', 'solid' => 'solid', 'double' => 'double', 'groove' => 'groove', 'ridge' => 'ridge', 'inset' => 'inset', 'outset' => 'outset', 'none' => 'none', 'hidden' => 'hidden' ]]], ['value' => 'Border style'], ], 'selected_scale' => [ ['value' => ['element' => 'ranger', 'value' => 100, 'min' => 50, 'max' => 200], 'measure' => ''], //cell ['value' => esc_html__('Scale', 'woocommerce-products-filter')] //cell ], ] ] ], [ 'title' => esc_html__('Counter', 'woocommerce-products-filter'), 'table' => [ 'header' => [ [ 'value' => esc_html__('Options', 'woocommerce-products-filter'), 'width' => '50%', 'action' => 'save_custom_element_option' ], [ 'value' => esc_html__('Description', 'woocommerce-products-filter'), 'width' => '50%', ] ], 'rows' => [ 'counter_show' => [ ['value' => ['element' => 'switcher', 'value' => 'inline-flex', 'yes' => 'inline-flex', 'no' => 'none']], //cell ['value' => esc_html__('Show counter', 'woocommerce-products-filter')] //cell ], 'counter_width' => [ ['value' => ['element' => 'ranger', 'value' => 14, 'min' => 10, 'max' => 72, 'conditions' => [ 'hide' => [ 'counter_show' => 'none'//if this selected element will be hidden ]]], 'measure' => 'px'], ['value' => esc_html__('Min width', 'woocommerce-products-filter')] ], 'counter_height' => [ ['value' => ['element' => 'ranger', 'value' => 14, 'min' => 10, 'max' => 72, 'conditions' => [ 'hide' => [ 'counter_show' => 'none'//if this selected element will be hidden ]]], 'measure' => 'px'], ['value' => esc_html__('Min height', 'woocommerce-products-filter')] ], 'counter_top' => [ ['value' => ['element' => 'ranger', 'value' => -2, 'min' => -100, 'max' => 100, 'conditions' => [ 'hide' => [ 'counter_show' => 'none'//if this selected element will be hidden ]]], 'measure' => 'px'], //cell ['value' => esc_html__('Top', 'woocommerce-products-filter')] //cell ], 'counter_right' => [ ['value' => ['element' => 'ranger', 'value' => -3, 'min' => -100, 'max' => 100, 'conditions' => [ 'hide' => [ 'counter_show' => 'none'//if this selected element will be hidden ]]], 'measure' => 'px'], ['value' => esc_html__('Right', 'woocommerce-products-filter')] ], 'counter_font_size' => [ ['value' => ['element' => 'ranger', 'value' => 9, 'min' => 8, 'max' => 48, 'conditions' => [ 'hide' => [ 'counter_show' => 'none'//if this selected element will be hidden ]]], 'measure' => 'px'], //cell ['value' => esc_html__('Text font size', 'woocommerce-products-filter')] //cell ], 'counter_color' => [ ['value' => ['element' => 'color', 'value' => '#777777', 'conditions' => [ 'hide' => [ 'counter_show' => 'none'//if this selected element will be hidden ]]]], //cell ['value' => esc_html__('Text color', 'woocommerce-products-filter')] //cell ], 'counter_font_family' => [ ['value' => ['element' => 'text', 'value' => 'consolas', 'conditions' => [ 'hide' => [ 'counter_show' => 'none'//if this selected element will be hidden ]]], 'measure' => ''], //cell ['value' => esc_html__('Text font family (theme must support)', 'woocommerce-products-filter')], //cell ], 'counter_font_weight' => [ ['value' => ['element' => 'select', 'value' => 500, 'options' => [ '100' => '100', '200' => '200', '300' => '300', '400' => '400', '500' => '500', '600' => '600', '700' => '700', '800' => '800' ], 'conditions' => [ 'hide' => [ 'counter_show' => 'none'//if this selected element will be hidden ]]]], ['value' => 'Text font weight'], //cell ], 'counter_side_padding' => [ ['value' => ['element' => 'ranger', 'value' => 0, 'min' => 0, 'max' => 48, 'conditions' => [ 'hide' => [ 'counter_show' => 'none'//if this selected element will be hidden ]]], 'measure' => 'px'], //cell ['value' => esc_html__('Side padding', 'woocommerce-products-filter')] //cell ], 'counter_bg_color' => [ ['value' => ['element' => 'color', 'value' => '#ffffff', 'conditions' => [ 'hide' => [ 'counter_show' => 'none'//if this selected element will be hidden ]]]], //cell ['value' => esc_html__('Background color', 'woocommerce-products-filter')] //cell ], 'counter_bg_image' => [ ['value' => ['element' => 'image', 'value' => '', 'conditions' => [ 'hide' => [ 'counter_show' => 'none'//if this selected element will be hidden ]]], 'before' => 'url(', 'after' => ')'], //cell ['value' => esc_html__('Background image', 'woocommerce-products-filter')] //cell ], 'counter_border_width' => [ ['value' => ['element' => 'ranger', 'value' => 1, 'min' => 0, 'max' => 10, 'conditions' => [ 'hide' => [ 'counter_show' => 'none'//if this selected element will be hidden ]]], 'measure' => 'px'], //cell ['value' => esc_html__('Border width', 'woocommerce-products-filter')] //cell ], 'counter_border_radius' => [ ['value' => ['element' => 'ranger', 'value' => 50, 'min' => 0, 'max' => 50, 'conditions' => [ 'hide' => [ 'counter_show' => 'none'//if this selected element will be hidden ]]], 'measure' => '%'], //cell ['value' => esc_html__('Border radius', 'woocommerce-products-filter')] //cell ], 'counter_border_color' => [ ['value' => ['element' => 'color', 'value' => '#adadad', 'conditions' => [ 'hide' => [ 'counter_show' => 'none'//if this selected element will be hidden ]]]], //cell ['value' => esc_html__('Border color', 'woocommerce-products-filter')] //cell ], 'counter_border_style' => [ ['value' => ['element' => 'select', 'value' => 'solid', 'options' => [ 'dotted' => 'dotted', 'dashed' => 'dashed', 'solid' => 'solid', 'double' => 'double', 'groove' => 'groove', 'ridge' => 'ridge', 'inset' => 'inset', 'outset' => 'outset', 'none' => 'none', 'hidden' => 'hidden' ], 'conditions' => [ 'hide' => [ 'counter_show' => 'none'//if this selected element will be hidden ]]]], ['value' => 'Border style'], //cell ], ] ] ], ] ]; - W pliku data.php zwróć uwagę na pola: title – nazwa Twojego elementu w górnym panelu SD, prefix – unikalny prefiks dla zmiennych CSS, js_class – ważne, nazwa klasy z ie.js
- Następnie w pliku tpl.php dodaj swój kod HTML:
<?php $custom_postfix = 'boxtags'; ?> <div class="woof-sd-ie woof-sd-ie-<?php echo $custom_postfix ?> woof-sd-ie-<?php echo $custom_postfix ?>___TERM_ID__ __CLASS__"> <input type="checkbox" hidden id="__ID__" data-tax="__DATA_TAX__" name="__SLUG__" data-term-id="__TERM_ID__" value="__VALUE__" __CHECKED__ __DISABLED__ onchange="woof_checkbox_process_data(this, this.checked)" hidden /> <label for="__ID__"> <span>__CONTENT__ <span class="woof-sd-ie-count">__COUNT__</span></span> </label> <input type="hidden" value="__TERM_NAME__" data-anchor="woof_n___DATA_ANCHOR__" /> </div>Nie zapomnij zmienić zmiennej $custom_postfix na nazwę folderu Twojego elementu (to samo pole prefix z pliku data.php).
- Szablon ma specjalne ciągi znaków, które są zastępowane na bieżąco, gdy WOOF SD wyświetla tagi na froncie:
- __TERM_ID__ – ID bieżącego wyświetlanego terminu
- __CLASS__ – systemowa klasa CSS
- __DATA_TAX__ – nazwa taksonomii bieżącego terminu
- __SLUG__ – slug bieżącego terminu
- __ID__ – automatycznie generowane ID dla etykiety
- __VALUE__ – wybrana wartość tutaj
- __CHECKED__ – powinno być w checkbox lub radio, aby uczynić je wybranym lub nie
- __DISABLED__ – powinno być w checkbox lub radio, aby uczynić je wyłączonym lub nie
- __CONTENT__ – tytuł terminu do wyświetlenia klientom
- __COUNT__ – liczba terminów
- __RESET_RADIO_BTN__ – używane tylko dla radio, aby zresetować wybrany przycisk radio na froncie
- __DATA_ANCHOR__ – zawsze wymagane dla ukrytego inputa
- __TERM_NAME__ – nazwa bieżącego terminu
- Użyj wrappera div zawsze tak samo jak w przykładzie powyżej, a wewnątrz swojego kodu HTML. Oba inputy, jako checkbox lub radio + ukryte inputy zawsze muszą być!
- Szablon ma specjalne ciągi znaków, które są zastępowane na bieżąco, gdy WOOF SD wyświetla tagi na froncie:
-
Pola:
- templates – dodaje szablony układu tego samego elementu lub jego zachowania (radio lub checkbox).
- template – numer szablonu wybranego domyślnie
- demo_taxonomies – użyj tak jak w kodzie powyżej, potrzebne do wyświetlania taksonomii sklepu w konstruktorze
- sections – tutaj w wierszach umieszczone są opcje, mają one własne unikalne klucze (względem pliku data.php) i są różnych typów:
- ranger – tworzy kontrolkę zakresu z suwakiem od min do max
'padding_vertical' => [ ['value' => ['element' => 'ranger', 'value' => 8, 'min' => 0, 'max' => 30], 'measure' => 'px'], ['value' => esc_html__('Padding vertical', 'woocommerce-products-filter')] ],Zwróć uwagę na pole ‘measure‘, powinny być odpowiednie jednostki miary
- text – pole tekstowe
'font_family' => [ ['value' => ['element' => 'text', 'value' => 'Segoe UI'], 'measure' => ''], ['value' => esc_html__('Text font family (theme must support)', 'woocommerce-products-filter'), 'help' => '#'] ], - select – rozwijana lista do wyboru dowolnych predefiniowanych wartości
'font_weight' => [ ['value' => ['element' => 'select', 'value' => 400, 'options' => [ '100' => '100', '200' => '200', '300' => '300', '400' => '400', '500' => '500', '600' => '600', '700' => '700', '800' => '800' ], 'conditions' => []]], ['value' => 'Text font weight'], //cell ], - color – generuje input koloru
'color' => [ ['value' => ['element' => 'color', 'value' => '#adadad']], ['value' => esc_html__('Text color', 'woocommerce-products-filter')] ], - image – generuje pole tekstowe i przycisk obok, aby wybrać obraz z galerii mediów strony
'bg_image' => [ ['value' => ['element' => 'image', 'value' => ''], 'before' => 'url(', 'after' => ')'], //cell ['value' => esc_html__('Background image', 'woocommerce-products-filter')] //cell ], - We wszystkich elementach pole value ma wartość domyślną, która musi być taka sama jak w styles.css

- wszystkie klucze wewnątrz pliku CSS muszą być używane z prefiksem ‘–woof-sd-ie-‘ + prefiks pobrany z pliku data.php -> pole ‘prefix‘!
- ranger – tworzy kontrolkę zakresu z suwakiem od min do max
- Plik woof/ext/smart_designer/import.js jest tworzony automatycznie przez system i nie powinien być zmieniany ręcznie!!
- Krótko mówiąc, możesz pobrać przykład niestandardowego elementu i odtworzyć go przy użyciu własnego CSS i HTML












