Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
subception
/
wp-content
/
plugins
/
woocommerce
/
src
/
Blocks
/
BlockTypes
/
Reviews
:
ProductReviews.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php declare( strict_types = 1 ); namespace Automattic\WooCommerce\Blocks\BlockTypes\Reviews; use Automattic\WooCommerce\Blocks\BlockTypes\AbstractBlock; use Automattic\WooCommerce\Blocks\BlockTypes\EnableBlockJsonAssetsTrait; use Automattic\WooCommerce\Blocks\Utils\StyleAttributesUtils; /** * ProductReviews class. */ class ProductReviews extends AbstractBlock { use EnableBlockJsonAssetsTrait; /** * Block name. * * @var string */ protected $block_name = 'product-reviews'; /** * Render the block. * * @param array $attributes Block attributes. * @param string $content Block content. * @param WP_Block $block Block instance. * * @return string Rendered block output. */ protected function render( $attributes, $content, $block ) { if ( empty( $block->parsed_block['innerBlocks'] ) ) { return $this->render_legacy_block( $attributes, $content, $block ); } if ( ! comments_open() ) { return ''; } $p = new \WP_HTML_Tag_Processor( $content ); $p->next_tag(); $p->set_attribute( 'data-wp-interactive', $this->get_full_block_name() ); $p->set_attribute( 'data-wp-router-region', $this->get_full_block_name() ); return $p->get_updated_html(); } /** * Previously, the Product Reviews block was a standalone block. It doesn't * have any inner blocks and it rendered the tabs directly like the classic * template. When upgrading, we want the existing stores using the block to * continue working as before, so we moved the logic the legacy render * method here. * * @param array $attributes Block attributes. * @param string $content Block content. * @param WP_Block $block Block instance. * * @return string Rendered block output. */ protected function render_legacy_block( $attributes, $content, $block ) { if ( ! is_singular( 'product' ) ) { return $content; } ob_start(); rewind_posts(); while ( have_posts() ) { the_post(); comments_template(); } $reviews = ob_get_clean(); return sprintf( '<div class="wp-block-woocommerce-product-reviews %1$s"> %2$s </div>', StyleAttributesUtils::get_classes_by_attributes( $attributes, array( 'extra_classes' ) ), $reviews ); } }