added additional plugins
This commit is contained in:
parent
c85895d306
commit
00e60ec1b7
132 changed files with 27514 additions and 0 deletions
502
native/wordpress/wpforms-mailjet-automations/config_docs.md
Normal file
502
native/wordpress/wpforms-mailjet-automations/config_docs.md
Normal file
|
|
@ -0,0 +1,502 @@
|
|||
# WPForms to Mailjet Automation - Configuration Guide
|
||||
|
||||
## Overview
|
||||
|
||||
This plugin supports extensive customization through WordPress filters. You can modify settings without touching core plugin files, ensuring your customizations survive plugin updates.
|
||||
|
||||
## Quick Start
|
||||
|
||||
1. **Copy the sample configuration file:**
|
||||
```bash
|
||||
cp wpfmj-config-sample.php wpfmj-config.php
|
||||
```
|
||||
|
||||
2. **Edit `wpfmj-config.php`** with your preferred settings
|
||||
|
||||
3. **Save and upload** - Settings take effect immediately
|
||||
|
||||
The `wpfmj-config.php` file is automatically loaded by the plugin and is excluded from version control.
|
||||
|
||||
---
|
||||
|
||||
## Available Configuration Options
|
||||
|
||||
### 1. Error Log Retention Period
|
||||
|
||||
**Filter**: `wpfmj_error_log_retention_days`
|
||||
**Default**: 90 days
|
||||
**Range**: 7-365 days
|
||||
**Type**: Integer
|
||||
|
||||
Controls how long resolved error logs are kept before automatic deletion.
|
||||
|
||||
```php
|
||||
add_filter('wpfmj_error_log_retention_days', function($days) {
|
||||
return 180; // Keep for 6 months
|
||||
});
|
||||
```
|
||||
|
||||
**Considerations:**
|
||||
- **Shorter periods (7-30 days)**: Saves database space, good for high-volume sites
|
||||
- **Longer periods (90-365 days)**: Better for audit trails and trend analysis
|
||||
- **Optimal**: 90 days balances storage and historical data
|
||||
|
||||
---
|
||||
|
||||
### 2. API Rate Limit
|
||||
|
||||
**Filter**: `wpfmj_api_rate_limit`
|
||||
**Default**: 60 requests/minute
|
||||
**Range**: 10-300 requests/minute
|
||||
**Type**: Integer
|
||||
|
||||
Sets the maximum Mailjet API requests per minute per API key.
|
||||
|
||||
```php
|
||||
add_filter('wpfmj_api_rate_limit', function($limit) {
|
||||
return 120; // Double the default
|
||||
});
|
||||
```
|
||||
|
||||
**Considerations:**
|
||||
- **Lower limits (10-30)**: More conservative, prevents rate limit errors
|
||||
- **Default (60)**: Balanced for most sites
|
||||
- **Higher limits (120-300)**: For high-traffic sites, but monitor closely
|
||||
- **Mailjet limit**: 300 requests/minute maximum
|
||||
|
||||
⚠️ **Warning**: Setting too high may cause Mailjet to reject requests.
|
||||
|
||||
---
|
||||
|
||||
### 3. Maximum Retry Attempts
|
||||
|
||||
**Filter**: `wpfmj_max_retry_attempts`
|
||||
**Default**: 3 attempts
|
||||
**Range**: 1-5 attempts
|
||||
**Type**: Integer
|
||||
|
||||
Number of retry attempts for failed API calls.
|
||||
|
||||
```php
|
||||
add_filter('wpfmj_max_retry_attempts', function($attempts) {
|
||||
return 5; // Maximum persistence
|
||||
});
|
||||
```
|
||||
|
||||
**Retry Timing:**
|
||||
- Attempt 1: Immediate
|
||||
- Attempt 2: After 1 second
|
||||
- Attempt 3: After 2 seconds
|
||||
- Attempt 4: After 4 seconds
|
||||
- Attempt 5: After 8 seconds
|
||||
|
||||
**Considerations:**
|
||||
- **1 attempt**: Fast failure, good for testing
|
||||
- **3 attempts (default)**: Balanced approach
|
||||
- **5 attempts**: Maximum reliability, but slower failure detection
|
||||
|
||||
---
|
||||
|
||||
### 4. Email Notification Recipients
|
||||
|
||||
**Filter**: `wpfmj_failure_notification_emails`
|
||||
**Default**: WordPress admin email
|
||||
**Type**: Array of email addresses
|
||||
|
||||
Customize who receives failure notifications.
|
||||
|
||||
```php
|
||||
add_filter('wpfmj_failure_notification_emails', function($emails) {
|
||||
return array(
|
||||
get_option('admin_email'),
|
||||
'developer@example.com',
|
||||
'support@example.com',
|
||||
'monitoring@example.com'
|
||||
);
|
||||
});
|
||||
```
|
||||
|
||||
**Use Cases:**
|
||||
- **Development team**: Add developer emails
|
||||
- **Support team**: Add support desk email
|
||||
- **Monitoring**: Integrate with ticketing systems
|
||||
- **Multiple admins**: Ensure redundancy
|
||||
|
||||
---
|
||||
|
||||
### 5. Disable Email Notifications
|
||||
|
||||
**Filter**: `wpfmj_disable_failure_notifications`
|
||||
**Default**: false (notifications enabled)
|
||||
**Type**: Boolean
|
||||
|
||||
Completely disable email notifications.
|
||||
|
||||
```php
|
||||
add_filter('wpfmj_disable_failure_notifications', function($disabled) {
|
||||
return true; // Disable all emails
|
||||
});
|
||||
```
|
||||
|
||||
**When to disable:**
|
||||
- Using external monitoring tools
|
||||
- High-volume sites with frequent transient errors
|
||||
- During development/testing
|
||||
|
||||
⚠️ **Note**: Errors are still logged in the database even when notifications are disabled.
|
||||
|
||||
---
|
||||
|
||||
### 6. Encryption Method
|
||||
|
||||
**Filter**: `wpfmj_encryption_method`
|
||||
**Default**: AES-256-CBC
|
||||
**Type**: String
|
||||
|
||||
Change the encryption algorithm for API credentials.
|
||||
|
||||
```php
|
||||
add_filter('wpfmj_encryption_method', function($method) {
|
||||
return 'AES-256-GCM'; // More modern algorithm
|
||||
});
|
||||
```
|
||||
|
||||
**Available Methods:**
|
||||
- `AES-256-CBC` (default, widely compatible)
|
||||
- `AES-256-GCM` (modern, authenticated encryption)
|
||||
- `AES-192-CBC`
|
||||
- See `openssl_get_cipher_methods()` for full list
|
||||
|
||||
⚠️ **CRITICAL WARNING**:
|
||||
- **Only change BEFORE storing any credentials**
|
||||
- Changing after credentials are stored will make them unreadable
|
||||
- Requires re-entering all API keys if changed later
|
||||
- Test thoroughly after changing
|
||||
|
||||
---
|
||||
|
||||
### 7. Debug Mode
|
||||
|
||||
**Filter**: `wpfmj_debug_mode`
|
||||
**Default**: false
|
||||
**Type**: Boolean
|
||||
|
||||
Enable verbose logging for troubleshooting.
|
||||
|
||||
```php
|
||||
add_filter('wpfmj_debug_mode', function($debug) {
|
||||
return true; // Enable debug logging
|
||||
});
|
||||
```
|
||||
|
||||
**What gets logged:**
|
||||
- API request details
|
||||
- Retry attempts with timestamps
|
||||
- Decryption operations
|
||||
- Rate limit hits
|
||||
- Form processing steps
|
||||
|
||||
**Important**:
|
||||
- Only enable when troubleshooting
|
||||
- Logs may contain sensitive information
|
||||
- Disable in production unless necessary
|
||||
- Check `wp-content/debug.log`
|
||||
|
||||
---
|
||||
|
||||
### 8. Cleanup Cron Schedule
|
||||
|
||||
**Filter**: `wpfmj_cleanup_schedule`
|
||||
**Default**: weekly
|
||||
**Type**: String
|
||||
|
||||
Change how often error log cleanup runs.
|
||||
|
||||
```php
|
||||
add_filter('wpfmj_cleanup_schedule', function($schedule) {
|
||||
return 'daily'; // Clean up more frequently
|
||||
});
|
||||
```
|
||||
|
||||
**Available Schedules:**
|
||||
- `hourly` - Every hour
|
||||
- `twicedaily` - Twice per day
|
||||
- `daily` - Once per day
|
||||
- `weekly` - Once per week (default)
|
||||
|
||||
**Considerations:**
|
||||
- High-volume sites: Use `daily` or `twicedaily`
|
||||
- Low-volume sites: `weekly` is sufficient
|
||||
- More frequent = less database bloat
|
||||
|
||||
---
|
||||
|
||||
## Advanced Configuration Examples
|
||||
|
||||
### Example 1: High-Traffic Site
|
||||
|
||||
```php
|
||||
<?php
|
||||
// wpfmj-config.php for high-traffic e-commerce site
|
||||
|
||||
// Aggressive cleanup to manage database size
|
||||
add_filter('wpfmj_error_log_retention_days', function($days) {
|
||||
return 30; // Only 30 days
|
||||
});
|
||||
|
||||
// Higher rate limit for busy periods
|
||||
add_filter('wpfmj_api_rate_limit', function($limit) {
|
||||
return 120;
|
||||
});
|
||||
|
||||
// More frequent cleanup
|
||||
add_filter('wpfmj_cleanup_schedule', function($schedule) {
|
||||
return 'daily';
|
||||
});
|
||||
|
||||
// Multiple notification recipients
|
||||
add_filter('wpfmj_failure_notification_emails', function($emails) {
|
||||
return array(
|
||||
'dev-team@example.com',
|
||||
'ops@example.com'
|
||||
);
|
||||
});
|
||||
```
|
||||
|
||||
### Example 2: Development Environment
|
||||
|
||||
```php
|
||||
<?php
|
||||
// wpfmj-config.php for staging/dev environment
|
||||
|
||||
// Disable email spam during testing
|
||||
add_filter('wpfmj_disable_failure_notifications', function($disabled) {
|
||||
return true;
|
||||
});
|
||||
|
||||
// Enable debug mode
|
||||
add_filter('wpfmj_debug_mode', function($debug) {
|
||||
return true;
|
||||
});
|
||||
|
||||
// Lower retry attempts for faster testing
|
||||
add_filter('wpfmj_max_retry_attempts', function($attempts) {
|
||||
return 1; // Fail fast
|
||||
});
|
||||
```
|
||||
|
||||
### Example 3: Enterprise Setup
|
||||
|
||||
```php
|
||||
<?php
|
||||
// wpfmj-config.php for enterprise with compliance requirements
|
||||
|
||||
// Extended retention for audit compliance
|
||||
add_filter('wpfmj_error_log_retention_days', function($days) {
|
||||
return 365; // 1 year
|
||||
});
|
||||
|
||||
// Maximum reliability
|
||||
add_filter('wpfmj_max_retry_attempts', function($attempts) {
|
||||
return 5;
|
||||
});
|
||||
|
||||
// Security team notifications
|
||||
add_filter('wpfmj_failure_notification_emails', function($emails) {
|
||||
return array(
|
||||
'security@example.com',
|
||||
'compliance@example.com',
|
||||
'it-ops@example.com'
|
||||
);
|
||||
});
|
||||
|
||||
// Use modern encryption
|
||||
add_filter('wpfmj_encryption_method', function($method) {
|
||||
return 'AES-256-GCM';
|
||||
});
|
||||
```
|
||||
|
||||
### Example 4: Minimal Configuration
|
||||
|
||||
```php
|
||||
<?php
|
||||
// wpfmj-config.php for simple site
|
||||
|
||||
// Just increase error retention slightly
|
||||
add_filter('wpfmj_error_log_retention_days', function($days) {
|
||||
return 120; // 4 months
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Environment-Specific Configuration
|
||||
|
||||
You can use environment variables or constants for different environments:
|
||||
|
||||
```php
|
||||
<?php
|
||||
// wpfmj-config.php with environment detection
|
||||
|
||||
// Detect environment
|
||||
$is_dev = (defined('WP_DEBUG') && WP_DEBUG === true);
|
||||
$is_staging = (strpos($_SERVER['HTTP_HOST'], 'staging') !== false);
|
||||
|
||||
if ($is_dev) {
|
||||
// Development settings
|
||||
add_filter('wpfmj_disable_failure_notifications', '__return_true');
|
||||
add_filter('wpfmj_debug_mode', '__return_true');
|
||||
add_filter('wpfmj_max_retry_attempts', function() { return 1; });
|
||||
|
||||
} elseif ($is_staging) {
|
||||
// Staging settings
|
||||
add_filter('wpfmj_error_log_retention_days', function() { return 30; });
|
||||
add_filter('wpfmj_failure_notification_emails', function() {
|
||||
return array('staging-alerts@example.com');
|
||||
});
|
||||
|
||||
} else {
|
||||
// Production settings
|
||||
add_filter('wpfmj_error_log_retention_days', function() { return 90; });
|
||||
add_filter('wpfmj_api_rate_limit', function() { return 120; });
|
||||
add_filter('wpfmj_failure_notification_emails', function() {
|
||||
return array(
|
||||
'ops@example.com',
|
||||
'monitoring@example.com'
|
||||
);
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Monitoring Your Configuration
|
||||
|
||||
### Check Current Settings
|
||||
|
||||
Add this to a test plugin or theme's functions.php temporarily:
|
||||
|
||||
```php
|
||||
add_action('admin_init', function() {
|
||||
if (current_user_can('manage_options') && isset($_GET['wpfmj_check_config'])) {
|
||||
echo '<pre>';
|
||||
echo 'Error Retention: ' . apply_filters('wpfmj_error_log_retention_days', 90) . " days\n";
|
||||
echo 'API Rate Limit: ' . apply_filters('wpfmj_api_rate_limit', 60) . " req/min\n";
|
||||
echo 'Max Retries: ' . apply_filters('wpfmj_max_retry_attempts', 3) . " attempts\n";
|
||||
echo 'Debug Mode: ' . (apply_filters('wpfmj_debug_mode', false) ? 'ON' : 'OFF') . "\n";
|
||||
echo 'Notifications: ' . (apply_filters('wpfmj_disable_failure_notifications', false) ? 'DISABLED' : 'ENABLED') . "\n";
|
||||
echo '</pre>';
|
||||
exit;
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
Visit: `yoursite.com/wp-admin/?wpfmj_check_config`
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting Configuration
|
||||
|
||||
### Configuration Not Loading
|
||||
|
||||
1. **Check file name**: Must be exactly `wpfmj-config.php`
|
||||
2. **Check file location**: Must be in plugin root directory
|
||||
3. **Check syntax**: Use PHP linter to verify no errors
|
||||
4. **Check filters**: Ensure using `add_filter()` not `add_action()`
|
||||
|
||||
### Values Not Changing
|
||||
|
||||
1. **Clear caches**: Object cache, opcache, page cache
|
||||
2. **Check filter priority**: Default priority is 10
|
||||
3. **Verify filter name**: Must match exactly (case-sensitive)
|
||||
4. **Test with simple value**: Try returning a hardcoded value first
|
||||
|
||||
### Debug Logging Not Working
|
||||
|
||||
1. **Enable WordPress debug logging**:
|
||||
```php
|
||||
// In wp-config.php
|
||||
define('WP_DEBUG', true);
|
||||
define('WP_DEBUG_LOG', true);
|
||||
define('WP_DEBUG_DISPLAY', false);
|
||||
```
|
||||
|
||||
2. **Check debug.log location**: `wp-content/debug.log`
|
||||
|
||||
3. **Verify debug mode filter is applied**
|
||||
|
||||
---
|
||||
|
||||
## Best Practices
|
||||
|
||||
### DO:
|
||||
✅ Use `wpfmj-config.php` for customizations
|
||||
✅ Keep configuration in version control (except sensitive data)
|
||||
✅ Document your customizations
|
||||
✅ Test configuration changes in staging first
|
||||
✅ Use environment detection for different setups
|
||||
✅ Monitor logs after configuration changes
|
||||
|
||||
### DON'T:
|
||||
❌ Modify core plugin files directly
|
||||
❌ Store sensitive data in configuration file
|
||||
❌ Use extremely high rate limits without testing
|
||||
❌ Disable notifications without alternative monitoring
|
||||
❌ Change encryption method after storing credentials
|
||||
❌ Enable debug mode in production long-term
|
||||
|
||||
---
|
||||
|
||||
## Performance Considerations
|
||||
|
||||
| Setting | Impact | Recommendation |
|
||||
|---------|--------|----------------|
|
||||
| Error Retention (Low) | Less DB storage | Good for high-volume |
|
||||
| Error Retention (High) | More DB storage | Good for compliance |
|
||||
| API Rate Limit (Low) | Slower processing | More reliable |
|
||||
| API Rate Limit (High) | Faster processing | Monitor closely |
|
||||
| Max Retries (Low) | Fast failure | Development |
|
||||
| Max Retries (High) | Slow failure | Production |
|
||||
| Cleanup (Frequent) | More CPU usage | High-volume sites |
|
||||
| Cleanup (Infrequent) | Less CPU usage | Low-volume sites |
|
||||
|
||||
---
|
||||
|
||||
## Security Considerations
|
||||
|
||||
1. **Never commit sensitive data**: Use environment variables for secrets
|
||||
2. **File permissions**: Set `wpfmj-config.php` to 644 or 600
|
||||
3. **Encryption changes**: Only change before first use
|
||||
4. **Debug mode**: Never leave enabled with sensitive operations
|
||||
5. **Email recipients**: Ensure all recipients are trusted
|
||||
|
||||
---
|
||||
|
||||
## Getting Help
|
||||
|
||||
If you need assistance with configuration:
|
||||
|
||||
1. **Check debug logs**: Enable debug mode temporarily
|
||||
2. **Test with defaults**: Remove config file to use defaults
|
||||
3. **Verify syntax**: Use PHP linter on config file
|
||||
4. **Review examples**: See examples in this guide
|
||||
5. **Contact support**: Include configuration (without sensitive data)
|
||||
|
||||
---
|
||||
|
||||
## Version History
|
||||
|
||||
### 1.0.1
|
||||
- Added configurable error retention period
|
||||
- Added configurable API rate limiting
|
||||
- Added configurable retry attempts
|
||||
- Added configurable email notifications
|
||||
- Added configurable encryption method
|
||||
- Added debug mode
|
||||
- Added cleanup schedule customization
|
||||
|
||||
---
|
||||
|
||||
**Last Updated**: October 16, 2025
|
||||
**Plugin Version**: 1.0.1+
|
||||
**Compatibility**: WordPress 5.8+, PHP 7.4+
|
||||
Loading…
Add table
Add a link
Reference in a new issue