VM Add Buyer to Joomla Group

IMPORTANT ANNOUNCEMENT: Plugin development ceased, all plugins made available freely (GPL)

With great sadness we have to announce that we are ceasing development of all our VirtueMart, WooCommerce and Joomla plugins. Effective immediately, all our plugins -- even those that were paid downloads -- are made available for free from our homepage (GPL license still applies), but we cannot and will not provide any support anymore.

It has been a great pleasure to be part of the thriving development communities of VirtueMart as well as WooCommerce. However, during the last year it became painstakingly clear that in addition to a full-time job, a young family and several other time-consuming hobbies at professional level (like being a professional singer) the plugin development and the support that it requires is not sustainable and is taking its toll. It has been an honor, but it is now time to say good bye!

Add Buyers to Joomla Groups Plugin for VirtueMart

Virtuemart plugin to automatically add buyers to or remove buyers from Joomla user groups or VirtueMart Shopper groups.
  • 25
  • 30
  • plugin
  • vm2.0
  • vm3.0
Price : FREE
Paid Download
VM Add Buyers to Joomla Groups Plugin, Version 1.6.2 VM Add Buyers to Joomla Groups Plugin, Version 1.6.2
Filename: plg_opentools_vm_buyer_assign_group_v1.6.2.zip
MIME-Type: application/zip
File size: 27310 Bytes

With this plugin for VirtueMart, all buyers of a product can be automatically added to or removed from a Joomla user group or a VirtueMart shopper group.

Typical use cases are:

  • Automatically add buyers to Joomla groups, which enables them access to certain parts of the site (like manuals or downloads)
  • Make certain products in VirtueMart only available to buyers of another product
  • Give previous buyers of a certain product different prices for future purchases (by adding them to a shopper group that has better prices in VirtueMart)

Please notice that this plugin is NOT meant as a full-fledged subscription solution, because it does NOT support time-limited group assignments. When the order is finalized, the customer is added to the selected groups and stays there until you manually remove him (or the order is cancelled/refunded).

This plugin complements the "Add VM Buyers to Joomla Groups Admin Panel":

  • This Plugin: Automatically assign groups for future orders (not for existing orders); Paid
  • Add VM buyers Admin Panel: Manually assign groups to previous buyers (future orders are NOT handled); Free


How the plugin works

Assume the shop owner wants each buyer of Product A to be added to the "Gold Buyers" VirtueMart shopper group and added to the "Author" Joomla user group. As soon as the purchase is completed, the buyer will be added to those groups. But if the order is refunded or cancelled for some reason later on, the user is removed again from these groups (unless he already has been a member of the groups before the purchase).

To achieve this with my plugin, the shop owner first needs to set up a custom field definition (once), which defines the list of order statuses that indicate a successful purchase.

Then he can assign a custom field of the type just created to "Product A" and select to which VirtueMart shopper groups or Joomla user groups the buyer should be added or removed.

Whenever a user now buys Product A and the order is confirmed, the user is removed from and added to the chosen groups (in that order, so if you configure the custom field to remove from and add to the same group, the user will be removed first and then added again). If the order is later cancelled or refunded, the actions by the plugin are also reverted (i.e. if the user was added to a group, he is removed again). The plugin stores whether the user has already been a member before the purchase, so when the order is refunded or cancelled the user is not removed again in that case.


Download the plugin file and install it just like any other Joomla plugin.

vm buyer groups install

Configuration & How the plugin works

The assignment of the Joomla or VirtueMart groups to selected products is done via custom fields.

First, set up a Custom Field ("Products" -> "Custom Fields"). This needs to be done only once and will be re-used by all products later on:

  • Create a new field (the green + button in the top right corner)
  • Select "Plug-ins" as Custom Field Type
  • Add a Title for the field (it will not be displayed to the buyer, but it will be used by the administrator when adding the custom field to a product)
  • Select "Add Buyers to Joomla Groups for Virtuemart" as the plugin
  • Select which order statuses indicate a successful purchase (multi-selection is possible using Ctrl+Click). If an order's status is changed to such a value, the user is added/removed to/from the particular groups selected in the product's custom field (see below).

vm buyer groups customfield new

Now you can add this custom field to any product you like:

  • Open the product in the VirtueMart backend, go to the "Custom Fields" tab and add the field you just created (the Title you selected in the custom field setup above). You can now select the Joomla and Virtuemart groups for the product, where buyers should be automatically added to or removed from upon purchase.
  • vm buyer groups customfield product

Automatic Updates

Starting with version 1.6.1, this plugin uses the Joomla 3.x updater to install new versions. For this to work, you need to enter your updater credentials (order number and password of the purchase at open-tools.net) in the plugin configuration page (Joomla Backend: Extensions => Plugins):

Opentools Plugins UpdateCredentials

The updater will then access the download at open-tools.net with these credentials, which unlock download access. If you enter invalid credentials, then the plugin will work just fine, only updates are not available:

Opentools Plugins UpdateCredentials Wrong

Please note that the automatic update feature for paid plugins (that need some kind of password to unlock the download) is NOT available in Joomla 2.5!

Demo Server

Frequently Asked Questions (FAQ)

1) Which PHP, Joomla and VirtueMart versions does the plugin work with

I am developing the plugin with PHP 7.0 on Joomla 3.5 with VirtueMart 3.0. Previously, development was done on PHP 5.4 with Joomla 2.5 and Virtuemart 2.6.

If you are using the plugin on a different combination of versions, please let me know whether it works or not.

2) Are there any incompatibilities known?

  • The "Sofort├╝berweisung" payment plugin changes the order status to confirmed in a way that no other plugins get notified of this (and thus this plugin does not work). The issue is in sofort.php, around line 455, where $modelOrder->updateStatusForOneOrder is called with the last argument false, which instructs VirtueMart to change the order status, but explicitly requests that VM does NOT inform any other plugins about this. As a workaround, one can change the last argument to true, which makes this plugin work again. However, this change will be overwritten on every VirtueMart update.

Support Forum


This plugin is licenced unter the GNU GPLv3. You have to pay to download the plugin, but by this you automatically obtain all the rights and duties that the GPL gives you. All future upgrades are included (i.e. there is no timelimit on updates). Support is provided in the forums as far as my time allows, but I cannot guarantee proper support.

Version History

2016-03-05: Version 1.6.2 (Fix warning when saving custom fields)
2016-01-03: Version 1.6.1 (Automatic updates through the Joomla updater)
2015-03-15: Version 1.6 (Fix certain installation issues with VM3)
2015-01-08: Version 1.5 (Fix some php warnings)
2015-01-05: Version 1.4 (Fix shopper group assignment for asynchronous payment methods like PayPal etc.)
2014-10-20: Version 1.3 (Fix issue with new installations, where the plugin's database table was not created automatically)
2014-10-15: Version 1.2 (Support for Joomla 3.x and Virtuemart 3.x added)
2013-09-28: Version 1.0 (Initial release)