Block Logic - Full Block Display Control
by landwire 5 (13 reviews)

Block Logic - Full Block Display Control

Block Logic adds a "Block Logic" field to the block editor, that lets you show or hide any block based on conditions.

Block Logic ranks #10,359 among WordPress.org plugins with 300+ active installations, a 5/5 rating from 13 reviews, and was last updated May 30, 2026. Data from WordPress.org, refreshed twice daily — see methodology.

Tested up to WP 7 (Current: 7.1.4)
v2.1.6 Current Version v2.1.6
Updated 5 months ago Last Update on 30 May, 2026
Refreshed 1 week ago Last Refreshed on
Top 25% by installs Downloads -14.3% this week
View on WordPress.org
Rank
#10,359
— No change
Active Installs
300+
-19.6%
KW Avg Position
90.8
0.6 worse
Downloads
5.4K
+11 today
Support Resolved
0%
— No change
Rating
100%
Review 5 out of 5
5 (13 reviews)

Next Milestone 400

Total Progress 63%
300+ 400+
538
Ranks to Climb
-
Growth Needed
8,000,000
Active Installs
Pro

Unlock Exact Install Count

See the precise estimated active installs for this plugin, calculated from real-time ranking data.

  • Exact install estimates within tiers
  • Track install growth over time
  • Milestone progress predictions
Upgrade to Pro
Need 37 more installs to reach 400+

Rank Changes

9,841 10,100 10,359 10,618 10,877 31-10-2026 01-11-2026 02-11-2026 03-11-2026 04-11-2026 05-11-2026 06-11-2026 07-11-2026
10,352 10,367 10,383 10,399 10,414 23-10-2026 24-10-2026 25-10-2026 26-10-2026 27-10-2026 28-10-2026 29-10-2026 30-10-2026 31-10-2026 01-11-2026 02-11-2026 03-11-2026 04-11-2026 05-11-2026 06-11-2026 07-11-2026
Current #10,359
Change
Best #

Upgrade to Pro

Unlock 30-day and 90-day rank history charts with a Pro subscription.

Upgrade Now

Active Installs Growth

Active Installs 0,000,000+
Growth +0.0%
Peak 0,000,000

Downloads Growth

0 10 20 31-10-2026 01-11-2026 02-11-2026 03-11-2026 04-11-2026 05-11-2026 06-11-2026 07-11-2026
0 10 20 23-10-2026 24-10-2026 25-10-2026 26-10-2026 27-10-2026 28-10-2026 29-10-2026 30-10-2026 31-10-2026 01-11-2026 02-11-2026 03-11-2026 04-11-2026 05-11-2026 06-11-2026 07-11-2026
Downloads
Growth
Peak

Upgrade to Pro

Unlock 30-day, 90-day, and yearly download history charts with a Pro subscription.

Upgrade Now

Reviews & Ratings

5.0
13 reviews
Overall 100%
5
13 (100%)
4
0 (0%)
3
0 (0%)
2
0 (0%)
1
0 (0%)

Support Threads Overview

Resolved
Unresolved
1
Total Threads
0
Resolved
1
Unresolved
0%
Resolution Rate

Security History

Source: WPVulnerability

1 known vulnerability on record · 1 in the last 24 months · checked 3 months ago

  1. Block Logic – Full Block Display Control [block-logic] < 2.0.0

    CVE-2025-2303 · Fixed in v2.0.0

Track This Plugin

Get detailed analytics, keyword tracking, and position alerts delivered to your inbox.

Start Tracking Free

Plugin Details

Version
2.1.6
Last Updated
May 30, 2026
Requires WP
6.5+
Tested Up To
7
PHP Version
8.0 or higher
Author
landwire

Support & Rating

Rating
★ ★ ★ ★ ★ 5
Reviews
13
Support Threads
1
Resolved
0%

Keywords

Upgrade to Pro

Unlock keyword rankings, search positions, and detailed analytics with a Pro subscription.

Upgrade Now

TL;DR

AI summary of the plugin's readme

This plugin is for WordPress site builders using the Gutenberg block editor who need to control block visibility. It solves the problem of showing or hiding blocks based on conditions like user role, login status, post status, or date/time, without requiring custom development for each case.

  • Adds Block Logic field
  • Shows or hides blocks conditionally
  • Conditions based on user role
  • Conditions based on login status
  • Conditions based on post status
  • Conditions based on date and time
  • Custom PHP function conditions
  • Combine conditions with and/or

Frequently Asked Questions

Common questions about Block Logic - Full Block Display Control

