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. Download the .zip file from your WooCommerce account.
  2. Go to: WordPress Admin > Plugins > Add New and Upload Plugin with the file you downloaded with Choose File.
  3. Install Now and Activate the extension.

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 cart discount allowed when redeeming points. Use either a fixed monetary amount or a percentage based on the cart sub-total. Leave blank to disable. This can be overridden at the category and product level.
  • Maximum Points Discount – Set the maximum cart discount allowed when redeeming points. Use either a fixed monetary amount or a percentage based 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 or a percentage based 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 <strong>{points}</strong> {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 <strong>{points}</strong> {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 <strong>{points}</strong> {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 <strong>{points}</strong> {points_label} for a <strong>{points_value}</strong> 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 <strong>{points}</strong> {points_label} for this order. You have a total of <strong>{total_points}</strong> {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.

woocommerce-points-and-rewards-product-category-list

  • 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, you can enter either a fixed maximum discount amount or percentage which restricts a number of points that can be redeemed for a discount based on the product price. For example, if you want to restrict the discount on this product to a maximum of 50%, enter 50%, or enter 5 to restrict the maximum discount to $5. This setting overrides the global/category defaults, use 0 to disable point discounts for this product, and blank to use the global/category default.

Set Rules for Products ↑ Back to top

woocommerce-points-and-rewards-simple-product-settings
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.
  • 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 category 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.

Easily Manage Customer Points
Easily Manage Customer Points

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

View the Point 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:

All points changes are logged
All points changes are logged

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!

How Point 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.

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:

woocommerce-points-and-rewards-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!
Rewards Your Customers with Points-based Discounts!

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

WooCommerce Points & Rewards Discount Applied

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:

Show customers their points history on the My Account page
Show customers their points history on the My Account page

Customization ↑ Back to top

Note: This is a Developer and Designer level section. If you are unfamiliar with code/templates and resolving potential conflicts, select a WooExpert or Developer for assistance. We are unable to provide support for customizations under our  Support Policy.

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.

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.

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.

WooCommerce - the most customizable eCommerce platform for building your online business.

Back to the top