WooCommerce Points and Rewards

WooCommerce Points and Rewards allows you to reward customers for purchases and other actions with points that can be redeemed for discounts.

Easily set how many points customers will earn for each dollar spent and set how many points can be redeemed for a specific discount amount. Points can be set at the product, category, or global level, and you can also control the maximum discount available when redeeming points.

Requirements

↑ Back to top
  • WooCommerce 3.0+
  • Coupons must be enabled for points to be redeemed

Installation

↑ Back to top
  1. Purchase the product from WooCommerce.com
  2. Download the ZIP file from your WooCommerce.com dashboard
  3. Go to Plugins > Add New > Upload and select the ZIP file you just downloaded
  4. Click Install Now and then Activate.
  5. Read on to learn how to set up and configure the product.

More information at: Install and Activate Plugins/Extensions.

Setup and Configuration

↑ Back to top

Go to: WooCommerce > Points & Rewards > Settings:

Points Settings

  • Earn Points Conversion Rate – Set the number of points awarded based on the product price. For example, if you want customers to earn 1 point for every $1 spent, enter 1 and 1. This can be modified at the category level, or on a per-product/variation level.
  • Earn Points Rounding Mode – Set how rounding of points should be performed; up, down, or to the nearest integer. E.g. if a user spent 2.50, rounded up or to the nearest integer this would be 3 points whereas down would be 2 points.
  • Redemption Conversion Rate – Set the value of points redeemed for a discount. This will determine the value of the points that customers earn that can be redeemed for a discount. For example, if you want customers to earn a $1 discount for every 100 points, enter 100 and 1.
  • Partial Redemption – Enable to let users enter how many points they wish to redeem during cart/checkout.
  • Minimum Points Discount – Set the minimum amount a user’s points must add up to in order to redeem points. Leave blank to disable.
  • Maximum Points Discount – Set the maximum cart discount allowed when redeeming points. Use either a fixed monetary amount (preceded by a currency symbol, such as $) or a percentage-based (followed by the % symbol) on the cart sub-total. Leave blank to disable. This can be overridden at the category and product level.
  • Maximum Product Points Discount – Set the maximum product discount allowed when redeeming points per-product. Use either a fixed monetary amount (preceded by a currency symbol, such as $) or a percentage-based (followed by the % symbol) on the cart sub-total. Leave blank to disable. This can be overridden at the category and product level.
  • Tax Setting – Select whether points should be deducted based on pre-tax or post-tax price.
  • Points Label – This is the text used to refer to points on the frontend, in both the singular/plural. You can use this to create your own points “branding”, ie this might be “WooPoints”
  • Points Expire After – Set the period after which points expire once granted to a user.

Product / Cart / Checkout Messages

  • Single Product Page Message – Add an optional message to the single product page below the price. Customize the message using {points} and {points_label}. Limited HTML is allowed. Leave blank to disable. Defaults to “Purchase this product now and earn {points} {points_label}!” which might look like “Purchase this product now and earn 100 points!”
  • Variable Product Page Message – Add an optional message to the variable product page below the price. Customize the message using {points} and {points_label}. Limited HTML is allowed. Leave blank to disable. Defaults to “Earn up to {points} {points_label}.” which might look like “Earn up to 50 points.”
  • Earn Points Cart/Checkout Page Message – Displayed on the cart and checkout page when points are earned. Customize the message using {points} and {points_label}. Limited HTML is allowed. This defaults to “Complete your order and earn {points} {points_label} for a discount on a future purchase” which might render as “Complete your order and earn 100 points for a discount on a future purchase”
  • Redeem Points Cart/Checkout Page Message – Displayed on the cart and checkout page when points are available for redemption. Customize the message using {points}, {points_value}, and {points_label}. Limited HTML is allowed. This defaults to “Use {points} {points_label} for a {points_value} discount on this order!” and might be displayed as “Use 100 points for a $100 discount on this order!”
  • Thank You / Order Received Page Message – Displayed on the thank you / order received page when points were earned. Customize the message using {points}, {points_value}, and {points_label}. Limited HTML is allowed. This defaults to: “You have earned {points} {points_label} for this order. You have a total of {total_points} {total_points_label}.” which might look like “You have earned 50 Points for this order. You have a total of 100 Points.”

Points Earned for Actions

This section allows you to configure points awarded for core point-awarding actions as well as any actions provided by 3rd party plugins that integrate with the Points & Rewards plugin. The core actions include:

  • Points earned for account signup – Enter the amount of points earned when a customer signs up for a new account.
  • Points earned for writing a review – Enter the amount of points earned when a customer first writes a review for a given product.

Actions

  • Apply Points to Previous Orders – This will apply points to all previous orders that have not already had points assigned and cannot be reversed. This is most useful when first installing the plugin. Be absolutely certain that you want to apply points to past orders before using this!
    Note: this action can take time on a site with a large number of existing orders, so allow it to complete. If the action should time out due to server settings, simply refresh the settings page and re-run the action to continue awarding points for un-awarded orders.

