- Fix an error when creating custom line items.
- Change “Share” button to “View” for vouchers, for consistency with Craft/Commerce.
- Fix missing
product
variable when previewing a voucher. - Fix an error when duplicating a voucher.
- Fix saving a code with a decimal value being cast to an int.
- Fix an error when adding a custom-priced voucher to the cart.
- Add support for
orderSite
for PDF URLs.
- Update English translations.
- Switch session handler to use Craft’s Session helper.
- Fix an error when saving a new site.
- Fix session-handling to check for console requests.
- Fix vouchers always being re-saved when updating a site or force-applying project config.
- Now requires PHP
8.2.0+
. - Now requires Craft
5.0.0+
. - Now requires Craft Commerce
5.0.0+
.
- Change “Share” button to “View” for vouchers, for consistency with Craft/Commerce.
- Fix missing
product
variable when previewing a voucher. - Fix an error when duplicating a voucher.
- Fix saving a code with a decimal value being cast to an int.
- Add support for
orderSite
for PDF URLs.
- Update English translations.
- Switch session handler to use Craft’s Session helper.
- Fix an error when saving a new site.
- Fix session-handling to check for console requests.
- Fix vouchers always being re-saved when updating a site or force-applying project config.
- Add support for programatically setting a code’s
codeKey
.
- Fix order of operations when uninstalling the plugin.
- PDFs now support using the current site’s locale language and formatting.
- Add currently-applied voucher codes to manage for modal when editing an order in the control panel.
- Add
codeKey
as an available variable for thevoucherCodesPdfFilenameFormat
setting.
- Voucher modal now shows message instead of refreshing, ensuring unsaved changes to the order aren’t discarded.
- Fix “enter” key not submitting the gift voucher modal when editing an order in the control panel.
- Fix
codeKey
reference when rendering PDFs.
- Implement
Element::trackChanges()
for Blitz compatibility.
- Fix an issue when creating new sites and not propagating voucher types correctly.
- Only admins are now allowed to access plugin settings.
- Fix an error when creating a voucher of custom value with no value provided.
- Fix an error when creating a voucher code. (thanks @darinlarimore).
- Fix an error when viewing a voucher code with no order associated with it.
- Fix permissions check for managing Vouchers and Codes.
- Fix voucher and code element indexes not providing edit links due to Craft 4.3.2 changes.
- Fix cannot assign Dompdf\Options to property PdfRenderOptionsEvent::$options. (thanks @CMeldgaard).
- Fix an error when saving vouchers containing commas in price.
- Fix an error when trying to generate a PDF for a voucher in the control panel.
- Fix issues with int type check, and error checking in tabs. (thanks @darinlarimore).
- Fix an error when trying to edit a Code object in the control panel.
- Add tabs for codes not working correctly in the control panel.
- Fix an error when combining a Commerce discount and Gift Voucher code with
stopProcessing
enabled. - Fix an error when saving a voucher without an SKU.
- Fix an error when applying a Craft discount code.
- Fix
codeStorage
type. - Fix an error running
resave
console commands.
- Add missing English translations.
- Add
dateCreated
,dateUpdated
anduid
to Redemption model.
- Now requires PHP
^8.0.2
. - Now requires Craft
^4.0.0
. - Now requires Craft Commerce
^4.0.0
. - Replace deprecated
Craft.postActionRequest()
for JS.
- Fix an error when uninstalling.
- Fix redemptions table showing the order date instead of the date of the redemption date.
- Fix an error when viewing a redemption without and order in the control panel.
- Fix an error fetching new redemption records.
- Fix a type error with redemption codes.
- Add support for programatically setting a code’s
codeKey
.
- Fix order of operations when uninstalling the plugin.
- Add currently-applied voucher codes to manage for modal when editing an order in the control panel.
- Voucher modal now shows message instead of refreshing, ensuring unsaved changes to the order aren’t discarded.
- Fix “enter” key not submitting the gift voucher modal when editing an order in the control panel.
- Fix an issue when creating new sites and not propagating voucher types correctly.
- Add tabs for codes not working correctly in the control panel.
- Add
dateCreated
,dateUpdated
anduid
to Redemption model.
- Fix redemptions table showing the order date instead of the date of the redemption date.
- Fix an error when viewing a redemption without and order in the control panel.
- Fix an error when trying to redeem a voucher code, when the linked voucher has been deleted.
- Fix being unable to modify a code’s voucher in the control panel.
- Fix Swiftmailer dropping message after attaching voucher PDF.
- Fix an error in Postgres when resaving a voucher code.
- Fix PDF generation URLs not being correct in headless environments.
- Added
resave/gift-voucher-codes
andresave/gift-voucher-vouchers
console commands. - Added
orderReference
to the searchable attributes for voucher codes.
- Reverted adjuster behaviour back to 2.5.x version, fixing many issues.
- Voucher adjusters not use a
voucher
type instead ofdiscount
to fix many issues.
- Fix an error when clicking "New voucher" when adding a voucher in the Bulk Generate Codes function.
- Fix a hard-error shown when saving a voucher with no price.
- Fix "Voucher Type" column not displaying correctly for the codes element index.
- Fix "All voucher types" not appearing in the control panel for codes element index.
- Extend voucher expiry from 24 to 36 months.
- Fix when attaching the PDF to an email, clears the body content of the email.
- Fix an override warning message not showing for the
attachPdfToEmails
config setting in the control panel. - Fix debug console output in the control panel.
- Fix shipping discount being applied when total amount already redeemed (introduced in 2.6.0).
- Major refactor of discount adjuster, which is used when applying a voucher code on an order. This change fixes a few issues with Commerce 3.4+.
- Discounts are now spread over all line items, when applying a voucher code. This is inline with Craft Commerce's discount adjusters are handled.
- Now requires Craft Commerce 3.4+.
- Fixed duplicate discounts being applied to orders when redeeming a code, in some instances.
- Fixed some cases when tax on a shipping method was being charged, despite the discount being applied to a shipping methods' cost.
- Add
EVENT_BEFORE_MATCH_CODE
event for adding custom code matching logic. (thanks @superbigco).
- Fix an error when generating PDFs and custom fonts, where the temporary folder isn’t writable (or created).
- Ensure we register the discount adjuster via
EVENT_REGISTER_DISCOUNT_ADJUSTERS
to fix some compatibility issues. - Fix vouchers being applied to new orders, when creating new orders in the control panel.
- Add bulk voucher code generation page. (thanks @jerome2710).
- Add
EVENT_MODIFY_RENDER_OPTIONS
event for modifying the DomPDF options during render.
- Fix incorrectly using
fieldLayoutId
for plugin settings, when fetching Codes’ field layouts. This could lead to some installs not generating voucher codes correctly upon checkout.
- Add
promotable
andavailableForPurchase
options to vouchers.
- Fix gift vouchers attaching to emails, even when disabled.
- Change logging from
error
toinfo
when an order doesn’t contain a gift voucher.
- Add more logging around post-checkout functionality.
- Post-checkout functionality is now performed on
EVENT_AFTER_COMPLETE_ORDER
rather thanEVENT_BEFORE_COMPLETE_ORDER
.
- Fix permission translation error.
- Ensure critical errors are logged during the order complete event.
- Fix critical errors preventing orders from completing correctly.
- Fix potential error with
isVoucher
and line item purchasables.
- Add support to apply gift voucher from the control panel, when editing an incomplete order.
- Add ability to attach gift voucher PDFs to Commerce emails.
- Fix an error when no code is found when applying voucher codes.
- Custom fields are no longer serialized in the snapshot of a voucher. Please use
EVENT_AFTER_CAPTURE_VOUCHER_SNAPSHOT
andEVENT_BEFORE_CAPTURE_VOUCHER_SNAPSHOT
events to opt-in any custom fields you want serialized in the snapshot. This follows Commerce's behaviour.
- Fix incorrectly serializing Super Table queries when taking a snapshot of Gift Vouchers when adding to the cart.
- Fix
EVENT_AFTER_CAPTURE_VOUCHER_SNAPSHOT
event not actually doing much. - Prevent code field layout ID from being creating multiple times when saving plugin settings.
- Fix a potential security vulnerability where the last-created voucher could be redeemed by any user.
- Replace hard coded currency with order currency. (thanks @yingban).
- Add support for Craft 3.5 field designer for code elements.
- Add support for Craft 3.5 field designer for voucher elements.
- Now requires Craft 3.5+.
- Now requires Craft Commerce 3.2+.
- Fix
getEditableVoucherTypeIds
not returning correctly.
- Fix ErrorException from undefined variable uid. (thanks @jmauzyk).
- Fix voucher site dropdown not working for multi-sites.
- Fix share and preview button alignment for vouchers.
- Fix live preview not working for vouchers.
- Fix save-as-new-voucher not working correctly.
- Fix voucher permissions to use UID instead of ID.
- Add migration for potentially missing code field layout.
- Fix usage of deprecated
saleAmount
. - Return cart errors for ajax-applying of voucher codes.
{warning} Please note a breaking change in removing
fieldsPath
. If you use this setting to add custom field content to your voucher codes when adding to the cart, you will need to change this. Please see the docs - https://verbb.io/craft-plugins/gift-voucher/docs/template-guides/single-voucher#line-item-options
- Removed
fieldsPath
config setting. If you are using this setting for adding custom field content to your voucher codes, please update your templates. Useinput type="text" name="options[fieldHandle]"
instead ofinput type="text" name="options[<fieldsPath>][fieldHandle]"
.
- Fix potential error when trying to save a voucher code without an amount.
- Fix incorrect handling for code field layout.
- Add project config support for voucher types.
- Check to ensure Klaviyo Connect plugin is installed before doing any more checks. (thanks @brianjhanson)
- Fix logging error
Call to undefined method setFileLogging()
.
- File logging now checks if the overall Craft app uses file logging.
- Log files now only include
GET
andPOST
additional variables.
- Only allow editing of voucher types if editable.
- Fix order and voucher columns showing incorrect values in the voucher codes element index.
- Add “Original Amount” to voucher codes element index.
- Fix currency symbol in voucher codes element index in some cases.
- Fix missing order properties for PDFs generated in CP. (thanks @jmauzyk).
- Fix
populateLineItem
to work with Commerce 3.x.
- Craft 3.4 compatibility.
- Commerce 3.0 compatibility.
- Fix
registerAdjuster
=afterTax
not working correctly.
- Add
registerAdjuster
plugin setting to control when the adjuster should be applied. Valid options arebeforeTax
(default) andafterTax
.
- Add the ability to set field layouts for Voucher Codes. (thanks @Anubarak).
- Add a field layout designer to the settings for Voucher Codes. (thanks @Anubarak).
- Add an event
PopulateCodeFromLineItemEvent
to set additional fields/properties when a new Code is created based on a Voucher/LineItem. (thanks @Anubarak). - Add an event to validate LineItem options for custom fields in the Code. (thanks @Anubarak).
- Add a migration to include an initial empty
content
record for all existing Voucher Codes. (thanks @Anubarak). - Add a new setting
fieldsPath
that represents the path of custom fields in the LineItems options. (thanks @Anubarak). - Add additional Tabs for custom fields in the Voucher Code if there are any. (thanks @Anubarak).
- Add a component
codeStorage
for storing and receiving codes that are used. (thanks @Anubarak). - Add an interface for
codeStorage
and the possibility to use custom classes/components. (thanks @Anubarak). - Add a class
Session
for storing the used codes for an order in the session. (thanks @Anubarak). - Add a class
Order
for storing the used codes for an order in the field layout in a Codes field. (thanks @Anubarak). - Add a new Code relation field type. (thanks @Anubarak).
- Add template hook
cp.gift-voucher.voucher.edit.details
(thanks @samuelbirch).
- All codeKeys are now grabbed via
GiftVoucher::getInstance()->getCodeStorage()->getCodeKeys($order);
. (thanks @Anubarak). - All codeKeys are now set via
GiftVoucher::getInstance()->getCodeStorage()->set($codeKeys, $order);
or theadd
orremove
function. - This will make sure you can add a VoucherCode in the CP. (thanks @Anubarak).
- Use a custom controller to store the plugins settings ensuring the new Field Layout setting is stored properly. (thanks @Anubarak).
- Fixed minor session issue. (thanks @Anubarak).
- Display inactive Vouchers in the CP. (thanks @Anubarak).
- Fixed a Bug that could occur when re-saving an order via job, Craft already closes the session before running the job -> the adjuster has no valid session. (thanks @Anubarak).
- Fix missing date columns in code element index.
- Fix voucher discount being applied after tax.
- Fix incorrect multi-site URL redirection when switching sites for a voucher.
- Fix incorrect migration.
- Fix namespacing issue.
- Add support for Klaviyo Connect plugin.
- Add support for Commerce 3.
- Adjust template functions
vouchers()
andcodes()
to allow criteria as params.
- Incorrect permission for voucher types.
- Fix anonymous requests to gift voucher previewing.
- Fix missing Commerce requirement.
- Fix missing expiryDate column.
- Fix voucher search indexes.
- Fix lack of registering Code as an element type.
- Add codeKey to searchable attributes.
- Fix legacy codes (from Craft 2) not correctly being elements.
- Fix lack of integrity constraint on codes.
- Add override notice for settings fields.
- Fix missing
sku
andprice
query params. - Fix error in element HUD.
- Fix multiple tabs for voucher types not showing.
- Fix “New voucher” layout issue when switching voucher types
- Added “Don’t allow voucher codes to be used if discounts are applied on the order”. By default, discount codes and voucher codes can be applied to an order together, which may not always be desired. This setting honours the "Don’t apply subsequent discounts if this discount is applied" for discounts.
- Fix migration issue from Craft 2 to Craft 3.
- Include translation of Adjuster description. Thanks (@Anubarak).
- Set the
codeKey
to the element after storing the record to use it directly after the Code is created. Thanks (@Anubarak). - Add PDF config settings, rather than from Commerce.
- Fix PDF paper orientation and size not changing from defaults.
- Bring back missing
format
andattach
params for PDF.
- Use
beforeCompleteOrder
as the event to generate codes, ensuring they can be used in emails.
- Add
afterVoucherAdjustmentsCreated
.
- Fix querying codes by voucherId not working.
- Fix codes not being generated correctly after checkout completion.
- Fix redemptions not being generated correctly after checkout completion.
- Add
beforeCaptureVoucherSnapshot
andafterCaptureVoucherSnapshot
.
- Fix permissions for vouchers and codes.
- Fix error occuring when installing plugin via command line
- Allow PDFs to be generated for single voucher codes.
- Add type to snapshot data.
- Fix Gift Voucher element field name.
- Fix error when deleting a voucher.
- Fix querying by
voucherId
on a code. - Fix error when querying and saving vouchers.
- Add product method for voucher for easy commerce compatibility
- Add field data to line item snapshot
- Codes are now generated after the order is paid, instead of when complete
- Bring back
getPdfUrl()
andgetOrderPdfUrl()
- Fix welcome redirect
- Fix empty strings being able to validate vouchers (oops)
- Fixed some deprecation notices
- Fix redemption error for new codes
- Craft 3 release.
- Redeeming multiple vouchers.
- Added possibility to return Ajax in frontend controller.
- Redeemed code managing.
- Change DiscountAdjuster order to apply after tax discount.
- Adjuster showing proper discount amount.
- Initial release.