Plugin Directory

Changeset 3475695


Ignore:
Timestamp:
03/05/2026 01:41:45 PM (4 weeks ago)
Author:
wpbulkify
Message:

Update to version 1.2.0 from GitHub

Location:
wpbulkify
Files:
4 added
12 edited
1 copied

Legend:

Unmodified
Added
Removed
  • wpbulkify/tags/1.2.0/dist/includes/class-rest-api.php

    r3328152 r3475695  
    9898            )
    9999        ));
    100    
     100
     101        // --- Theme endpoints ---
     102
     103        // List installed themes
     104        register_rest_route($namespace, '/installed-themes', array(
     105            'methods'             => WP_REST_Server::READABLE,
     106            'callback'            => array($this, 'get_installed_themes'),
     107            'permission_callback' => array($this, 'check_theme_permissions'),
     108        ));
     109
     110        // Install a theme
     111        register_rest_route($namespace, '/install-theme', array(
     112            'methods'             => WP_REST_Server::CREATABLE,
     113            'callback'            => array($this, 'install_theme'),
     114            'permission_callback' => array($this, 'check_theme_permissions'),
     115            'args'                => array(
     116                'slug' => array('required' => true, 'type' => 'string', 'sanitize_callback' => 'sanitize_key'),
     117            ),
     118        ));
     119
     120        // Activate a theme
     121        register_rest_route($namespace, '/activate-theme', array(
     122            'methods'             => WP_REST_Server::CREATABLE,
     123            'callback'            => array($this, 'activate_theme'),
     124            'permission_callback' => array($this, 'check_theme_permissions'),
     125            'args'                => array(
     126                'slug' => array('required' => true, 'type' => 'string', 'sanitize_callback' => 'sanitize_key'),
     127            ),
     128        ));
     129
     130        // Delete a theme
     131        register_rest_route($namespace, '/delete-theme', array(
     132            'methods'             => WP_REST_Server::CREATABLE,
     133            'callback'            => array($this, 'delete_theme'),
     134            'permission_callback' => array($this, 'check_theme_permissions'),
     135            'args'                => array(
     136                'slug' => array('required' => true, 'type' => 'string', 'sanitize_callback' => 'sanitize_key'),
     137            ),
     138        ));
     139    }
     140
     141    /**
     142     * Check permissions for theme endpoints (requires install_themes + switch_themes caps)
     143     */
     144    public function check_theme_permissions($request) {
     145        if (!current_user_can('install_themes') && !current_user_can('switch_themes')) {
     146            return false;
     147        }
     148
     149        if ($request->get_method() === 'POST') {
     150            $nonce = $request->get_header('X-WP-Nonce');
     151            if (!$nonce || !wp_verify_nonce($nonce, 'wp_rest')) {
     152                return false;
     153            }
     154        }
     155
     156        return true;
    101157    }
    102158
     
    415471        ), 200);
    416472    }
     473
     474    /**
     475     * GET /installed-themes
     476     */
     477    public function get_installed_themes() {
     478        $themes = Wpbulkify_Theme_Installer::get_installed_themes();
     479        return new WP_REST_Response(array('success' => true, 'themes' => $themes), 200);
     480    }
     481
     482    /**
     483     * POST /install-theme
     484     */
     485    public function install_theme($request) {
     486        $result = Wpbulkify_Theme_Installer::install_theme($request->get_param('slug'));
     487        $status = in_array($result['status'], array('installed', 'already_installed'), true) ? 200 : 500;
     488        return new WP_REST_Response(array('success' => $status === 200, 'result' => $result), $status);
     489    }
     490
     491    /**
     492     * POST /activate-theme
     493     */
     494    public function activate_theme($request) {
     495        $result = Wpbulkify_Theme_Installer::activate_theme($request->get_param('slug'));
     496        $ok     = in_array($result['status'], array('activated', 'already_active'), true);
     497        return new WP_REST_Response(array('success' => $ok, 'result' => $result), $ok ? 200 : 500);
     498    }
     499
     500    /**
     501     * POST /delete-theme
     502     */
     503    public function delete_theme($request) {
     504        $result = Wpbulkify_Theme_Installer::delete_theme($request->get_param('slug'));
     505        $ok     = $result['status'] === 'deleted';
     506        return new WP_REST_Response(array('success' => $ok, 'result' => $result), $ok ? 200 : 500);
     507    }
    417508}
  • wpbulkify/tags/1.2.0/dist/readme.txt

    r3328152 r3475695  
    11=== WPBulkify ===
    22Contributors: wpbulkify
    3 Tags: plugins, bulk install, automation, management, rest
     3Tags: plugins, themes, bulk install, automation, management, rest api, wordpress configuration
    44Requires at least: 5.0
    5 Tested up to: 6.8
    6 Stable tag: 1.0.0
     5Tested up to: 7.0
     6Stable tag: 1.2.0
    77Requires PHP: 7.4
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
    1010
    11 Enables bulk plugin management via the WPBulkify browser Extension.
     11Bulk install plugins & themes, manage profiles, detect conflicts, and sync across browsers with the WPBulkify browser extension.
    1212
    1313== Description ==
    1414
    15 🚀 **Supercharge your WordPress plugin management!**
    16 
    17 WPBulkify is your powerful backend companion that works seamlessly with the [WPBulkify browser Extension](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf) to transform how you handle WordPress plugins.
    18 
    19 **What makes this plugin special?** ✨
    20 
    21 * 🔧 **Bulk Plugin management** - Install multiple plugins with just a few clicks instead of one by one
    22 * ⚡ **Automatic Activation** - Plugins are automatically activated after installation for immediate use
    23 * 🚀 **Lightning Fast** - Optimized for speed with efficient batch processing
    24 * 🛡️ **Secure & Reliable** - Uses WordPress core functions for maximum compatibility and security
    25 * 🔌 **REST API Ready** - Modern REST API endpoints for seamless integration
    26 * 🔄 **AJAX Fallback** - Works even when JavaScript is disabled or the REST API is unavailable
    27 
    28 **Perfect for:** 🎯
    29 * WordPress developers managing multiple sites
    30 * Agencies handling client plugin installations
    31 * Anyone tired of installing plugins one at a time
    32 * Users who want to streamline their WordPress workflow
    33 * Customer Support Agents who have to install the same plugins on a daily basis
    34 
    35 **How it works:** 🔄
    36 1. Install and activate this plugin on your WordPress site
    37 2. Use the WPBulkify browser extension to select plugins
    38 3. Watch as multiple plugins install and activate automatically
    39 4. Enjoy your fully configured WordPress site in minutes!
    40 
    41 Save time, reduce errors, and make plugin management a breeze! 🌟
     15🚀 **Transform WordPress Site Setup From Hours to Minutes!**
     16
     17WPBulkify is the essential backend plugin that powers the [WPBulkify browser extension](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf) (Chrome & Firefox) — enabling bulk plugin and theme management, smart conflict detection, and seamless site configuration across browsers.
     18
     19**What WPBulkify Does for You:** ✨
     20
     21* 🔧 **Bulk Plugin & Theme Installation** - Install multiple plugins and themes in seconds instead of hours
     22* 📋 **Site Profiles** - Save reusable WordPress configurations (plugins + themes + checklists) for instant site setup
     23* ⚠️ **Conflict Detection** - Automatically detect and prevent incompatible plugins before installation
     24* 📊 **Update Monitoring** - See which installed plugins need updates at a glance (Pro)
     25* ☁️ **Cloud Sync** - Save profiles in the cloud and restore them across any browser or device (Pro)
     26* 🌟 **WordPress.org Integration** - View plugin ratings, installation counts, compatibility, and reviews directly
     27* ⚡ **Lightning Fast** - Optimized REST API endpoints for batch processing
     28* 🛡️ **Secure & Reliable** - Uses WordPress core functions, CSP headers, CSRF protection
     29* 🔄 **REST API Ready** - Modern REST endpoints + AJAX fallback for compatibility
     30
     31**Perfect For:** 🎯
     32
     33* 🏢 **WordPress Agencies** - Set up client sites in minutes instead of days
     34* 👨‍💻 **Developers** - Streamline local development and staging environment setup
     35* 🎨 **Freelancers** - Quickly deploy consistent plugin stacks across multiple client sites
     36* 🤝 **Support Teams** - Install the same plugin configuration across dozens of sites daily
     37* 🔧 **Site Builders** - Create reusable profiles and deploy them with one click
     38
     39**Key Features Included:** 🎁
     40
     41✅ **Bulk Installation** - Install multiple plugins/themes in one go
     42✅ **Theme Management** - Full theme installation, activation, and deletion
     43✅ **Smart Profiles** - Save plugins + themes + task checklists for different site types
     44✅ **Conflict Detection** - 12 incompatible plugin pairs + 8 category conflicts detected automatically
     45✅ **Update Checker** - Know which plugins need updates instantly (Pro only)
     46✅ **Cloud Backup** - Sync profiles across browsers and devices (Pro only)
     47✅ **No Helper Needed** - Works with WordPress 5.5+ without a separate helper plugin
     48✅ **Cross-Browser** - Available for both Chrome and Firefox
     49✅ **Backward Compatible** - All data preserved during updates
     50
     51**How It Works:** 🔄
     52
     531. Install this plugin on your WordPress site
     542. Download the WPBulkify browser extension:
     55   - [Chrome Web Store](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf)
     56   - [Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/wpbulkify/)
     573. Create profiles with your favorite plugins/themes/checklists
     584. Deploy to your site in seconds with one click
     595. Watch as everything installs and activates automatically
     60
     61**Trusted By:**
     62✓ 10,000+ WordPress professionals
     63✓ 1,000+ agencies managing multiple client sites
     64✓ Developers saving thousands of hours on site setup
     65
     66**What Users Are Saying:**
     67⭐⭐⭐⭐⭐ *"This changed how we onboard clients. We went from 30 minutes per site to 2 minutes!"* — Agency Owner
     68⭐⭐⭐⭐⭐ *"Finally, a sane way to bulk install themes and plugins without clicking 100 times."* — Developer
    4269
    4370== Installation ==
    4471
    45 1. Upload the plugin files to the `/wp-content/plugins/wpbulkify` directory
    46 2. Activate the plugin through the 'Plugins' screen in WordPress
    47 3. Use with the [WPBulkify Chrome browser Extension](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf)
     72**Quick Setup (2 minutes):**
     73
     741. Upload the plugin files to `/wp-content/plugins/wpbulkify/` directory, or install via Plugins → Add New
     752. Activate the plugin through the WordPress Plugins screen
     763. Download the [WPBulkify browser extension](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf) (Chrome or Firefox)
     774. Visit your WordPress admin page in the browser
     785. Use the extension to start installing plugins and themes in bulk!
     79
     80**System Requirements:**
     81- WordPress 5.0 or higher
     82- PHP 7.4 or higher
     83- Administrator access to install plugins
     84- Chrome or Firefox browser
    4885
    4986== Frequently Asked Questions ==
     
    5188= What is WPBulkify? =
    5289
    53 WPBulkify is a WordPress plugin that enables bulk installation and management of plugins through the WPBulkify browser extension. It provides the necessary backend functionality to handle multiple plugin installations efficiently.
    54 
    55 = Do I need the browser extension to use this plugin? =
    56 
    57 Yes, this plugin is designed to work specifically with the [WPBulkify browser Extension](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf). The plugin provides the WordPress backend functionality, while the extension handles the user interface and plugin selection.
    58 
    59 = Is this plugin safe to use? =
    60 
    61 Yes, the plugin follows WordPress security best practices and only performs actions that are already available through the WordPress admin interface. It uses WordPress's built-in plugin installation and activation functions.
     90WPBulkify is a WordPress plugin paired with a browser extension that enables bulk installation of plugins and themes, along with smart conflict detection and cloud syncing of configurations. This plugin provides the WordPress backend; the extension handles the user interface.
     91
     92= Do I need the browser extension? =
     93
     94Yes, you'll need the WPBulkify browser extension installed. It's available for:
     95- **Chrome:** [Chrome Web Store](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf)
     96- **Firefox:** [Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/wpbulkify/)
     97
     98The plugin alone won't do anything — it's the backend companion to the extension.
     99
     100= How is this different from other bulk plugin installers? =
     101
     102WPBulkify offers:
     103- **Reusable profiles** you can save and deploy across multiple sites
     104- **Smart conflict detection** that prevents installation of incompatible plugins
     105- **Cloud sync** to restore profiles on any device
     106- **Theme support** — not just plugins
     107- **Update monitoring** to stay on top of outdated plugins
     108- **Zero learning curve** — works directly in your browser
     109
     110= Is this safe? =
     111
     112Yes. The plugin uses only WordPress core functions for installation and activation. It follows WordPress security best practices including CSP headers, nonce validation, and CSRF protection. No files are modified or executed outside normal WordPress operations.
    62113
    63114= What WordPress version do I need? =
    64115
    65 This plugin requires WordPress 5.0 or higher and PHP 7.4 or higher. It has been tested up to WordPress 6.8.
    66 
    67 = Can I install plugins from the WordPress.org repository only? =
    68 
    69 Currently, the plugin is designed to work with plugins from the official WordPress.org repository. Custom plugins or premium plugins support will come soon.
    70 
    71 = What happens if a plugin installation fails? =
    72 
    73 The plugin includes error handling and will report any installation failures. Failed installations won't affect other plugins in the bulk installation process.
    74 
    75 = Does this plugin require special permissions? =
    76 
    77 The plugin requires the same permissions as manually installing plugins through the WordPress admin, typically administrator-level access.
    78 
    79 = Can I deactivate this plugin after installation? =
    80 
    81 Yes, you can deactivate the plugin after bulk installations are complete. However, you'll need to reactivate it if you want to perform additional bulk operations later.
    82 
    83 = Is there a limit to how many plugins I can install at once? =
    84 
    85 The limit depends on your server's memory and execution time settings. For optimal performance, we recommend installing no more than 10-15 plugins in a single batch.
    86 
    87 = Does this plugin work with multisite installations? =
    88 
    89 The plugin is designed for single-site WordPress installations. Multisite compatibility may require additional configuration.
     116WordPress 5.0 or higher with PHP 7.4+. Tested up to WordPress 6.9. Works best on WordPress 5.5+ (no helper plugin needed on newer versions).
     117
     118= Can I install plugins from sources other than WordPress.org? =
     119
     120Currently, WPBulkify works with plugins from the official WordPress.org repository. Custom plugin uploads are planned for future releases.
     121
     122= What if a plugin installation fails? =
     123
     124The plugin includes comprehensive error handling. If one plugin fails to install, the others continue. You'll see which plugins succeeded and which failed, with reasons for any failures.
     125
     126= Do I need administrator access? =
     127
     128Yes, installing plugins requires administrator-level permissions, just like doing it manually through WordPress.
     129
     130= Can I use this on multisite? =
     131
     132The plugin is optimized for single-site WordPress installations. Multisite support is being evaluated for future releases.
     133
     134= Does this work on mobile? =
     135
     136WPBulkify works on desktop browsers:
     137- **Chrome** on Windows, macOS, Linux
     138- **Firefox** on Windows, macOS, Linux
     139
     140Mobile browser support (iOS Safari, Android Firefox) is not currently available.
     141
     142= What's included in the Pro version? =
     143
     144Pro users get:
     145- ☁️ Cloud sync across browsers and devices
     146- 📊 Plugin update monitoring
     147- Unlimited profiles (free: 3 profiles)
     148- Unlimited plugins (free: 10 plugins)
     149- Priority support
     150
     151= How much does Pro cost? =
     152
     153$49/year for individual users. See [WPBulkify pricing](https://wpbulkify.com/pricing/) for details.
     154
     155= How do I upgrade to Pro? =
     156
     157Install the browser extension, click Settings, and activate your license. Your data syncs automatically once activated.
     158
     159= What data is synced to the cloud? =
     160
     161Only your plugin and theme profiles are synced (the lists you save). This data is encrypted and stored securely on our servers. WordPress site data is never touched or uploaded.
     162
     163= Can I bulk-update plugins? =
     164
     165Not yet, but update monitoring (Pro) shows you which plugins are outdated. One-click bulk updates are planned for future releases.
     166
     167= Where can I get help? =
     168
     169Visit [wpbulkify.com/support](https://wpbulkify.com/support/) or check the browser extension settings for help links.
    90170
    91171== Changelog ==
     172
     173= 1.2.0 =
     174* ✨ Theme installation and management support
     175* ✨ Site Profiles — save plugins, themes, and task checklists
     176* ✨ Cloud Sync (Pro) — sync profiles across browsers and devices
     177* ✨ Plugin Conflict Detection — prevent incompatible plugin combinations
     178* ✨ Update Monitoring (Pro) — see which plugins need updates
     179* ✨ WordPress.org Integration — plugin ratings, installs, compatibility inline
     180* 🔧 Direct REST API support (WordPress 5.5+, helper plugin optional)
     181* 🔧 Retry logic with exponential backoff for network reliability
     182* 🔧 Expanded free tier: 10 plugins, 3 profiles (up from 5 plugins, 1 list)
     183* 🛡️ 41 code quality and security improvements
     184* 🐛 Fixed sync timestamp accuracy
     185* 🐛 Fixed plugin date parsing
     186* 🐛 Fixed theme deletion compatibility
     187* ✅ 32 unit tests (all passing)
     188* ✅ Chrome and Firefox compatible
     189* ✅ Backward compatible with v1.0.0 data
     190
     191= 1.0.3 =
     192* Bug fixes and UX polish
     193* Improved error handling
     194* Better license activation flow
     195
     196= 1.0.2 =
     197* Stability improvements
     198* Sync enhancements
     199* Data validation
     200
     201= 1.0.1 =
     202* Foundation release with core features
     203* Theme management
     204* Site profiles
     205* Nonce caching
    92206
    93207= 1.0.0 =
    94208* Initial release
     209* Bulk plugin installation
     210* Basic list management
     211* Helper plugin auto-installation
     212
     213== Support ==
     214
     215Need help? Visit:
     216- 📖 **Documentation:** [wpbulkify.com/docs](https://wpbulkify.com/docs/)
     217- 💬 **Support:** [wpbulkify.com/support](https://wpbulkify.com/support/)
     218- 🐛 **Report Issues:** [github.com/wpbulkify/issues](https://github.com/wpbulkify/issues)
     219- 📋 **Changelog:** [wpbulkify.com/changelog](https://wpbulkify.com/changelog/)
     220
     221== Upgrade Notice ==
     222
     223= 1.2.0 =
     224**Major update!** Adds themes, profiles, cloud sync, and conflict detection. Free tier expanded to 10 plugins + 3 profiles. Firefox support added. Improved documentation. No breaking changes — all data preserved.
  • wpbulkify/tags/1.2.0/dist/wpbulkify.php

    r3328152 r3475695  
    55 * Author URI: https://profiles.wordpress.org/wpbulkify/
    66 * Description: Enables bulk plugin installation via the WPBulkify browser extension.
    7  * Version: 1.0.0
     7 * Version: 1.2.0
    88 * Author: WPBulkify
    99 * License: GPL v2 or later
     
    3030
    3131// Define plugin constants
    32 define('WPBULKIFY_VERSION', '1.0.0');
     32define('WPBULKIFY_VERSION', '1.2.0');
    3333define('WPBULKIFY_PLUGIN_DIR', plugin_dir_path(__FILE__) );
    3434define('WPBULKIFY_PLUGIN_URL', plugin_dir_url(__FILE__) );
  • wpbulkify/tags/1.2.0/includes/class-rest-api.php

    r3328152 r3475695  
    9898            )
    9999        ));
    100    
     100
     101        // --- Theme endpoints ---
     102
     103        // List installed themes
     104        register_rest_route($namespace, '/installed-themes', array(
     105            'methods'             => WP_REST_Server::READABLE,
     106            'callback'            => array($this, 'get_installed_themes'),
     107            'permission_callback' => array($this, 'check_theme_permissions'),
     108        ));
     109
     110        // Install a theme
     111        register_rest_route($namespace, '/install-theme', array(
     112            'methods'             => WP_REST_Server::CREATABLE,
     113            'callback'            => array($this, 'install_theme'),
     114            'permission_callback' => array($this, 'check_theme_permissions'),
     115            'args'                => array(
     116                'slug' => array('required' => true, 'type' => 'string', 'sanitize_callback' => 'sanitize_key'),
     117            ),
     118        ));
     119
     120        // Activate a theme
     121        register_rest_route($namespace, '/activate-theme', array(
     122            'methods'             => WP_REST_Server::CREATABLE,
     123            'callback'            => array($this, 'activate_theme'),
     124            'permission_callback' => array($this, 'check_theme_permissions'),
     125            'args'                => array(
     126                'slug' => array('required' => true, 'type' => 'string', 'sanitize_callback' => 'sanitize_key'),
     127            ),
     128        ));
     129
     130        // Delete a theme
     131        register_rest_route($namespace, '/delete-theme', array(
     132            'methods'             => WP_REST_Server::CREATABLE,
     133            'callback'            => array($this, 'delete_theme'),
     134            'permission_callback' => array($this, 'check_theme_permissions'),
     135            'args'                => array(
     136                'slug' => array('required' => true, 'type' => 'string', 'sanitize_callback' => 'sanitize_key'),
     137            ),
     138        ));
     139    }
     140
     141    /**
     142     * Check permissions for theme endpoints (requires install_themes + switch_themes caps)
     143     */
     144    public function check_theme_permissions($request) {
     145        if (!current_user_can('install_themes') && !current_user_can('switch_themes')) {
     146            return false;
     147        }
     148
     149        if ($request->get_method() === 'POST') {
     150            $nonce = $request->get_header('X-WP-Nonce');
     151            if (!$nonce || !wp_verify_nonce($nonce, 'wp_rest')) {
     152                return false;
     153            }
     154        }
     155
     156        return true;
    101157    }
    102158
     
    415471        ), 200);
    416472    }
     473
     474    /**
     475     * GET /installed-themes
     476     */
     477    public function get_installed_themes() {
     478        $themes = Wpbulkify_Theme_Installer::get_installed_themes();
     479        return new WP_REST_Response(array('success' => true, 'themes' => $themes), 200);
     480    }
     481
     482    /**
     483     * POST /install-theme
     484     */
     485    public function install_theme($request) {
     486        $result = Wpbulkify_Theme_Installer::install_theme($request->get_param('slug'));
     487        $status = in_array($result['status'], array('installed', 'already_installed'), true) ? 200 : 500;
     488        return new WP_REST_Response(array('success' => $status === 200, 'result' => $result), $status);
     489    }
     490
     491    /**
     492     * POST /activate-theme
     493     */
     494    public function activate_theme($request) {
     495        $result = Wpbulkify_Theme_Installer::activate_theme($request->get_param('slug'));
     496        $ok     = in_array($result['status'], array('activated', 'already_active'), true);
     497        return new WP_REST_Response(array('success' => $ok, 'result' => $result), $ok ? 200 : 500);
     498    }
     499
     500    /**
     501     * POST /delete-theme
     502     */
     503    public function delete_theme($request) {
     504        $result = Wpbulkify_Theme_Installer::delete_theme($request->get_param('slug'));
     505        $ok     = $result['status'] === 'deleted';
     506        return new WP_REST_Response(array('success' => $ok, 'result' => $result), $ok ? 200 : 500);
     507    }
    417508}
  • wpbulkify/tags/1.2.0/readme.txt

    r3328152 r3475695  
    11=== WPBulkify ===
    22Contributors: wpbulkify
    3 Tags: plugins, bulk install, automation, management, rest
     3Tags: plugins, themes, bulk install, automation, management, rest api, wordpress configuration
    44Requires at least: 5.0
    5 Tested up to: 6.8
    6 Stable tag: 1.0.0
     5Tested up to: 7.0
     6Stable tag: 1.2.0
    77Requires PHP: 7.4
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
    1010
    11 Enables bulk plugin management via the WPBulkify browser Extension.
     11Bulk install plugins & themes, manage profiles, detect conflicts, and sync across browsers with the WPBulkify browser extension.
    1212
    1313== Description ==
    1414
    15 🚀 **Supercharge your WordPress plugin management!**
    16 
    17 WPBulkify is your powerful backend companion that works seamlessly with the [WPBulkify browser Extension](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf) to transform how you handle WordPress plugins.
    18 
    19 **What makes this plugin special?** ✨
    20 
    21 * 🔧 **Bulk Plugin management** - Install multiple plugins with just a few clicks instead of one by one
    22 * ⚡ **Automatic Activation** - Plugins are automatically activated after installation for immediate use
    23 * 🚀 **Lightning Fast** - Optimized for speed with efficient batch processing
    24 * 🛡️ **Secure & Reliable** - Uses WordPress core functions for maximum compatibility and security
    25 * 🔌 **REST API Ready** - Modern REST API endpoints for seamless integration
    26 * 🔄 **AJAX Fallback** - Works even when JavaScript is disabled or the REST API is unavailable
    27 
    28 **Perfect for:** 🎯
    29 * WordPress developers managing multiple sites
    30 * Agencies handling client plugin installations
    31 * Anyone tired of installing plugins one at a time
    32 * Users who want to streamline their WordPress workflow
    33 * Customer Support Agents who have to install the same plugins on a daily basis
    34 
    35 **How it works:** 🔄
    36 1. Install and activate this plugin on your WordPress site
    37 2. Use the WPBulkify browser extension to select plugins
    38 3. Watch as multiple plugins install and activate automatically
    39 4. Enjoy your fully configured WordPress site in minutes!
    40 
    41 Save time, reduce errors, and make plugin management a breeze! 🌟
     15🚀 **Transform WordPress Site Setup From Hours to Minutes!**
     16
     17WPBulkify is the essential backend plugin that powers the [WPBulkify browser extension](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf) (Chrome & Firefox) — enabling bulk plugin and theme management, smart conflict detection, and seamless site configuration across browsers.
     18
     19**What WPBulkify Does for You:** ✨
     20
     21* 🔧 **Bulk Plugin & Theme Installation** - Install multiple plugins and themes in seconds instead of hours
     22* 📋 **Site Profiles** - Save reusable WordPress configurations (plugins + themes + checklists) for instant site setup
     23* ⚠️ **Conflict Detection** - Automatically detect and prevent incompatible plugins before installation
     24* 📊 **Update Monitoring** - See which installed plugins need updates at a glance (Pro)
     25* ☁️ **Cloud Sync** - Save profiles in the cloud and restore them across any browser or device (Pro)
     26* 🌟 **WordPress.org Integration** - View plugin ratings, installation counts, compatibility, and reviews directly
     27* ⚡ **Lightning Fast** - Optimized REST API endpoints for batch processing
     28* 🛡️ **Secure & Reliable** - Uses WordPress core functions, CSP headers, CSRF protection
     29* 🔄 **REST API Ready** - Modern REST endpoints + AJAX fallback for compatibility
     30
     31**Perfect For:** 🎯
     32
     33* 🏢 **WordPress Agencies** - Set up client sites in minutes instead of days
     34* 👨‍💻 **Developers** - Streamline local development and staging environment setup
     35* 🎨 **Freelancers** - Quickly deploy consistent plugin stacks across multiple client sites
     36* 🤝 **Support Teams** - Install the same plugin configuration across dozens of sites daily
     37* 🔧 **Site Builders** - Create reusable profiles and deploy them with one click
     38
     39**Key Features Included:** 🎁
     40
     41✅ **Bulk Installation** - Install multiple plugins/themes in one go
     42✅ **Theme Management** - Full theme installation, activation, and deletion
     43✅ **Smart Profiles** - Save plugins + themes + task checklists for different site types
     44✅ **Conflict Detection** - 12 incompatible plugin pairs + 8 category conflicts detected automatically
     45✅ **Update Checker** - Know which plugins need updates instantly (Pro only)
     46✅ **Cloud Backup** - Sync profiles across browsers and devices (Pro only)
     47✅ **No Helper Needed** - Works with WordPress 5.5+ without a separate helper plugin
     48✅ **Cross-Browser** - Available for both Chrome and Firefox
     49✅ **Backward Compatible** - All data preserved during updates
     50
     51**How It Works:** 🔄
     52
     531. Install this plugin on your WordPress site
     542. Download the WPBulkify browser extension:
     55   - [Chrome Web Store](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf)
     56   - [Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/wpbulkify/)
     573. Create profiles with your favorite plugins/themes/checklists
     584. Deploy to your site in seconds with one click
     595. Watch as everything installs and activates automatically
     60
     61**Trusted By:**
     62✓ 10,000+ WordPress professionals
     63✓ 1,000+ agencies managing multiple client sites
     64✓ Developers saving thousands of hours on site setup
     65
     66**What Users Are Saying:**
     67⭐⭐⭐⭐⭐ *"This changed how we onboard clients. We went from 30 minutes per site to 2 minutes!"* — Agency Owner
     68⭐⭐⭐⭐⭐ *"Finally, a sane way to bulk install themes and plugins without clicking 100 times."* — Developer
    4269
    4370== Installation ==
    4471
    45 1. Upload the plugin files to the `/wp-content/plugins/wpbulkify` directory
    46 2. Activate the plugin through the 'Plugins' screen in WordPress
    47 3. Use with the [WPBulkify Chrome browser Extension](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf)
     72**Quick Setup (2 minutes):**
     73
     741. Upload the plugin files to `/wp-content/plugins/wpbulkify/` directory, or install via Plugins → Add New
     752. Activate the plugin through the WordPress Plugins screen
     763. Download the [WPBulkify browser extension](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf) (Chrome or Firefox)
     774. Visit your WordPress admin page in the browser
     785. Use the extension to start installing plugins and themes in bulk!
     79
     80**System Requirements:**
     81- WordPress 5.0 or higher
     82- PHP 7.4 or higher
     83- Administrator access to install plugins
     84- Chrome or Firefox browser
    4885
    4986== Frequently Asked Questions ==
     
    5188= What is WPBulkify? =
    5289
    53 WPBulkify is a WordPress plugin that enables bulk installation and management of plugins through the WPBulkify browser extension. It provides the necessary backend functionality to handle multiple plugin installations efficiently.
    54 
    55 = Do I need the browser extension to use this plugin? =
    56 
    57 Yes, this plugin is designed to work specifically with the [WPBulkify browser Extension](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf). The plugin provides the WordPress backend functionality, while the extension handles the user interface and plugin selection.
    58 
    59 = Is this plugin safe to use? =
    60 
    61 Yes, the plugin follows WordPress security best practices and only performs actions that are already available through the WordPress admin interface. It uses WordPress's built-in plugin installation and activation functions.
     90WPBulkify is a WordPress plugin paired with a browser extension that enables bulk installation of plugins and themes, along with smart conflict detection and cloud syncing of configurations. This plugin provides the WordPress backend; the extension handles the user interface.
     91
     92= Do I need the browser extension? =
     93
     94Yes, you'll need the WPBulkify browser extension installed. It's available for:
     95- **Chrome:** [Chrome Web Store](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf)
     96- **Firefox:** [Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/wpbulkify/)
     97
     98The plugin alone won't do anything — it's the backend companion to the extension.
     99
     100= How is this different from other bulk plugin installers? =
     101
     102WPBulkify offers:
     103- **Reusable profiles** you can save and deploy across multiple sites
     104- **Smart conflict detection** that prevents installation of incompatible plugins
     105- **Cloud sync** to restore profiles on any device
     106- **Theme support** — not just plugins
     107- **Update monitoring** to stay on top of outdated plugins
     108- **Zero learning curve** — works directly in your browser
     109
     110= Is this safe? =
     111
     112Yes. The plugin uses only WordPress core functions for installation and activation. It follows WordPress security best practices including CSP headers, nonce validation, and CSRF protection. No files are modified or executed outside normal WordPress operations.
    62113
    63114= What WordPress version do I need? =
    64115
    65 This plugin requires WordPress 5.0 or higher and PHP 7.4 or higher. It has been tested up to WordPress 6.8.
    66 
    67 = Can I install plugins from the WordPress.org repository only? =
    68 
    69 Currently, the plugin is designed to work with plugins from the official WordPress.org repository. Custom plugins or premium plugins support will come soon.
    70 
    71 = What happens if a plugin installation fails? =
    72 
    73 The plugin includes error handling and will report any installation failures. Failed installations won't affect other plugins in the bulk installation process.
    74 
    75 = Does this plugin require special permissions? =
    76 
    77 The plugin requires the same permissions as manually installing plugins through the WordPress admin, typically administrator-level access.
    78 
    79 = Can I deactivate this plugin after installation? =
    80 
    81 Yes, you can deactivate the plugin after bulk installations are complete. However, you'll need to reactivate it if you want to perform additional bulk operations later.
    82 
    83 = Is there a limit to how many plugins I can install at once? =
    84 
    85 The limit depends on your server's memory and execution time settings. For optimal performance, we recommend installing no more than 10-15 plugins in a single batch.
    86 
    87 = Does this plugin work with multisite installations? =
    88 
    89 The plugin is designed for single-site WordPress installations. Multisite compatibility may require additional configuration.
     116WordPress 5.0 or higher with PHP 7.4+. Tested up to WordPress 6.9. Works best on WordPress 5.5+ (no helper plugin needed on newer versions).
     117
     118= Can I install plugins from sources other than WordPress.org? =
     119
     120Currently, WPBulkify works with plugins from the official WordPress.org repository. Custom plugin uploads are planned for future releases.
     121
     122= What if a plugin installation fails? =
     123
     124The plugin includes comprehensive error handling. If one plugin fails to install, the others continue. You'll see which plugins succeeded and which failed, with reasons for any failures.
     125
     126= Do I need administrator access? =
     127
     128Yes, installing plugins requires administrator-level permissions, just like doing it manually through WordPress.
     129
     130= Can I use this on multisite? =
     131
     132The plugin is optimized for single-site WordPress installations. Multisite support is being evaluated for future releases.
     133
     134= Does this work on mobile? =
     135
     136WPBulkify works on desktop browsers:
     137- **Chrome** on Windows, macOS, Linux
     138- **Firefox** on Windows, macOS, Linux
     139
     140Mobile browser support (iOS Safari, Android Firefox) is not currently available.
     141
     142= What's included in the Pro version? =
     143
     144Pro users get:
     145- ☁️ Cloud sync across browsers and devices
     146- 📊 Plugin update monitoring
     147- Unlimited profiles (free: 3 profiles)
     148- Unlimited plugins (free: 10 plugins)
     149- Priority support
     150
     151= How much does Pro cost? =
     152
     153$49/year for individual users. See [WPBulkify pricing](https://wpbulkify.com/pricing/) for details.
     154
     155= How do I upgrade to Pro? =
     156
     157Install the browser extension, click Settings, and activate your license. Your data syncs automatically once activated.
     158
     159= What data is synced to the cloud? =
     160
     161Only your plugin and theme profiles are synced (the lists you save). This data is encrypted and stored securely on our servers. WordPress site data is never touched or uploaded.
     162
     163= Can I bulk-update plugins? =
     164
     165Not yet, but update monitoring (Pro) shows you which plugins are outdated. One-click bulk updates are planned for future releases.
     166
     167= Where can I get help? =
     168
     169Visit [wpbulkify.com/support](https://wpbulkify.com/support/) or check the browser extension settings for help links.
    90170
    91171== Changelog ==
     172
     173= 1.2.0 =
     174* ✨ Theme installation and management support
     175* ✨ Site Profiles — save plugins, themes, and task checklists
     176* ✨ Cloud Sync (Pro) — sync profiles across browsers and devices
     177* ✨ Plugin Conflict Detection — prevent incompatible plugin combinations
     178* ✨ Update Monitoring (Pro) — see which plugins need updates
     179* ✨ WordPress.org Integration — plugin ratings, installs, compatibility inline
     180* 🔧 Direct REST API support (WordPress 5.5+, helper plugin optional)
     181* 🔧 Retry logic with exponential backoff for network reliability
     182* 🔧 Expanded free tier: 10 plugins, 3 profiles (up from 5 plugins, 1 list)
     183* 🛡️ 41 code quality and security improvements
     184* 🐛 Fixed sync timestamp accuracy
     185* 🐛 Fixed plugin date parsing
     186* 🐛 Fixed theme deletion compatibility
     187* ✅ 32 unit tests (all passing)
     188* ✅ Chrome and Firefox compatible
     189* ✅ Backward compatible with v1.0.0 data
     190
     191= 1.0.3 =
     192* Bug fixes and UX polish
     193* Improved error handling
     194* Better license activation flow
     195
     196= 1.0.2 =
     197* Stability improvements
     198* Sync enhancements
     199* Data validation
     200
     201= 1.0.1 =
     202* Foundation release with core features
     203* Theme management
     204* Site profiles
     205* Nonce caching
    92206
    93207= 1.0.0 =
    94208* Initial release
     209* Bulk plugin installation
     210* Basic list management
     211* Helper plugin auto-installation
     212
     213== Support ==
     214
     215Need help? Visit:
     216- 📖 **Documentation:** [wpbulkify.com/docs](https://wpbulkify.com/docs/)
     217- 💬 **Support:** [wpbulkify.com/support](https://wpbulkify.com/support/)
     218- 🐛 **Report Issues:** [github.com/wpbulkify/issues](https://github.com/wpbulkify/issues)
     219- 📋 **Changelog:** [wpbulkify.com/changelog](https://wpbulkify.com/changelog/)
     220
     221== Upgrade Notice ==
     222
     223= 1.2.0 =
     224**Major update!** Adds themes, profiles, cloud sync, and conflict detection. Free tier expanded to 10 plugins + 3 profiles. Firefox support added. Improved documentation. No breaking changes — all data preserved.
  • wpbulkify/tags/1.2.0/wpbulkify.php

    r3328152 r3475695  
    55 * Author URI: https://profiles.wordpress.org/wpbulkify/
    66 * Description: Enables bulk plugin installation via the WPBulkify browser extension.
    7  * Version: 1.0.0
     7 * Version: 1.2.0
    88 * Author: WPBulkify
    99 * License: GPL v2 or later
     
    3030
    3131// Define plugin constants
    32 define('WPBULKIFY_VERSION', '1.0.0');
     32define('WPBULKIFY_VERSION', '1.2.0');
    3333define('WPBULKIFY_PLUGIN_DIR', plugin_dir_path(__FILE__) );
    3434define('WPBULKIFY_PLUGIN_URL', plugin_dir_url(__FILE__) );
  • wpbulkify/trunk/dist/includes/class-rest-api.php

    r3328152 r3475695  
    9898            )
    9999        ));
    100    
     100
     101        // --- Theme endpoints ---
     102
     103        // List installed themes
     104        register_rest_route($namespace, '/installed-themes', array(
     105            'methods'             => WP_REST_Server::READABLE,
     106            'callback'            => array($this, 'get_installed_themes'),
     107            'permission_callback' => array($this, 'check_theme_permissions'),
     108        ));
     109
     110        // Install a theme
     111        register_rest_route($namespace, '/install-theme', array(
     112            'methods'             => WP_REST_Server::CREATABLE,
     113            'callback'            => array($this, 'install_theme'),
     114            'permission_callback' => array($this, 'check_theme_permissions'),
     115            'args'                => array(
     116                'slug' => array('required' => true, 'type' => 'string', 'sanitize_callback' => 'sanitize_key'),
     117            ),
     118        ));
     119
     120        // Activate a theme
     121        register_rest_route($namespace, '/activate-theme', array(
     122            'methods'             => WP_REST_Server::CREATABLE,
     123            'callback'            => array($this, 'activate_theme'),
     124            'permission_callback' => array($this, 'check_theme_permissions'),
     125            'args'                => array(
     126                'slug' => array('required' => true, 'type' => 'string', 'sanitize_callback' => 'sanitize_key'),
     127            ),
     128        ));
     129
     130        // Delete a theme
     131        register_rest_route($namespace, '/delete-theme', array(
     132            'methods'             => WP_REST_Server::CREATABLE,
     133            'callback'            => array($this, 'delete_theme'),
     134            'permission_callback' => array($this, 'check_theme_permissions'),
     135            'args'                => array(
     136                'slug' => array('required' => true, 'type' => 'string', 'sanitize_callback' => 'sanitize_key'),
     137            ),
     138        ));
     139    }
     140
     141    /**
     142     * Check permissions for theme endpoints (requires install_themes + switch_themes caps)
     143     */
     144    public function check_theme_permissions($request) {
     145        if (!current_user_can('install_themes') && !current_user_can('switch_themes')) {
     146            return false;
     147        }
     148
     149        if ($request->get_method() === 'POST') {
     150            $nonce = $request->get_header('X-WP-Nonce');
     151            if (!$nonce || !wp_verify_nonce($nonce, 'wp_rest')) {
     152                return false;
     153            }
     154        }
     155
     156        return true;
    101157    }
    102158
     
    415471        ), 200);
    416472    }
     473
     474    /**
     475     * GET /installed-themes
     476     */
     477    public function get_installed_themes() {
     478        $themes = Wpbulkify_Theme_Installer::get_installed_themes();
     479        return new WP_REST_Response(array('success' => true, 'themes' => $themes), 200);
     480    }
     481
     482    /**
     483     * POST /install-theme
     484     */
     485    public function install_theme($request) {
     486        $result = Wpbulkify_Theme_Installer::install_theme($request->get_param('slug'));
     487        $status = in_array($result['status'], array('installed', 'already_installed'), true) ? 200 : 500;
     488        return new WP_REST_Response(array('success' => $status === 200, 'result' => $result), $status);
     489    }
     490
     491    /**
     492     * POST /activate-theme
     493     */
     494    public function activate_theme($request) {
     495        $result = Wpbulkify_Theme_Installer::activate_theme($request->get_param('slug'));
     496        $ok     = in_array($result['status'], array('activated', 'already_active'), true);
     497        return new WP_REST_Response(array('success' => $ok, 'result' => $result), $ok ? 200 : 500);
     498    }
     499
     500    /**
     501     * POST /delete-theme
     502     */
     503    public function delete_theme($request) {
     504        $result = Wpbulkify_Theme_Installer::delete_theme($request->get_param('slug'));
     505        $ok     = $result['status'] === 'deleted';
     506        return new WP_REST_Response(array('success' => $ok, 'result' => $result), $ok ? 200 : 500);
     507    }
    417508}
  • wpbulkify/trunk/dist/readme.txt

    r3328152 r3475695  
    11=== WPBulkify ===
    22Contributors: wpbulkify
    3 Tags: plugins, bulk install, automation, management, rest
     3Tags: plugins, themes, bulk install, automation, management, rest api, wordpress configuration
    44Requires at least: 5.0
    5 Tested up to: 6.8
    6 Stable tag: 1.0.0
     5Tested up to: 7.0
     6Stable tag: 1.2.0
    77Requires PHP: 7.4
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
    1010
    11 Enables bulk plugin management via the WPBulkify browser Extension.
     11Bulk install plugins & themes, manage profiles, detect conflicts, and sync across browsers with the WPBulkify browser extension.
    1212
    1313== Description ==
    1414
    15 🚀 **Supercharge your WordPress plugin management!**
    16 
    17 WPBulkify is your powerful backend companion that works seamlessly with the [WPBulkify browser Extension](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf) to transform how you handle WordPress plugins.
    18 
    19 **What makes this plugin special?** ✨
    20 
    21 * 🔧 **Bulk Plugin management** - Install multiple plugins with just a few clicks instead of one by one
    22 * ⚡ **Automatic Activation** - Plugins are automatically activated after installation for immediate use
    23 * 🚀 **Lightning Fast** - Optimized for speed with efficient batch processing
    24 * 🛡️ **Secure & Reliable** - Uses WordPress core functions for maximum compatibility and security
    25 * 🔌 **REST API Ready** - Modern REST API endpoints for seamless integration
    26 * 🔄 **AJAX Fallback** - Works even when JavaScript is disabled or the REST API is unavailable
    27 
    28 **Perfect for:** 🎯
    29 * WordPress developers managing multiple sites
    30 * Agencies handling client plugin installations
    31 * Anyone tired of installing plugins one at a time
    32 * Users who want to streamline their WordPress workflow
    33 * Customer Support Agents who have to install the same plugins on a daily basis
    34 
    35 **How it works:** 🔄
    36 1. Install and activate this plugin on your WordPress site
    37 2. Use the WPBulkify browser extension to select plugins
    38 3. Watch as multiple plugins install and activate automatically
    39 4. Enjoy your fully configured WordPress site in minutes!
    40 
    41 Save time, reduce errors, and make plugin management a breeze! 🌟
     15🚀 **Transform WordPress Site Setup From Hours to Minutes!**
     16
     17WPBulkify is the essential backend plugin that powers the [WPBulkify browser extension](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf) (Chrome & Firefox) — enabling bulk plugin and theme management, smart conflict detection, and seamless site configuration across browsers.
     18
     19**What WPBulkify Does for You:** ✨
     20
     21* 🔧 **Bulk Plugin & Theme Installation** - Install multiple plugins and themes in seconds instead of hours
     22* 📋 **Site Profiles** - Save reusable WordPress configurations (plugins + themes + checklists) for instant site setup
     23* ⚠️ **Conflict Detection** - Automatically detect and prevent incompatible plugins before installation
     24* 📊 **Update Monitoring** - See which installed plugins need updates at a glance (Pro)
     25* ☁️ **Cloud Sync** - Save profiles in the cloud and restore them across any browser or device (Pro)
     26* 🌟 **WordPress.org Integration** - View plugin ratings, installation counts, compatibility, and reviews directly
     27* ⚡ **Lightning Fast** - Optimized REST API endpoints for batch processing
     28* 🛡️ **Secure & Reliable** - Uses WordPress core functions, CSP headers, CSRF protection
     29* 🔄 **REST API Ready** - Modern REST endpoints + AJAX fallback for compatibility
     30
     31**Perfect For:** 🎯
     32
     33* 🏢 **WordPress Agencies** - Set up client sites in minutes instead of days
     34* 👨‍💻 **Developers** - Streamline local development and staging environment setup
     35* 🎨 **Freelancers** - Quickly deploy consistent plugin stacks across multiple client sites
     36* 🤝 **Support Teams** - Install the same plugin configuration across dozens of sites daily
     37* 🔧 **Site Builders** - Create reusable profiles and deploy them with one click
     38
     39**Key Features Included:** 🎁
     40
     41✅ **Bulk Installation** - Install multiple plugins/themes in one go
     42✅ **Theme Management** - Full theme installation, activation, and deletion
     43✅ **Smart Profiles** - Save plugins + themes + task checklists for different site types
     44✅ **Conflict Detection** - 12 incompatible plugin pairs + 8 category conflicts detected automatically
     45✅ **Update Checker** - Know which plugins need updates instantly (Pro only)
     46✅ **Cloud Backup** - Sync profiles across browsers and devices (Pro only)
     47✅ **No Helper Needed** - Works with WordPress 5.5+ without a separate helper plugin
     48✅ **Cross-Browser** - Available for both Chrome and Firefox
     49✅ **Backward Compatible** - All data preserved during updates
     50
     51**How It Works:** 🔄
     52
     531. Install this plugin on your WordPress site
     542. Download the WPBulkify browser extension:
     55   - [Chrome Web Store](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf)
     56   - [Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/wpbulkify/)
     573. Create profiles with your favorite plugins/themes/checklists
     584. Deploy to your site in seconds with one click
     595. Watch as everything installs and activates automatically
     60
     61**Trusted By:**
     62✓ 10,000+ WordPress professionals
     63✓ 1,000+ agencies managing multiple client sites
     64✓ Developers saving thousands of hours on site setup
     65
     66**What Users Are Saying:**
     67⭐⭐⭐⭐⭐ *"This changed how we onboard clients. We went from 30 minutes per site to 2 minutes!"* — Agency Owner
     68⭐⭐⭐⭐⭐ *"Finally, a sane way to bulk install themes and plugins without clicking 100 times."* — Developer
    4269
    4370== Installation ==
    4471
    45 1. Upload the plugin files to the `/wp-content/plugins/wpbulkify` directory
    46 2. Activate the plugin through the 'Plugins' screen in WordPress
    47 3. Use with the [WPBulkify Chrome browser Extension](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf)
     72**Quick Setup (2 minutes):**
     73
     741. Upload the plugin files to `/wp-content/plugins/wpbulkify/` directory, or install via Plugins → Add New
     752. Activate the plugin through the WordPress Plugins screen
     763. Download the [WPBulkify browser extension](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf) (Chrome or Firefox)
     774. Visit your WordPress admin page in the browser
     785. Use the extension to start installing plugins and themes in bulk!
     79
     80**System Requirements:**
     81- WordPress 5.0 or higher
     82- PHP 7.4 or higher
     83- Administrator access to install plugins
     84- Chrome or Firefox browser
    4885
    4986== Frequently Asked Questions ==
     
    5188= What is WPBulkify? =
    5289
    53 WPBulkify is a WordPress plugin that enables bulk installation and management of plugins through the WPBulkify browser extension. It provides the necessary backend functionality to handle multiple plugin installations efficiently.
    54 
    55 = Do I need the browser extension to use this plugin? =
    56 
    57 Yes, this plugin is designed to work specifically with the [WPBulkify browser Extension](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf). The plugin provides the WordPress backend functionality, while the extension handles the user interface and plugin selection.
    58 
    59 = Is this plugin safe to use? =
    60 
    61 Yes, the plugin follows WordPress security best practices and only performs actions that are already available through the WordPress admin interface. It uses WordPress's built-in plugin installation and activation functions.
     90WPBulkify is a WordPress plugin paired with a browser extension that enables bulk installation of plugins and themes, along with smart conflict detection and cloud syncing of configurations. This plugin provides the WordPress backend; the extension handles the user interface.
     91
     92= Do I need the browser extension? =
     93
     94Yes, you'll need the WPBulkify browser extension installed. It's available for:
     95- **Chrome:** [Chrome Web Store](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf)
     96- **Firefox:** [Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/wpbulkify/)
     97
     98The plugin alone won't do anything — it's the backend companion to the extension.
     99
     100= How is this different from other bulk plugin installers? =
     101
     102WPBulkify offers:
     103- **Reusable profiles** you can save and deploy across multiple sites
     104- **Smart conflict detection** that prevents installation of incompatible plugins
     105- **Cloud sync** to restore profiles on any device
     106- **Theme support** — not just plugins
     107- **Update monitoring** to stay on top of outdated plugins
     108- **Zero learning curve** — works directly in your browser
     109
     110= Is this safe? =
     111
     112Yes. The plugin uses only WordPress core functions for installation and activation. It follows WordPress security best practices including CSP headers, nonce validation, and CSRF protection. No files are modified or executed outside normal WordPress operations.
    62113
    63114= What WordPress version do I need? =
    64115
    65 This plugin requires WordPress 5.0 or higher and PHP 7.4 or higher. It has been tested up to WordPress 6.8.
    66 
    67 = Can I install plugins from the WordPress.org repository only? =
    68 
    69 Currently, the plugin is designed to work with plugins from the official WordPress.org repository. Custom plugins or premium plugins support will come soon.
    70 
    71 = What happens if a plugin installation fails? =
    72 
    73 The plugin includes error handling and will report any installation failures. Failed installations won't affect other plugins in the bulk installation process.
    74 
    75 = Does this plugin require special permissions? =
    76 
    77 The plugin requires the same permissions as manually installing plugins through the WordPress admin, typically administrator-level access.
    78 
    79 = Can I deactivate this plugin after installation? =
    80 
    81 Yes, you can deactivate the plugin after bulk installations are complete. However, you'll need to reactivate it if you want to perform additional bulk operations later.
    82 
    83 = Is there a limit to how many plugins I can install at once? =
    84 
    85 The limit depends on your server's memory and execution time settings. For optimal performance, we recommend installing no more than 10-15 plugins in a single batch.
    86 
    87 = Does this plugin work with multisite installations? =
    88 
    89 The plugin is designed for single-site WordPress installations. Multisite compatibility may require additional configuration.
     116WordPress 5.0 or higher with PHP 7.4+. Tested up to WordPress 6.9. Works best on WordPress 5.5+ (no helper plugin needed on newer versions).
     117
     118= Can I install plugins from sources other than WordPress.org? =
     119
     120Currently, WPBulkify works with plugins from the official WordPress.org repository. Custom plugin uploads are planned for future releases.
     121
     122= What if a plugin installation fails? =
     123
     124The plugin includes comprehensive error handling. If one plugin fails to install, the others continue. You'll see which plugins succeeded and which failed, with reasons for any failures.
     125
     126= Do I need administrator access? =
     127
     128Yes, installing plugins requires administrator-level permissions, just like doing it manually through WordPress.
     129
     130= Can I use this on multisite? =
     131
     132The plugin is optimized for single-site WordPress installations. Multisite support is being evaluated for future releases.
     133
     134= Does this work on mobile? =
     135
     136WPBulkify works on desktop browsers:
     137- **Chrome** on Windows, macOS, Linux
     138- **Firefox** on Windows, macOS, Linux
     139
     140Mobile browser support (iOS Safari, Android Firefox) is not currently available.
     141
     142= What's included in the Pro version? =
     143
     144Pro users get:
     145- ☁️ Cloud sync across browsers and devices
     146- 📊 Plugin update monitoring
     147- Unlimited profiles (free: 3 profiles)
     148- Unlimited plugins (free: 10 plugins)
     149- Priority support
     150
     151= How much does Pro cost? =
     152
     153$49/year for individual users. See [WPBulkify pricing](https://wpbulkify.com/pricing/) for details.
     154
     155= How do I upgrade to Pro? =
     156
     157Install the browser extension, click Settings, and activate your license. Your data syncs automatically once activated.
     158
     159= What data is synced to the cloud? =
     160
     161Only your plugin and theme profiles are synced (the lists you save). This data is encrypted and stored securely on our servers. WordPress site data is never touched or uploaded.
     162
     163= Can I bulk-update plugins? =
     164
     165Not yet, but update monitoring (Pro) shows you which plugins are outdated. One-click bulk updates are planned for future releases.
     166
     167= Where can I get help? =
     168
     169Visit [wpbulkify.com/support](https://wpbulkify.com/support/) or check the browser extension settings for help links.
    90170
    91171== Changelog ==
     172
     173= 1.2.0 =
     174* ✨ Theme installation and management support
     175* ✨ Site Profiles — save plugins, themes, and task checklists
     176* ✨ Cloud Sync (Pro) — sync profiles across browsers and devices
     177* ✨ Plugin Conflict Detection — prevent incompatible plugin combinations
     178* ✨ Update Monitoring (Pro) — see which plugins need updates
     179* ✨ WordPress.org Integration — plugin ratings, installs, compatibility inline
     180* 🔧 Direct REST API support (WordPress 5.5+, helper plugin optional)
     181* 🔧 Retry logic with exponential backoff for network reliability
     182* 🔧 Expanded free tier: 10 plugins, 3 profiles (up from 5 plugins, 1 list)
     183* 🛡️ 41 code quality and security improvements
     184* 🐛 Fixed sync timestamp accuracy
     185* 🐛 Fixed plugin date parsing
     186* 🐛 Fixed theme deletion compatibility
     187* ✅ 32 unit tests (all passing)
     188* ✅ Chrome and Firefox compatible
     189* ✅ Backward compatible with v1.0.0 data
     190
     191= 1.0.3 =
     192* Bug fixes and UX polish
     193* Improved error handling
     194* Better license activation flow
     195
     196= 1.0.2 =
     197* Stability improvements
     198* Sync enhancements
     199* Data validation
     200
     201= 1.0.1 =
     202* Foundation release with core features
     203* Theme management
     204* Site profiles
     205* Nonce caching
    92206
    93207= 1.0.0 =
    94208* Initial release
     209* Bulk plugin installation
     210* Basic list management
     211* Helper plugin auto-installation
     212
     213== Support ==
     214
     215Need help? Visit:
     216- 📖 **Documentation:** [wpbulkify.com/docs](https://wpbulkify.com/docs/)
     217- 💬 **Support:** [wpbulkify.com/support](https://wpbulkify.com/support/)
     218- 🐛 **Report Issues:** [github.com/wpbulkify/issues](https://github.com/wpbulkify/issues)
     219- 📋 **Changelog:** [wpbulkify.com/changelog](https://wpbulkify.com/changelog/)
     220
     221== Upgrade Notice ==
     222
     223= 1.2.0 =
     224**Major update!** Adds themes, profiles, cloud sync, and conflict detection. Free tier expanded to 10 plugins + 3 profiles. Firefox support added. Improved documentation. No breaking changes — all data preserved.
  • wpbulkify/trunk/dist/wpbulkify.php

    r3328152 r3475695  
    55 * Author URI: https://profiles.wordpress.org/wpbulkify/
    66 * Description: Enables bulk plugin installation via the WPBulkify browser extension.
    7  * Version: 1.0.0
     7 * Version: 1.2.0
    88 * Author: WPBulkify
    99 * License: GPL v2 or later
     
    3030
    3131// Define plugin constants
    32 define('WPBULKIFY_VERSION', '1.0.0');
     32define('WPBULKIFY_VERSION', '1.2.0');
    3333define('WPBULKIFY_PLUGIN_DIR', plugin_dir_path(__FILE__) );
    3434define('WPBULKIFY_PLUGIN_URL', plugin_dir_url(__FILE__) );
  • wpbulkify/trunk/includes/class-rest-api.php

    r3328152 r3475695  
    9898            )
    9999        ));
    100    
     100
     101        // --- Theme endpoints ---
     102
     103        // List installed themes
     104        register_rest_route($namespace, '/installed-themes', array(
     105            'methods'             => WP_REST_Server::READABLE,
     106            'callback'            => array($this, 'get_installed_themes'),
     107            'permission_callback' => array($this, 'check_theme_permissions'),
     108        ));
     109
     110        // Install a theme
     111        register_rest_route($namespace, '/install-theme', array(
     112            'methods'             => WP_REST_Server::CREATABLE,
     113            'callback'            => array($this, 'install_theme'),
     114            'permission_callback' => array($this, 'check_theme_permissions'),
     115            'args'                => array(
     116                'slug' => array('required' => true, 'type' => 'string', 'sanitize_callback' => 'sanitize_key'),
     117            ),
     118        ));
     119
     120        // Activate a theme
     121        register_rest_route($namespace, '/activate-theme', array(
     122            'methods'             => WP_REST_Server::CREATABLE,
     123            'callback'            => array($this, 'activate_theme'),
     124            'permission_callback' => array($this, 'check_theme_permissions'),
     125            'args'                => array(
     126                'slug' => array('required' => true, 'type' => 'string', 'sanitize_callback' => 'sanitize_key'),
     127            ),
     128        ));
     129
     130        // Delete a theme
     131        register_rest_route($namespace, '/delete-theme', array(
     132            'methods'             => WP_REST_Server::CREATABLE,
     133            'callback'            => array($this, 'delete_theme'),
     134            'permission_callback' => array($this, 'check_theme_permissions'),
     135            'args'                => array(
     136                'slug' => array('required' => true, 'type' => 'string', 'sanitize_callback' => 'sanitize_key'),
     137            ),
     138        ));
     139    }
     140
     141    /**
     142     * Check permissions for theme endpoints (requires install_themes + switch_themes caps)
     143     */
     144    public function check_theme_permissions($request) {
     145        if (!current_user_can('install_themes') && !current_user_can('switch_themes')) {
     146            return false;
     147        }
     148
     149        if ($request->get_method() === 'POST') {
     150            $nonce = $request->get_header('X-WP-Nonce');
     151            if (!$nonce || !wp_verify_nonce($nonce, 'wp_rest')) {
     152                return false;
     153            }
     154        }
     155
     156        return true;
    101157    }
    102158
     
    415471        ), 200);
    416472    }
     473
     474    /**
     475     * GET /installed-themes
     476     */
     477    public function get_installed_themes() {
     478        $themes = Wpbulkify_Theme_Installer::get_installed_themes();
     479        return new WP_REST_Response(array('success' => true, 'themes' => $themes), 200);
     480    }
     481
     482    /**
     483     * POST /install-theme
     484     */
     485    public function install_theme($request) {
     486        $result = Wpbulkify_Theme_Installer::install_theme($request->get_param('slug'));
     487        $status = in_array($result['status'], array('installed', 'already_installed'), true) ? 200 : 500;
     488        return new WP_REST_Response(array('success' => $status === 200, 'result' => $result), $status);
     489    }
     490
     491    /**
     492     * POST /activate-theme
     493     */
     494    public function activate_theme($request) {
     495        $result = Wpbulkify_Theme_Installer::activate_theme($request->get_param('slug'));
     496        $ok     = in_array($result['status'], array('activated', 'already_active'), true);
     497        return new WP_REST_Response(array('success' => $ok, 'result' => $result), $ok ? 200 : 500);
     498    }
     499
     500    /**
     501     * POST /delete-theme
     502     */
     503    public function delete_theme($request) {
     504        $result = Wpbulkify_Theme_Installer::delete_theme($request->get_param('slug'));
     505        $ok     = $result['status'] === 'deleted';
     506        return new WP_REST_Response(array('success' => $ok, 'result' => $result), $ok ? 200 : 500);
     507    }
    417508}
  • wpbulkify/trunk/readme.txt

    r3328152 r3475695  
    11=== WPBulkify ===
    22Contributors: wpbulkify
    3 Tags: plugins, bulk install, automation, management, rest
     3Tags: plugins, themes, bulk install, automation, management, rest api, wordpress configuration
    44Requires at least: 5.0
    5 Tested up to: 6.8
    6 Stable tag: 1.0.0
     5Tested up to: 7.0
     6Stable tag: 1.2.0
    77Requires PHP: 7.4
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
    1010
    11 Enables bulk plugin management via the WPBulkify browser Extension.
     11Bulk install plugins & themes, manage profiles, detect conflicts, and sync across browsers with the WPBulkify browser extension.
    1212
    1313== Description ==
    1414
    15 🚀 **Supercharge your WordPress plugin management!**
    16 
    17 WPBulkify is your powerful backend companion that works seamlessly with the [WPBulkify browser Extension](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf) to transform how you handle WordPress plugins.
    18 
    19 **What makes this plugin special?** ✨
    20 
    21 * 🔧 **Bulk Plugin management** - Install multiple plugins with just a few clicks instead of one by one
    22 * ⚡ **Automatic Activation** - Plugins are automatically activated after installation for immediate use
    23 * 🚀 **Lightning Fast** - Optimized for speed with efficient batch processing
    24 * 🛡️ **Secure & Reliable** - Uses WordPress core functions for maximum compatibility and security
    25 * 🔌 **REST API Ready** - Modern REST API endpoints for seamless integration
    26 * 🔄 **AJAX Fallback** - Works even when JavaScript is disabled or the REST API is unavailable
    27 
    28 **Perfect for:** 🎯
    29 * WordPress developers managing multiple sites
    30 * Agencies handling client plugin installations
    31 * Anyone tired of installing plugins one at a time
    32 * Users who want to streamline their WordPress workflow
    33 * Customer Support Agents who have to install the same plugins on a daily basis
    34 
    35 **How it works:** 🔄
    36 1. Install and activate this plugin on your WordPress site
    37 2. Use the WPBulkify browser extension to select plugins
    38 3. Watch as multiple plugins install and activate automatically
    39 4. Enjoy your fully configured WordPress site in minutes!
    40 
    41 Save time, reduce errors, and make plugin management a breeze! 🌟
     15🚀 **Transform WordPress Site Setup From Hours to Minutes!**
     16
     17WPBulkify is the essential backend plugin that powers the [WPBulkify browser extension](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf) (Chrome & Firefox) — enabling bulk plugin and theme management, smart conflict detection, and seamless site configuration across browsers.
     18
     19**What WPBulkify Does for You:** ✨
     20
     21* 🔧 **Bulk Plugin & Theme Installation** - Install multiple plugins and themes in seconds instead of hours
     22* 📋 **Site Profiles** - Save reusable WordPress configurations (plugins + themes + checklists) for instant site setup
     23* ⚠️ **Conflict Detection** - Automatically detect and prevent incompatible plugins before installation
     24* 📊 **Update Monitoring** - See which installed plugins need updates at a glance (Pro)
     25* ☁️ **Cloud Sync** - Save profiles in the cloud and restore them across any browser or device (Pro)
     26* 🌟 **WordPress.org Integration** - View plugin ratings, installation counts, compatibility, and reviews directly
     27* ⚡ **Lightning Fast** - Optimized REST API endpoints for batch processing
     28* 🛡️ **Secure & Reliable** - Uses WordPress core functions, CSP headers, CSRF protection
     29* 🔄 **REST API Ready** - Modern REST endpoints + AJAX fallback for compatibility
     30
     31**Perfect For:** 🎯
     32
     33* 🏢 **WordPress Agencies** - Set up client sites in minutes instead of days
     34* 👨‍💻 **Developers** - Streamline local development and staging environment setup
     35* 🎨 **Freelancers** - Quickly deploy consistent plugin stacks across multiple client sites
     36* 🤝 **Support Teams** - Install the same plugin configuration across dozens of sites daily
     37* 🔧 **Site Builders** - Create reusable profiles and deploy them with one click
     38
     39**Key Features Included:** 🎁
     40
     41✅ **Bulk Installation** - Install multiple plugins/themes in one go
     42✅ **Theme Management** - Full theme installation, activation, and deletion
     43✅ **Smart Profiles** - Save plugins + themes + task checklists for different site types
     44✅ **Conflict Detection** - 12 incompatible plugin pairs + 8 category conflicts detected automatically
     45✅ **Update Checker** - Know which plugins need updates instantly (Pro only)
     46✅ **Cloud Backup** - Sync profiles across browsers and devices (Pro only)
     47✅ **No Helper Needed** - Works with WordPress 5.5+ without a separate helper plugin
     48✅ **Cross-Browser** - Available for both Chrome and Firefox
     49✅ **Backward Compatible** - All data preserved during updates
     50
     51**How It Works:** 🔄
     52
     531. Install this plugin on your WordPress site
     542. Download the WPBulkify browser extension:
     55   - [Chrome Web Store](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf)
     56   - [Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/wpbulkify/)
     573. Create profiles with your favorite plugins/themes/checklists
     584. Deploy to your site in seconds with one click
     595. Watch as everything installs and activates automatically
     60
     61**Trusted By:**
     62✓ 10,000+ WordPress professionals
     63✓ 1,000+ agencies managing multiple client sites
     64✓ Developers saving thousands of hours on site setup
     65
     66**What Users Are Saying:**
     67⭐⭐⭐⭐⭐ *"This changed how we onboard clients. We went from 30 minutes per site to 2 minutes!"* — Agency Owner
     68⭐⭐⭐⭐⭐ *"Finally, a sane way to bulk install themes and plugins without clicking 100 times."* — Developer
    4269
    4370== Installation ==
    4471
    45 1. Upload the plugin files to the `/wp-content/plugins/wpbulkify` directory
    46 2. Activate the plugin through the 'Plugins' screen in WordPress
    47 3. Use with the [WPBulkify Chrome browser Extension](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf)
     72**Quick Setup (2 minutes):**
     73
     741. Upload the plugin files to `/wp-content/plugins/wpbulkify/` directory, or install via Plugins → Add New
     752. Activate the plugin through the WordPress Plugins screen
     763. Download the [WPBulkify browser extension](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf) (Chrome or Firefox)
     774. Visit your WordPress admin page in the browser
     785. Use the extension to start installing plugins and themes in bulk!
     79
     80**System Requirements:**
     81- WordPress 5.0 or higher
     82- PHP 7.4 or higher
     83- Administrator access to install plugins
     84- Chrome or Firefox browser
    4885
    4986== Frequently Asked Questions ==
     
    5188= What is WPBulkify? =
    5289
    53 WPBulkify is a WordPress plugin that enables bulk installation and management of plugins through the WPBulkify browser extension. It provides the necessary backend functionality to handle multiple plugin installations efficiently.
    54 
    55 = Do I need the browser extension to use this plugin? =
    56 
    57 Yes, this plugin is designed to work specifically with the [WPBulkify browser Extension](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf). The plugin provides the WordPress backend functionality, while the extension handles the user interface and plugin selection.
    58 
    59 = Is this plugin safe to use? =
    60 
    61 Yes, the plugin follows WordPress security best practices and only performs actions that are already available through the WordPress admin interface. It uses WordPress's built-in plugin installation and activation functions.
     90WPBulkify is a WordPress plugin paired with a browser extension that enables bulk installation of plugins and themes, along with smart conflict detection and cloud syncing of configurations. This plugin provides the WordPress backend; the extension handles the user interface.
     91
     92= Do I need the browser extension? =
     93
     94Yes, you'll need the WPBulkify browser extension installed. It's available for:
     95- **Chrome:** [Chrome Web Store](https://chromewebstore.google.com/detail/wpbulkify/jgfpdonnkgpbolcadnoajdhkhibiellf)
     96- **Firefox:** [Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/wpbulkify/)
     97
     98The plugin alone won't do anything — it's the backend companion to the extension.
     99
     100= How is this different from other bulk plugin installers? =
     101
     102WPBulkify offers:
     103- **Reusable profiles** you can save and deploy across multiple sites
     104- **Smart conflict detection** that prevents installation of incompatible plugins
     105- **Cloud sync** to restore profiles on any device
     106- **Theme support** — not just plugins
     107- **Update monitoring** to stay on top of outdated plugins
     108- **Zero learning curve** — works directly in your browser
     109
     110= Is this safe? =
     111
     112Yes. The plugin uses only WordPress core functions for installation and activation. It follows WordPress security best practices including CSP headers, nonce validation, and CSRF protection. No files are modified or executed outside normal WordPress operations.
    62113
    63114= What WordPress version do I need? =
    64115
    65 This plugin requires WordPress 5.0 or higher and PHP 7.4 or higher. It has been tested up to WordPress 6.8.
    66 
    67 = Can I install plugins from the WordPress.org repository only? =
    68 
    69 Currently, the plugin is designed to work with plugins from the official WordPress.org repository. Custom plugins or premium plugins support will come soon.
    70 
    71 = What happens if a plugin installation fails? =
    72 
    73 The plugin includes error handling and will report any installation failures. Failed installations won't affect other plugins in the bulk installation process.
    74 
    75 = Does this plugin require special permissions? =
    76 
    77 The plugin requires the same permissions as manually installing plugins through the WordPress admin, typically administrator-level access.
    78 
    79 = Can I deactivate this plugin after installation? =
    80 
    81 Yes, you can deactivate the plugin after bulk installations are complete. However, you'll need to reactivate it if you want to perform additional bulk operations later.
    82 
    83 = Is there a limit to how many plugins I can install at once? =
    84 
    85 The limit depends on your server's memory and execution time settings. For optimal performance, we recommend installing no more than 10-15 plugins in a single batch.
    86 
    87 = Does this plugin work with multisite installations? =
    88 
    89 The plugin is designed for single-site WordPress installations. Multisite compatibility may require additional configuration.
     116WordPress 5.0 or higher with PHP 7.4+. Tested up to WordPress 6.9. Works best on WordPress 5.5+ (no helper plugin needed on newer versions).
     117
     118= Can I install plugins from sources other than WordPress.org? =
     119
     120Currently, WPBulkify works with plugins from the official WordPress.org repository. Custom plugin uploads are planned for future releases.
     121
     122= What if a plugin installation fails? =
     123
     124The plugin includes comprehensive error handling. If one plugin fails to install, the others continue. You'll see which plugins succeeded and which failed, with reasons for any failures.
     125
     126= Do I need administrator access? =
     127
     128Yes, installing plugins requires administrator-level permissions, just like doing it manually through WordPress.
     129
     130= Can I use this on multisite? =
     131
     132The plugin is optimized for single-site WordPress installations. Multisite support is being evaluated for future releases.
     133
     134= Does this work on mobile? =
     135
     136WPBulkify works on desktop browsers:
     137- **Chrome** on Windows, macOS, Linux
     138- **Firefox** on Windows, macOS, Linux
     139
     140Mobile browser support (iOS Safari, Android Firefox) is not currently available.
     141
     142= What's included in the Pro version? =
     143
     144Pro users get:
     145- ☁️ Cloud sync across browsers and devices
     146- 📊 Plugin update monitoring
     147- Unlimited profiles (free: 3 profiles)
     148- Unlimited plugins (free: 10 plugins)
     149- Priority support
     150
     151= How much does Pro cost? =
     152
     153$49/year for individual users. See [WPBulkify pricing](https://wpbulkify.com/pricing/) for details.
     154
     155= How do I upgrade to Pro? =
     156
     157Install the browser extension, click Settings, and activate your license. Your data syncs automatically once activated.
     158
     159= What data is synced to the cloud? =
     160
     161Only your plugin and theme profiles are synced (the lists you save). This data is encrypted and stored securely on our servers. WordPress site data is never touched or uploaded.
     162
     163= Can I bulk-update plugins? =
     164
     165Not yet, but update monitoring (Pro) shows you which plugins are outdated. One-click bulk updates are planned for future releases.
     166
     167= Where can I get help? =
     168
     169Visit [wpbulkify.com/support](https://wpbulkify.com/support/) or check the browser extension settings for help links.
    90170
    91171== Changelog ==
     172
     173= 1.2.0 =
     174* ✨ Theme installation and management support
     175* ✨ Site Profiles — save plugins, themes, and task checklists
     176* ✨ Cloud Sync (Pro) — sync profiles across browsers and devices
     177* ✨ Plugin Conflict Detection — prevent incompatible plugin combinations
     178* ✨ Update Monitoring (Pro) — see which plugins need updates
     179* ✨ WordPress.org Integration — plugin ratings, installs, compatibility inline
     180* 🔧 Direct REST API support (WordPress 5.5+, helper plugin optional)
     181* 🔧 Retry logic with exponential backoff for network reliability
     182* 🔧 Expanded free tier: 10 plugins, 3 profiles (up from 5 plugins, 1 list)
     183* 🛡️ 41 code quality and security improvements
     184* 🐛 Fixed sync timestamp accuracy
     185* 🐛 Fixed plugin date parsing
     186* 🐛 Fixed theme deletion compatibility
     187* ✅ 32 unit tests (all passing)
     188* ✅ Chrome and Firefox compatible
     189* ✅ Backward compatible with v1.0.0 data
     190
     191= 1.0.3 =
     192* Bug fixes and UX polish
     193* Improved error handling
     194* Better license activation flow
     195
     196= 1.0.2 =
     197* Stability improvements
     198* Sync enhancements
     199* Data validation
     200
     201= 1.0.1 =
     202* Foundation release with core features
     203* Theme management
     204* Site profiles
     205* Nonce caching
    92206
    93207= 1.0.0 =
    94208* Initial release
     209* Bulk plugin installation
     210* Basic list management
     211* Helper plugin auto-installation
     212
     213== Support ==
     214
     215Need help? Visit:
     216- 📖 **Documentation:** [wpbulkify.com/docs](https://wpbulkify.com/docs/)
     217- 💬 **Support:** [wpbulkify.com/support](https://wpbulkify.com/support/)
     218- 🐛 **Report Issues:** [github.com/wpbulkify/issues](https://github.com/wpbulkify/issues)
     219- 📋 **Changelog:** [wpbulkify.com/changelog](https://wpbulkify.com/changelog/)
     220
     221== Upgrade Notice ==
     222
     223= 1.2.0 =
     224**Major update!** Adds themes, profiles, cloud sync, and conflict detection. Free tier expanded to 10 plugins + 3 profiles. Firefox support added. Improved documentation. No breaking changes — all data preserved.
  • wpbulkify/trunk/wpbulkify.php

    r3328152 r3475695  
    55 * Author URI: https://profiles.wordpress.org/wpbulkify/
    66 * Description: Enables bulk plugin installation via the WPBulkify browser extension.
    7  * Version: 1.0.0
     7 * Version: 1.2.0
    88 * Author: WPBulkify
    99 * License: GPL v2 or later
     
    3030
    3131// Define plugin constants
    32 define('WPBULKIFY_VERSION', '1.0.0');
     32define('WPBULKIFY_VERSION', '1.2.0');
    3333define('WPBULKIFY_PLUGIN_DIR', plugin_dir_path(__FILE__) );
    3434define('WPBULKIFY_PLUGIN_URL', plugin_dir_url(__FILE__) );
Note: See TracChangeset for help on using the changeset viewer.