With no particular facts and figures to hand to back this up, I’m going to suggest that most commercial WordPress plugins and themes now employ one of the following funding models:
These are not mutually exclusive and there is an amount of mixing and matching that commonly happens. There are also other strategems, such as a lifetime licensing model — pay once and receive access to support and updates for the entire lifetime of the product.
Hit a curious problem lately where PHP was unable to “see” the query args being passed in via the URL … in other words, the $_GET superglobal was mysteriously empty when it should not have been.
In this specific scenario, I was looking at a view generated by a plugin which was designed to return a list of posts. Various query args could be applied to this view in order to filter the list, but in my case – in the context of my local dev environment – it stubbornly refused to do so. The URL looked a lot like this example:
(That arguably unnecessary trailing slash at the end of the path, by the way, is a result of WordPress and its canonical redirect behaviour.)
Event Tickets Plus is a WordPress plugin you can use to sell tickets for events.
Part of its feature set is a natty bit of functionality called Custom Attendee Meta, which lets organizers collect arbitrary bits of data from attendees. For example, it can be used to gather information such as t-shirt sizes or special dietary requirements … and so is incredibly useful for many events.
At time of writing, though, it does not yet allow the site admin to edit the submitted data. So, if Tom Thumb comes along and buys a ticket to an event and incorrectly gives his t-shirt size as medium then sends the site owner an email requesting they update this to extra large, the site owner is out of luck — they’re going to have to come up with some other system for recording this change (unless they poke about and make changes directly within the database, something often best avoided).