added additional plugins
This commit is contained in:
parent
c85895d306
commit
00e60ec1b7
132 changed files with 27514 additions and 0 deletions
261
native/wordpress/wpforms-mailjet-automations/build_readme.md
Normal file
261
native/wordpress/wpforms-mailjet-automations/build_readme.md
Normal file
|
|
@ -0,0 +1,261 @@
|
|||
# WPForms to Mailjet Automation Plugin - Build Instructions
|
||||
|
||||
## Directory Structure
|
||||
|
||||
```
|
||||
wpforms-mailjet-automation/
|
||||
├── wpforms-mailjet-automation.php (Main plugin file)
|
||||
├── uninstall.php (Cleanup on uninstall)
|
||||
├── index.php (Silence is golden)
|
||||
├── BUILD-INSTRUCTIONS.md (This file)
|
||||
├── package.json (Node.js dependencies - create this)
|
||||
├── includes/
|
||||
│ ├── index.php
|
||||
│ ├── class-wpfmj-activator.php
|
||||
│ ├── class-wpfmj-deactivator.php
|
||||
│ ├── class-wpfmj-loader.php
|
||||
│ ├── class-wpfmj-core.php
|
||||
│ ├── class-wpfmj-cpt.php
|
||||
│ ├── class-wpfmj-encryption.php
|
||||
│ ├── class-wpfmj-mailjet-api.php
|
||||
│ ├── class-wpfmj-form-handler.php
|
||||
│ └── class-wpfmj-error-logger.php
|
||||
├── admin/
|
||||
│ ├── index.php
|
||||
│ ├── class-wpfmj-admin.php
|
||||
│ ├── class-wpfmj-dashboard.php
|
||||
│ ├── css/
|
||||
│ │ ├── index.php
|
||||
│ │ └── wpfmj-admin.css
|
||||
│ └── js/
|
||||
│ ├── index.php
|
||||
│ ├── wpfmj-wizard.js (Built React bundle - will be generated)
|
||||
│ └── wpfmj-wizard.asset.php (Dependency file)
|
||||
└── assets/
|
||||
├── index.php
|
||||
└── src/
|
||||
├── index.php
|
||||
└── wizard/
|
||||
├── index.php
|
||||
├── App.jsx (Main React component)
|
||||
├── components/
|
||||
│ ├── index.php
|
||||
│ ├── StepOne.jsx
|
||||
│ ├── StepTwo.jsx
|
||||
│ ├── StepThree.jsx
|
||||
│ ├── StepFour.jsx
|
||||
│ ├── StepFive.jsx
|
||||
│ └── StepSix.jsx
|
||||
└── utils/
|
||||
├── index.php
|
||||
└── api.js
|
||||
```
|
||||
|
||||
## Building the React Application
|
||||
|
||||
### Step 1: Install Node.js Dependencies
|
||||
|
||||
Create a `package.json` file in the plugin root directory:
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "wpforms-mailjet-automation",
|
||||
"version": "1.0.0",
|
||||
"description": "WPForms to Mailjet automation plugin",
|
||||
"scripts": {
|
||||
"build": "wp-scripts build assets/src/wizard/App.jsx --output-path=admin/js",
|
||||
"start": "wp-scripts start assets/src/wizard/App.jsx --output-path=admin/js"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@wordpress/scripts": "^26.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@wordpress/element": "^5.0.0",
|
||||
"@wordpress/components": "^25.0.0",
|
||||
"@wordpress/i18n": "^4.0.0"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Then run:
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
### Step 2: Build the React Bundle
|
||||
|
||||
Run the build command:
|
||||
```bash
|
||||
npm run build
|
||||
```
|
||||
|
||||
This will compile all React components into `admin/js/wpfmj-wizard.js` and generate `admin/js/wpfmj-wizard.asset.php` with dependency information.
|
||||
|
||||
### Step 3: Development Mode (Optional)
|
||||
|
||||
For development with hot reload:
|
||||
```bash
|
||||
npm run start
|
||||
```
|
||||
|
||||
## Installation
|
||||
|
||||
1. Upload the entire `wpforms-mailjet-automation` folder to `/wp-content/plugins/`
|
||||
2. Activate the plugin through the 'Plugins' menu in WordPress
|
||||
3. Ensure WPForms is installed and activated
|
||||
4. (Optional) Copy `wpfmj-config-sample.php` to `wpfmj-config.php` and customize settings
|
||||
5. Navigate to 'Mailjet Automations' in the WordPress admin menu
|
||||
|
||||
## Requirements
|
||||
|
||||
- WordPress 5.8 or higher
|
||||
- PHP 7.4 or higher
|
||||
- WPForms plugin (any version)
|
||||
- Node.js 14+ and npm (for building only)
|
||||
|
||||
## Plugin Features
|
||||
|
||||
### Core Functionality
|
||||
- ✅ React-based wizard interface using @wordpress/components
|
||||
- ✅ 6-step automation setup process
|
||||
- ✅ Custom post type for storing automations
|
||||
- ✅ Encrypted API key storage
|
||||
- ✅ Field mapping (email, firstname, lastname)
|
||||
- ✅ Trigger field selection (checkbox, radio, dropdown, multi-select)
|
||||
- ✅ Answer-to-list mapping with unique list constraints
|
||||
- ✅ Automatic retry logic (3 attempts with exponential backoff)
|
||||
- ✅ Email notifications on persistent failures
|
||||
- ✅ Error logging with custom database table
|
||||
- ✅ Dashboard for managing automations
|
||||
- ✅ Pause/activate/edit/delete automations
|
||||
- ✅ Error count display per automation
|
||||
|
||||
### Security Features
|
||||
- ✅ AES-256-CBC encryption for API credentials
|
||||
- ✅ Nonce verification on all AJAX requests
|
||||
- ✅ Capability checks (manage_options)
|
||||
- ✅ Input sanitization and validation
|
||||
- ✅ Prepared SQL statements
|
||||
|
||||
### Compatibility
|
||||
- ✅ WooCommerce HPOS compatibility declared
|
||||
- ✅ No conflicts with WPForms
|
||||
- ✅ No conflicts with WooCommerce
|
||||
- ✅ No conflicts with LearnDash
|
||||
- ✅ No conflicts with Wordfence
|
||||
- ✅ Safe database schema with proper indexes
|
||||
|
||||
### Performance
|
||||
- ✅ No excessive AJAX calls (dashboard loads once per page view)
|
||||
- ✅ Efficient database queries with proper indexing
|
||||
- ✅ Automatic cleanup of old error logs (90 days)
|
||||
- ✅ Minimal overhead on form submissions
|
||||
- ✅ Set-and-forget architecture
|
||||
|
||||
## File-by-File Placement
|
||||
|
||||
### Root Files
|
||||
- `wpforms-mailjet-automation.php` - Root directory
|
||||
- `uninstall.php` - Root directory
|
||||
- `index.php` - Root directory
|
||||
- `package.json` - Root directory (create from template above)
|
||||
|
||||
### Includes Files (includes/)
|
||||
- `index.php`
|
||||
- `class-wpfmj-activator.php`
|
||||
- `class-wpfmj-deactivator.php`
|
||||
- `class-wpfmj-loader.php`
|
||||
- `class-wpfmj-core.php`
|
||||
- `class-wpfmj-cpt.php`
|
||||
- `class-wpfmj-encryption.php`
|
||||
- `class-wpfmj-mailjet-api.php`
|
||||
- `class-wpfmj-form-handler.php`
|
||||
- `class-wpfmj-error-logger.php`
|
||||
|
||||
### Admin Files (admin/)
|
||||
- `index.php`
|
||||
- `class-wpfmj-admin.php`
|
||||
- `class-wpfmj-dashboard.php`
|
||||
|
||||
### Admin CSS (admin/css/)
|
||||
- `index.php`
|
||||
- `wpfmj-admin.css`
|
||||
|
||||
### Admin JS (admin/js/)
|
||||
- `index.php`
|
||||
- `wpfmj-wizard.asset.php`
|
||||
- `wpfmj-wizard.js` (will be generated by build process)
|
||||
|
||||
### React Source Files (assets/src/wizard/)
|
||||
- `index.php`
|
||||
- `App.jsx`
|
||||
|
||||
### React Components (assets/src/wizard/components/)
|
||||
- `index.php`
|
||||
- `StepOne.jsx`
|
||||
- `StepTwo.jsx`
|
||||
- `StepThree.jsx`
|
||||
- `StepFour.jsx`
|
||||
- `StepFive.jsx`
|
||||
- `StepSix.jsx`
|
||||
|
||||
### React Utils (assets/src/wizard/utils/)
|
||||
- `index.php`
|
||||
- `api.js`
|
||||
|
||||
## Testing Checklist
|
||||
|
||||
### Before Production
|
||||
- [ ] Test with fresh WordPress installation
|
||||
- [ ] Test with WPForms Lite and Pro
|
||||
- [ ] Test form submission triggers automation
|
||||
- [ ] Test with checkbox fields (multiple selections)
|
||||
- [ ] Test with radio/dropdown fields (single selection)
|
||||
- [ ] Test API connection with valid/invalid credentials
|
||||
- [ ] Test saving as draft vs. activating
|
||||
- [ ] Test editing existing automation
|
||||
- [ ] Test pausing/activating automation
|
||||
- [ ] Test deleting automation
|
||||
- [ ] Verify email notifications on API failures
|
||||
- [ ] Check error log table creation
|
||||
- [ ] Verify encryption/decryption of API keys
|
||||
- [ ] Test with WooCommerce active (HPOS enabled)
|
||||
- [ ] Test uninstall cleanup
|
||||
|
||||
### Performance Testing
|
||||
- [ ] No infinite loops detected
|
||||
- [ ] No memory leaks during form submission
|
||||
- [ ] Dashboard loads without excessive queries
|
||||
- [ ] No AJAX polling in background
|
||||
|
||||
### Security Testing
|
||||
- [ ] SQL injection attempts blocked
|
||||
- [ ] XSS attempts blocked
|
||||
- [ ] CSRF protected with nonces
|
||||
- [ ] Capability checks enforced
|
||||
- [ ] API credentials properly encrypted
|
||||
|
||||
## Common Issues and Solutions
|
||||
|
||||
### Issue: React bundle not loading
|
||||
**Solution:** Run `npm run build` to generate the JavaScript bundle
|
||||
|
||||
### Issue: "WPForms required" error
|
||||
**Solution:** Install and activate WPForms plugin
|
||||
|
||||
### Issue: API connection fails
|
||||
**Solution:** Verify API credentials in Mailjet account under Account Settings > REST API
|
||||
|
||||
### Issue: Automation not triggering
|
||||
**Solution:** Check that automation status is "Active" (not "Paused")
|
||||
|
||||
### Issue: Missing form fields
|
||||
**Solution:** Ensure the selected form has been saved with fields in WPForms
|
||||
|
||||
## Support
|
||||
|
||||
For issues, questions, or feature requests, please contact the plugin author.
|
||||
|
||||
## License
|
||||
|
||||
GPL-2.0+
|
||||
Loading…
Add table
Add a link
Reference in a new issue