| @@ -10,11 +10,11 @@ | ||
| 10 | 10 | use FluentCart\App\Helpers\Helper; |
| 11 | 11 | //use FluentCart\App\Hooks\Handlers\ShortCodes\Buttons\AddToCartShortcode; |
| 12 | 12 | use FluentCart\App\Models\ProductDetail; |
| 13 | 13 | use FluentCart\App\Modules\Templating\AssetLoader; |
| 14 | +use FluentCart\App\Services\Renderer\RenderContext; | |
| 14 | 15 | use FluentCart\App\Services\Renderer\ShopAppRenderer; |
| 15 | 16 | use FluentCart\App\Services\TemplateService; |
| 16 | -use FluentCart\App\Vite; | |
| 17 | 17 | use FluentCart\Framework\Support\Arr; |
| 18 | 18 | use FluentCart\Framework\Support\Str; |
| 19 | 19 | |
| 20 | 20 | class ShopAppHandler |
| @@ -44,9 +44,17 @@ | ||
| 44 | 44 | $this->enqueueStyles(); |
| 45 | 45 | } |
| 46 | 46 | }, 5); |
| 47 | 47 | add_shortcode(static::SHORT_CODE, function ($shortcodeAttributes, $content, $block) { |
| 48 | - return $this->handelShortcodeCall($shortcodeAttributes); | |
| 48 | + // The shop shortcode registers its own closure rather than going | |
| 49 | + // through ShortCode::register(), so it declares itself separately. | |
| 50 | + return RenderContext::declaring( | |
| 51 | + RenderContext::SOURCE_SHORTCODE, | |
| 52 | + static::SHORT_CODE, | |
| 53 | + function () use ($shortcodeAttributes) { | |
| 54 | + return $this->handelShortcodeCall($shortcodeAttributes); | |
| 55 | + } | |
| 56 | + ); | |
| 49 | 57 | }); |
| 50 | 58 | } |
| 51 | 59 | |
| 52 | 60 | public function handelShortcodeCall($shortcodeAttributes) |
| @@ -236,9 +244,9 @@ | ||
| 236 | 244 | |
| 237 | 245 | $allProducts = $this->getInitialProducts(); |
| 238 | 246 | $this->defaultViewData = [ |
| 239 | 247 | 'products' => Arr::get($allProducts, 'products', []), |
| 240 | - 'placeholder_image' => Vite::getAssetUrl('images/placeholder.svg'), | |
| 248 | + 'placeholder_image' => Helper::getProductPlaceholderUrl(), | |
| 241 | 249 | 'paginator' => $this->shortcodeAttributes['paginator'], |
| 242 | 250 | 'view_mode' => $this->shortcodeAttributes['view_mode'], |
| 243 | 251 | 'price_format' => $this->shortcodeAttributes['price_format'], |
| 244 | 252 | 'per_page' => $this->shortcodeAttributes['per_page'], |