Add/Edit a Product Category

↑ Back to top


Two new settings are added to the product category configuration, found by going to Products > Categories: Add New Product Category, or Products > Categories > Your Category for existing categories.

  • Points Earned – Allows you to modify the global Earn Points Conversion Ratio setting by entering either a fixed number of points earned for the purchase of any product that belongs to this category, or a percentage which assigns points based on the price of the product. For example, if you want to award points equal to double the normal rate, enter 200%. This setting modifies the global Points Conversion Rate, but can be overridden by a product/variation. Use 0 to assign no points for products belonging to this category, and empty to use the global setting. If a product belongs to multiple categories which define different point levels, the highest available point count will be used when awarding points for the purchase.
  • Maximum Points Discount – Allows you to limit the points discount that can be applied towards products belonging to this category. Set a fixed maximum discount dollar amount or price-based percentage. For example, if you want to restrict the discount on a product in this category to a maximum of 50%, enter 50%, or enter 5 to restrict the maximum product discount to $5. This setting overrides the global default but can be overridden by a product/variation. Use 0 to disable point discounts for this product, and blank to use the global setting.
  • Change Renewal Points – If you have WooCommerce Subscriptions installed you will also see this option. For Subscription renewals with a different point value than the signup, enter either a fixed number of points or a percentage that assigns points based on the price. For example, enter 5 to award 5 points, or enter 50% to award points equal to half the normal rate.

Set Rules for Products

↑ Back to top


Similar to the options available at the category level, two new fields are available for configuration at the product/variation level. These fields override/modify any settings at the category/global level, respectively, as follows:

  • Points Earned – Allows you to modify the global Earn Points Conversion Ratio setting or override the category Points Earned setting by entering either a fixed number of points earned for the purchase of this product/variation, or a percentage which assigns points based on the price of the product/variation. For example, if you want to award points equal to double the normal rate, enter 200%. This setting modifies the global Points Conversion Rate and overrides the category setting. Use 0 to assign no points for this product/variation, and empty to use the global/category settings.

Note: For fixed point amounts, discounts at checkout will reduce points earned according to the global Points Conversion Rate. For example, a discount that results in a price reduction of $5 will subtract 5 points from the fixed points earned for a 1:1 Points Conversion Rate. This may result in no points earned for some configurations and discounts.

  • Maximum Points Discount – Allows you to limit the points discount that can be applied towards this product/variation. Set a fixed maximum discount dollar amount or price-based percentage. For example, if you want to restrict the discount on a product to a maximum of 50%, enter 50%, or enter 5 to restrict the maximum product discount to $5. This setting overrides the global and category settings. Use 0 to disable point discounts for this product/variation, and blank to use the global/category defaults.

Managing Customer Points

↑ Back to top

Go to: WooCommerce > Points & Rewards > Manage Points.

From here all customers and their points levels are displayed and can be updated by the admin.

View the Points Log

↑ Back to top

A record of every point change (increase or decrease) is kept and available for viewing at: WooCommerce > Points & Rewards > Points Log:

As shown above, for every point change event: the particular customer, the change in points, a description of the event, and a date for the event are displayed. The points log can be filtered by customers, event type or event month, and ordered by the change in points or event date, making it easy for you to determine exactly how points are being earned and redeemed in your store.

Points Redeemed on the Order Admin

↑ Back to top

From the Order admin Edit Order page, the discount from the redeeming of points can be seen in the Order Totals box, as you would any cart discount:

And an order note is added detailing the points used and the value:

Modify Points Earned With a Special Coupon

↑ Back to top

This plugin adds a new field to the standard coupon configuration named “Points Modifier” which can be used to modify how points are earned.

For example by creating a coupon and setting a Points Modifier of “200%”, customers using the coupon are awarded double the points typically earned. When configuring this type of coupon the standard “coupon amount” is not required.

However, all of the regular coupon settings may be used to for instance limit the coupon to certain products, or exclude certain categories of product, or have an individual customer usage limit or expiry date. Possibilities are limitless!

Reset Points and Rewards

↑ Back to top

You can delete all points and rewards from your website for all customers. The extension adds an option under WooCommerce > Status > Tools to delete all points and rewards and clear the logs. Using this option will remove all customer points and cannot be undone.

Delete plugin data when plugin is deleted

↑ Back to top

You can delete all plugin data when you delete the plugin from your website. Plugin data includes plugin settings, users’ points, points log, point settings for products, point settings for product categories, and point settings for coupons.

To do this, go to WooCommerce > Points & Rewards > Settings page, and check the “Delete plugin data” option. Then, proceed to Plugins page, deactivate the plugin, and delete the plugin.

Note that when the plugin data is deleted, it cannot be undone.

How Points are Awarded/Deducted

↑ Back to top

