'admin/BlockEditor/ProductInfo/ProductInfoBlockEditor.jsx', 'dependencies' => ['wp-blocks', 'wp-components'] ] ]; } public function getStyles(): array { return [ 'admin/BlockEditor/ProductInfo/style/product-info-block-editor.scss' ]; } public function localizeData(): array { return [ $this->getLocalizationKey() => [ 'slug' => $this->slugPrefix, 'name' => static::getEditorName(), 'title' => __('Product Info', 'fluent-cart'), 'description' => __('This block will display the product information.', 'fluent-cart'), 'placeholder_image' => Vite::getAssetUrl('images/placeholder.svg'), ], 'fluent_cart_block_translation' => TransStrings::blockStrings(), ]; } protected function skipInnerBlocks(): bool { return true; } public function render(array $shortCodeAttribute, $block = null) { AssetLoader::loadSingleProductAssets(); AssetLoader::enqueueProductInfoFrontendStyles(); $queryType = Arr::get($shortCodeAttribute, 'query_type', 'default'); $product = null; if ($queryType === 'default') { $product = fluent_cart_get_current_product(); $product && setup_postdata($product->ID); } else { $productId = Arr::get($shortCodeAttribute, 'product_id', false); if ($productId) { $product = Product::query()->with(['detail', 'variants'])->find($productId); if ($product) { setup_postdata($product->ID); } } } if (!$product) { return ''; } $innerBlocksContent = ''; if ($block instanceof \WP_Block && !empty($block->inner_blocks)) { $innerBlocksContent .= '