Фільтр: esl/element/settings

Esl 1.5 додає можливість змінювати налаштування елемента перед його рендерингом.

Це дозволяє вам програмно змінювати вміст текстового елемента або додавати стилі на основі умовної логіки, наприклад так:

add_filter( 'esl/element/settings', function( $settings, $element ) {// Додати "[онлайн]" текст до всіх заголовків елементів, якщо відвідувач увійшов в системуif ( $element->name === 'heading' && is_user_logged_in() ) {$settings['text'] .= ' [онлайн]';}return $settings;}, 10, 2 );

У випадку, якщо вам потрібно програмно додати логіку умовного відображення елемента, перегляньте фільтр esl/element/render.

Приклад: Динамічно встановити максимальну ціну фільтра продуктів WooCommerce (Ціна) з усіх продуктів
add_filter('esl/element/settings', function( $settings, $element ) {// Змініть zyjhwa на ваш ID елементаif( $element->id !== 'zyjhwa' || ! isset( $settings['filters'] ) ) {return $settings;}// Отримати всі продукти$products = wc_get_products(array('status' => 'publish','limit' => -1, // Отримати всі продукти));$highest_price = max(array_map(function ($product) {return $product->get_price();}, $products));foreach( $settings['filters'] as $key => $filter ) {if( ! isset( $filter['otherFilter'] ) || $filter['otherFilter'] !== 'price' ) {continue;}$settings['filters'][$key]['sliderMax'] = $highest_price;}return $settings;}, 10, 2);