Points earned for product purchase are awarded in the following circumstances:

  • When payment for the order is completed, as with a credit card or e-check gateway, or when an order status transitions from on-hold to processing or completed (to support gateways such as Cash on Delivery).
  • When an order transitions from the “failed” state to completed, to account for payment processing errors that can be corrected (such as a declined card).

To avoid the same points being used multiple times and prevent gaming of the system, points being redeemed for a discount on purchase will be deducted from a customer’s balance immediately upon checkout. If an order is canceled or refunded the redeemed points are automatically credited back to the customer’s account.

If an order that earned a customer points is canceled or refunded, any awarded points are automatically deducted from that customer’s balance.

There is the possibility that the following sequence of events could occur: customer has a points balance of 0, the customer places an order and earns 10 points, customer redeems those points for a discount on another order, the original order is canceled or refunded. The monetary discount cannot be retroactively removed, however, in this case, the customer will end with a balance of -10 points, and so would have to earn another +10 points to get back to a 0 balance and be able to start earning points to redeem for additional savings.

Note: Starting in WooCommerce 8.9.0 and WooCommerce Points and Rewards 1.7.51, Discounts are only applied to eligible products. This means that if a cart contains products that have been excluded from receiving discounts, these products will not see a discount applied to them on the order page.

Usage

↑ Back to top

This plugin modifies the frontend in a number of places:

  • Product page
  • Cart
  • Checkout
  • My Account

Product Page

↑ Back to top

On the product page the single product page message is displayed, showing the points that can be earned for purchasing a simple or variable product:

In the Cart and Checkout

↑ Back to top

From the cart and checkout pages messages will be displayed indicating the amount of points that can be earned, and encouraging the customer to apply their points to the current order:

Rewards Your Customers with Points-based Discounts!

After applying their points, the discount will be shown as would a standard coupon:

My Account

↑ Back to top

Finally, a customer’s current point balance along with recent point history will be displayed in a new section found on their “My Account” page:

Customization

↑ Back to top

Note: We are unable to provide support for customizations under our Support Policy. If you need to customize a snippet or extend its functionality, we recommend working with a Woo Agency Partner or finding a WooCommerce developer on Codeable.

The single product page message for variable products displays in two places, directly below the “From $X.XX” price area, and above the actual variation price when a variation is selected.

This text inherits the same styling as the price but can be changed by targeting span.wc-points-rewards-product-variation-message. The earn/redeem messages on the cart & checkout page are styled using the .woocommerce-info class — your theme should style these automatically.

Database Points Storage

↑ Back to top

Points are stored in the $prefix . ‘_wc_points_rewards_user_points` table. When we query the total points a user has, we do a sum of all the items with the same user id in the list.

To add more points you can simply add an entry into that table with the given user ID. To update a user’s points you’ll have to manually decrease some of the values or set everything to zero and then add a new entry with the updated value.

FAQ

↑ Back to top

Why are discounts not displaying in the cart?

↑ Back to top

You must have coupons enabled for discounts for redeeming points to work correctly.

If you have set minimum or maximum points or product discounts, make sure they are preceded by a currency symbol (e.g. $) for monetary discounts or followed by the % symbol for percentage-based discounts.

Can points be earned when checking out as a Guest?

↑ Back to top

No, because points must be awarded to an account (logged-in user).

Why are points calculated on the item level instead of the total in the cart?

↑ Back to top

Points logic needs to be calculated per product because many factors can affect the points given:

  • Category
  • Product level point setting
  • Global level point setting

The extension wouldn’t be able to process all of that at the order level. It takes the approach of saying “Buy this and earn X points”. X isn’t affected by rounding at order total level, X is a fixed amount per item.

Why is my Simple Product showing the Variable Product Page Message?

↑ Back to top

This happens when Dynamic Pricing is applied to a Simple Product. The number of points that can be earned will then vary depending on the dynamic pricing rule, therefore, the Variable Product Page Message will apply.

Are points shared across different sites in a Multi-Site environment?

↑ Back to top

No, each site will have its own balance.

Will points be deducted for Subscription Renewal orders?

↑ Back to top

Points will not be used on automatic subscription renewal payments. If the subscription is renewed manually, e.g. for manual subscriptions or early renewals, then the customer can choose to use points on the renewal order.

Are points earned on subscription renewals?

↑ Back to top

When used with WooCommerce Subscriptions, points are automatically earned for every subscription renewal.

Can points & rewards be exported?

↑ Back to top

By default, the extension itself has no built-in option to export points & rewards data. However, Exporter for WooCommerce Points and Rewards can add this functionality. With this plugin, WooCommerce Points & Rewards can be exported to a CSV file. Find out more in its documentation.

Questions and Feedback

↑ Back to top

Have a question before you buy? Please fill out this pre-sales form.

Already purchased and need some assistance? Get in touch with a Happiness Engineer via the Help Desk.

Use of your personal data
We and our partners process your personal data (such as browsing data, IP Addresses, cookie information, and other unique identifiers) based on your consent and/or our legitimate interest to optimize our website, marketing activities, and your user experience.