# Lazy Blocks > Lazy Blocks is a WordPress plugin for building custom Gutenberg blocks. A block is > defined on a screen in wp-admin rather than in a code editor, its fields are called > controls, and its output is written in Handlebars, PHP, or a template file in the > theme. There is no React and no build step. The free plugin is at https://wordpress.org/plugins/lazy-blocks/. Pro adds nine more control types (Posts, Taxonomy, Users, Link, Units, Token Field, Panel, Divider, Message), conditional logic on controls, RichText editing on the canvas, custom block namespaces and collections, editor block preloading, and Rank Math and Yoast content analysis of rendered blocks. Pro plans are yearly: Personal $49 (1 website), Freelancer $169 (20 websites), Agency $299 (unlimited websites). Every link below points at the Markdown version of the page. The HTML page is the same address without the .md suffix. The whole corpus in one file is at https://www.lazyblocks.com/llms-full.txt. --- # Overview Source: https://www.lazyblocks.com/docs/overview/ Lazy Blocks is a WordPress plugin for building custom blocks. You define a block on a screen in wp-admin rather than in a code editor, and you write its markup in Handlebars or PHP rather than in React. There is no build step and no `block.json` to maintain. ## What a block is here A block is a WordPress post of the `lazyblocks` type. It holds three things: **Controls.** The fields a person filling in the block sees. A control has a type, a name, and a place to appear, either in the inspector sidebar or in the block body on the canvas. Roughly thirty types ship with the plugin, from a plain text field to an image picker to a repeater. See [Controls](https://www.lazyblocks.com/docs/blocks-controls/overview/). **Code.** What the block outputs. Each control's value arrives in your markup under the name you gave it. See [Block Code](https://www.lazyblocks.com/docs/blocks-code/overview/). **Settings.** The title, icon, category and keywords that put the block in the inserter, plus the WordPress block supports you want enabled, such as alignment, colour or spacing. See [Create Block](https://www.lazyblocks.com/docs/create-block/). Once saved and published, the block registers like any other and appears in the inserter. Deactivating it takes it out again without deleting it. See [Blocks Screen](https://www.lazyblocks.com/docs/managing-blocks/blocks-screen/). ## Writing the output Three output methods, chosen per block: [HTML + Handlebars](https://www.lazyblocks.com/docs/blocks-code/handlebars/) is the default. Control values are interpolated as `{{control-name}}`, and the plugin registers helpers for truncating a string, comparing two values, running a shortcode and formatting a date. [PHP](https://www.lazyblocks.com/docs/blocks-code/php/) gives you `$attributes['control-name']` and the whole WordPress API. Use it when the block queries something or branches on more than a template can express. [Theme Template](https://www.lazyblocks.com/docs/blocks-code/theme-template/) moves the markup into a file in your theme, at `blocks//block.php`, so it lives in version control alongside the rest of the theme. Alongside the markup you can attach CSS and a front-end script, both loaded only on pages where the block is used. See [Styles & Scripts](https://www.lazyblocks.com/docs/blocks-code/styles-scripts/). Four components work inside block code regardless of the output method: [useBlockProps](https://www.lazyblocks.com/docs/blocks-code/use-block-props/) for the block wrapper, [InnerBlocks](https://www.lazyblocks.com/docs/blocks-code/inner-blocks/) for nesting other blocks inside yours, [RichText](https://www.lazyblocks.com/docs/blocks-code/rich-text/) for editing a value directly on the canvas, and a [PHP callback](https://www.lazyblocks.com/docs/blocks-code/php-callback/) for rendering from a function in your theme. ## Fields without a block A control can store its value in post meta instead of in the block. That turns the block builder into a custom fields editor: define the fields, place the block on the post, and read the values in your theme with `get_lzb_meta( 'field_name' )`. See [Display Custom Fields](https://www.lazyblocks.com/docs/examples/display-custom-fields-meta/). ## Free and Pro The free plugin on [WordPress.org](https://wordpress.org/plugins/lazy-blocks/) builds complete blocks. It carries the block builder, all three output methods, block styles and scripts, and twenty of the control types, including Repeater, Gallery, Image, Rich Text and Inner Blocks. Pro adds nine more control types, the ones that query WordPress or lay the inspector out: Posts, Taxonomy, Users, Link, Units, Token Field, Panel, Divider and Message. It also adds: - [Conditional Logic](https://www.lazyblocks.com/docs/blocks-controls/conditional-logic/), which hides a control until its rules pass - [RichText on the canvas](https://www.lazyblocks.com/docs/blocks-code/rich-text/), so a value is typed in place instead of in the sidebar - [Collections and custom namespaces](https://www.lazyblocks.com/docs/managing-blocks/collections/), which register your blocks under your own name rather than `lazyblock/` - [Editor preloading](https://www.lazyblocks.com/docs/performance/), which renders block previews with the edit screen instead of one request per block - [Rank Math and Yoast support](https://www.lazyblocks.com/docs/integrations/seo-plugins/), so their content analysis reads the rendered block rather than the raw markup [Free vs Pro](https://www.lazyblocks.com/free-vs-pro/) compares the two feature by feature. ## Getting started [Install the plugin](https://www.lazyblocks.com/docs/getting-started/install-lazy-blocks-plugin/), then [build your first block](https://www.lazyblocks.com/docs/create-block/). The [Alert Block](https://www.lazyblocks.com/docs/examples/alert-block/) walkthrough builds one end to end. If you are weighing this against writing a block in React, [WordPress custom blocks](https://www.lazyblocks.com/wordpress-custom-blocks/) compares the three ways of building one. --- # Install Lazy Blocks Plugin Source: https://www.lazyblocks.com/docs/getting-started/install-lazy-blocks-plugin/ There are two ways to install the Lazy Blocks plugin on your WordPress site. Choose the method that works best for you. ## Method 1: Install from WordPress Dashboard (Recommended) 1. Navigate to **Admin Menu → Plugins → Add New** 2. In the search field, type **"Lazy Blocks"** 3. Click **Install Now** when you see the plugin 4. After installation completes, click **Activate** Once activated, you'll see **Lazy Blocks** in your admin menu: ## Method 2: Manual Installation 1. Download the plugin from [WordPress.org](https://wordpress.org/plugins/lazy-blocks/) 2. Go to **Admin area → Plugins → Add New** 3. Click **Upload Plugin** at the top of the page 4. Choose the downloaded file and click **Install Now** ## Next Steps After installation, check out our [block creation guide](https://www.lazyblocks.com/docs/create-block/) to learn how to create your first block. --- # Purchase Lazy Blocks Pro plugin Source: https://www.lazyblocks.com/docs/getting-started/purchase-pro-version/ Welcome! You've made a great decision choosing to build your custom blocks with Lazy Blocks plugin. While the free version is more than enough for you to build a powerful blocks, it doesn't offer as many perks as Lazy Blocks Pro. In this guide, we'll walk you through the complete process for upgrading to Lazy Blocks Pro. Let's get started! ## How to select a plan Lazy Blocks Pro has **3 plans** you can choose from: 1. The Personal plan 2. The Freelancer plan 3. The Agency plan All 3 plans comes with the same features, which you can find on the [Free vs Pro](https://www.lazyblocks.com/free-vs-pro/) page. The only difference is the number of sites where the Lazy Blocks Pro can be used. | | Personal | Freelancer | Agency | | ------------ | -------- | -------------- | --------------- | | **Websites** | 1 Site | Up to 20 Sites | Unlimited Sites | ## How to make purchase 1. Go to [Lazy Blocks Pro pricing page](https://www.lazyblocks.com/pro/#pricing) 2. Select the plan and click **Buy Now** 3. You will see the checkout form in the popup, where you will need to fill the required fields and make a payment: Once you've purchased the Lazy Blocks Pro plugin, you will receive the full information about this purchase in your email. There will be a download link (available for 72 hours), license key and a link to your account page. ## How to install Lazy Blocks Pro Head over to [Install Lazy Blocks Pro version article](https://www.lazyblocks.com/docs/getting-started/install-pro-version/) for a step-by-step guide on how to install Lazy Blocks Pro on your website. --- # Install Lazy Blocks Pro version Source: https://www.lazyblocks.com/docs/getting-started/install-pro-version/ **Congratulations on signing up for Lazy Blocks Pro.** The plugin arrives as a zip file with your order, installs like any other WordPress plugin, and needs your license key for automatic updates. ## Which receipt you have Where the download and the license key are depends on who sent your receipt: - **The Lemon Squeezy logo is at the top.** Follow the steps on this page. - **It came from "Devoice LLC via Paddle", with the Paddle logo at the bottom, or from nkdev.info.** Your subscription started on Paddle and still renews there. See [Licenses bought through Paddle](https://www.lazyblocks.com/docs/getting-started/legacy-licenses/). Not sure which one you have? [Find your download](https://www.lazyblocks.com/account/) shows both receipts side by side. ## Download from Email Once you've purchased the Lazy Blocks Pro plugin, you will receive the full information about this purchase in your email. There will be a download link, license key and a link to your account page. Just click on the link to download the plugin archive. If you can't download it, follow the next step.
Example of a Lemon Squeezy receipt.
## Download from Account 1. After purchasing Lazy Blocks Pro, go to your Lemon Squeezy orders 2. Once logged in, you will see all your orders. Select the Lazy Blocks Pro order page. 3. On the right side you will see files to download and license key ## Install 1. Head over to your site, to the WordPress dashboard 2. Open **Admin Menu → Plugins** and click on the **Add New** button 3. Choose the zip file you have just downloaded. Click on **install** and **activate** ## Free and Pro side by side Lazy Blocks Pro is an independent plugin and does not need the free one. Keeping both active is the normal state from free version 4.4.1 onwards. Nothing is switched off, and two entries in the Plugins list mean the setup is correct. A free copy older than that cannot run next to Pro, because it declares the same core classes a second time. Activating either plugin deactivates the free one and prints a warning on the Plugins screen, once: This version of Lazy Blocks is too old to run next to Lazy Blocks Pro. We've automatically deactivated Lazy Blocks. A pre-release of 4.4.1 counts as 4.4.1, so an alpha, a beta or a release candidate of it is new enough. Update the free plugin and activate it again to get both running. ## Activate To receive automatic updates of the Pro plugin, activate your license: 1. After installing the Lazy Blocks Pro, go to your Lemon Squeezy orders 2. Select the Lazy Blocks Pro order page. 3. Copy the license key 4. Head over to your site, to the WordPress dashboard, and click on **Admin Menu → Lazy Blocks → Updates** 5. Insert your license key and push the **Activate License** button If you cannot find the key, the **Where is my license key?** link next to the field opens a page that sends you to the right store for your receipt. --- # Manage your subscription Source: https://www.lazyblocks.com/docs/getting-started/manage-your-subscription/ A Lazy Blocks Pro license is a yearly subscription billed through Lemon Squeezy. Everything about it lives in your Lemon Squeezy orders: sign in with the email you bought with, and every order and license key is there. The receipt email links to the same page. ## Renewal The subscription renews once a year on the date you bought it, on the card or PayPal account you paid with. A license that is not renewed keeps working: the plugin stays active and your blocks keep rendering. What stops is updates and support. ## Cancel 1. Open your Lemon Squeezy orders and sign in with the email you bought with. 2. Select the Lazy Blocks Pro subscription. 3. Cancel it. The license stays valid until the end of the paid year, and nothing is charged after that. Cancelling does not remove the plugin from your site. ## Refund The refund policy covers a first purchase for 14 days. Write to us through the [contact page](https://www.lazyblocks.com/contact/) from the email you bought with and name the order. Renewals are not refundable. A refund ends the license, so the plugin has to be removed from the site. The [terms](https://www.lazyblocks.com/terms/#refund-policy) have the detail. ## Change the email on an order Write to us through the [contact page](https://www.lazyblocks.com/contact/) from the email the order was placed with and give us the new address. We move the order to it. The same goes for passing a license on to somebody else. ## Move the license to another site Deactivate the plugin on the old site and activate it on the new one. The sites a license is active on are also listed on the order in your Lemon Squeezy orders, where you can remove one. ## Licenses bought through Paddle If your receipt came from Paddle or nkdev.info, your subscription is managed in the nkdev.info account instead. See [Licenses bought through Paddle](https://www.lazyblocks.com/docs/getting-started/legacy-licenses/). --- # Licenses bought through Paddle Source: https://www.lazyblocks.com/docs/getting-started/legacy-licenses/ Before Lazy Blocks Pro moved to Lemon Squeezy, it was sold through Paddle, with customer accounts on nkdev.info. Those subscriptions still renew through Paddle every year. This page applies to you if your receipt came from "Devoice LLC via Paddle" with the Paddle logo at the bottom, or from nkdev.info, whatever the date on it. Your card statement shows these payments as PADDLE.NET\* NKDEV.INFO.
Example of a Paddle receipt.
If your receipt has the Lemon Squeezy logo, see [Install Pro version](https://www.lazyblocks.com/docs/getting-started/install-pro-version/) instead. Not sure which one you have? [Find your download](https://www.lazyblocks.com/account/) shows both receipts. ## Sign in Go to nkdev.info/account and sign in with the email you paid with. If you never set a password, click **Lost Password?** on the sign-in form and set one. If no account opens under any of your emails, [write to us](https://www.lazyblocks.com/contact/) and list every email you may have paid with. We will find the order. ## Download In the account, open **Downloads** and download the Lazy Blocks Pro ZIP. Install it as described in [Install Pro version](https://www.lazyblocks.com/docs/getting-started/install-pro-version/#install). ## License key Open **Licenses** and copy the key. In WordPress, go to **Lazy Blocks → Updates**, paste the key and click **Activate License**. ## Renew The subscription renews automatically each year through Paddle. If a renewal failed or was cancelled, the reminder email links to a checkout. Without the email, sign in, find the license under **Licenses** and click **Renew Now**. ## Cancel Open **Subscriptions** to see the renewal date and cancel the subscription. The license stays valid until the end of the paid year. If the subscription shows no cancel option, [write to us](https://www.lazyblocks.com/contact/) and we cancel it. ## Manage sites Open **Licenses**, then **Manage Sites** on the key, to add or remove the site URLs it is active on. This is where to fix [Download Failed: Unauthorized](https://www.lazyblocks.com/docs/troubleshooting/download-failed-unauthorized/) after a license was activated on a temporary URL. ## Change the email [Write to us](https://www.lazyblocks.com/contact/) from the email the order was placed with and give us the new address. --- # Create Block Source: https://www.lazyblocks.com/docs/create-block/ Lazy Blocks allows you to create custom blocks with HTML or PHP output. You can build blocks for content display or create custom meta fields that can be accessed in your theme code. ## Getting Started 1. Navigate to **WordPress Admin → Lazy Blocks** 2. Click **Add New** button ## Setup Wizard When creating a new block, you'll first see the Setup Wizard screen where you can choose from predefined starter blocks: - **Basic** - Simple content block with basic controls - **Hero** - Hero section with background and text controls - **Testimonials** - Testimonial block with author and quote controls - **Alert** - Alert/notice block with message and type controls Each preset comes with its controls, code and styles already filled in. With Pro active the four presets keep their names and generate different code. Their text controls become [``](https://www.lazyblocks.com/docs/blocks-code/rich-text/) components, so a new block is edited in place on the canvas and comes out looking like the finished section rather than an empty one. Colors, links, images and repeater children keep their inspector controls. The generated CSS goes into the Style editor field, where the free plugin puts an inline `