Installation
Step 1: Upload the add-on
Go to Admin panel → Extensions → Add-ons, click Upload add-on and drop the add-on's .zip file into the upload area (50 MB maximum).
The archive is extracted into extensions/addons/offlinepayment/ and Offline Payment appears in the list, deactivated.
extensions/addons/offlinepayment/ over FTP or SSH: its addon.json file must sit directly inside that folder.
Then open Admin panel → Extensions → Add-ons. The page scans extensions/addons/ every time it loads, so the add-on is listed straight away (the Sync button runs the same scan on demand).
Step 2: Activate the add-on
Click Activate on the Offline Payment card. It is a paid add-on, so a dialog asks for its purchase code, which is verified before anything else happens: an invalid code is rejected in the dialog and nothing is changed.
Once the code is accepted, activation runs in one pass: it creates the add-on's database tables (its migrations), registers its permissions, runs its seeders and publishes its public assets. Reload the page to see its new entry in the Add-ons section of the admin sidebar.
Step 3: Configure
Open Admin panel → Offline Payment from the Add-ons section of the sidebar and set the add-on up: see Configuration.
Purchase Code (License Key)
Offline Payment is sold as a separate product, so it has its own purchase code (license key), distinct from the purchase code of the main application and from the one of every other add-on. You are asked for it when you activate Offline Payment in Admin panel → Extensions → Add-ons.
Our products are sold on three platforms. The way you receive a purchase code depends on where you bought the product.
| Platform / Marketplace | How you get the purchase code | Where to find it again |
|---|---|---|
| bedigit.com Store In-site purchase (Shop) |
Generated automatically when the order is paid, then sent by email, either in its own license email, or inside the order confirmation email. | My Account → My Licenses on bedigit.com |
| Gumroad | Created as soon as Gumroad notifies us of the sale, then sent in a separate email, in addition to the Gumroad receipt. | The license email, your Gumroad Library, and My Account → My Licenses on bedigit.com |
| Envato Market CodeCanyon |
Issued by Envato, not by us, and never sent by email: you download it yourself from your Envato account. | Envato account → Downloads → License certificate & purchase code |
1. bedigit.com Store (in-site purchase)
- As soon as the order’s payment status becomes Paid, a license key is generated automatically for every licensed item in the order (one key per purchased unit: buying 3 units gives 3 distinct keys).
- It is emailed to the address used on the order, either in a dedicated license email or inside the order confirmation email. Check your inbox and your spam / junk folder.
- The key stays available in your account under My Account → My Licenses. Keys are masked in the list; open the license detail page to reveal and copy the full key, see the domains it is activated on, and deactivate a domain to free an activation slot.
- The matching invoice is under My Account → My Orders.
2. Gumroad
- A Gumroad purchase produces two separate emails: the Gumroad receipt (sent by Gumroad, giving access to the files) and a license key email (sent by bedigit.com) that contains your purchase code.
- The license key email is generated as soon as Gumroad notifies us of the sale, so it normally arrives within seconds of the payment. Here too, check your inbox and your spam / junk folder.
- When the Gumroad product uses Gumroad’s own license-key feature, the same key also appears in your Gumroad receipt and under Library → your purchase on gumroad.com.
- Use the same email address on bedigit.com as on Gumroad: your keys are then linked to your account automatically and listed under My Account → My Licenses, even if you register after the purchase. You can also add a Gumroad key manually from My Account → My Gumroad Licenses.
3. Envato Market (CodeCanyon)
- Envato purchase codes are issued and delivered by Envato Market, never emailed by us, so there is nothing to look for in your spam folder: you retrieve the code from your Envato account.
- Log in to your Envato / CodeCanyon account, open the Downloads page, find the item, and choose License certificate & purchase code from the Download dropdown. The code is written in that certificate.
- An Envato purchase code looks like
12345678-90ab-cdef-1234-567890abcdef(8-4-4-4-12 characters). It never changes, and renewing item support does not issue a new one. - Official Envato article: Where Is My Purchase Code?
Compatibility
- v5.0.2 => LaraClassifier v19.1.0+ and JobClass v19.1.0+
- v5.0.1 => LaraClassifier v19.1.0+ and JobClass v19.1.0+
- v5.0.0 => LaraClassifier (v19.0.0 to v19.0.1) and JobClass (v19.0.0 to v19.0.1)
- v4.1.7 => LaraClassifier v18.3.0+ and JobClass v17.3.0+
- v4.1.6 => LaraClassifier v18.2.0 and JobClass v17.2.0
- v4.1.5 => LaraClassifier (v18.0.0 to v18.1.1) and JobClass (v17.0.0 to v17.1.1)
- v4.1.4 => LaraClassifier (v17.0.0 to v17.1.1) and JobClass (v16.0.0 to v16.1.1)
- v4.1.3 => LaraClassifier v16.0.2 and JobClass v15.0.2
- v4.1.2 => LaraClassifier (v16.0.0 to v16.0.1) and JobClass (v15.0.0 to v15.0.1)
- v4.1.1 => LaraClassifier (v15.4.0 to v15.4.1) and JobClass (v14.4.0 to v14.4.1)
- v4.1.0 => LaraClassifier (v15.2.0 to v15.3.5) and JobClass (v14.2.0 to v14.3.5)
- v4.0.2 => LaraClassifier (v15.1.1 to v15.1.6) and JobClass (v14.1.1 to v14.1.6)
- v4.0.1 => LaraClassifier (v14.1.0 to v15.1.0) and JobClass (v13.1.0 to v14.1.0)
- v4.0.0 => LaraClassifier (v14.0.0 to v14.0.3) and JobClass (v13.0.0 to v13.0.3)
- v3.1 => LaraClassifier (v12.2.0 to v13.0.0) and JobClass (v11.2.0 to v12.0.0)
- v3.0 => LaraClassifier (v12.0.0 to v12.1.0) and JobClass (v11.0.0 to v11.1.0)
- v2.9 => LaraClassifier (v11.0.0 to v11.0.4) and JobClass (v10.0.0 to v10.0.4)
- v2.8 => LaraClassifier v10.2.0+ and JobClass v9.2.0+
- v2.7 => LaraClassifier (v10.1.0 to v10.1.4) and JobClass (v9.1.0 to v9.1.5)
- v2.6 => LaraClassifier (v10.0.1 to v10.0.2) and JobClass (v9.0.1 to v9.0.3)
- v2.5 => LaraClassifier v10.0.0 and JobClass v9.0.0
- v2.4 => LaraClassifier (v9.0.0 to v9.0.1) and JobClass (v8.0.0 to v8.0.1)
- v2.3 => LaraClassifier (v8.0.2 to v8.0.6) and JobClass (v7.0.2 to v7.0.6)
- v2.2 => LaraClassifier (v8.0.0 to v8.0.1) and JobClass (v7.0.0 to v7.0.1)
- v2.1 => LaraClassifier (v7.2.0 to v7.3.8) and JobClass (v6.0.0 to v6.1.8)
- v2.0 => LaraClassifier (v7.1.0 to v7.1.1) and JobClass (v5.9.0 to v5.9.1)
- v1.9 => LaraClassifier (v6.9 to v7.0.x) and JobClass (v5.7 to v5.8.x)
- v1.8 => LaraClassifier (v6.6 to v6.8) and JobClass (v5.4 to v5.6)
- v1.7 => LaraClassifier (v6.1 to v6.5) and JobClass (v4.9 to v5.3)
- v1.6 => LaraClassifier (v5.7 to v6.0) and JobClass (v4.5 to v4.8)
- v1.5 => LaraClassifier (v5.2 to v5.6) and JobClass (v4.0 to v4.4)
- v1.4 => LaraClassifier v5.1 and JobClass v3.9
- v1.3 => LaraClassifier (v4.9 to v5.0) and JobClass (v3.7 to v3.8)
- v1.2 => LaraClassifier (v4.6 to v4.8) and JobClass (v3.4 to v3.6)
- v1.0 to v1.1 => LaraClassifier (v3.8 to v4.5) and JobClass (v2.6 to v3.3)
Updating
An update only replaces the add-on's files. Its database tables and data, its settings, its activation state and its recorded purchase code are all kept, so do not deactivate or remove the add-on before updating it. Back up your database first all the same.
Method 1: Upload the new version (recommended)
- Download the latest
.zipfile of the add-on. - Go to Admin panel → Extensions → Add-ons and click Upload add-on.
- Drop the
.zipfile into the upload area. - Because Offline Payment is already installed, a prompt shows the installed version and the new one. Click Replace: the
extensions/addons/offlinepayment/folder is swapped for the new files. Cancelling the prompt discards the upload.
Method 2: Replace the files by hand
- Over FTP or SSH, delete the
extensions/addons/offlinepayment/folder and upload the new one in its place. Replace the whole folder rather than copying over it, so files dropped by the new version do not linger. - Open Admin panel → Extensions → Add-ons: the page re-reads
addon.jsonand the card shows the new version number.
After the files are replaced
New database tables or columns. When a new version adds some, create them by running php artisan migrate --force over SSH, or without SSH by clicking Deactivate then Activate on the add-on's card: activation runs every pending migration (and asks for the purchase code again). Your data is not touched either way.
Public assets. The add-on's public files are copied to public/vendor/offlinepayment/ when it is activated, and replacing its files does not refresh that copy. When an update changes them, republish them with php artisan vendor:publish --tag=offlinepayment-assets --force, or click Deactivate then Activate on its card.
If your installation caches its configuration or routes (php artisan config:cache, route:cache), run php artisan optimize:clear after the update.
Configuration
Add-on settings
Go to Admin panel → Offline Payment (in the Add-ons section of the sidebar). Offline Payment needs no API credentials: the page only has the Active switch, which shows or hides Offline Payment in the payment methods offered to your users. It is on after activation. Click Save to apply the change.
Payment instructions
Go to Admin panel → Payment methods and edit Offline Payment:
- Description: the instructions your users follow to pay you (bank transfer details, cash, cheque, …). HTML tags are supported. It is shown when Offline Payment is selected at checkout and after the order, and it is included in the payment email sent to the user for a listing promotion.
- Countries: the countries in which this payment method is offered. Leave empty to offer it in all countries.
- Active: the same switch as on the add-on settings page.
Usage
- When a user picks Offline Payment to buy a promotion plan for a listing or a subscription plan, the payment is recorded as pending and the payment instructions are shown to the user. For a listing promotion, the user also receives the payment instructions by email (a short SMS is sent instead when the listing has no email address and uses a phone number), and the administrators are notified of the new offline payment request by email and in the admin notifications, with a reminder to approve it once the money is received. For a subscription, the user and the administrators receive the standard subscription purchase notifications. These messages follow the Payment confirmations (user) and Payment received (administrators) notification types, which you can turn on or off in Admin panel → Configuration → Settings → Notifications, on the Notification Types tab; users and administrators can also opt out in their own notification preferences.
- Once you have received the money, approve the payment in Admin panel → Payments → Promotions (listing promotions) or Admin panel → Payments → Subscriptions (user subscriptions): find it with the filters (ID, Payment Method, Status = Pending, …) and click its Active toggle. The plan starts from that moment.
- While the add-on is active, administrators can also feature a listing (or a user) without any payment, from the star button of its row in the admin listings (or users) list: a fake payment is recorded for it. Use the payment type filter of the Payments pages to show real payments or fake payments only.
Translation
To translate this addon into your language:
- Go to the languages folder at
/extensions/addons/offlinepayment/resources/lang/ - Duplicate the folder
/extensions/addons/offlinepayment/resources/lang/en/to/extensions/addons/offlinepayment/resources/lang/<code>/
NOTE: Don't forget replace<code>by your language code (e.g. "de" for German language). - Open the files:
/extensions/addons/offlinepayment/resources/lang/<code>/mail.php,/extensions/addons/offlinepayment/resources/lang/<code>/messages.php,/extensions/addons/offlinepayment/resources/lang/<code>/sms.php
and translate them.
NOTE: To translate the file, you must change the values and not the keys of the PHP array. - If you want to translate the Offline Payment description DB entry, you can do it by adding the value of the '
payment_method_description' key in the addon/extensions/addons/offlinepayment/resources/lang/<code>/messages.phplanguage file.
Uninstallation
Switching an add-on off without losing anything is a deactivation: go to Admin panel → Extensions → Add-ons, click Deactivate on the Offline Payment card and confirm.
- The add-on is no longer loaded: its routes, views, admin sidebar entry and front-end pages stop answering.
- Its database tables and all the data they hold are kept, and its files stay under
extensions/addons/offlinepayment/. Nothing is deleted. - Its permissions and its recorded purchase code stay in the database. Only Remove deletes them.
- Deactivation is refused while another active add-on depends on this one: deactivate that add-on first.
Click Activate on the same card to switch it back on. As for a first activation, the purchase code is asked for and verified again; then any pending migrations run, the assets are republished, and the add-on picks up exactly where it left off.
Removing
Removing is permanent and destroys the add-on's data. The Remove button only appears on a deactivated add-on, so removal is always two steps:
- Deactivate Offline Payment (see Uninstallation).
- Click Remove on its card and confirm the prompt.
The admin panel then, in one pass:
- runs the add-on's uninstall hook, if it ships one, while its code is still on disk;
- revokes the permissions declared in its
addon.json; - rolls back its migrations (this drops its database tables and every row they hold) and purges its entries from the
migrationstable, so a later reinstall migrates from scratch; - deletes its published assets:
public/addons/offlinepayment/,public/vendor/offlinepayment/andstorage/app/public/addons/offlinepayment/; - deletes the add-on directory
extensions/addons/offlinepayment/; - deletes its row in the
addonstable (the recorded purchase code goes with it) and clears the application cache.
Removal is refused, with an explanatory message and before anything is destroyed, when the add-on is still active, when another active add-on depends on it, or when the web server (PHP) user cannot delete extensions/addons/offlinepayment/. In that last case, give that user write permission on the directory and on its parent, then try again.
Deleting the folder over FTP or SSH is not equivalent: the add-on is only switched off, and its tables, its entries in the migrations table and its addons row are all left behind. Use Remove in the admin panel instead.