Automattic\WooCommerce\EmailEditor\Integrations\WooCommerce\Renderer\Blocks

Abstract_Product_Block_Renderer{}abstractWC 1.0└─ Block_Renderer, Abstract_Block_Renderer

Shared functionality for block renderers.

No Hooks.

Usage

$Abstract_Product_Block_Renderer = new Abstract_Product_Block_Renderer();
// use class methods

Methods

  1. protected get_product_from_context( array $parsed_block )

Abstract_Product_Block_Renderer{} code WC 10.7.0

abstract class Abstract_Product_Block_Renderer extends Abstract_Block_Renderer implements Block_Renderer {
	/**
	 * Get product from block context.
	 *
	 * @param array $parsed_block Parsed block.
	 * @return \WC_Product|null
	 */
	protected function get_product_from_context( array $parsed_block ): ?\WC_Product {
		$post_id = $parsed_block['context']['postId'] ?? 0;

		if ( ! $post_id ) {
			global $product;
			if ( $product && is_a( $product, 'WC_Product' ) ) {
				$post_id = $product->get_id();
			}
		}

		if ( ! $post_id ) {
			global $post;
			if ( $post && get_post_type( $post->ID ) === 'product' ) {
				$post_id = $post->ID;
			}
		}

		$product = $post_id ? wc_get_product( $post_id ) : null;
		return $product ? $product : null;
	}
}