!is_page('about') -- everywhere except this specific WP page
current_user_can('administrator') -- admin-only blocks strpos($_SERVER['HTTP_REFERER'], "google.com") !== false -- blocks to show when clicked through from Google
in_array(77, get_post_ancestors($post)) -- WP page that is a child of page 77
WordPress Post & Term Checks has_term('special-offer', 'category', $post) -- post has a specific category term get_post_meta(get_the_ID(), 'featured', true) == 'yes' -- check a meta field value get_post_type() == 'product' -- current post type is a WooCommerce product
has_post_thumbnail() -- only posts/pages with a featured image get_the_category() -- fetch post categories (can be used in expressions) get_the_tags() -- fetch post tags WooCommerce-Specific Checks WC()->cart && WC()->cart->get_cart_contents_count() > 0 -- cart has at least one item WC()->cart && WC()->cart->total > 50 -- cart total is more than $50
ACF Checks (Read-only) get_field('featured') == true -- ACF field “featured” is true get_sub_field('discount') > 0 -- ACF subfield “discount” has a value get_row() > 0 -- there are ACF repeater rows get_field_object('product_info')['value'] !== '' -- check ACF field object value PHP Helpers in_array('baked-goods', wp_get_post_categories($post)) -- category array check strpos(get_permalink($post), 'sale') !== false -- check if permalink contains “sale” empty(get_post_meta(get_the_ID(), 'stock', true)) -- post has no stock meta count(WC()->cart->get_cart()) > 1 -- more than 1 item in cart time() > strtotime('2026-01-01') -- check current timestamp number_format(WC()->cart->total, 2) -- format cart total round(get_post_meta(get_the_ID(), 'rating', true)) > 4 -- rating is greater than 4 Supported functions and globals Block Logic comes with a set of safe WordPress, WooCommerce, ACF, and PHP helper functions, as well as selected globals and superglobals. These can be used in block logic expressions to control the display of blocks dynamically. Allowed Superglobals By default, only safe, read-only superglobals are available. Developers can extend this list via the block_logic_allowed_superglobals filter. $_GET -- query parameters $_POST -- submitted form data $_SERVER -- server/environment info (e.g., $_SERVER['HTTP_REFERER']) $_COOKIE -- cookies Example usage: !empty($_GET['ref']) && strpos($_SERVER['HTTP_REFERER'], 'google.com') !== false Allowed WordPress Globals These global variables are accessible inside block logic expressions. Extend the list via the block_logic_allowed_globals filter. $post -- current post object $wp_query -- main query object $wp_the_query -- backup of main query $wp -- WP environment object $wp_rewrite -- rewrite rules $current_user -- WP_User object of the current user $wp_version -- WordPress version Example usage: in_array($post->ID, get_post_ancestors($post)) && is_user_logged_in() Allowed WordPress Functions Overview current_user_can('administrator') -- check user capabilities get_current_user_id() -- current user ID get_option('blogname') -- get site title get_post_meta(get_the_ID(), 'featured', true) -- read post meta get_post_type() -- post type slug get_the_ID() -- current post ID has_post_thumbnail() -- check if post has featured image
Example usage:
ACF Functions Overview get_field('featured') -- read ACF field value get_sub_field('discount') -- read subfield in repeater get_row() -- number of repeater rows get_field_object('product_info')['value'] -- field object value Example usage: get_field('featured') == true && get_sub_field('discount') > 0 WooCommerce Functions Overview wc_get_cart_contents_count() -- number of items in cart wc_get_cart_total() -- cart total wc_get_cart_subtotal() -- cart subtotal wc_cart_is_empty() -- TRUE if cart is empty wc_customer_get_id() -- current customer ID wc_customer_get_billing_email() -- customer billing email wc_customer_get_shipping_country() -- shipping country wc_customer_get_shipping_state() -- shipping state wc_customer_get_shipping_postcode() -- shipping postcode wc_get_product($product_id) -- get WC_Product object Example usage: wc_get_cart_contents_count() > 0 && wc_get_cart_total() > 50 PHP Helpers Overview strpos($haystack, $needle) in_array($needle, $array) empty($var)
count($array) strlen($string) preg_match($pattern, $subject) current_time('timestamp') strtotime($string) date($format, $timestamp) time() number_format($number, $decimals) round($number) Example usage: count(WC()->cart->get_cart()) > 1 && time() > strtotime('2026-01-01') Extending the list of allowed functions Block Logic provides four filters that developers can use to safely extend which functions, globals, and superglobals are available inside block logic expressions. Add custom functions Use the block_logic_allowed_functions filter to make additional functions available in block logic expressions. Example add_filter('block_logic_allowed_functions', function($allowed) { $allowed[] = 'my_cart_has_items'; return $allowed; }); function my_cart_has_items() { return WC()->cart && WC()->cart->get_cart_contents_count() > 0; } Usage in a block logic field: my_cart_has_items() Add extra superglobals Use the block_logic_allowed_superglobals filter to allow additional superglobals like $_SESSION. Example: add_filter('block_logic_allowed_superglobals', function($allowed) { $allowed[] = '_SESSION'; return $allowed; }); Usage in a block logic field: !empty($_SESSION['special_offer']) Add extra WordPress globals Use the block_logic_allowed_globals filter to allow extra global variables. Example: add_filter('block_logic_allowed_globals', function($allowed) { $allowed[] = 'my_global_data'; return $allowed; }); // Somewhere in your theme or plugin $GLOBALS['my_global_data'] = ['foo' => 'bar']; Usage in a block logic field: $post->ID == my_global_data['foo'] Add completely custom globals Use the block_logic_extra_globals filter to allow any additional global variable in block logic expressions. Example: add_filter('block_logic_extra_globals', function($allowed) { $allowed[] = 'my_custom_flag'; return $allowed; }); // Initialize the global somewhere $GLOBALS['my_custom_flag'] = true; Usage in a block logic field: $my_custom_flag && is_user_logged_in()

Sign In / Register

You need to sign in or register to use this feature.