A collection of handy tools for casting directors. Very small for now but I have great expectations.
Project Category: WordPress Plugin
-
WooPUS
Sell plugin licenses and synchronize the license keys with Plugin Update Server.
-
Open Source Projects for WordPress
A comprehensive WordPress plugin for showcasing and managing open source projects with automated GitHub integration, project metadata management, and multilingual support.
Features
Core Functionality
- Custom Post Type: Dedicated
project
post type for organizing open source projects - GitHub Integration: Automated import and synchronization of GitHub repositories
- Project Metadata: Automatic extraction of project details (license, latest release, last commit, etc.)
- Taxonomies: Project categories and tags for better organization
- Multi-language Support: Built-in internationalization with French translations included
GitHub Import System
- Bulk Repository Import: Import multiple repositories from any GitHub user/organization
- Smart Duplicate Detection: Prevents importing existing projects and handles redirects
- Pagination Support: Handles users with large numbers of repositories (up to 1000)
- Selective Import: Choose which repositories to import with visual interface
- Status Management: Automatic handling of ignored/problematic repositories
Project Management
- Automated Metadata Updates: Regular synchronization of project data from Git repositories
- Custom Project Status: Support for ignored projects with dedicated status
- Rich Project Display: Automatic project information display with customizable templates
- AJAX-powered Updates: Real-time project metadata fetching in admin interface
- Gutenberg Compatible: Full support for block editor with classic editor fallback
Admin Interface
- Dedicated Admin Menu: Complete admin interface under "Open Source Projects"
- Repository Importer: WordPress-integrated importer for GitHub repositories
- Batch Operations: Bulk actions for managing multiple projects
- Filter & Search: Advanced filtering by categories, status, and project attributes
- Manual Refresh: On-demand project metadata refresh with progress tracking
Screenshots
- This screen shot description corresponds to screenshot-1.(png|jpg|jpeg|gif). Note that the screenshot is taken from
the /assets directory or the directory that contains the stable readme.txt (tags or trunk). Screenshots in the /assets
directory take precedence. For example,
/assets/screenshot-1.png
would win over/tags/4.3/screenshot-1.png
(or jpg, jpeg, gif). - This is the second screen shot
Requirements
- WordPress: 5.0 or higher
- PHP: 7.4 or higher
- Dependencies:
czproject/git-php
(included) – Git repository interactionerusev/parsedown
(included) – Markdown parsing
Installation
See INSTALLATION.md for detailed installation and configuration instructions.
Usage
Importing GitHub Repositories
Method 1: WordPress Importer (Recommended)
- Go to Tools > Import in WordPress admin
- Select OSProjects Importer
- Enter a GitHub user/organization URL (e.g.,
https://github.com/username
) - Click Check to fetch available repositories
- Select repositories to import and click Import
Method 2: Direct Import Page
- Navigate to Open Source Projects > Import
- Follow the same process as above
Managing Projects
Project Categories
- Create and manage project categories under Open Source Projects > Project Categories
- Hierarchical taxonomy supports nested categories
- Bulk categorization available in project list
Project Status
- Published: Publicly visible projects
- Draft: Projects in development
- Ignored: Projects excluded from public display (automatic for problematic repositories)
Manual Metadata Refresh
- Go to Open Source Projects > Settings
- Click Refresh all projects now
- Monitor progress on the dedicated refresh page
Displaying Projects
Archive Page
Projects are automatically available at
/projects/
(or your configured URL prefix)Single Project Pages
Each project displays:
- Latest release information
- Last commit details
- Repository link
- Official website (if available)
- License information
- Project description
Custom Templates
Override default templates by creating files in your theme:
single-project.php
– Single project templatearchive-project.php
– Projects archive template
Troubleshooting
GitHub API Rate Limiting
- Problem: Import fails with rate limit errors
- Solution: Add GitHub API token as described above
For users with many repositories, you may encounter GitHub API rate limits. To increase limits:
- Create a personal access token at https://github.com/settings/tokens
- No special permissions needed for public repositories
- Set the token using WP-CLI:
wp option update osprojects-settings --format=json '{"github_api_token":"your_token_here"}'
Repository Access Errors
- Problem: Projects marked as ignored
- Solution: Check repository URLs and access permissions
Memory Issues with Large Imports
- Problem: PHP memory limit exceeded
- Solution: Increase PHP memory limit or import in smaller batches
Gutenberg Save Issues
- Problem: Project saves hang in Gutenberg editor
- Solution: Try clearing browser cookies or disable Gutenberg in plugin settings
Debug Mode
Enable WordPress debug mode to see detailed error messages:
define('WP_DEBUG', true); define('WP_DEBUG_LOG', true);
Development
For developers interested in contributing or customizing the plugin, see DEVELOPERS.md for detailed development information.
License
This plugin is licensed under the AGPL-3.0-or-later license.
Support
- Issues: GitHub Issues
- Author: Magiiic
Roadmap
Planned Features
- GitLab Integration: Support for GitLab repositories
- Bitbucket Support: Bitbucket repository import
- Project Analytics: Download and activity tracking
- Advanced Filters: More sophisticated project filtering options
- REST API: Full REST API for external integrations
- Shortcode Support: Display projects via shortcodes
- Widget Support: Project widgets for sidebars
Made with care by Magìiíc
- Custom Post Type: Dedicated
-
W.R.A.P. – Web Reel Automated Publishing
The W.R.A.P. plugin is a complement to W.R.A.P. by Magiiic platform, an online video-centric publishing service that includes fast processing, optimized streaming, editing, and organizing of provided content.
This plugin serves as the administration tool for the service, allowing the management of user authentication on the external platform, groups (clients, companies, etc.), and projects.
Although the plugin was created to complement a specific application, it has been designed generically to adapt to other third-party applications, assuming they are based on the use of subdirectories of the website.
Features
At this stage, the service provides:
- Authentication API: Manage user authentication on the external platform, allowing a standalone application to benefit from WordPress user management.
- Group Management: Organize users into groups (could be clients, companies, etc.) and manage their access.
Roadmap
- Project Management: Assign new projects to groups, show projects on group page.
- Full Wrap libary: Integrate the current standalone Wrap project into the plugin.
Requirements
- A third-party web application or a part of the website not handled by WordPress, relying on document root subfolders.
- WordPress should be installed in a subdirectory. Although not mandatory, a subfolder is a better approach for clarity and maintenance.
This ensures that WordPress handles only the calls to its own structure and permalinks, while existing folders and files outside the WordPress directory are handled directly by the web server or the third-party application.
Example File Structure
Here is an example of how your file structure might look:
/var/www/html/ ├── wp/ # WordPress installed in a subdirectory │ ├── wp-content/ │ └── ... ├── group1/ # Third-party application protected group │ ├── .htaccess # Authentication rules for group1 │ ├── project1/ │ └── project2/ ├── group2/ # Third-party application public group │ ├── project1/ │ ├── project2/ │ └── private/ # Protected subdirectory │ └── .htaccess # Authentication rules subdirectory └── ...
Installation
- Upload the plugin files to the
wp-content/plugins/wrap
directory, and activate as usual plugins. - Go to Admin->WRAP->Settings screen to set the base URL of your external app (could be http://yourdomain.org/ or http://yourdomain.org/myapp/), and its local path (/var/www/html/ or /var/www/html/myapp/).
- Create groups, and assign allowed WP users.
- In the folders you want authentication, add a
.htaccess
file with the rules provided in the related group edit page, or adjust the example here:<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_COOKIE} !wrap_auth_your-group=1 RewriteRule ^(.*)$ https://yourdomain.org/wrap-auth/?redirect_to=%{REQUEST_SCHEME}://%{HTTP_HOST}%{REQUEST_URI} [L,R=302] </IfModule>
The first part of the URL must match an existing group, but the
.htaccess
file can be anywhere inside this group path (e.g., you can either protect the whole yourdomain.org/group1/ subsite, or leave it public and restrict access only to yourdomain.org/group1/private/).
Usage
Users visiting a page of the third-party app will be redirected if needed to the WP login page, and brought back to the page requested on success, otherwise get an error message.
WordPress users have a profile page, where they can see the groups they belong to.
-
WooCommerce Virtual Less Fields
Remove address fields on WooCommerce checkout page for orders with only virtual products.
Ignores products identified as domain names with WooCommerce Domain Names plugin.
-
Sub Categories Widget
Note: This plugin seems abandoned by it’s original author, so I took over to ensure maintenance if needed.
Sometimes when you divide up your WordPress content into categories it all ends up in sub-categories of one or two main categories that don’t have any content themselves.
With the widget you can add a list of sub-categories even if the parent doesn’t have posts.
You can display and filter sub-categories in various ways:
- Use the parent category as the widget title
- Show post counts in bracket next to the name
- Hide empty sub-categories
- Add a link to the parent category to the widget title
- Show the full sub-category tree so it include sub-sub categories and so on as well
- Display the list as dropdown rather than as links
- Use the first category of the current post as the parent
- Exclude one or more sub-categories from the list
- List the categories in reverse order
-
magiiic-autofeatureimage
This is the long description. No limit, and you can use Markdown (as well as in the following sections).
For backwards compatibility, if this section is missing, the full length of the short description will be used, and Markdown parsed.
A few notes about the sections above:
- "Contributors" is a comma separated list of wp.org/wp-plugins.org usernames
- "Tags" is a comma separated list of tags that apply to the plugin
- "Requires at least" is the lowest version that the plugin will work on
- "Tested up to" is the highest version that you’ve successfully used to test the plugin. Note that it might work on higher versions… this is just the highest one you’ve verified.
- Stable tag should indicate the Subversion "tag" of the latest stable version, or "trunk," if you use
/trunk/
for stable.
Note that the
readme.txt
of the stable tag is the one that is considered the defining one for the plugin, so if the/trunk/readme.txt
file says that the stable tag is4.3
, then it is/tags/4.3/readme.txt
that’ll be used for displaying information about the plugin. In this situation, the only thing considered from the trunkreadme.txt
is the stable tag pointer. Thus, if you develop in trunk, you can update the trunkreadme.txt
to reflect changes in your in-development version, without having that information incorrectly disclosed about the current stable version that lacks those changes — as long as the trunk’sreadme.txt
points to the correct stable tag.If no stable tag is provided, it is assumed that trunk is stable, but you should specify "trunk" if that’s where you put the stable version, in order to eliminate any doubt.
-
WooCommerce Domain Names
This plugin is designed for domain names resellers. Currently, it only provides the sale part, actual registration has to be done manually.
- Requires WooCommerce.
- Requires Openprovider account.
- Compatible with WooCommerce Subscriptions.
-
magicoli/woocommerce-bookings-sync-unpaid
Include unpaid bookings in Google Calendar synchronization, to ensure bookings waiting for payments are already blocked in external calendars.
Useful if your policy is to set an option for booking requests, or if you collect payments later.
This is a simple implementation, as documented on https://woocommerce.com/document/google-calendar-integration/#section-7
-
Project Donations for WooCommerce
Collect donations for different projects with a WooCommerce product.
If you are like me, you work on several projects and would like to simply collect donations for them, without bothering creating and configuring a product for each project.
This plugin is mostly intended to be easy to set up. It is mostly usefull if you want to get donations and need or already use WooCommerce platform.