PluginProbe
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler / 1.7.0
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler v1.7.0
1.7.0 1.6.6 1.6.5 1.6.4 1.6.3 1.6.2 1.6.1 1.6.0 1.5.4 1.5.5 1.5.3 1.5.2 1.5.1 1.5.0 1.4.2 1.4.1 1.4.0 1.3.28 1.3.27 1.3.26 1.3.25 1.3.23 1.3.22 1.3.21 1.3.20 All 50 releases
← All changes | app/Hooks/Handlers/MenuHandler.php +11 -1 1.6.3 → 1.7.0 View file →
@@ -19,8 +19,10 @@
19 19 use FluentCart\App\Models\AttributeTerm;
20 20 use FluentCart\App\Models\AttributeGroup;
21 21 use FluentCart\App\Models\ShippingMethod;
22 22 use FluentCart\App\Modules\Tax\TaxModule;
23 +use FluentCart\App\Modules\FluentPlayer\FluentPlayerBridge;
24 +use FluentCart\App\Modules\AdminFooter\AdminFooter;
23 25 use FluentCart\App\Helpers\CurrenciesHelper;
24 26 use FluentCart\App\Services\Filter\TaxFilter;
25 27 use FluentCart\App\Services\Filter\OrderFilter;
26 28 use FluentCart\App\Services\Filter\LicenseFilter;
@@ -29,11 +31,13 @@
29 31 use FluentCart\App\Services\Filter\CustomerFilter;
30 32 use FluentCart\App\Services\Filter\CouponFilter;
31 33 use FluentCart\App\Services\Filter\LogFilter;
32 34 use FluentCart\App\Services\Filter\OrderBumpFilter;
35 +use FluentCart\App\Services\Filter\ReviewFilter;
33 36 use FluentCart\App\Modules\Shipping\Services\Filter\ShippingClassFilter;
34 37 use FluentCart\App\Modules\Shipping\Services\Filter\ShippingZoneFilter;
35 38 use FluentCart\App\Modules\Integrations\AddOnModule;
39 +use FluentCart\App\Services\DateTime\DayjsFormatter;
36 40 use FluentCart\App\Services\Translations\TransStrings;
37 41 use FluentCart\App\Services\Permission\PermissionManager;
38 42 use FluentCart\Database\DataBackfills;
39 43 use FluentCart\App\Modules\PaymentMethods\Core\GatewayManager;
@@ -49,8 +53,9 @@
49 53
50 54 if ($page == 'fluent-cart') {
51 55
52 56 \FluentCart\App\Events\FirstTimePluginActivation::handle();
57 + (new AdminFooter())->register();
53 58 add_action('admin_enqueue_scripts', function () {
54 59 Vite::enqueueStyle('fluent_cart_admin_app_css',
55 60 'styles/tailwind/style.css',
56 61 );
@@ -84,8 +89,9 @@
84 89 $targetKeys = [
85 90 'checkout_page_id' => __('Checkout Page', 'fluent-cart'),
86 91 'cart_page_id' => __('Cart Page', 'fluent-cart'),
87 92 'receipt_page_id' => __('Receipt Page', 'fluent-cart'),
93 + 'order_review_page_id' => __('Order Review Page', 'fluent-cart'),
88 94 'shop_page_id' => __('Shop Page', 'fluent-cart'),
89 95 'customer_profile_page_id' => __('Customer Profile Page', 'fluent-cart'),
90 96 ];
91 97
@@ -476,8 +482,9 @@
476 482 'product_filter_options' => ProductFilter::getTableFilterOptions(),
477 483 'license_filter_options' => LicenseFilter::getTableFilterOptions(),
478 484 'license_site_filter_options' => LicenseSiteFilter::getTableFilterOptions(),
479 485 'tax_filter_options' => TaxFilter::getTableFilterOptions(),
486 + 'review_filter_options' => ReviewFilter::getTableFilterOptions(),
480 487 ];
481 488 $filterOptions = apply_filters('fluent_cart/admin_filter_options', $filterOptions, []);
482 489
483 490 // Structured table config keyed by table name (used by Table.js base class)
@@ -489,8 +496,9 @@
489 496 'license_sites' => ['filters' => Arr::get($filterOptions, 'license_site_filter_options', [])],
490 497 'taxes_table' => ['filters' => Arr::get($filterOptions, 'tax_filter_options', [])],
491 498 'subscriptions' => ['filters' => Arr::get($filterOptions, 'subscription_filter_options', [])],
492 499 'shipping_zone_table' => ['filters' => Arr::get($filterOptions, 'shipping_zone_filter_options', [])],
500 + 'review_table' => ['filters' => Arr::get($filterOptions, 'review_filter_options', [])],
493 501 // The Order Sources report filters orders, so its advanced-filter UI
494 502 // reuses the Orders filter vocabulary rather than defining its own.
495 503 'source_report' => ['filters' => Arr::get($filterOptions, 'order_filter_options', [])],
496 504 ];
@@ -523,8 +531,9 @@
523 531 $appConfig['version'] = FLUENTCART_VERSION;
524 532 $appConfig['permissions'] = PermissionManager::getUserPermissions();
525 533 $appConfig['isProActive'] = App::isProActive();
526 534 $appConfig['proVersion'] = defined('FLUENTCART_PRO_PLUGIN_VERSION') ? FLUENTCART_PRO_PLUGIN_VERSION : null;
535 + $appConfig['fluentPlayer'] = FluentPlayerBridge::adminAppConfig();
527 536
528 537 $appConfig['logos'] = [
529 538 'dark' => Vite::getAssetUrl('images/logo/logo-full-dark.svg'),
530 539 'light' => Vite::getAssetUrl('images/logo/logo-full.svg'),
@@ -587,8 +596,9 @@
587 596 'is_tax_enabled' => TaxModule::isTaxEnabled(),
588 597 'eu_vat_county_options' => TaxModule::euVatCountyOptions(),
589 598 'country_tax_titles' => TaxModule::taxTitleLists(),
590 599 'site_url' => site_url(),
600 + 'store_logo' => (new \FluentCart\Api\StoreSettings())->get('store_logo.url', ''),
591 601 'modules_settings' => ModuleSettings::getAllSettings(),
592 602 'purchase_fluent_cart_link' => 'https://fluentcart.com/',
593 603 'admin_notices' => apply_filters('fluent_cart/admin_notices', []),
594 604 // POSTs data-backfills/run until done; endpoint requires manage_options
@@ -594,9 +604,9 @@
594 604 // POSTs data-backfills/run until done; endpoint requires manage_options
595 605 'has_data_migrations' => $hasDataMigrations,
596 606 'subscription_intervals' => Helper::getAvailableSubscriptionIntervalOptions(),
597 607
598 - 'datei18' => TransStrings::dateTimeStrings(),
608 + 'datei18' => DayjsFormatter::localizedStrings(),
599 609 'el_strings' => TransStrings::elStrings(),
600 610 'wp_locale' => get_locale(),
601 611 'is_full_name_required' => CheckoutFieldsSchema::isFullNameRequired(),
602 612 'business_details' => [