PluginProbe
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler / 1.7.1
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler v1.7.1
1.7.1 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 All 51 releases
← All changes | app/Hooks/Handlers/MenuHandler.php +23 -1 1.6.4 → 1.7.1 View file →
@@ -20,8 +20,9 @@
20 20 use FluentCart\App\Models\AttributeGroup;
21 21 use FluentCart\App\Models\ShippingMethod;
22 22 use FluentCart\App\Modules\Tax\TaxModule;
23 23 use FluentCart\App\Modules\FluentPlayer\FluentPlayerBridge;
24 +use FluentCart\App\Modules\AdminFooter\AdminFooter;
24 25 use FluentCart\App\Helpers\CurrenciesHelper;
25 26 use FluentCart\App\Services\Filter\TaxFilter;
26 27 use FluentCart\App\Services\Filter\OrderFilter;
27 28 use FluentCart\App\Services\Filter\LicenseFilter;
@@ -30,11 +31,13 @@
30 31 use FluentCart\App\Services\Filter\CustomerFilter;
31 32 use FluentCart\App\Services\Filter\CouponFilter;
32 33 use FluentCart\App\Services\Filter\LogFilter;
33 34 use FluentCart\App\Services\Filter\OrderBumpFilter;
35 +use FluentCart\App\Services\Filter\ReviewFilter;
34 36 use FluentCart\App\Modules\Shipping\Services\Filter\ShippingClassFilter;
35 37 use FluentCart\App\Modules\Shipping\Services\Filter\ShippingZoneFilter;
36 38 use FluentCart\App\Modules\Integrations\AddOnModule;
39 +use FluentCart\App\Services\DateTime\DayjsFormatter;
37 40 use FluentCart\App\Services\Translations\TransStrings;
38 41 use FluentCart\App\Services\Permission\PermissionManager;
39 42 use FluentCart\Database\DataBackfills;
40 43 use FluentCart\App\Modules\PaymentMethods\Core\GatewayManager;
@@ -50,8 +53,9 @@
50 53
51 54 if ($page == 'fluent-cart') {
52 55
53 56 \FluentCart\App\Events\FirstTimePluginActivation::handle();
57 + (new AdminFooter())->register();
54 58 add_action('admin_enqueue_scripts', function () {
55 59 Vite::enqueueStyle('fluent_cart_admin_app_css',
56 60 'styles/tailwind/style.css',
57 61 );
@@ -85,8 +89,9 @@
85 89 $targetKeys = [
86 90 'checkout_page_id' => __('Checkout Page', 'fluent-cart'),
87 91 'cart_page_id' => __('Cart Page', 'fluent-cart'),
88 92 'receipt_page_id' => __('Receipt Page', 'fluent-cart'),
93 + 'order_review_page_id' => __('Order Review Page', 'fluent-cart'),
89 94 'shop_page_id' => __('Shop Page', 'fluent-cart'),
90 95 'customer_profile_page_id' => __('Customer Profile Page', 'fluent-cart'),
91 96 ];
92 97
@@ -183,8 +188,22 @@
183 188 {
184 189
185 190 add_action('admin_menu', array($this, 'addAdminMenu'));
186 191
192 + // The "↳" children under Products stay visible on every page so the
193 + // sidebar never changes shape. Pro's "↳ Inventory" still hides itself
194 + // with inline CSS (it relied on the admin app to reveal it), so keep
195 + // that row visible whichever Pro version is installed.
196 + add_action('admin_enqueue_scripts', function () {
197 + wp_register_style('fluent-cart-admin-submenu', false);
198 + wp_enqueue_style('fluent-cart-admin-submenu');
199 + wp_add_inline_style('fluent-cart-admin-submenu', '
200 + #adminmenu .toplevel_page_fluent-cart li.fluent_cart_inventory {
201 + display: list-item;
202 + }
203 + ');
204 + });
205 +
187 206 /*
188 207 * Disable Gutenberg for Products
189 208 */
190 209 add_filter('parent_file', function ($parent_file) {
@@ -477,8 +496,9 @@
477 496 'product_filter_options' => ProductFilter::getTableFilterOptions(),
478 497 'license_filter_options' => LicenseFilter::getTableFilterOptions(),
479 498 'license_site_filter_options' => LicenseSiteFilter::getTableFilterOptions(),
480 499 'tax_filter_options' => TaxFilter::getTableFilterOptions(),
500 + 'review_filter_options' => ReviewFilter::getTableFilterOptions(),
481 501 ];
482 502 $filterOptions = apply_filters('fluent_cart/admin_filter_options', $filterOptions, []);
483 503
484 504 // Structured table config keyed by table name (used by Table.js base class)
@@ -490,8 +510,9 @@
490 510 'license_sites' => ['filters' => Arr::get($filterOptions, 'license_site_filter_options', [])],
491 511 'taxes_table' => ['filters' => Arr::get($filterOptions, 'tax_filter_options', [])],
492 512 'subscriptions' => ['filters' => Arr::get($filterOptions, 'subscription_filter_options', [])],
493 513 'shipping_zone_table' => ['filters' => Arr::get($filterOptions, 'shipping_zone_filter_options', [])],
514 + 'review_table' => ['filters' => Arr::get($filterOptions, 'review_filter_options', [])],
494 515 // The Order Sources report filters orders, so its advanced-filter UI
495 516 // reuses the Orders filter vocabulary rather than defining its own.
496 517 'source_report' => ['filters' => Arr::get($filterOptions, 'order_filter_options', [])],
497 518 ];
@@ -589,8 +610,9 @@
589 610 'is_tax_enabled' => TaxModule::isTaxEnabled(),
590 611 'eu_vat_county_options' => TaxModule::euVatCountyOptions(),
591 612 'country_tax_titles' => TaxModule::taxTitleLists(),
592 613 'site_url' => site_url(),
614 + 'store_logo' => (new \FluentCart\Api\StoreSettings())->get('store_logo.url', ''),
593 615 'modules_settings' => ModuleSettings::getAllSettings(),
594 616 'purchase_fluent_cart_link' => 'https://fluentcart.com/',
595 617 'admin_notices' => apply_filters('fluent_cart/admin_notices', []),
596 618 // POSTs data-backfills/run until done; endpoint requires manage_options
@@ -596,9 +618,9 @@
596 618 // POSTs data-backfills/run until done; endpoint requires manage_options
597 619 'has_data_migrations' => $hasDataMigrations,
598 620 'subscription_intervals' => Helper::getAvailableSubscriptionIntervalOptions(),
599 621
600 - 'datei18' => TransStrings::dateTimeStrings(),
622 + 'datei18' => DayjsFormatter::localizedStrings(),
601 623 'el_strings' => TransStrings::elStrings(),
602 624 'wp_locale' => get_locale(),
603 625 'is_full_name_required' => CheckoutFieldsSchema::isFullNameRequired(),
604 626 'business_details' => [