diff --git a/apps/full-site-editing/full-site-editing-plugin/premium-content/blocks/buttons/edit.js b/apps/full-site-editing/full-site-editing-plugin/premium-content/blocks/buttons/edit.js index 130780f70b93e..6845b129c72a2 100644 --- a/apps/full-site-editing/full-site-editing-plugin/premium-content/blocks/buttons/edit.js +++ b/apps/full-site-editing/full-site-editing-plugin/premium-content/blocks/buttons/edit.js @@ -25,7 +25,7 @@ const alignmentHooksSetting = { }; function ButtonsEdit( { context, subscribeButton, setSubscribeButtonPlan } ) { - const planId = context[ 'premium-content/planId' ]; + const planId = context ? context[ 'premium-content/planId' ] : null; const template = [ [ diff --git a/apps/full-site-editing/full-site-editing-plugin/premium-content/blocks/buttons/index.js b/apps/full-site-editing/full-site-editing-plugin/premium-content/blocks/buttons/index.js index bcb378c768b3f..c0d1c65f233de 100644 --- a/apps/full-site-editing/full-site-editing-plugin/premium-content/blocks/buttons/index.js +++ b/apps/full-site-editing/full-site-editing-plugin/premium-content/blocks/buttons/index.js @@ -9,9 +9,10 @@ import { button as icon } from '@wordpress/icons'; */ import edit from './edit'; import save from './save'; +import { getCategoryWithFallbacks } from '../../../block-helpers'; const name = 'premium-content/buttons'; -const category = 'design'; +const category = getCategoryWithFallbacks( 'design', 'common' ); const settings = { name, diff --git a/apps/full-site-editing/full-site-editing-plugin/premium-content/blocks/login-button/index.js b/apps/full-site-editing/full-site-editing-plugin/premium-content/blocks/login-button/index.js index e5caca81e1520..5e0980e1302bc 100644 --- a/apps/full-site-editing/full-site-editing-plugin/premium-content/blocks/login-button/index.js +++ b/apps/full-site-editing/full-site-editing-plugin/premium-content/blocks/login-button/index.js @@ -9,9 +9,10 @@ import { __ } from '@wordpress/i18n'; */ import edit from './edit'; import save from './save'; +import { getCategoryWithFallbacks } from '../../../block-helpers'; const name = 'premium-content/login-button'; -const category = 'design'; +const category = getCategoryWithFallbacks( 'design', 'common' ); /** * @typedef {object} Attributes diff --git a/apps/full-site-editing/full-site-editing-plugin/premium-content/index.js b/apps/full-site-editing/full-site-editing-plugin/premium-content/index.js index 11b7abb3f1881..ef6bcafa61ffd 100644 --- a/apps/full-site-editing/full-site-editing-plugin/premium-content/index.js +++ b/apps/full-site-editing/full-site-editing-plugin/premium-content/index.js @@ -9,6 +9,10 @@ import { mergeWith } from 'lodash'; import apiFetch from '@wordpress/api-fetch'; import { getBlockType, registerBlockType, unregisterBlockType } from '@wordpress/blocks'; import { _x } from '@wordpress/i18n'; +import { + __experimentalAlignmentHookSettingsProvider, + __experimentalBlock, +} from '@wordpress/block-editor'; /** * Internal dependencies @@ -19,6 +23,10 @@ import * as loggedOutView from './blocks/logged-out-view'; import * as buttons from './blocks/buttons'; import * as loginButton from './blocks/login-button'; +const supportsDecoupledBlocks = !! ( + __experimentalAlignmentHookSettingsProvider && __experimentalBlock +); + /** * Function to register an individual block. * @@ -129,5 +137,7 @@ export const registerPremiumContentBlocks = () => { [ container, loggedOutView, subscriberView, buttons, loginButton ].forEach( registerBlock ); }; -registerPremiumContentBlocks(); -configurePremiumContentBlocks(); +if ( supportsDecoupledBlocks ) { + registerPremiumContentBlocks(); + configurePremiumContentBlocks(); +} diff --git a/apps/full-site-editing/full-site-editing-plugin/premium-content/premium-content.php b/apps/full-site-editing/full-site-editing-plugin/premium-content/premium-content.php index 4ceb74ce925eb..5abcc91e3e84e 100644 --- a/apps/full-site-editing/full-site-editing-plugin/premium-content/premium-content.php +++ b/apps/full-site-editing/full-site-editing-plugin/premium-content/premium-content.php @@ -156,7 +156,7 @@ function premium_content_current_visitor_can_access( $attributes, $block ) { $selected_plan_id = (int) $attributes['selectedPlanId']; } - if ( isset( $block->context['premium-content/planId'] ) ) { + if ( isset( $block ) && isset( $block->context['premium-content/planId'] ) ) { $selected_plan_id = (int) $block->context['premium-content/planId']; } @@ -217,7 +217,7 @@ function premium_content_container_render( $attributes, $content ) { * * @return string Content to render. */ -function premium_content_block_logged_out_view_render( $attributes, $content, $block ) { +function premium_content_block_logged_out_view_render( $attributes, $content, $block = null ) { if ( ! premium_content_pre_render_checks() ) { return ''; } @@ -246,7 +246,7 @@ function premium_content_block_logged_out_view_render( $attributes, $content, $b * * @return string Final content to render. */ -function premium_content_block_subscriber_view_render( $attributes, $content, $block ) { +function premium_content_block_subscriber_view_render( $attributes, $content, $block = null ) { if ( ! premium_content_pre_render_checks() ) { return ''; }