Below is a differential between the unpatched vulnerable code and the patched update, for reference.
--- a/b-blocks/build/admin-dashboard.asset.php
+++ b/b-blocks/build/admin-dashboard.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('react', 'react-dom', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-i18n'), 'version' => '900725536788a14f1f2f');
--- a/b-blocks/build/admin-help.asset.php
+++ b/b-blocks/build/admin-help.asset.php
@@ -1 +0,0 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'f01e420d93515e5f76aa');
--- a/b-blocks/build/advanced-image/render.php
+++ b/b-blocks/build/advanced-image/render.php
@@ -0,0 +1,12 @@
+<?php
+$id = wp_unique_id( 'bBlocksAdvancedImage-' );
+extract( $attributes );
+
+?>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes(); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+ data-featured_image_url='<?php echo esc_attr( has_post_thumbnail() ? get_the_post_thumbnail_url( get_the_ID(), $layout['size'] ?? 'full' ) : '' ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/advanced-image/view.asset.php
+++ b/b-blocks/build/advanced-image/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'd11ce115da2f7c56db5d');
--- a/b-blocks/build/advanced.asset.php
+++ b/b-blocks/build/advanced.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array(), 'version' => '4bd1a0d451bb9442fd5b');
+<?php return array('dependencies' => array('react'), 'version' => '00a33456596ffef68727');
--- a/b-blocks/build/alert/render.php
+++ b/b-blocks/build/alert/render.php
@@ -2,4 +2,9 @@
$id = wp_unique_id( 'bBlocksAlert-' );
$planClass = BBlocksIncUtils::isPro() ? 'pro' : 'free';
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'></div>
No newline at end of file
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/alert/view.asset.php
+++ b/b-blocks/build/alert/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '444f966857a621a286d9');
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '0aa3a016acc0f9b9fdfd');
--- a/b-blocks/build/animated-text/render.php
+++ b/b-blocks/build/animated-text/render.php
@@ -2,4 +2,9 @@
$id = wp_unique_id( 'bBlocksAnimatedText-' );
$planClass = BBlocksIncUtils::isPro() ? 'pro' : 'free';
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'></div>
No newline at end of file
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/animated-text/view.asset.php
+++ b/b-blocks/build/animated-text/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'cbcdcc2a8336feae1ef1');
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'aa64903080dc9b1dbecb');
--- a/b-blocks/build/b-blocks-ai/content-generate-ai.asset.php
+++ b/b-blocks/build/b-blocks-ai/content-generate-ai.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('react', 'react-dom', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-i18n'), 'version' => 'f56e98d05d845778376f');
--- a/b-blocks/build/button-group/render.php
+++ b/b-blocks/build/button-group/render.php
@@ -2,4 +2,9 @@
$id = wp_unique_id( 'bBlocksButtonGroup-' );
$planClass = BBlocksIncUtils::isPro() ? 'pro' : 'free';
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'></div>
No newline at end of file
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/button-group/view.asset.php
+++ b/b-blocks/build/button-group/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '1c8b935874eb831bce69');
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '91eb135e3402bfcb08aa');
--- a/b-blocks/build/button/render.php
+++ b/b-blocks/build/button/render.php
@@ -14,10 +14,11 @@
} // Convert the blocks to dom elements
?>
<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
<?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
id='<?php echo esc_attr( $id ); ?>'
- data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
data-nonce='<?php echo esc_attr( wp_json_encode( wp_create_nonce( 'wp_ajax' ) ) ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
data-info='<?php echo esc_attr( wp_json_encode( [
'currentPostId' => get_the_ID(),
'userRoles' => is_user_logged_in() ? wp_get_current_user()->roles : [],
--- a/b-blocks/build/button/view.asset.php
+++ b/b-blocks/build/button/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '7486d8a452b32d299b9b');
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '3a62fd69e92f67157b81');
--- a/b-blocks/build/cards/render.php
+++ b/b-blocks/build/cards/render.php
@@ -2,4 +2,9 @@
$id = wp_unique_id( 'bBlocksCards-' );
$planClass = BBlocksIncUtils::isPro() ? 'pro' : 'free';
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'></div>
No newline at end of file
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/cards/view.asset.php
+++ b/b-blocks/build/cards/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '4331818106eda64029a2');
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'b304fdcb7bf6c0985f51');
--- a/b-blocks/build/chart/render.php
+++ b/b-blocks/build/chart/render.php
@@ -2,4 +2,9 @@
$id = wp_unique_id( 'bBlocksChart-' );
$planClass = BBlocksIncUtils::isPro() ? 'pro' : 'free';
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'></div>
No newline at end of file
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/chart/view.asset.php
+++ b/b-blocks/build/chart/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'f5e55d737b3e6620ef0c');
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'c2ea9d3c3fbd11fb72a0');
--- a/b-blocks/build/column/render.php
+++ b/b-blocks/build/column/render.php
@@ -6,8 +6,14 @@
$planClass = Utils::isPro() ? 'pro' : 'free';
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'>
- <div class='<?php echo esc_attr( $prefix ); ?>Style'></div>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+ data-columns='<?php echo esc_attr( $block->context['b-blocks/rowColumns'] ); ?>'
+ data-column-gap='<?php echo esc_attr( $block->context['b-blocks/rowColumnGap'] ); ?>'
+>
<div class='<?php echo esc_attr( $prefix ); ?>'>
<?php echo wp_kses( $content, Utils::allowedInnerHTML() ); ?>
--- a/b-blocks/build/column/view.asset.php
+++ b/b-blocks/build/column/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'd1ceb407af327f616ebb');
+<?php return array('dependencies' => array('react'), 'version' => 'b7c2c2845c51bb692351');
--- a/b-blocks/build/container/render.php
+++ b/b-blocks/build/container/render.php
@@ -14,8 +14,10 @@
$cSl = "$mainSl .$prefix" . "Content";
$bBlocksContainerCSS = "
- $mainSl{
+ #$id{
min-height: " . Utils::valForZero( $wrapper['minHeight'] ) . ";
+ }
+ $mainSl{
align-items: $horizontalAlign;
justify-content: $verticalAlign;
}
@@ -37,7 +39,10 @@
?>
-<div <?php echo get_block_wrapper_attributes(); ?> id='<?php echo esc_attr( $id ) ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>' data-bblocks-advanced='<?php echo esc_attr( wp_json_encode( $attributes['advanced'] ) ); ?>'>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes(); ?> id='<?php echo esc_attr( $id ) ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>' data-bblocks-advanced='<?php echo esc_attr( wp_json_encode( $attributes['advanced'] ) ); ?>'
+>
<style><?php echo esc_html( $bBlocksContainerCSS ); ?></style>
<div class='<?php echo esc_attr( $prefix ) ?>'>
--- a/b-blocks/build/container/view.asset.php
+++ b/b-blocks/build/container/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '12d12180bf3f83a96d29');
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '8e534ffd06df862ef472');
--- a/b-blocks/build/content-ticker/render.php
+++ b/b-blocks/build/content-ticker/render.php
@@ -0,0 +1,11 @@
+<?php
+$id = wp_unique_id('bBlocksContentTicker-' );
+$planClass = BBlocksIncUtils::isPro() ? 'pro' : 'free';
+?>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ <?php echo get_block_wrapper_attributes(); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
--- a/b-blocks/build/content-ticker/view.asset.php
+++ b/b-blocks/build/content-ticker/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'd719d418760e6ab93c34');
--- a/b-blocks/build/countdown/render.php
+++ b/b-blocks/build/countdown/render.php
@@ -3,6 +3,7 @@
$planClass = BBlocksIncUtils::isPro() ? 'pro' : 'free';
?>
<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
<?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
id='<?php echo esc_attr( $id ); ?>'
data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
--- a/b-blocks/build/countdown/view.asset.php
+++ b/b-blocks/build/countdown/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'da76d9d70c90f610b933');
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '2fde84be3f62065da64a');
--- a/b-blocks/build/counters/render.php
+++ b/b-blocks/build/counters/render.php
@@ -2,4 +2,9 @@
$id = wp_unique_id( 'bBlocksCounters-' );
$planClass = BBlocksIncUtils::isPro() ? 'pro' : 'free';
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'></div>
No newline at end of file
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/counters/view.asset.php
+++ b/b-blocks/build/counters/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '45744aa9d9200c28896a');
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '1e77d722a429b7c0195c');
--- a/b-blocks/build/cursor/cursor.asset.php
+++ b/b-blocks/build/cursor/cursor.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'e0814487a8d622814d47');
--- a/b-blocks/build/cursor/settings.asset.php
+++ b/b-blocks/build/cursor/settings.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('react', 'react-dom', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-editor', 'wp-i18n', 'wp-plugins'), 'version' => '1d8faa2fdbb1136f22f1');
--- a/b-blocks/build/data-table/render.php
+++ b/b-blocks/build/data-table/render.php
@@ -0,0 +1,9 @@
+<?php
+$id = wp_unique_id( 'data-table-' );
+?>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes(); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/data-table/view.asset.php
+++ b/b-blocks/build/data-table/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '034c6a4aceec79b85fc3');
--- a/b-blocks/build/dual-color-heading/render.php
+++ b/b-blocks/build/dual-color-heading/render.php
@@ -0,0 +1,9 @@
+<?php
+$id = wp_unique_id( 'dual-color-heading-' );
+?>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes(); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/dual-color-heading/view.asset.php
+++ b/b-blocks/build/dual-color-heading/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'c42774a90348f698943e');
--- a/b-blocks/build/facebook-embed/render.php
+++ b/b-blocks/build/facebook-embed/render.php
@@ -0,0 +1,8 @@
+<?php $id = wp_unique_id( 'bBlocksFacebookEmbed-' ); ?>
+
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes(); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
--- a/b-blocks/build/facebook-embed/view.asset.php
+++ b/b-blocks/build/facebook-embed/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '7ee11c2edca19127f94d');
--- a/b-blocks/build/facebook-page/render.php
+++ b/b-blocks/build/facebook-page/render.php
@@ -0,0 +1,9 @@
+<?php
+$id = wp_unique_id( 'bBlocksFacebookPage-' );
+?>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes(); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/facebook-page/view.asset.php
+++ b/b-blocks/build/facebook-page/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '4178fc0931d417cf6f37');
--- a/b-blocks/build/feature-boxes/render.php
+++ b/b-blocks/build/feature-boxes/render.php
@@ -63,7 +63,11 @@
extract( $attributes );
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>'>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+>
<style><?php echo esc_html( bBlocksFeatureBoxesStyle( $attributes, $id, $prefix ) ); ?></style>
<div class='<?php echo esc_attr( $prefix ); ?> columns-<?php echo esc_attr( $columns['desktop'] ); ?> columns-tablet-<?php echo esc_attr( $columns['tablet'] ); ?> columns-mobile-<?php echo esc_attr( $columns['mobile'] ); ?>'>
--- a/b-blocks/build/flip-boxes/render.php
+++ b/b-blocks/build/flip-boxes/render.php
@@ -2,4 +2,9 @@
$id = wp_unique_id( 'bBlocksFlipBoxes-' );
$planClass = BBlocksIncUtils::isPro() ? 'pro' : 'free';
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'></div>
No newline at end of file
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/flip-boxes/view.asset.php
+++ b/b-blocks/build/flip-boxes/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'df2a2a58b4b942e98563');
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '73b19ec332325eb0d33b');
--- a/b-blocks/build/gif/render.php
+++ b/b-blocks/build/gif/render.php
@@ -26,7 +26,11 @@
extract( $attributes );
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>'>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+>
<style><?php echo esc_html( bBlocksGifStyle( $attributes, $id, $prefix ) ); ?></style>
<div class='<?php echo esc_attr( $prefix ); ?>'>
--- a/b-blocks/build/html/render.php
+++ b/b-blocks/build/html/render.php
@@ -0,0 +1,9 @@
+<?php
+$id = wp_unique_id( 'bBlocksHtml-' );
+?>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes(); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/html/view.asset.php
+++ b/b-blocks/build/html/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '6b0b8ac78f2abad968eb');
--- a/b-blocks/build/icon-box/render.php
+++ b/b-blocks/build/icon-box/render.php
@@ -2,4 +2,10 @@
$id = wp_unique_id( 'bBlocksIconBox-' );
$planClass = BBlocksIncUtils::isPro() ? 'pro' : 'free';
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>' data-bblocks-advanced='<?php echo esc_attr( wp_json_encode( $attributes['advanced'] ) ); ?>'></div>
No newline at end of file
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+ data-bblocks-advanced='<?php echo esc_attr( wp_json_encode( $attributes['advanced'] ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/icon-box/view.asset.php
+++ b/b-blocks/build/icon-box/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '28a09085d0ad475364cf');
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '023b69cd01f0ef365856');
--- a/b-blocks/build/image-comparison/render.php
+++ b/b-blocks/build/image-comparison/render.php
@@ -2,4 +2,9 @@
$id = wp_unique_id( 'bBlocksImageCompare-' );
$planClass = BBlocksIncUtils::isPro() ? 'pro' : 'free';
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'></div>
No newline at end of file
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/image-comparison/view.asset.php
+++ b/b-blocks/build/image-comparison/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '1a558521d03fa5d8026f');
+<?php return array('dependencies' => array('react', 'react-dom', 'wp-i18n'), 'version' => 'fe3865051e27fd2e6385');
--- a/b-blocks/build/image-gallery/render.php
+++ b/b-blocks/build/image-gallery/render.php
@@ -40,7 +40,11 @@
extract( $attributes );
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>'>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+>
<style><?php echo esc_html( bBlocksImageGalleryStyle( $attributes, $id ) ); ?></style>
<div class='imgGalleryWrapper columns-<?php echo esc_attr( $columns['desktop'] ); ?> columns-tablet-<?php echo esc_attr( $columns['tablet'] ); ?> columns-mobile-<?php echo esc_attr( $columns['mobile'] ); ?>'>
@@ -49,19 +53,19 @@
$imgUrlLarge = !empty( $image['sizes']['large']['url'] ) ? $image['sizes']['large']['url'] : $imgUrl;
$imgAlt = $image['alt'] ? $image['alt'] : $image['title']; ?>
- <a class='imgGalleryImgLink'
+ <a class='imgGalleryImgLink'
<?php if( $isCap ){}else{ ?>
href='#'
data-fancybox='imgGalleryPreviewBtn'
data-src='<?php echo esc_url( $imgUrl ); ?>'
- data-srcset='<?php echo esc_url( $imgUrlLarge ); ?> 576w, <?php echo esc_url( $imgUrl ); ?> 992w'
- data-sizes='( max-width: 576px ) 576px, 992px'
+ data-srcset='<?php echo esc_url( $imgUrlLarge ); ?> 576w, <?php echo esc_url( $imgUrl ); ?> 1024w'
+ data-sizes='( max-width: 640px ) 640px, 1024px'
data-caption='<?php echo wp_kses_post( $image['caption'] ); ?>'
<?php } ?>>
<img src='<?php echo esc_url( $imgUrl ); ?>' alt='<?php echo esc_html( $imgAlt ); ?>' class='imgGalleryImg' />
- <?php if( $isCap && ( !empty( $imgAlt ) || $isPreview ) ){ ?>
+ <?php if( $isCap && $isPreview ){ ?>
<div class='imgGalleryImgCaption'>
<div class='captionContent'>
<?php echo !empty( $imgAlt ) ? "<h4>". wp_kses_post( $image['caption'] ) ."</h4>" : '' ; ?>
@@ -71,8 +75,8 @@
<button class='imgGalleryPreviewBtn'
data-fancybox='imgGalleryPreviewBtn'
data-src='<?php echo esc_url( $imgUrl ); ?>'
- data-srcset='<?php echo esc_url( $imgUrlLarge ); ?> 576w, <?php echo esc_url( $imgUrl ); ?> 992w'
- data-sizes='( max-width: 576px ) 576px, 992px'
+ data-srcset='<?php echo esc_url( $imgUrlLarge ); ?> 576w, <?php echo esc_url( $imgUrl ); ?> 1024w'
+ data-sizes='( max-width: 640px ) 640px, 1024px'
data-caption='<?php echo wp_kses_post( $image['caption'] ); ?>'>
<i class='fa fa-eye'></i><?php echo esc_html__( 'Preview', 'b-blocks' ); ?>
</button>
@@ -83,4 +87,4 @@
</a> <!-- Image Gallery Link -->
<?php } ?> <!-- Image Gallery Loop -->
</div> <!-- Image Gallery Wrapper -->
-</div>
No newline at end of file
+</div>
--- a/b-blocks/build/image-gallery/view.asset.php
+++ b/b-blocks/build/image-gallery/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array(), 'version' => 'ac3f115df801d2d92f35');
+<?php return array('dependencies' => array(), 'version' => '5135756fe7a8f78ae968');
--- a/b-blocks/build/image-hotspot/render.php
+++ b/b-blocks/build/image-hotspot/render.php
@@ -0,0 +1,9 @@
+<?php
+$id = wp_unique_id( 'image-hotspot-' );
+?>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes(); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/image-hotspot/view.asset.php
+++ b/b-blocks/build/image-hotspot/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '4d62c773c0ca25c74adb');
--- a/b-blocks/build/image-scroller/render.php
+++ b/b-blocks/build/image-scroller/render.php
@@ -0,0 +1,9 @@
+<?php
+$id = wp_unique_id( 'bBlocksImageScroller-' );
+?>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes(); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/image-scroller/view.asset.php
+++ b/b-blocks/build/image-scroller/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'de8880f4963500076ea3');
--- a/b-blocks/build/index.asset.php
+++ b/b-blocks/build/index.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-i18n', 'wp-rich-text'), 'version' => '7f8c07b37b1df9cd6b0c');
+<?php return array('dependencies' => array('react', 'react-dom', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-i18n', 'wp-rich-text'), 'version' => 'c3d2d8c34b80c2660ad7');
--- a/b-blocks/build/info-box/render.php
+++ b/b-blocks/build/info-box/render.php
@@ -62,8 +62,14 @@
$btnTab = $isLinkNewTab ? '_blank' : '';
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>'>
- <style><?php echo esc_html( bBlocksInfoBoxStyle( $attributes, $id, $prefix ) ); ?></style>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+>
+ <style>
+ <?php echo esc_html( bBlocksInfoBoxStyle( $attributes, $id, $prefix ) ); ?>
+ </style>
<div class='bBlocksInfoBox'>
<?php echo $isIcon && $icon['class'] ? "<div class='infoBoxIcon'><i class='". esc_html( $icon['class'] ) ."'></i></div>" : ''; ?>
--- a/b-blocks/build/login-form/render.php
+++ b/b-blocks/build/login-form/render.php
@@ -0,0 +1,12 @@
+<?php
+extract($attributes);
+ $id = wp_unique_id('bBlocksLoginForm-');
+?>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes(); ?>
+ id='<?php echo esc_attr($id); ?>'
+ data-nonce="<?php echo esc_attr(wp_create_nonce('wp_ajax')) ?>"
+ data-logged='<?php echo esc_attr( wp_json_encode( [ 'isLoggedIn' => is_user_logged_in(), 'logoutUrl' => esc_url( wp_logout_url( $additional['logoutRedirect'] ) ) ] ) ); ?>'
+ data-attributes='<?php echo esc_attr(wp_json_encode($attributes)); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/login-form/view.asset.php
+++ b/b-blocks/build/login-form/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'ee0211b5aec53c4de38a');
--- a/b-blocks/build/logo-slider/render.php
+++ b/b-blocks/build/logo-slider/render.php
@@ -0,0 +1,10 @@
+<?php
+$id = wp_unique_id( 'bBlocksLogoSlider-' );
+$planClass = BBlocksIncUtils::isPro() ? 'pro' : 'free';
+?>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/logo-slider/view.asset.php
+++ b/b-blocks/build/logo-slider/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'e03779f525776af08340');
--- a/b-blocks/build/lottie-player/render.php
+++ b/b-blocks/build/lottie-player/render.php
@@ -2,4 +2,9 @@
$id = wp_unique_id( 'bBlocksLottiePlayer-' );
$planClass = BBlocksIncUtils::isPro() ? 'pro' : 'free';
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'></div>
No newline at end of file
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/lottie-player/view.asset.php
+++ b/b-blocks/build/lottie-player/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '8a4096ccc0b0db86d622');
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '299db4a7c8a3d1f85051');
--- a/b-blocks/build/mailto/render.php
+++ b/b-blocks/build/mailto/render.php
@@ -35,8 +35,14 @@
extract( $attributes );
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>'>
- <style><?php echo esc_html( bBlocksMailtoStyle( $attributes, $id, $prefix ) ); ?></style>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+>
+ <style>
+ <?php echo esc_html( bBlocksMailtoStyle( $attributes, $id, $prefix ) ); ?>
+ </style>
<div class='<?php echo esc_attr( $prefix ); ?>'>
<a href='<?php echo 'mailto:' . esc_attr( sanitize_email( $receiverMail ) ); ?>' class='mailtoui mailtoButton'>
--- a/b-blocks/build/mailto/view.asset.php
+++ b/b-blocks/build/mailto/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array(), 'version' => '630901cb03a1e7c2721d');
+<?php return array('dependencies' => array(), 'version' => '9ee874f189809549976f');
--- a/b-blocks/build/navigation/render.php
+++ b/b-blocks/build/navigation/render.php
@@ -0,0 +1,26 @@
+<?php
+$prefix = 'bBlocksNavigation';
+$id = wp_unique_id( "$prefix-" );
+
+extract( $attributes );
+
+$orientation = $layout['orientation'];
+$isWrapMultipleLine = $layout['isWrapMultipleLine'];
+$displayMenu = $hamburger['displayMenu'];
+
+$align = ($orientation === 'is-vertical') ? 'vertical-align-' . $layout['verticalAlignment'] : 'horizontal-align-' . $layout['alignment'];
+
+$className = "$prefix $orientation $displayMenu ". ( $isWrapMultipleLine ? '' : 'no-wrap' ) ." $align";
+?>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes(); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+>
+ <div class='<?php echo esc_attr( $className ) ?>'>
+ <?php echo wp_kses( $content, BBlocksIncUtils::allowedInnerHTML() ); ?>
+ </div>
+</div>
+
+
--- a/b-blocks/build/navigation/view.asset.php
+++ b/b-blocks/build/navigation/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('react'), 'version' => 'f670a79d6f46f548654a');
--- a/b-blocks/build/posts/render.php
+++ b/b-blocks/build/posts/render.php
@@ -21,6 +21,7 @@
];
?>
<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
<?php echo get_block_wrapper_attributes( [ 'class' => "$planClass align$align" ] ); ?>
id='<?php echo esc_attr( $id ); ?>'
data-nonce='<?php echo esc_attr( wp_json_encode( wp_create_nonce( 'wp_ajax' ) ) ); ?>'
--- a/b-blocks/build/posts/view.asset.php
+++ b/b-blocks/build/posts/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '40b81d271243b5938082');
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '19c58d27c15c1601caad');
--- a/b-blocks/build/price-lists/render.php
+++ b/b-blocks/build/price-lists/render.php
@@ -64,7 +64,11 @@
extract( $attributes );
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>'>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+>
<style><?php echo esc_html( bBlocksPriceListsStyle( $attributes, $id, $prefix ) ); ?></style>
<div class='<?php echo esc_attr( $prefix ); ?> <?php echo esc_attr( $layout ?? 'vertical' ); ?> columns-<?php echo esc_attr( $columns['desktop'] ); ?> columns-tablet-<?php echo esc_attr( $columns['tablet'] ); ?> columns-mobile-<?php echo esc_attr( $columns['mobile'] ); ?>'>
--- a/b-blocks/build/pricing-table/render.php
+++ b/b-blocks/build/pricing-table/render.php
@@ -8,4 +8,9 @@
$isUltimate = false !== strpos($className, 'ultimate');
$basicClass = !$isStandard && !$isUltimate ? 'is-style-basic': '';
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => "$planClass $basicClass" ] ); ?> id='<?php echo esc_attr( $id ); ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'></div>
No newline at end of file
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => "$planClass $basicClass" ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/pricing-table/view.asset.php
+++ b/b-blocks/build/pricing-table/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'd9f63389f3f3106575c4');
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'a54eeb9dc05d0a676887');
--- a/b-blocks/build/qr-code/render.php
+++ b/b-blocks/build/qr-code/render.php
@@ -9,8 +9,14 @@
$qrUrl = "https://api.qrserver.com/v1/create-qr-code/?size=$dimension"."x"."$dimension&color=". str_replace( '#', '', $color ) ."&bgcolor=". str_replace( '#', '', $bgColor ) ."&ecc=L&qzone=1&data=$siteUrl";
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>'>
- <style><?php echo esc_html( $qrStyles ); ?></style>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+>
+ <style>
+ <?php echo esc_html( $qrStyles ); ?>
+ </style>
<div class='<?php echo esc_attr( $prefix ); ?>'>
<img src='<?php echo esc_url( $qrUrl ); ?>' alt='<?php echo esc_url( $url ); ?>' />
--- a/b-blocks/build/register-form/render.php
+++ b/b-blocks/build/register-form/render.php
@@ -0,0 +1,10 @@
+<?php
+$id = wp_unique_id( 'bBlocksRegisterForm-' );
+?>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes(); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+ data-nonce="<?php echo esc_attr(wp_create_nonce('wp_ajax')) ?>"
+></div>
No newline at end of file
--- a/b-blocks/build/register-form/view.asset.php
+++ b/b-blocks/build/register-form/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'cef559f3a3b5c8d8eb59');
--- a/b-blocks/build/row/render.php
+++ b/b-blocks/build/row/render.php
@@ -7,9 +7,12 @@
extract( $attributes );
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'>
- <div class='<?php echo esc_attr( $prefix ); ?>Style'></div>
-
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+>
<div class='<?php echo esc_attr( $prefix ); ?>'>
<?php echo wp_kses( $content, Utils::allowedInnerHTML() ); ?>
</div>
--- a/b-blocks/build/row/view.asset.php
+++ b/b-blocks/build/row/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '324f3cdf2b095eff9f56');
+<?php return array('dependencies' => array('react'), 'version' => 'a6106e7c09f64bcc60db');
--- a/b-blocks/build/script.asset.php
+++ b/b-blocks/build/script.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array(), 'version' => 'b73ccda4a2f13a7439c0');
+<?php return array('dependencies' => array(), 'version' => '025fc7c909bbc44b9229');
--- a/b-blocks/build/section-heading/render.php
+++ b/b-blocks/build/section-heading/render.php
@@ -39,8 +39,14 @@
extract( $attributes );
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>'>
- <style><?php echo esc_html( bBlocksSectionHeadingStyle( $attributes, $id, $prefix ) ); ?></style>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+>
+ <style>
+ <?php echo esc_html( bBlocksSectionHeadingStyle( $attributes, $id, $prefix ) ); ?>
+ </style>
<div class='bBlocksSectionHeading'>
<h2 class='sectionHeadingTitle'><?php echo wp_kses_post( $title ); ?></h2>
--- a/b-blocks/build/service/render.php
+++ b/b-blocks/build/service/render.php
@@ -2,4 +2,9 @@
$id = wp_unique_id( 'bBlocksService-' );
$planClass = BBlocksIncUtils::isPro() ? 'pro' : 'free';
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'></div>
No newline at end of file
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/service/view.asset.php
+++ b/b-blocks/build/service/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '582b20db3b7f76e2c8cc');
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'd241ed4c143b9d03c43a');
--- a/b-blocks/build/services/render.php
+++ b/b-blocks/build/services/render.php
@@ -5,7 +5,12 @@
extract( $attributes );
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+>
<div class='<?php echo esc_attr( $prefix ); ?>Style'></div>
<div class='<?php echo esc_attr( $prefix ); ?> <?php echo esc_attr( $layout ); ?> columns-<?php echo esc_attr( $columns['desktop'] ); ?> columns-tablet-<?php echo esc_attr( $columns['tablet'] ); ?> columns-mobile-<?php echo esc_attr( $columns['mobile'] ); ?>'>
--- a/b-blocks/build/services/view.asset.php
+++ b/b-blocks/build/services/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '613e982da4d28a7c7489');
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '2c76790cf0b4af84c30b');
--- a/b-blocks/build/shape-divider/render.php
+++ b/b-blocks/build/shape-divider/render.php
@@ -63,8 +63,14 @@
extract( $attributes );
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => "$planClass align$align" ] ); ?> id='<?php echo esc_attr( $id ); ?>'>
- <style><?php echo esc_html( bBlocksShapeDividerStyle( $attributes, $id, $prefix ) ); ?></style>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => "$planClass align$align" ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+>
+ <style>
+ <?php echo esc_html( bBlocksShapeDividerStyle( $attributes, $id, $prefix ) ); ?>
+ </style>
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 120' preserveAspectRatio='none'>
<?php echo wp_kses( bBlocksShapePath( $shape ), ['path' => [ 'd' => [], 'opacity' => [] ] ] ); ?>
--- a/b-blocks/build/shape-divider/view.asset.php
+++ b/b-blocks/build/shape-divider/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array(), 'version' => 'ae38866e1e2a98c316c6');
+<?php return array('dependencies' => array(), 'version' => '72e8664b5dfd4445d6de');
--- a/b-blocks/build/slider/render.php
+++ b/b-blocks/build/slider/render.php
@@ -2,4 +2,9 @@
$id = wp_unique_id( 'bBlocksSlider-' );
$planClass = BBlocksIncUtils::isPro() ? 'pro' : 'free';
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'></div>
No newline at end of file
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/slider/view.asset.php
+++ b/b-blocks/build/slider/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '74381272f8b5ff1df19a');
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'c39c81d63f8cd352f786');
--- a/b-blocks/build/social-share/render.php
+++ b/b-blocks/build/social-share/render.php
@@ -5,7 +5,11 @@
extract( $attributes );
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+>
<div class='<?php echo esc_attr( $prefix ); ?>Style'></div>
<ul class='<?php echo esc_attr( $prefix ); ?>'>
--- a/b-blocks/build/social-share/view.asset.php
+++ b/b-blocks/build/social-share/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '3a2312d7713803055822');
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'a8818d3763002e6cdfdd');
--- a/b-blocks/build/star-rating/render.php
+++ b/b-blocks/build/star-rating/render.php
@@ -2,4 +2,9 @@
$id = wp_unique_id( 'bBlocksRating-' );
$planClass = BBlocksIncUtils::isPro() ? 'pro' : 'free';
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'></div>
No newline at end of file
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/star-rating/view.asset.php
+++ b/b-blocks/build/star-rating/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'f5c11b4c10a090d57756');
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'c296614e51ab238f5b33');
--- a/b-blocks/build/svg-draw/render.php
+++ b/b-blocks/build/svg-draw/render.php
@@ -0,0 +1,9 @@
+<?php
+$id = wp_unique_id( 'bBlocksSvgDraw-' );
+?>
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes(); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/svg-draw/view.asset.php
+++ b/b-blocks/build/svg-draw/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'e9dab5c36844b011a1f9');
--- a/b-blocks/build/table-of-content/render.php
+++ b/b-blocks/build/table-of-content/render.php
@@ -0,0 +1,13 @@
+<?php
+if ( !defined( 'ABSPATH' ) ) { exit; }
+
+$id = wp_unique_id( 'tbcnbBlock-' );
+
+?>
+
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes(); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/table-of-content/view.asset.php
+++ b/b-blocks/build/table-of-content/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '31b18d3daf79b8c5ed73');
--- a/b-blocks/build/td-viewer/render.php
+++ b/b-blocks/build/td-viewer/render.php
@@ -2,4 +2,9 @@
$id = wp_unique_id( 'bBlocks3DViewer-' );
$planClass = BBlocksIncUtils::isPro() ? 'pro' : 'free';
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'></div>
No newline at end of file
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/td-viewer/view.asset.php
+++ b/b-blocks/build/td-viewer/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '04098465e2d42564049e');
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'c5572b20172efcabb83d');
--- a/b-blocks/build/team-members/render.php
+++ b/b-blocks/build/team-members/render.php
@@ -2,4 +2,9 @@
$id = wp_unique_id( 'bBlocksTeamMembers-' );
$planClass = BBlocksIncUtils::isPro() ? 'pro' : 'free';
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'></div>
No newline at end of file
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/team-members/view.asset.php
+++ b/b-blocks/build/team-members/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '70efa801434a64094156');
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'e34e00a1977f1fe69139');
--- a/b-blocks/build/template-library.asset.php
+++ b/b-blocks/build/template-library.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-dom-ready', 'wp-i18n'), 'version' => 'b65341d3d8e41f27b34e');
+<?php return array('dependencies' => array('react', 'react-dom', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-dom-ready', 'wp-i18n'), 'version' => 'f362624776923867694e');
--- a/b-blocks/build/video/render.php
+++ b/b-blocks/build/video/render.php
@@ -2,4 +2,9 @@
$id = wp_unique_id( 'bBlocksVideo-' );
$planClass = BBlocksIncUtils::isPro() ? 'pro' : 'free';
?>
-<div <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?> id='<?php echo esc_attr( $id ); ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'></div>
No newline at end of file
+<div
+ <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- get_block_wrapper_attributes() is properly escaped ?>
+ <?php echo get_block_wrapper_attributes( [ 'class' => $planClass ] ); ?>
+ id='<?php echo esc_attr( $id ); ?>'
+ data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'
+></div>
No newline at end of file
--- a/b-blocks/build/video/view.asset.php
+++ b/b-blocks/build/video/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '7d83802b5b0508fb6990');
+<?php return array('dependencies' => array('react', 'react-dom'), 'version' => '0663e2fdbf207a5fe769');
--- a/b-blocks/freemius/includes/class-freemius.php
+++ b/b-blocks/freemius/includes/class-freemius.php
@@ -110,6 +110,12 @@
private $_enable_anonymous = true;
/**
+ * @since 2.9.1
+ * @var string|null Hints the SDK whether the plugin supports parallel activation mode, preventing the auto-deactivation of the free version when the premium version is activated, and vice versa.
+ */
+ private $_premium_plugin_basename_from_parallel_activation;
+
+ /**
* @since 1.1.7.5
* @var bool Hints the SDK if plugin should run in anonymous mode (only adds feedback form).
*/
@@ -1651,6 +1657,31 @@
);
}
}
+
+ if (
+ $this->is_user_in_admin() &&
+ $this->is_parallel_activation() &&
+ $this->_premium_plugin_basename !== $this->_premium_plugin_basename_from_parallel_activation
+ ) {
+ $this->_premium_plugin_basename = $this->_premium_plugin_basename_from_parallel_activation;
+
+ register_activation_hook(
+ dirname( $this->_plugin_dir_path ) . '/' . $this->_premium_plugin_basename,
+ array( &$this, '_activate_plugin_event_hook' )
+ );
+ }
+ }
+
+ /**
+ * Determines if a plugin is running in parallel activation mode.
+ *
+ * @author Leo Fajardo (@leorw)
+ * @since 2.9.1
+ *
+ * @return bool
+ */
+ private function is_parallel_activation() {
+ return ! empty( $this->_premium_plugin_basename_from_parallel_activation );
}
/**
@@ -3598,7 +3629,7 @@
$this->delete_current_install( false );
- $license_key = false;
+ $license = null;
if (
is_object( $this->_license ) &&
@@ -3606,20 +3637,21 @@
( WP_FS__IS_LOCALHOST_FOR_SERVER || FS_Site::is_localhost_by_address( self::get_unfiltered_site_url() ) )
)
) {
- $license_key = $this->_license->secret_key;
+ $license = $this->_license;
}
return $this->opt_in(
false,
false,
false,
- $license_key,
+ ( is_object( $license ) ? $license->secret_key : false ),
false,
false,
false,
null,
array(),
- false
+ false,
+ ( is_object( $license ) ? $license->user_id : null )
);
}
@@ -4463,33 +4495,31 @@
return;
}
- if ( $this->has_api_connectivity() ) {
- if ( self::is_cron() ) {
- $this->hook_callback_to_sync_cron();
- } else if ( $this->is_user_in_admin() ) {
- /**
- * Schedule daily data sync cron if:
- *
- * 1. User opted-in (for tracking).
- * 2. If skipped, but later upgraded (opted-in via upgrade).
- *
- * @author Vova Feldman (@svovaf)
- * @since 1.1.7.3
- *
- */
- if ( $this->is_registered() && $this->is_tracking_allowed() ) {
- $this->maybe_schedule_sync_cron();
- }
+ $this->hook_callback_to_sync_cron();
- /**
- * Check if requested for manual blocking background sync.
- */
- if ( fs_request_has( 'background_sync' ) ) {
- self::require_pluggable_essentials();
- self::wp_cookie_constants();
+ if ( $this->has_api_connectivity() && ! self::is_cron() && $this->is_user_in_admin() ) {
+ /**
+ * Schedule daily data sync cron if:
+ *
+ * 1. User opted-in (for tracking).
+ * 2. If skipped, but later upgraded (opted-in via upgrade).
+ *
+ * @author Vova Feldman (@svovaf)
+ * @since 1.1.7.3
+ *
+ */
+ if ( $this->is_registered() && $this->is_tracking_allowed() ) {
+ $this->maybe_schedule_sync_cron();
+ }
- $this->run_manual_sync();
- }
+ /**
+ * Check if requested for manual blocking background sync.
+ */
+ if ( fs_request_has( 'background_sync' ) ) {
+ self::require_pluggable_essentials();
+ self::wp_cookie_constants();
+
+ $this->run_manual_sync();
}
}
@@ -5155,11 +5185,35 @@
$this->_plugin :
new FS_Plugin();
+ $is_premium = $this->get_bool_option( $plugin_info, 'is_premium', true );
$premium_suffix = $this->get_option( $plugin_info, 'premium_suffix', '(Premium)' );
+ $module_type = $this->get_option( $plugin_info, 'type', $this->_module_type );
+
+ $parallel_activation = $this->get_option( $plugin_info, 'parallel_activation' );
+
+ if (
+ ! $is_premium &&
+ is_array( $parallel_activation ) &&
+ ( WP_FS__MODULE_TYPE_PLUGIN === $module_type ) &&
+ $this->get_bool_option( $parallel_activation, 'enabled' )
+ ) {
+ $premium_basename = $this->get_option( $parallel_activation, 'premium_version_basename' );
+
+ if ( empty( $premium_basename ) ) {
+ throw new Exception('You need to specify the premium version basename to enable parallel version activation.');
+ }
+
+ $this->_premium_plugin_basename_from_parallel_activation = $premium_basename;
+
+ if ( is_plugin_active( $premium_basename ) ) {
+ $is_premium = true;
+ }
+ }
+
$plugin->update( array(
'id' => $id,
- 'type' => $this->get_option( $plugin_info, 'type', $this->_module_type ),
+ 'type' => $module_t