Automattic\WooCommerce\Blocks\BlockTypes

AddToCartForm::render()protectedWC 1.0

Render the block.

Метод класса: AddToCartForm{}

Хуки из метода

Возвращает

Строку. | void Rendered block output.

Использование

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->render( $attributes, $content, $block );
$attributes(массив) (обязательный)
Block attributes.
$content(строка) (обязательный)
Block content.
$block(WP_Block) (обязательный)
Block instance.

Код AddToCartForm::render() WC 7.7.2

protected function render( $attributes, $content, $block ) {
	global $product;

	$post_id = $block->context['postId'];

	if ( ! isset( $post_id ) ) {
		return '';
	}

	if ( ! $product instanceof \WC_Product ) {
		$product = wc_get_product( $post_id );
		if ( ! $product instanceof \WC_Product ) {
			return '';
		}
	}

	ob_start();

	/**
	 * Trigger the single product add to cart action for each product type.
	*
	* @since 9.7.0
	*/
	do_action( 'woocommerce_' . $product->get_type() . '_add_to_cart' );

	$product = ob_get_clean();

	if ( ! $product ) {
		return '';
	}

	$classname          = $attributes['className'] ?? '';
	$classes_and_styles = StyleAttributesUtils::get_classes_and_styles_by_attributes( $attributes );

	return sprintf(
		'<div class="wp-block-add-to-cart-form %1$s %2$s" style="%3$s">%4$s</div>',
		esc_attr( $classes_and_styles['classes'] ),
		esc_attr( $classname ),
		esc_attr( $classes_and_styles['styles'] ),
		$product
	);
}