registerDependency(); $loadedOnce = true; $enableNavFloatingButton = apply_filters('fluent_cart/buttons/enable_floating_cart_button', true, []); if (!$enableNavFloatingButton) { return; } if (self::shouldHideCartDrawer()) { return; } static::initCartDrawer(); } public static function initCartDrawer(): void { static $loadedOnce = false; if ($loadedOnce) { return; } $loadedOnce = true; $cart = CartHelper::getCart(null, false); $itemCount = 0; if ($cart) { $itemCount = count($cart->cart_data ?? []); } $cartItems = Arr::get(CartResource::getStatus(), 'cart_data', []); if (empty($cartItems)) { return; } (new CartDrawerRenderer($cartItems, [ 'item_count' => $itemCount ]))->render(); } public function registerDependency(): void { AssetLoader::loadCartAssets(); } public function enqueueStyle() { $app = fluentCart(); $slug = $app->config->get('app.slug'); Vite::enqueueStyle( $slug . '-fluentcart-drawer', 'public/cart-drawer/cart-drawer.scss', ); } public static function shouldHideCartDrawer() { global $post; $currentPageId = $post->ID ?? null; $storeSettings = new StoreSettings(); $cartPageId = $storeSettings->getCheckoutPageId(); $receiptPageId = $storeSettings->getReceiptPageId(); if (!CartHelper::doingInstantCheckout() && $cartPageId != $currentPageId && $receiptPageId != $currentPageId) { return false; } return true; } }