"Filter: bricks/element/settings"
Bricks 1.5 امکان تغییر تنظیمات عنصر را قبل از رندر شدن اضافه میکند.
این به شما امکان میدهد محتوای یک المان متنی را به صورت برنامه ریزی شده تغییر دهید یا سبک هایی را بر اساس یک منطق شرطی سفارشی اضافه کنید، مانند:
add_filter( 'bricks/element/settings', function( $settings, $element ) {
// Add "[online]" text to all the headings elements if the visitor is logged in
if ( $element->name === 'heading' && is_user_logged_in() ) {
$settings['text'] .= ' [online]';
}
return $settings;
}, 10, 2 );
در صورتی که نیاز به اضافه کردن یک منطق نمایش شرطی عنصر به صورت برنامهنویسی دارید، فیلتر bricks/element/render را بررسی کنید.
مثال: تنظیم پویا فیلتر محصول WooCommerce (قیمت) حداکثر قیمت از همه محصولات

add_filter('bricks/element/settings', function( $settings, $element ) {
// Change the zyjhwa to your element ID
if( $element->id !== 'zyjhwa' || ! isset( $settings['filters'] ) ) {
return $settings;
}
// Get all products
$products = wc_get_products(array(
'status' => 'publish',
'limit' => -1, // Retrieve all products
));
$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);