Getting started
Five minutes, most of it in the Freemius dashboard.
1. Install and find the menu
Activate the plugin. Freemius Pricing appears in the WordPress admin menu, with Products, Settings, Appearance and Logs under it. It opens on Products, which starts with two steps, each with its button:
- Add your product - the product ID and the API token from your Freemius dashboard. It is marked Outside WordPress, because that is where the two come from. It is done once the prices have been fetched.
- Put a price on a page - a shortcode from the product's builder, or the Freemius pricing card block. It is done once a published page carries one.

When both are done the steps go, and Products is the list of your products. Each row shows what the plugin knows about one.

The steps look at what is in a page's content. A price that lives only inside a page builder's own widget data is not seen, so on such a site the steps can stay until any page carries a Freemius block or shortcode in its content.
2. Get the product ID and the token
This is step 1, Add your product, and it starts outside WordPress. In the Freemius dashboard:
- Open the product you want to show prices for.
- The numeric product ID is in the URL and at the top of the product's own pages. Copy it.
- Go to Settings, then Keys.
- Copy the product's API Bearer Authorization Token.
That token reads the product's plans and prices and cannot change them. Nothing about your visitors is ever sent to Freemius by your server.
3. Add the product
On Freemius Pricing, Products, press Add product. The Add screen is one card with two fields:
- Product ID - the number you copied. It is fixed once added, because it is how everything stored for the product is filed; to use a different one, delete the product and add it again. There is no name to type: the product's name and slug arrive from Freemius with the first fetch.
- API Bearer Authorization Token - paste it in. The field is masked, and the eye button beside it shows the value if you need to check a paste.
Press Test token. It reports the product's name, its plans and how many pricing rows came back, or exactly what Freemius said if the token was refused. Then press Add product.
The save fetches the prices and the product's name, reads the product secret key with the token, and registers this site's webhook with Freemius. You land on the product's own screen.

The secret key chip
Under the token, the Product card carries a chip reading Secret key on file or Not fetched yet. The secret key signs every webhook delivery, so a delivery can be proved genuine. There is nothing to type: it is read with the token on every save.
The Status card
The side column tells you where the product stands:
- Prices - how many plans, how many prices and which currencies came back, and when they were fetched. Refresh now underneath fetches again.
- Release - the latest version released on Freemius and the date it reached Freemius, such as 1.4.0, released 2 September 2026, or None published on Freemius for a product with no WordPress releases.
- Money-back - the money-back period Freemius holds, such as 30 days, or None set on Freemius.
- Webhook - a chip reading Registered with Freemius, Not registered yet, Not registered or Not enabled by Freemius for this product, then the last delivery and the event that came with it.
- Last error - None, or what went wrong and when.
Nothing has to be done about the webhook: saving the product with a working token registered it, and every later save checks it is still there and subscribed to the right events. Show webhook URL underneath opens the URL, a Copy button and the events it listens for, for checking against the Freemius dashboard under the product, then Webhooks, then Listeners.
If the chip reads Not enabled by Freemius for this product, Freemius has not unlocked webhooks for it yet: it reserves them for products that are actively selling, and the dashboard cannot add one either. The save is complete and the prices are live; every later save tries again, so the webhook appears by itself. If it reads Not registered, the call failed and the line says why; the disclosure opens by itself with instructions for pasting the URL in by hand.
Treat that URL like a password. It carries a key your site generated, and it is half of what proves a delivery is genuine.
4. Build your first shortcode
The Shortcode builder on the same screen is four lists and a code box.
- Element - Pricing card, Price, Buy button, Plan name, Plan description, Features list, Currency toggle, Billing cycle toggle, Release line or Money-back guarantee.
- Plan, Licence tier and Billing cycle - each one starts on Headline plan, Headline tier or Headline cycle, which leaves that attribute out so your headline row decides, and each list offers only what the one above it sells. A list that cannot affect the chosen element is greyed out rather than hidden.
Under them sit the choices for the element you picked: a row of buttons for a few words (Format, Suffix, Style, Width, Featured, Button style), a list for a toggle's six styles, and a switch for Saving badge and Descriptions.
The code box shows the shortcode as you go, with anything left at its first choice left out, so the shortest working form is what you get. The line under it names what the headline choices work out to for your product. Copy takes it, and the line underneath says what it renders, for example "Renders $25 (3 licences, annual) in the visitor's currency." A Every price this product sells disclosure at the foot of the card lists every row the API returned, one line each.

Paste the result into a page, a widget area, a page builder or a template file.
Every attribute is optional, so [pflp_price] and [pflp_button] on their own
already render your headline price and the checkout that sells it. Publish a
page with it and step 2, Put a price on a page, is done.
Release line and Money-back guarantee are facts about the product rather than a plan, so the plan, licence and cycle lists grey out for them. The release line has a Show list of its own: Version, Requires, Tested up to and Released, four tick boxes with the first three ticked to start with. If Freemius has no releases for the product, the line under the code box says so, and so it does for a product with no money-back period. Both are covered in The release line and The money-back guarantee.
Or insert a block
In the block editor, open the inserter and look under Widgets, or type "Freemius" into its search box. There are nine blocks: Freemius pricing card, Freemius price, Freemius buy button, Freemius plan text, Freemius plan features, Freemius currency toggle, Freemius billing cycle toggle, Freemius release and Freemius money-back. Each one renders your headline row the moment it is inserted, and its sidebar offers only the combinations your product sells.
Start with the card. Insert Freemius pricing card and it arrives holding the plan's name, its price, its description, its features list and a full-width buy button, every one of them live and every one of them still its own block. The card itself has a Width, a Position and the border, colour, padding and spacing panels, on every theme.
A pricing row is three choices. Put a Columns block on the page, drop a card into each column, and set each card's Plan once, in its What this card is about panel. Everything inside a card follows the card, so you do not touch the blocks inside at all. The plan you mark featured in the Freemius dashboard marks its own card automatically: a badge, a border, a background and a shadow, all set once on the Featured plan tab under Settings.

