register_chunk_translations( [ $this->block_name ] ); return $content; } $post_id = isset( $block->context['postId'] ) ? $block->context['postId'] : ''; $product = wc_get_product( $post_id ); if ( ! $product ) { return ''; } $product_sku = $product->get_sku(); if ( ! $product_sku ) { return ''; } $is_interactive = $product->is_type( ProductType::VARIABLE ); if ( $is_interactive ) { $variations = $product->get_available_variations( 'objects' ); $formatted_variations_data = array(); foreach ( $variations as $variation ) { $formatted_variations_data[ $variation->get_id() ] = array( 'sku' => $variation->get_sku(), ); } wp_interactivity_config( 'woocommerce', array( 'products' => array( $product->get_id() => array( 'sku' => $product_sku, 'variations' => $formatted_variations_data, ), ), ) ); wp_enqueue_script_module( 'woocommerce/product-elements' ); } $styles_and_classes = StyleAttributesUtils::get_classes_and_styles_by_attributes( $attributes ); $prefix = isset( $attributes['prefix'] ) ? wp_kses_post( ( $attributes['prefix'] ) ) : __( 'SKU: ', 'woocommerce' ); if ( ! empty( $prefix ) ) { $prefix = sprintf( '%s', $prefix ); } $suffix = isset( $attributes['suffix'] ) ? wp_kses_post( ( $attributes['suffix'] ) ) : ''; if ( ! empty( $suffix ) ) { $suffix = sprintf( '%s', $suffix ); } $interactive_attributes = $is_interactive ? 'data-wp-interactive="woocommerce/product-elements" data-wp-text="state.productData.sku"' : ''; return sprintf( '
%3$s %5$s %6$s
', esc_attr( $styles_and_classes['classes'] ), esc_attr( $styles_and_classes['styles'] ?? '' ), $prefix, $interactive_attributes, $product_sku, $suffix ); } }