{"id":2718,"date":"2022-07-07T17:56:12","date_gmt":"2022-07-07T17:56:12","guid":{"rendered":"https:\/\/academy.bricksbuilder.io\/?post_type=bricks_article&p=2718"},"modified":"2023-10-09T02:37:55","modified_gmt":"2023-10-09T02:37:55","slug":"filter-bricks-element-settings","status":"publish","type":"bricks_article","link":"https:\/\/academy.bricksbuilder.io\/article\/filter-bricks-element-settings\/","title":{"rendered":"Filter: bricks\/element\/settings"},"content":{"rendered":"\n

Bricks 1.5 adds the possibility to change the element settings before it is rendered. <\/p>\n\n\n\n

This allows you to change a text element content programmatically, or add styles based on a custom conditional logic, like so:<\/p>\n\n\n\n

add_filter( 'bricks\/element\/settings', function( $settings, $element ) {\n    \/\/ Add \"[online]\" text to all the headings elements if the visitor is logged in \n    if ( $element->name === 'heading' && is_user_logged_in() ) {\n        $settings['text'] .= ' [online]'; \n    }\n\n    return $settings;\n}, 10, 2 );<\/code><\/pre>\n\n\n\n

In case you need to programmatically add an element conditional display logic, check the filter bricks\/element\/render<\/a><\/code>.<\/p>\n\n\n\n

<\/p>\n\n\n\n

Example: Dynamically set WooCommerce Product Filter (Price) max price from all products<\/h5>\n\n\n
\n
\"\"<\/figure><\/div>\n\n\n
add_filter('bricks\/element\/settings', function( $settings, $element ) {\n  \/\/ Change the zyjhwa to your element ID\n  if( $element->id !== 'zyjhwa' || ! isset( $settings['filters'] ) ) {\n    return $settings;\n  }\n\n  \/\/ Get all products\n  $products = wc_get_products(array(\n    'status' => 'publish',\n    'limit' => -1, \/\/ Retrieve all products\n  ));\n\n  $highest_price = max(array_map(function ($product) {\n    return $product->get_price();\n  }, $products));\n\n  foreach( $settings['filters'] as $key => $filter ) {\n    if( ! isset( $filter['otherFilter'] ) || $filter['otherFilter'] !== 'price' ) {\n      continue;\n    }\n\n    $settings['filters'][$key]['sliderMax'] = $highest_price;\n  }\n\n  return $settings;\n}, 10, 2);<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"

Bricks 1.5 adds the possibility to change the element settings before it is rendered. This allows you to change a text element content programmatically, or add styles based on a custom conditional logic, like so: In case you need to programmatically add an element conditional display logic, check the filter bricks\/element\/render. Example: Dynamically set WooCommerce […]<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":81,"template":"","format":"standard","meta":{"footnotes":""},"_links":{"self":[{"href":"https:\/\/academy.bricksbuilder.io\/api\/wp\/v2\/bricks_article\/2718"}],"collection":[{"href":"https:\/\/academy.bricksbuilder.io\/api\/wp\/v2\/bricks_article"}],"about":[{"href":"https:\/\/academy.bricksbuilder.io\/api\/wp\/v2\/types\/bricks_article"}],"author":[{"embeddable":true,"href":"https:\/\/academy.bricksbuilder.io\/api\/wp\/v2\/users\/1"}],"version-history":[{"count":9,"href":"https:\/\/academy.bricksbuilder.io\/api\/wp\/v2\/bricks_article\/2718\/revisions"}],"predecessor-version":[{"id":5087,"href":"https:\/\/academy.bricksbuilder.io\/api\/wp\/v2\/bricks_article\/2718\/revisions\/5087"}],"wp:attachment":[{"href":"https:\/\/academy.bricksbuilder.io\/api\/wp\/v2\/media?parent=2718"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}