Changeset 3441725
- Timestamp:
- 01/18/2026 12:53:44 AM (3 months ago)
- Location:
- tablecrafter-wp-data-tables
- Files:
-
- 8 added
- 15 deleted
- 3 edited
- 17 copied
-
tags/3.2.2 (copied) (copied from tablecrafter-wp-data-tables/trunk)
-
tags/3.2.2/ADVANCED_EXPORT_IMPACT_REPORT.md (deleted)
-
tags/3.2.2/AUTO_REFRESH_BUSINESS_IMPACT.md (copied) (copied from tablecrafter-wp-data-tables/trunk/AUTO_REFRESH_BUSINESS_IMPACT.md)
-
tags/3.2.2/CHANGELOG.md (deleted)
-
tags/3.2.2/DEPLOYMENT_VERIFICATION_v3.1.0.md (copied) (copied from tablecrafter-wp-data-tables/trunk/DEPLOYMENT_VERIFICATION_v3.1.0.md)
-
tags/3.2.2/GITHUB_ISSUE_ADVANCED_EXPORT.md (deleted)
-
tags/3.2.2/GITHUB_ISSUE_DRAFT.md (deleted)
-
tags/3.2.2/GITHUB_ISSUE_EXPORT_SUITE.md (deleted)
-
tags/3.2.2/IMPACT_REPORT-elementor-activation-fatal-error.md (added)
-
tags/3.2.2/IMPACT_REPORT-mobile-user-experience.md (copied) (copied from tablecrafter-wp-data-tables/trunk/IMPACT_REPORT-mobile-user-experience.md)
-
tags/3.2.2/IMPACT_REPORT-xss-vulnerability.md (copied) (copied from tablecrafter-wp-data-tables/trunk/IMPACT_REPORT-xss-vulnerability.md)
-
tags/3.2.2/IMPACT_REPORT.md (deleted)
-
tags/3.2.2/LARGE_DATASET_IMPACT_REPORT.md (deleted)
-
tags/3.2.2/assets/css/tablecrafter.css (copied) (copied from tablecrafter-wp-data-tables/trunk/assets/css/tablecrafter.css)
-
tags/3.2.2/assets/js/admin.js (copied) (copied from tablecrafter-wp-data-tables/trunk/assets/js/admin.js)
-
tags/3.2.2/assets/js/elementor-preview.js (copied) (copied from tablecrafter-wp-data-tables/trunk/assets/js/elementor-preview.js)
-
tags/3.2.2/assets/js/performance-optimizer.js (copied) (copied from tablecrafter-wp-data-tables/trunk/assets/js/performance-optimizer.js)
-
tags/3.2.2/assets/js/tablecrafter.js (copied) (copied from tablecrafter-wp-data-tables/trunk/assets/js/tablecrafter.js)
-
tags/3.2.2/dev-log.md (deleted)
-
tags/3.2.2/docs (deleted)
-
tags/3.2.2/includes (copied) (copied from tablecrafter-wp-data-tables/trunk/includes)
-
tags/3.2.2/includes/class-tc-elementor-widget.php (copied) (copied from tablecrafter-wp-data-tables/trunk/includes/class-tc-elementor-widget.php) (5 diffs)
-
tags/3.2.2/includes/class-tc-elementor-widget.php.backup (copied) (copied from tablecrafter-wp-data-tables/trunk/includes/class-tc-elementor-widget.php.backup)
-
tags/3.2.2/includes/class-tc-performance-optimizer.php (copied) (copied from tablecrafter-wp-data-tables/trunk/includes/class-tc-performance-optimizer.php)
-
tags/3.2.2/package-lock.json (deleted)
-
tags/3.2.2/package.json (deleted)
-
tags/3.2.2/playwright.config.js (deleted)
-
tags/3.2.2/readme.txt (copied) (copied from tablecrafter-wp-data-tables/trunk/readme.txt) (3 diffs)
-
tags/3.2.2/run-export-tests.js (deleted)
-
tags/3.2.2/tablecrafter.php (copied) (copied from tablecrafter-wp-data-tables/trunk/tablecrafter.php) (2 diffs)
-
tags/3.2.2/test-accessibility.js (copied) (copied from tablecrafter-wp-data-tables/trunk/test-accessibility.js)
-
tags/3.2.2/test-activation-fix.php (added)
-
tags/3.2.2/test-auto-refresh.html (deleted)
-
tags/3.2.2/test-edge-cases.php (added)
-
tags/3.2.2/test-large-dataset-pagination.html (deleted)
-
tags/3.2.2/test-simple.php (added)
-
trunk/IMPACT_REPORT-elementor-activation-fatal-error.md (added)
-
trunk/includes/class-tc-elementor-widget.php (modified) (5 diffs)
-
trunk/readme.txt (modified) (3 diffs)
-
trunk/tablecrafter.php (modified) (2 diffs)
-
trunk/test-activation-fix.php (added)
-
trunk/test-edge-cases.php (added)
-
trunk/test-simple.php (added)
Legend:
- Unmodified
- Added
- Removed
-
tablecrafter-wp-data-tables/tags/3.2.2/includes/class-tc-elementor-widget.php
r3441215 r3441725 17 17 use Elementor\Controls_Manager; 18 18 use Elementor\Group_Control_Typography; 19 use Elementor\Core\Schemes\Typography as Scheme_Typography; 20 use Elementor\Core\Schemes\Color as Scheme_Color; 19 // Removed deprecated scheme imports - Elementor 3.0+ compatibility 20 // use Elementor\Core\Schemes\Typography as Scheme_Typography; 21 // use Elementor\Core\Schemes\Color as Scheme_Color; 21 22 use Elementor\Group_Control_Border; 22 23 use Elementor\Group_Control_Box_Shadow; … … 27 28 * Provides native Elementor integration with live preview and visual controls 28 29 */ 30 31 // Only define the widget class if Elementor's Widget_Base is available 32 if (class_exists('\Elementor\Widget_Base')) { 33 29 34 class TC_Elementor_Widget extends Widget_Base 30 35 { … … 787 792 } 788 793 794 } // End if (class_exists('\\Elementor\\Widget_Base')) 795 789 796 /** 790 * Register TableCrafter Elementor Widget 797 * Register TableCrafter Elementor Widget with backward compatibility 791 798 */ 792 799 function register_tc_elementor_widget() … … 802 809 } 803 810 804 // Register the widget 805 \Elementor\Plugin::instance()->widgets_manager->register_widget_type(new TC_Elementor_Widget()); 811 // Check if our widget class is available (only defined if Elementor is properly loaded) 812 if (!class_exists('TC_Elementor_Widget')) { 813 return; 814 } 815 816 $widget_manager = \Elementor\Plugin::instance()->widgets_manager; 817 $widget = new TC_Elementor_Widget(); 818 819 // Backward compatibility for Elementor versions 820 if (method_exists($widget_manager, 'register')) { 821 // Elementor 3.5+ - Use new register method 822 $widget_manager->register($widget); 823 } elseif (method_exists($widget_manager, 'register_widget_type')) { 824 // Elementor < 3.5 - Use deprecated method for backward compatibility 825 $widget_manager->register_widget_type($widget); 826 } 806 827 } 807 add_action('elementor/widgets/widgets_registered', 'register_tc_elementor_widget'); 828 829 /** 830 * Register widget using appropriate hook based on Elementor version 831 */ 832 function tc_register_elementor_hooks() 833 { 834 // Use new hook for Elementor 3.5+ or fallback to deprecated hook 835 // Add safety check for ELEMENTOR_VERSION constant 836 if (defined('ELEMENTOR_VERSION') && version_compare(ELEMENTOR_VERSION, '3.5.0', '>=')) { 837 add_action('elementor/widgets/register', 'register_tc_elementor_widget'); 838 } else { 839 // Fallback to deprecated hook for older versions or when version is unknown 840 add_action('elementor/widgets/widgets_registered', 'register_tc_elementor_widget'); 841 } 842 } 843 844 // Register widget hooks - this file is loaded via elementor/loaded hook 845 // Only register if we're in a WordPress environment 846 if (function_exists('add_action') && function_exists('did_action')) { 847 tc_register_elementor_hooks(); 848 } 808 849 809 850 /** … … 825 866 ); 826 867 } 827 add_action('elementor/elements/categories_registered', 'add_tc_elementor_category'); 868 869 // Register category - this file is loaded after Elementor is available 870 if (function_exists('add_action')) { 871 add_action('elementor/elements/categories_registered', 'add_tc_elementor_category'); 872 } -
tablecrafter-wp-data-tables/tags/3.2.2/readme.txt
r3441715 r3441725 4 4 Requires at least: 5.0 5 5 Tested up to: 6.9 6 Stable tag: 3.2. 16 Stable tag: 3.2.2 7 7 Requires PHP: 7.4 8 8 License: GPLv2 or later … … 282 282 283 283 == Changelog == 284 = 3.2.2 = 285 * 🚨 **CRITICAL HOTFIX: Elementor Activation Fatal Error Fix** 286 * **Fixed:** Fatal error when Elementor is installed after TableCrafter is already active 287 * **Fixed:** Removed deprecated Elementor scheme class imports that caused activation failures 288 * **Fixed:** Updated widget registration to use modern Elementor API with backward compatibility 289 * **Fixed:** Replaced deprecated hooks with version-aware hook registration 290 * **Enhanced:** Complete backward compatibility support for Elementor 2.0+ through latest versions 291 * **Enhanced:** Comprehensive error handling and graceful degradation for missing Elementor classes 292 284 293 = 3.2.1 = 285 294 * 📋 **DOCUMENTATION ENHANCEMENT: Improved WCAG Compliance Details** … … 771 780 == Upgrade Notice == 772 781 782 = 3.2.2 = 783 Critical fix for fatal error during Elementor activation. Resolves activation order dependency issues and updates deprecated Elementor APIs for full compatibility. 784 773 785 = 3.2.1 = 774 786 Enhanced WCAG compliance documentation with detailed accessibility features for enterprise and government use cases. -
tablecrafter-wp-data-tables/tags/3.2.2/tablecrafter.php
r3441715 r3441725 4 4 * Plugin URI: https://github.com/TableCrafter/wp-data-tables 5 5 * Description: Transform any data source into responsive WordPress tables. WCAG 2.1 compliant, advanced export (Excel/PDF), keyboard navigation, screen readers. 6 * Version: 3.2. 16 * Version: 3.2.2 7 7 * Author: TableCrafter Team 8 8 * Author URI: https://github.com/fahdi … … 19 19 * Global Constants 20 20 */ 21 define('TABLECRAFTER_VERSION', '3.2. 1');21 define('TABLECRAFTER_VERSION', '3.2.2'); 22 22 define('TABLECRAFTER_URL', plugin_dir_url(__FILE__)); 23 23 define('TABLECRAFTER_PATH', plugin_dir_path(__FILE__)); -
tablecrafter-wp-data-tables/trunk/includes/class-tc-elementor-widget.php
r3441215 r3441725 17 17 use Elementor\Controls_Manager; 18 18 use Elementor\Group_Control_Typography; 19 use Elementor\Core\Schemes\Typography as Scheme_Typography; 20 use Elementor\Core\Schemes\Color as Scheme_Color; 19 // Removed deprecated scheme imports - Elementor 3.0+ compatibility 20 // use Elementor\Core\Schemes\Typography as Scheme_Typography; 21 // use Elementor\Core\Schemes\Color as Scheme_Color; 21 22 use Elementor\Group_Control_Border; 22 23 use Elementor\Group_Control_Box_Shadow; … … 27 28 * Provides native Elementor integration with live preview and visual controls 28 29 */ 30 31 // Only define the widget class if Elementor's Widget_Base is available 32 if (class_exists('\Elementor\Widget_Base')) { 33 29 34 class TC_Elementor_Widget extends Widget_Base 30 35 { … … 787 792 } 788 793 794 } // End if (class_exists('\\Elementor\\Widget_Base')) 795 789 796 /** 790 * Register TableCrafter Elementor Widget 797 * Register TableCrafter Elementor Widget with backward compatibility 791 798 */ 792 799 function register_tc_elementor_widget() … … 802 809 } 803 810 804 // Register the widget 805 \Elementor\Plugin::instance()->widgets_manager->register_widget_type(new TC_Elementor_Widget()); 811 // Check if our widget class is available (only defined if Elementor is properly loaded) 812 if (!class_exists('TC_Elementor_Widget')) { 813 return; 814 } 815 816 $widget_manager = \Elementor\Plugin::instance()->widgets_manager; 817 $widget = new TC_Elementor_Widget(); 818 819 // Backward compatibility for Elementor versions 820 if (method_exists($widget_manager, 'register')) { 821 // Elementor 3.5+ - Use new register method 822 $widget_manager->register($widget); 823 } elseif (method_exists($widget_manager, 'register_widget_type')) { 824 // Elementor < 3.5 - Use deprecated method for backward compatibility 825 $widget_manager->register_widget_type($widget); 826 } 806 827 } 807 add_action('elementor/widgets/widgets_registered', 'register_tc_elementor_widget'); 828 829 /** 830 * Register widget using appropriate hook based on Elementor version 831 */ 832 function tc_register_elementor_hooks() 833 { 834 // Use new hook for Elementor 3.5+ or fallback to deprecated hook 835 // Add safety check for ELEMENTOR_VERSION constant 836 if (defined('ELEMENTOR_VERSION') && version_compare(ELEMENTOR_VERSION, '3.5.0', '>=')) { 837 add_action('elementor/widgets/register', 'register_tc_elementor_widget'); 838 } else { 839 // Fallback to deprecated hook for older versions or when version is unknown 840 add_action('elementor/widgets/widgets_registered', 'register_tc_elementor_widget'); 841 } 842 } 843 844 // Register widget hooks - this file is loaded via elementor/loaded hook 845 // Only register if we're in a WordPress environment 846 if (function_exists('add_action') && function_exists('did_action')) { 847 tc_register_elementor_hooks(); 848 } 808 849 809 850 /** … … 825 866 ); 826 867 } 827 add_action('elementor/elements/categories_registered', 'add_tc_elementor_category'); 868 869 // Register category - this file is loaded after Elementor is available 870 if (function_exists('add_action')) { 871 add_action('elementor/elements/categories_registered', 'add_tc_elementor_category'); 872 } -
tablecrafter-wp-data-tables/trunk/readme.txt
r3441715 r3441725 4 4 Requires at least: 5.0 5 5 Tested up to: 6.9 6 Stable tag: 3.2. 16 Stable tag: 3.2.2 7 7 Requires PHP: 7.4 8 8 License: GPLv2 or later … … 282 282 283 283 == Changelog == 284 = 3.2.2 = 285 * 🚨 **CRITICAL HOTFIX: Elementor Activation Fatal Error Fix** 286 * **Fixed:** Fatal error when Elementor is installed after TableCrafter is already active 287 * **Fixed:** Removed deprecated Elementor scheme class imports that caused activation failures 288 * **Fixed:** Updated widget registration to use modern Elementor API with backward compatibility 289 * **Fixed:** Replaced deprecated hooks with version-aware hook registration 290 * **Enhanced:** Complete backward compatibility support for Elementor 2.0+ through latest versions 291 * **Enhanced:** Comprehensive error handling and graceful degradation for missing Elementor classes 292 284 293 = 3.2.1 = 285 294 * 📋 **DOCUMENTATION ENHANCEMENT: Improved WCAG Compliance Details** … … 771 780 == Upgrade Notice == 772 781 782 = 3.2.2 = 783 Critical fix for fatal error during Elementor activation. Resolves activation order dependency issues and updates deprecated Elementor APIs for full compatibility. 784 773 785 = 3.2.1 = 774 786 Enhanced WCAG compliance documentation with detailed accessibility features for enterprise and government use cases. -
tablecrafter-wp-data-tables/trunk/tablecrafter.php
r3441715 r3441725 4 4 * Plugin URI: https://github.com/TableCrafter/wp-data-tables 5 5 * Description: Transform any data source into responsive WordPress tables. WCAG 2.1 compliant, advanced export (Excel/PDF), keyboard navigation, screen readers. 6 * Version: 3.2. 16 * Version: 3.2.2 7 7 * Author: TableCrafter Team 8 8 * Author URI: https://github.com/fahdi … … 19 19 * Global Constants 20 20 */ 21 define('TABLECRAFTER_VERSION', '3.2. 1');21 define('TABLECRAFTER_VERSION', '3.2.2'); 22 22 define('TABLECRAFTER_URL', plugin_dir_url(__FILE__)); 23 23 define('TABLECRAFTER_PATH', plugin_dir_path(__FILE__));
Note: See TracChangeset
for help on using the changeset viewer.