The pricing card has the tour.
A Shortcode block holding any of these shortcodes converts to the matching block in one click, and the block type menu converts a block back.
5. Set the site-wide options
Freemius Pricing, Settings holds the choices that are not per product, on four tabs: Settings, Appearance, Featured plan and Logs. The Settings tab is what a price says and how it behaves; Appearance is how every toggle, card and buy button looks; Featured plan is how the plan you feature is marked out; Logs is what the plugin has been doing. Each has its own Save, and saving one never changes anything on another.
None of them is needed for a live price. Settings most sites never change are folded under their headings, each with a one-line summary of what it holds. Click a heading to open it. A folded group that holds a setting you changed opens by itself and says how many are changed.
The Settings tab
Display
- Default currency - the currency written into the page before the visitor's browser picks one.
- Checkout - Hosted page, the hosted Freemius checkout page, or Overlay, the checkout over your own page.
Billing cycle
- Default cycle - which cycle a price shows first. A plan that does not sell it shows the first one it does.
Buttons
- Button label - the words on every buy button without a label of its own.
Behaviour, folded
- Remember a visitor's currency - a switch: whether a visitor's currency choice is kept in their own browser.
- Refresh after - how stale the stored prices may get before a page view schedules a background refresh. It is the backstop for a webhook that never arrived, not a polling interval.
Toggle labels, folded
- The words on every billing cycle toggle. Monthly, Yearly and Lifetime to start with.
Text after the price, folded
/month,/yearandone-timeto start with, printed only where a price asks for them withsuffix="auto". Nothing you have already published changes.

The Appearance tab
Appearance, the next tab along and an entry of its own in the sidebar, has a live card, both kinds of buy button and both toggles beside its fields, redrawn as you change them.
Toggles
- Style - the look every currency and billing cycle toggle takes: Pills, Buttons, Tabs, Text or Switch. Unchanged leaves them as plain buttons your theme styles.
Cards - the box every pricing card on the site is drawn in. On a new site these start with the pattern's own card; a value set on a card itself always wins.
- Border colour and Border width - the card's border. On a card, a colour with no width draws a 1px border.
- Corner radius - how round the corners are.
- Padding - the space inside the border.
- Background - the colour behind every card. One chosen on a card itself is kept.
- Shadow - None, Soft or Strong, the shadow every card rests with.
Toggle colours, folded
- Colours - Normal and Active columns, Text and Background rows: every option at rest, and the one a visitor is on. Leave one empty and the style's own stays. A toggle that names its own style or colour keeps it, and Size and Gap stay on each toggle because they are layout.

Card hover and shadow colour, folded
- Shadow colour - the colour both of a card's shadows are drawn in, the resting Shadow above and the hover one. The preset keeps its depth and its softness and only the colour changes. Empty is the neutral black.
- Hover lift - how far every pricing card rises under the pointer, 0 to 6 pixels. 0 is none. A card already raised for being featured rises further rather than dropping back.
- Hover shadow - none, soft or strong, the shadow it takes under the pointer. A featured card keeps its own shadow at rest and takes this one while the pointer is on it. Both apply on screens 1025px and wider only.
Buttons, folded
- Button classes - extra CSS classes for every button.
- Hover lift - how far every button rises under the pointer, 0 to 6 pixels. 0 is none, 1 is the house look.
- Hover shadow - none, soft or strong, the shadow it takes with it. Both apply on screens 1025px and wider only.
- Shadow colour - the colour that shadow is drawn in, the same way it works for a card.
Filled buttons and Outlined buttons, folded, a group each, one for each kind of button:
- Border width - 0 to 20 pixels. A filled button has no border unless you set a width; empty keeps your theme's, which for an outlined button is its 2px outline. 0 takes the border away. A Border colour never creates a width: it colours a border the button already has.
- Colours - the text, the border and the background that kind takes Normal and On hover. An outlined button's Background is empty to start with, which is what makes it outlined. Leave a colour empty and your theme's own stays. A colour set on the button itself wins over the Normal column, and unlike the lift and the shadow, these apply on touch screens too.

The Featured plan tab
Featured plan, a tab of its own after Appearance, says how the plan you feature in the Freemius dashboard is marked out. Badge comes first and stays open: where the badge sits and what it says. Then three folded groups: Card (border, background, text colour, shadow, a small lift), Badge style (how big it is, an optional icon and its two colours) and Button (the buy button's border width, and its text, border and background at rest and under the pointer). A real card beside the settings redraws as you change them.
Leave a colour empty and being featured does not change it: the card keeps the border, background and button colours it already has, so you paint only what you choose to paint. The badge is the exception, because it has no colour of its own to keep, and left empty it takes the card's text colour with its words in the card's background.

The Logs tab
What the plugin has been doing, with the log level, Keep entries for, Clear log and Download log. The log is kept in your site's database. Keep entries for is how long an entry stays: 7, 14, 30 or 90 days, 30 until you change it. Share settings usage is here too, off until you turn it on: with it on, the plugin sends PlugUpp a weekly summary of which settings you changed and which groups you opened, never your content, addresses, tokens or keys.
6. Check it
Open the page as a logged-out visitor. You should see the current prices in the currency for where you are: from a desk in the UK you see the GBP figure even though the dashboard's plan table reads in USD, because the choice is made in the browser (see The visitor's currency). Press the billing cycle toggle and every price, suffix and buy button on the page should move together.
Then change a price in the Freemius dashboard and reload within half a minute. The new figure should be there, with no visit to the editor.
