This comprehensive troubleshooting guide covers common issues, their causes, and step-by-step solutions for Plain Classes Gutenberg. Follow the diagnostic steps to quickly identify and resolve problems.
🚨 Quick Diagnostic Checklist
Before diving into specific issues, run through this quick checklist:
✅ Basic Requirements
- [ ] WordPress 5.0+ installed
- [ ] PHP 7.4+ running
- [ ] Plugin activated successfully
- [ ] Valid license key activated
- [ ] User has administrator privileges
- [ ] JavaScript enabled in browser
✅ Plugin Status
- [ ] Plugin appears in admin menu under Tools
- [ ] No PHP errors in debug log
- [ ] Database tables created successfully
- [ ] Asset files loaded correctly
🔧 Installation & Licensing Issues
Plugin Won’t Activate
Symptoms:
- Fatal error during activation
- Plugin deactivates immediately
- White screen on activation
Common Causes & Solutions:
Memory Limit Exceeded
Fatal error: Allowed memory size exhausted
Solution:
// In wp-config.php
ini_set('memory_limit', '512M');
// Or contact hosting provider
Plugin Conflicts
Cannot redeclare function/class
Solution:
- Deactivate all other plugins
- Activate Plain Classes Gutenberg
- Reactivate plugins one by one to identify conflict
- Contact support with conflicting plugin details
PHP Version Too Old
Parse error: syntax error, unexpected ':'
Solution:
- Upgrade to PHP 7.4+ (8.0+ recommended)
- Contact hosting provider for PHP upgrade
License Activation Problems
Invalid License Key
Symptoms: “Invalid license key” error
Solutions:
-
Copy Key Carefully:
- Copy entire key from purchase email
- Check for extra spaces or characters
- Paste into license field without formatting
-
Verify Purchase:
- Check DPlugins account for valid purchase
- Ensure license hasn’t expired
- Confirm correct product license
Site Limit Exceeded
Symptoms: “Site limit reached” error
Solutions:
-
Check Active Sites:
- Log into DPlugins account
- View active site licenses
- Deactivate unused sites
-
Upgrade License:
- Purchase additional site licenses
- Upgrade to higher tier plan
Connection Issues
Symptoms: “Could not connect to license server”
Solutions:
-
Check Internet Connection:
# Test connectivity from server<br></br>curl -I https://dplugins.com/ -
Firewall/Security:
- Whitelist dplugins.com in firewall
- Check hosting provider security settings
- Verify outbound HTTPS allowed
🎨 Frontend Assistant Issues
Assistant Won’t Appear
Not Triggering on Click
Symptoms: Cmd/Ctrl+Click does nothing
Debug Steps:
-
Check License Status:
- Go to Tools → Plain Classes Gutenberg → License
- Verify green “Active” status
-
Verify Settings:
- Go to Settings tab
- Ensure “Enable Frontend Assistant” is checked
- Save settings
-
Check User Permissions:
// Must be logged in as administrator<br></br>if (!current_user_can('administrator')) {<br></br> // Assistant won't load<br></br>} -
Browser Console Check:
- Open browser developer tools (F12)
- Look for JavaScript errors
- Check for “PCGUTEN” object in console
Common Console Errors:
// Missing dependencies
Uncaught ReferenceError: PCGUTEN is not defined
// Solution: Check script loading order
Assistant Appears but Not Functional
Symptoms: Popup shows but buttons don’t work
Solutions:
-
Clear Browser Cache:
- Hard refresh (Ctrl+F5)
- Clear all browser data
- Try incognito/private mode
-
Check CSS Conflicts:
/* Theme may override assistant styles */<br></br>.pcguten-assistant {<br></br> z-index: 99999 !important;<br></br>} -
JavaScript Conflicts:
- Disable other plugins temporarily
- Check for jQuery version conflicts
- Test with default WordPress theme
Element Selection Issues
Can’t Select Certain Elements
Symptoms: Click doesn’t highlight element
Solutions:
-
CSS Pointer Events:
/* Element may have pointer-events disabled */<br></br>.problematic-element {<br></br> pointer-events: auto !important;<br></br>} -
Try Child Elements:
- Click on child elements instead
- Use navigation buttons to reach element
- Check element structure in browser inspector
-
Z-index Issues:
/* Overlay may be blocking clicks */<br></br>.overlay-element {<br></br> z-index: 1;<br></br>}
Classes Don’t Apply
Symptoms: Classes added but no visual change
Debug Process:
-
Check CSS Specificity:
/* Theme styles may override */<br></br>.theme-class {<br></br> color: red !important;<br></br>}<br></br><br></br>/* Solution: Use higher specificity */<br></br>.my-class.my-class {<br></br> color: blue !important;<br></br>} -
Verify CSS Framework:
- Ensure TailwindCSS/Bootstrap is loaded
- Check framework version compatibility
- Test with known working classes
-
Browser Inspector:
- Open browser dev tools
- Check if classes are actually added to element
- Look for CSS conflicts
📝 Block Autocomplete Issues
No Suggestions Appearing
Autocomplete Panel Missing
Symptoms: “Plain Classes” panel not in block editor
Solutions:
-
Plugin Active Check:
- Verify plugin is activated
- Check license is valid
- Refresh block editor page
-
Clear Editor Cache:
// In browser console<br></br>localStorage.clear();<br></br>sessionStorage.clear();<br></br>location.reload(); -
Block Editor Compatibility:
- Test with core WordPress blocks
- Check for Gutenberg plugin conflicts
- Try disabling other block editor plugins
Panel Present but No Suggestions
Symptoms: Text area works but no autocomplete dropdown
Debug Steps:
-
Check Class Database:
- Go to Class Manager
- Verify classes exist
- Import test classes if empty
-
Console Debugging:
// Check autocomplete data<br></br>console.log(window.plain_classes);<br></br><br></br>// Should show:<br></br>// {winden_classes: "...", ...} -
Clear Cache:
wp-admin/admin.php?page=plain-classes-gutenberg&pcguten_clear_cache=1
Performance Issues
Slow Autocomplete Response
Symptoms: Long delay before suggestions appear
Solutions:
-
Reduce Class Library Size:
- Export classes as backup
- Remove unused classes
- Optimize class categorization
-
Clear Transient Cache:
// Add to functions.php temporarily<br></br>delete_transient('pcguten_merged_classes'); -
Check Server Performance:
- Monitor PHP memory usage
- Check database query performance
- Consider upgrading hosting plan
🔍 File Scanning Issues
Manual Scanning Problems
No Files Found in Browser
Symptoms: File tree is empty or incomplete
Solutions:
-
File Permissions:
# Ensure web server can read files<br></br>chmod 755 /wp-content/themes/<br></br>chmod 644 /wp-content/themes/*/style.css -
Path Resolution:
- Check file paths are correct
- Verify files actually exist
- Test with simple paths first
-
Security Restrictions:
// May need to adjust allowed paths<br></br>add_filter('pcguten_allowed_scan_paths', function($paths) {<br></br> $paths[] = '/custom/path/';<br></br> return $paths;<br></br>});
Scan Finds No Classes
Symptoms: Scan completes but 0 classes found
Debug Process:
-
File Content Check:
- Manually verify files contain CSS classes
- Check file encoding (should be UTF-8)
- Look for syntax errors in CSS
-
Pattern Matching:
/* Valid patterns */<br></br>.my-class { color: red; }<br></br><div class="container"><br></br><br></br>/* Invalid patterns */<br></br>// Some formats may not be detected -
Debug Scanning:
// Enable debug logging<br></br>add_filter('pcguten_debug_scanning', '__return_true');<br></br>// Check debug.log for scan details
Automatic Scanning Issues
Auto-scan Not Triggering
Symptoms: No scan after saving post
Debug Steps:
-
Verify Post Type:
// Check configured post types<br></br>$types = apply_filters('pcguten_auto_scan_post_types', ['scorg']);<br></br>// Default is only 'scorg' -
Check Save Method:
- Auto-scan works with “Update” button
- Also works with Ctrl+S/Cmd+S shortcuts
- Verify post actually saves successfully
-
WordPress Cron:
// Check if WP Cron is working<br></br>wp_get_scheduled_event('pcguten_async_css_scan');<br></br><br></br>// Test cron manually<br></br>wp_cron(); -
Disable Auto-scan Temporarily:
// In functions.php for testing<br></br>add_filter('pcguten_enable_auto_scan', '__return_false');
Scanning Causes Performance Issues
Symptoms: Site slowdown after enabling auto-scan
Solutions:
-
Reduce Scan Scope:
- Select fewer files/folders
- Exclude large directories
- Avoid binary files
-
Optimize Scan Timing:
// Increase delay before scan<br></br>add_filter('pcguten_scan_delay', function() {<br></br> return 10; // 10 seconds instead of 3<br></br>}); -
Memory Management:
// Increase memory limit<br></br>add_filter('pcguten_scan_memory_limit', function() {<br></br> return '512M';<br></br>});
📊 Database & Performance Issues
Database Connection Problems
Tables Not Created
Symptoms: Plugin active but features don’t work
Solutions:
-
Manual Table Creation:
-- Run in phpMyAdmin or similar<br></br>CREATE TABLE wp_pcguten_classes (<br></br> id int(11) NOT NULL AUTO_INCREMENT,<br></br> name varchar(255) NOT NULL,<br></br> type enum('imported','scanned','gutenberg') NOT NULL,<br></br> created_at datetime DEFAULT CURRENT_TIMESTAMP,<br></br> PRIMARY KEY (id),<br></br> UNIQUE KEY name_type (name, type)<br></br>); -
Check Database Permissions:
- Verify WordPress user can CREATE tables
- Check database connection in wp-config.php
- Test with other plugins that create tables
Classes Not Saving
Symptoms: Import appears successful but classes disappear
Debug Process:
-
Check Database Errors:
// Enable WordPress debug logging<br></br>define('WP_DEBUG_LOG', true);<br></br>// Check /wp-content/debug.log -
Test Database Operations:
// Test basic database function<br></br>global $wpdb;<br></br>$result = $wpdb->get_results("SHOW TABLES LIKE '{$wpdb->prefix}pcguten_classes'");<br></br>var_dump($result); -
Character Set Issues:
-- Check table character set<br></br>SHOW CREATE TABLE wp_pcguten_classes;<br></br><br></br>-- Should be utf8mb4_unicode_ci
Memory & Performance Issues
Out of Memory Errors
Symptoms:
Fatal error: Allowed memory size of X bytes exhausted
Solutions:
-
Increase PHP Memory:
// wp-config.php<br></br>ini_set('memory_limit', '512M');<br></br>define('WP_MEMORY_LIMIT', '512M'); -
Optimize Operations:
- Process classes in smaller batches
- Clear unnecessary transients
- Reduce autocomplete class limit
-
Profile Memory Usage:
// Add to plugin for debugging<br></br>error_log('Memory usage: ' . memory_get_usage(true));
Slow Page Loading
Symptoms: Admin pages load slowly
Diagnostic Steps:
-
Check Class Count:
SELECT type, COUNT(*) FROM wp_pcguten_classes GROUP BY type; -
Clear All Caches:
?pcguten_clear_cache=1 -
Database Optimization:
-- Ensure proper indexes exist<br></br>SHOW INDEX FROM wp_pcguten_classes;
🔄 Import/Export Issues
JSON Import Problems
Invalid JSON Format
Symptoms: “Invalid JSON” error on import
Solutions:
-
Validate JSON:
- Use JSONLint
- Check for trailing commas
- Verify quote marks are correct
-
File Encoding:
- Save file as UTF-8
- Avoid BOM (Byte Order Mark)
- Use plain text editor
-
File Size Limits:
// Check upload limits<br></br>echo ini_get('upload_max_filesize');<br></br>echo ini_get('post_max_size');
Classes Import but Don’t Appear
Symptoms: Successful import message but no classes visible
Debug Process:
-
Check Database:
SELECT COUNT(*) FROM wp_pcguten_classes WHERE type = 'imported'; -
Clear Frontend Cache:
- Browser cache
- Plugin cache
- CDN cache if applicable
-
Verify Import Type:
- Check if classes imported as correct type
- Verify merge settings were correct
🌐 Browser & Compatibility Issues
Browser-Specific Problems
Chrome Issues
Common Problems:
- Security policies blocking scripts
- Extension conflicts
- CORS restrictions
Solutions:
// Check for Chrome-specific errors
if (navigator.userAgent.includes('Chrome')) {
// Chrome-specific debugging
}
Safari Issues
Common Problems:
- Webkit rendering differences
- Touch event handling
- Local storage restrictions
Mobile Browser Issues
Common Problems:
- Touch + Hold not working
- Assistant positioning problems
- Viewport scaling issues
Solutions:
/* Mobile-specific fixes */
@media (max-width: 768px) {
.pcguten-assistant {
position: fixed !important;
width: 90% !important;
}
}
JavaScript Framework Conflicts
jQuery Conflicts
Symptoms: “$ is not defined” errors
Solution:
// Use WordPress jQuery safely
jQuery(document).ready(function($) {
// Plugin code here
});
React/Vue Conflicts
Symptoms: Frontend frameworks interfere with assistant
Solutions:
-
Scope Isolation:
// Ensure plugin code is properly scoped<br></br>if (typeof PCGUTEN !== 'undefined') {<br></br> // Safe to use plugin<br></br>} -
Event Delegation:
// Use event delegation for dynamic content<br></br>document.addEventListener('click', function(e) {<br></br> if (e.ctrlKey || e.metaKey) {<br></br> // Handle click<br></br> }<br></br>});
🛠️ Advanced Troubleshooting
Debug Mode Setup
Enable Full Debug Logging
// wp-config.php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
define('SCRIPT_DEBUG', true);
// Plugin-specific debugging
define('PCGUTEN_DEBUG', true);
Debug Information Collection
// Add to functions.php for diagnostic info
function pcg_debug_info() {
global $wpdb;
echo "<h3>Plugin Debug Info</h3>";
echo "WordPress Version: " . get_bloginfo('version') . "<br>";
echo "PHP Version: " . phpversion() . "<br>";
echo "Memory Limit: " . ini_get('memory_limit') . "<br>";
// Check tables
$tables = $wpdb->get_results("SHOW TABLES LIKE '{$wpdb->prefix}pcguten_%'");
echo "Plugin Tables: " . count($tables) . "<br>";
// Check classes
$class_count = $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->prefix}pcguten_classes");
echo "Total Classes: " . $class_count . "<br>";
// Check license
$license_status = get_option('PCGUTEN_license_status');
echo "License Status: " . $license_status . "<br>";
}
add_action('wp_dashboard_setup', 'pcg_debug_info');
Performance Profiling
Query Monitoring
// Monitor database queries
add_action('pre_get_posts', function() {
if (defined('PCGUTEN_DEBUG')) {
add_filter('query', function($query) {
if (strpos($query, 'pcguten') !== false) {
error_log('PCG Query: ' . $query);
}
return $query;
});
}
});
Memory Profiling
// Track memory usage
add_action('pcguten_before_scan', function() {
if (defined('PCGUTEN_DEBUG')) {
$memory_start = memory_get_usage(true);
error_log('PCG Scan Start Memory: ' . size_format($memory_start));
}
});
🆘 Getting Help
Self-Service Resources
- Plugin Documentation: Review all feature guides
- WordPress.org Forums: Search existing topics
- GitHub Issues: Check for known bugs
- Community Discord: Real-time help from users
Contacting Support
Information to Include
When contacting support, please provide:
System Information:
- WordPress version
- PHP version
- Plugin version
- Active theme
- List of active plugins
Error Details:
- Complete error messages
- Steps to reproduce
- Screenshots/screen recordings
- Browser console errors
Debug Logs:
- WordPress debug log excerpt
- Plugin-specific logs
- Server error logs
Debug Package Creation
# Create comprehensive debug package
wp plugin list --status=active > active-plugins.txt
wp theme list --status=active > active-theme.txt
wp option get PCGUTEN_license_status > license-status.txt
tail -50 /wp-content/debug.log > recent-errors.txt
Emergency Fixes
Disable Plugin Quickly
// If plugin causes site issues, add to wp-config.php
define('PCGUTEN_DISABLE', true);
Reset Plugin Data
-- Emergency database reset
DROP TABLE IF EXISTS wp_pcguten_classes;
DROP TABLE IF EXISTS wp_pcguten_scan_paths;
DELETE FROM wp_options WHERE option_name LIKE 'PCGUTEN_%';
DELETE FROM wp_options WHERE option_name LIKE 'pcguten_%';
Safe Mode Testing
- Switch to default WordPress theme
- Deactivate all other plugins
- Test plugin functionality
- Reactivate plugins/theme one by one