| @@ -142,14 +142,14 @@ | ||
| 142 | 142 | define( 'CARTFLOWS_BASE', plugin_basename( CARTFLOWS_FILE ) ); |
| 143 | 143 | define( 'CARTFLOWS_DIR', plugin_dir_path( CARTFLOWS_FILE ) ); |
| 144 | 144 | define( 'CARTFLOWS_URL', plugins_url( '/', CARTFLOWS_FILE ) ); |
| 145 | 145 | |
| 146 | - define( 'CARTFLOWS_VER', '3.0.1' ); | |
| 146 | + define( 'CARTFLOWS_VER', '3.3.0' ); | |
| 147 | 147 | define( 'CARTFLOWS_SLUG', 'cartflows' ); |
| 148 | 148 | define( 'CARTFLOWS_SETTINGS', 'cartflows_settings' ); |
| 149 | 149 | define( 'CARTFLOWS_NAME', 'CartFlows' ); |
| 150 | 150 | |
| 151 | - define( 'CARTFLOWS_REQ_CF_PRO_VER', '3.0.0' ); | |
| 151 | + define( 'CARTFLOWS_REQ_CF_PRO_VER', '3.2.0' ); | |
| 152 | 152 | |
| 153 | 153 | // Resolves to true for users upgrading from <3.0.0 (set by Cartflows_Update on first 3.0+ admin_init) |
| 154 | 154 | // and stays true until the user opts out via the Advanced-tab toggle or the legacy in-app switch. |
| 155 | 155 | // Fresh installs never see this option set, so they default to the new UI. The toggle saves |
| @@ -342,8 +342,12 @@ | ||
| 342 | 342 | |
| 343 | 343 | /* Admin Helper */ |
| 344 | 344 | include_once CARTFLOWS_DIR . 'classes/class-cartflows-helper.php'; |
| 345 | 345 | |
| 346 | + /* Title and SKU scoped search behind the admin product pickers */ | |
| 347 | + include_once CARTFLOWS_DIR . 'classes/class-cartflows-product-search.php'; | |
| 348 | + include_once CARTFLOWS_DIR . 'classes/class-cartflows-coupon-search.php'; | |
| 349 | + | |
| 346 | 350 | /* Factory objects */ |
| 347 | 351 | include_once CARTFLOWS_DIR . 'classes/class-cartflows-step-factory.php'; |
| 348 | 352 | |
| 349 | 353 | /* Meta Default Values */ |
| @@ -352,9 +356,9 @@ | ||
| 352 | 356 | require_once CARTFLOWS_DIR . 'classes/class-cartflows-tracking.php'; |
| 353 | 357 | require_once CARTFLOWS_DIR . 'classes/class-cartflows-rollback.php'; |
| 354 | 358 | |
| 355 | 359 | if ( is_admin() ) { |
| 356 | - require_once CARTFLOWS_DIR . 'libraries/astra-notices/class-astra-notices.php'; | |
| 360 | + require_once CARTFLOWS_DIR . 'libraries/astra-notices/class-bsf-admin-notices.php'; | |
| 357 | 361 | } |
| 358 | 362 | |
| 359 | 363 | if ( ! class_exists( 'BSF_Analytics_Loader' ) ) { |
| 360 | 364 | require_once CARTFLOWS_DIR . 'libraries/bsf-analytics/class-bsf-analytics-loader.php'; |
| @@ -453,8 +457,11 @@ | ||
| 453 | 457 | |
| 454 | 458 | /* Admin Meta Fields*/ |
| 455 | 459 | include_once CARTFLOWS_DIR . 'classes/fields/typography/class-cartflows-font-families.php'; |
| 456 | 460 | |
| 461 | + // Learn progress — shared by the Learn REST route and the analytics payload. | |
| 462 | + include_once CARTFLOWS_DIR . 'classes/class-cartflows-learn-progress.php'; | |
| 463 | + | |
| 457 | 464 | // Analytics — BSF Analytics Events integration. Loaded on every request so the |
| 458 | 465 | // bsf_core_stats filter is registered for both frontend and admin transmissions. |
| 459 | 466 | include_once CARTFLOWS_DIR . 'classes/class-cartflows-analytics.php'; |
| 460 | 467 | |
| @@ -462,8 +469,10 @@ | ||
| 462 | 469 | |
| 463 | 470 | /* Admin helper */ |
| 464 | 471 | include_once CARTFLOWS_DIR . 'classes/class-cartflows-admin.php'; |
| 465 | 472 | |
| 473 | + /* Dashboard widget — funnel performance summary on wp-admin/index.php. */ | |
| 474 | + include_once CARTFLOWS_DIR . 'classes/class-cartflows-dashboard-widget.php'; | |
| 466 | 475 | } |
| 467 | 476 | |
| 468 | 477 | /* Admin loader — fork between legacy (admin-legacy-core/) and current (admin-core/) UI. */ |
| 469 | 478 | if ( defined( 'CARTFLOWS_LEGACY_ADMIN' ) && CARTFLOWS_LEGACY_ADMIN ) { |
| @@ -505,8 +514,9 @@ | ||
| 505 | 514 | include_once CARTFLOWS_DIR . 'modules/thankyou/class-cartflows-thankyou.php'; |
| 506 | 515 | include_once CARTFLOWS_DIR . 'modules/optin/class-cartflows-optin.php'; |
| 507 | 516 | include_once CARTFLOWS_DIR . 'modules/woo-dynamic-flow/class-cartflows-woo-dynamic-flow.php'; |
| 508 | 517 | include_once CARTFLOWS_DIR . 'modules/email-report/class-cartflows-admin-report-emails.php'; |
| 518 | + include_once CARTFLOWS_DIR . 'modules/frequently-bought-together/class-cartflows-fbt.php'; | |
| 509 | 519 | } |
| 510 | 520 | |
| 511 | 521 | if ( class_exists( '\Elementor\Plugin' ) ) { |
| 512 | 522 | // Load the widgets. |
| @@ -526,8 +536,10 @@ | ||
| 526 | 536 | |
| 527 | 537 | // Abilities API (WordPress 6.9+). |
| 528 | 538 | require_once CARTFLOWS_DIR . 'abilities/class-cartflows-abilities-loader.php'; |
| 529 | 539 | include_once CARTFLOWS_DIR . 'modules/webhook/class-cartflows-webhook-loader.php'; |
| 540 | + | |
| 541 | + include_once CARTFLOWS_DIR . 'modules/content-generation/class-cartflows-ai-init.php'; | |
| 530 | 542 | } |
| 531 | 543 | |
| 532 | 544 | /** |
| 533 | 545 | * Load Core Components. |