توضیحات
If you sell through Freemius, the prices on your website are a copy of the prices in your Freemius dashboard, and copies go stale. Change a price in the dashboard and you then have to remember every page, tile and sentence on your own site that quotes it, open each one in the editor, retype the figure and save. Miss one and a visitor is reading a price you no longer charge.
This plugin keeps the figure in the page bound to the price in the dashboard. Blocks in the editor, shortcodes everywhere else, both rendering the same live figure. Prices are fetched from the Freemius API on your server, stored on your site, and refetched within seconds of a dashboard change. Your pages render the stored figure, so nothing about this makes a visitor wait on an API call, and nobody has to re-save a page for a new price to appear.
A figure typed into a page is correct on the day and drifts from then on. This plugin never types one: every price on the page is read from the stored copy at render time, and the stored copy follows the dashboard.
Freemius is a trademark of Freemius, Inc. This plugin is an independent integration built by PlugUpp on the public Freemius API; it is not affiliated with, endorsed by or maintained by Freemius, and it is not the Freemius for WordPress plugin.
What it does
- A Freemius pricing card block is a whole card in one go: insert it and it arrives holding the plan’s name, its price, its description, its features list and a full-width buy button, every figure and every word of it live and every one of them still its own block. The card itself has a width, a position, a border, a radius, padding, a background and the space between the blocks inside it, all from its own panels, on every theme, including the themes where WordPress leaves those panels switched off.
- A Freemius price block renders any plan, licence tier and billing cycle, picked from dropdowns that offer only the combinations your product sells. Freemius buy button, Freemius plan text, Freemius plan features, Freemius currency toggle, Freemius billing cycle toggle, Freemius release and Freemius money-back sit beside it, all nine under Widgets in the inserter.
[pflp_card]is the same box as a shortcode, wrapping whatever you put between its tags. A row of cards side by side stays an ordinary Columns or Grid block, because WordPress is already good at that.- The plan’s own words come from Freemius too.
[pflp_plan]renders its title, its description or its free trial, and[pflp_features]renders its feature list, so nothing on a pricing card is typed twice. [pflp_price]does the same thing as a shortcode, for page builders, the classic editor, widget areas and template files. The blocks and the shortcodes are the same code, so the two can never drift apart, and an existing shortcode converts to a block in one click.[pflp_button]renders a buy button linking to the hosted checkout for that same row, built the way WordPress builds its own Button block so your theme’s button styling applies to it. It comes in two kinds, Filled and Outlined, the same two the core Buttons block offers and built the same way, and each kind has its own colours on the Settings screen.[pflp_cycle]renders a billing cycle toggle and[pflp_currency]a currency toggle, each with five styles, a size, a gap and an active colour, and each rendering nothing at all where there is only one option to offer.- The cycle toggle can carry the saving on the yearly option. It is computed from your own prices rather than typed, so a price change moves it, and it is not shown at all when there is no saving to claim.
- A price can print your own text after the figure,
/monthand/yearset once on the Settings screen and following the toggle, or your own words. It is off unless you ask for it, so nothing already published changes. - A plan that does not sell the cycle on show says so, “Yearly only”, built from the cycles it does sell. A price never falls back to a nearby figure and never prints a zero.
- Every attribute is optional.
[pflp_price]and[pflp_button]with nothing at all render your headline price and the checkout that sells it, so the shortest thing you can type is already the right one. - A webhook receiver refetches within seconds of a price or plan change in the dashboard, and registers itself: there is nothing to paste. A staleness check is the backstop, and a daily job is the backstop for that.
- Every price carries all of its currencies and all of its billing cycles, so a visitor sees theirs through a swap in their own browser. No request comes back to your site, which means a page cache or a CDN can never serve one visitor’s currency to another.
- Buy buttons stay ordinary links to the hosted checkout and gain the visitor’s currency, whether the plugin rendered them or your theme did. One setting opens the checkout in an overlay instead.
- If the Freemius API is ever unreachable, the last good prices stay on the page and an admin notice tells you. Nothing goes blank, and no figure is ever invented or shown as zero.
- A shortcode builder on each product’s screen writes any of it for you, says what it will render, and lists every price the product sells. Pick Pricing card and it writes the whole card, all six lines at once, ready for a page builder’s shortcode widget or the classic editor. A second row of dropdowns offers whatever named choices the element has: a price’s format and its suffix, a button’s style and width, a toggle’s look, the saving badge, a card’s featured state and its button style, and a features list’s descriptions.
- Card defaults set the border, radius, padding, background and shadow of every pricing card on the site at once. They start empty, so nothing changes until you fill one, and anything set on a card itself always wins.
- The version is live too. Freemius release and
[pflp_release]show the latest release Freemius holds for the product: its version, what it requires and what it is tested up to, and its release date if you ask for it. Freemius money-back and[pflp_moneyback]show the money-back guarantee set in the dashboard. Both show nothing at all where Freemius holds nothing, rather than a typed stand-in that would go stale.
Who it is for
Anyone selling a WordPress plugin or theme through Freemius who publishes prices on their own site: a pricing page, a comparison table, a landing page, or a price quoted in a paragraph of copy. It is most useful if you sell in more than one currency, or change prices more than once a year.
About PlugUpp
PlugUpp builds WordPress plugins for people who publish and sell on their own site. This one is free because everyone who needs it is a plugin or theme seller with a marketing site, which is exactly who PlugUpp builds for. Three more for the same site:
- PlugUpp Link & Image Health Audit finds the broken links and broken images on the site you sell from, checked on your own server with no external crawler and no quota. See it on plugupp.com
- PlugUpp Search & Social Appearance Audit shows how every page looks in Google and on social platforms, from the page as it actually ships, before a buyer sees it. See it on plugupp.com
- PlugUpp Dynamic OG Image Generator gives each page a real browser screenshot of itself as its share image, so a shared link shows the page as it is. See it on plugupp.com
External services
This plugin relies on the Freemius platform. Three separate calls are involved, and they are described here in full, followed by one call to WordPress.org on two admin screens.
1. Reading your prices from the Freemius API
Your server requests https://api.freemius.com/v1/products/{product ID}/pricing.json. It sends the numeric Freemius product ID in the URL and your Freemius API Bearer Authorization Token in an authorization header. Nothing else is sent, and nothing about your visitors is sent. The call happens only on your server, never during a visitor’s page view: when you press Refresh now or Test token in the admin, when a webhook arrives, when a scheduled refresh runs, and whenever you save the product. If no token is configured, the call is never made.
When a save has proved the token, your server also reads the product’s secret key from https://api.freemius.com/v1/products/{product ID}.json (it signs every webhook delivery; it is stored on your site and never shown or logged) and registers this site’s webhook with the same API: it lists the product’s webhooks at https://api.freemius.com/v1/products/{product ID}/webhooks.json, then creates one for this site or brings its own up to date, and removes its own when you delete the product. The only thing sent is this site’s webhook URL and the eleven event types it subscribes to: a price or a plan being created, updated or deleted, a version being released, deployed, updated or deleted, and a release being suspended. Webhooks pointing anywhere else are never touched.
The prices answer also carries the product’s money-back period and refund policy, and those two are kept with the prices. Whenever the prices are read, your server also reads the product’s latest released version from https://api.freemius.com/v1/products/{product ID}/tags/latest.json, with the same product ID and token and nothing else. Only the version, the WordPress and PHP versions it requires, the version it is tested up to, its release date and its tag number are kept from it; the download link the answer carries is never stored.
2. Choosing the visitor’s currency
The visitor’s browser requests https://checkout.freemius.com/geo.json. The request carries nothing beyond the request itself, which necessarily includes the visitor’s IP address as any web request does. The answer is a currency code, which the browser keeps for one hour so the call is not repeated on every page. This happens only on pages where a price or a currency toggle has been rendered, and only when the visitor has not already chosen a currency.
3. The overlay checkout
When you switch the Checkout setting to “Overlay”, the visitor’s browser loads the Freemius checkout script from https://checkout.freemius.com/js/v1/ so the checkout can open in place. With the default hosted setting, this script is never loaded and your buy buttons remain ordinary links.
4. The More from PlugUpp panel
On this plugin’s own Products and Settings screens, and nowhere else, your site asks the WordPress.org plugins API (https://api.wordpress.org/plugins/info/1.2/) for the list of plugins published by the PlugUpp account, once a day, and shows them as cards with their WordPress.org icons (served from https://ps.w.org/). The request carries the author name and nothing about your site. This is the same API WordPress itself uses for the Add New plugin screen and for update checks. If it cannot be reached, a short built-in list is shown instead.
Webhooks are inbound. A webhook is a call from Freemius to your site, not from your site to Freemius. Your site never initiates it and sends nothing. Each delivery is verified twice before it is acted on: the URL carries a key this plugin generated, and the body carries a signature checked against your product’s secret key.
Freemius is operated by Freemius, Inc. Their terms of service are at https://freemius.com/terms/ and their privacy policy is at https://freemius.com/privacy/.
Credits
The nine badge icons are Tabler Icons by Pawel Kuna, used unmodified under the MIT licence. The licence text ships with them, in assets/icons/badge/LICENSE-icons.txt.
عکسهای صفحه








بلوکها
این افزونه 9 بلوک ارائه میدهد.
- Freemius release The product's latest release from Freemius: its version, what it requires and what it is tested up to, so a product page never carries a version somebody typed.
- Freemius plan features The features Freemius holds against a plan, as a list, so a pricing card lists what it sells without anyone retyping it.
- Freemius pricing card The box a pricing card is: a border, a radius, padding and a width, with the plan's name, price, description, features and buy button inside it.
- Freemius billing cycle toggle Lets a visitor switch every price and buy button on the page between the billing cycles your product is sold on.
- Freemius price One live Freemius price: a plan, a licence tier and a billing cycle, in the visitor's own currency.
- Freemius money-back The money-back guarantee Freemius holds for the product, named after its Freemius refund policy, such as "30-day satisfaction guarantee", shown only while Freemius offers one.
- Freemius buy button A buy button linking to your Freemius checkout for one plan, licence tier and billing cycle.
- Freemius currency toggle Lets a visitor switch every price and buy button on the page between the currencies your product is sold in.
- Freemius plan text A plan's own words from Freemius: its title, its description or its free trial, so a pricing card names its plan once.
نصب
- Install the plugin through Plugins, Add New, or upload the plugin folder to
wp-content/plugins/, then activate it. - Open Freemius Pricing in the WordPress admin menu. It lands on Products.
- Press Add product and fill in the numeric Freemius product ID and its API Bearer Authorization Token, from the Freemius dashboard under the product, then Settings, then Keys. Nothing else is typed: the product’s name arrives with the prices, and the product secret key, which signs webhooks, is read with the token. Both the token and the secret come from the Freemius dashboard, under the product, then Settings, then Keys.
- Press Test token to check it, then Add product to save.
- You are now on the product’s own screen, and the webhook is already registered with Freemius: the save did it, and the Status card says so. If it could not be, the same line says why, and Show webhook URL beneath it opens the URL and the events to paste into the Freemius dashboard, under the product, then Webhooks, then Listeners, yourself.
- The same screen has a Shortcode builder: pick the element, the plan, the licence tier and the billing cycle, and it writes the shortcode and says what it renders. Copy it into a page. In the block editor, insert any of the nine Freemius blocks from the inserter under Widgets instead, or drop in the Freemius pricing card from the Patterns tab, and pick the row from dropdowns.
- Freemius Pricing, then Settings holds the site-wide choices: under Display the default currency, whether a visitor’s currency choice is remembered, hosted or overlay checkout and how stale prices may get before a background refresh; under Billing cycle the default cycle, the three toggle labels and the three texts that can follow a price; under Buttons the default label, CSS classes and hover effect. Freemius Pricing, then Logs shows what the plugin has been doing.
سوالات متداول
-
Does this slow my pages down?
-
No. Pages read the prices from your own database, and your server never calls Freemius while a visitor is waiting. A stale copy renders as it is and schedules a background refresh.
-
How quickly does a price change appear?
-
With the webhook registered, within seconds. Without it, within the Refresh after interval on the Settings screen, which starts at 15 minutes, and at worst within a day on a page nobody visits.
-
What happens if Freemius is down, or my token stops working?
-
The last prices fetched stay on your pages indefinitely, and an admin notice tells you the refresh is failing. Nothing goes blank and nothing invents a figure.
-
Do I have to set up the webhook?
-
No. Saving a product with a working token registers it with Freemius for you, and every later save checks it. Where Freemius has not enabled webhooks for a product yet (it reserves them until a product is actively selling), the save is still complete and the Status card says so rather than blaming the token; every later save tries again.
-
Do I need Freemius’s own WordPress plugin as well?
-
No. This plugin talks to the Freemius API directly and depends on no other plugin. The two run side by side happily. The only thing this one does to the rest of your page is add the visitor’s currency to links pointing at the Freemius checkout, whoever made them, and open them in the overlay if you have chosen it.
-
In the Freemius dashboard: the product, then Settings, then Keys. It is stored in your site’s settings, shown masked, never written to the log, and sent nowhere but api.freemius.com over HTTPS from your server. The product secret key, which proves a webhook genuine, is read with it, so there is nothing else to copy.
-
Which currencies are supported?
-
The ones the Freemius pricing API returns: USD, EUR and GBP. The plugin never converts a price, so a currency a plan has no row in is never offered for it, and the currency toggle does not render at all where there is only one.
-
Do I have to write out every attribute?
-
No. Every attribute on every shortcode is optional, and the shortest form is the right one:
[pflp_price]renders your headline price and[pflp_button]links to the checkout that sells it. Left out,planmeans the plan Freemius marks as featured,licensesmeans that plan’s lowest numbered tier, andcyclemeans your default cycle where the tier sells it. An attribute you do write is never second-guessed. -
Can I show prices for more than one product?
-
Yes. Add each one under Freemius Pricing, Products, then name one with
product="12345", or with its Freemius slug or name. The first product configured is used when a shortcode names none. -
The product was renamed in Freemius. When does the site follow?
-
The name comes with the prices on every fetch, and Freemius sends no webhook for a rename, so it follows on the next refresh, or straight away if you press Refresh now or save the product.
-
What about the free plan?
-
Nothing from this plugin: a plan with no price has no figure to show and no checkout to link to, so the block’s Plan dropdown does not offer it and a shortcode naming it renders nothing. For the free tier of a pricing table, use an ordinary button, the core Buttons block or your theme’s, linking to the plugin’s download page. That link is a fixed fact rather than a live price, so there is nothing to keep current.
-
Are there blocks, or only shortcodes?
-
Both, and they are the same code, so they can never disagree. Nine blocks under Widgets in the inserter (Freemius pricing card, price, buy button, plan text, plan features, currency toggle, billing cycle toggle, release and money-back), and the pricing card again under Freemius in the Patterns tab, ready sized and bordered. Each block renders your headline row as soon as it is inserted, and its dropdowns offer only the combinations your product sells. A Shortcode block converts to the matching block in one click, and the block type menu converts it back; styling set in the editor’s own panels is inline CSS and cannot travel to a shortcode, which the editor says once.
-
Does it work with a page cache?
-
Yes, and it is built for it. Every price is written into the page in all of its currencies and all of its billing cycles, and both swaps happen in the visitor’s own browser with no request back to your server, so a cached page is the same page for everyone.
-
Only if you want it to.
[pflp_button]renders one for any plan, licence tier and billing cycle, with four widths, two kinds of button, Filled and Outlined, and thewp-element-buttonclass WordPress gives its own buttons. A button you built yourself works just as well: the plugin adds the visitor’s currency to any link pointing at the Freemius checkout, and can open it in an overlay. -
Can it show the current version and the money-back guarantee?
-
Yes. The Freemius release block, or
[pflp_release], shows the latest version released on Freemius, what it requires and what it is tested up to, and the Freemius money-back block, or[pflp_moneyback], shows the guarantee set in the dashboard, named after its refund policy. Both update when you release or change them, the same way prices do. A product with no releases on Freemius, such as an app, shows no release line at all, and a product with no money-back period shows no guarantee: there is no typed fallback, because a typed version is the copy that goes stale. -
What happens if a plan does not sell the billing cycle on show?
-
The price says so, “Yearly only”, built from the cycles that tier does sell in your own words for them, and the buy button keeps its shape and says the same rather than linking to a checkout that cannot sell it. It never falls back to a nearby figure and never prints a zero.
missing="hide"prints nothing instead, andcycle="annual"pins a card to its own figure so a toggle leaves it alone. -
What external services does this plugin use?
-
The Freemius platform. Your server reads your prices from
https://api.freemius.com/v1/products/{product ID}/pricing.json, with the money-back period in the same answer, and the latest release from.../tags/latest.json, sending the product ID and your API Bearer Authorization Token and nothing else, and only when you refresh, test a token, receive a webhook or a scheduled refresh runs. The visitor’s browser callshttps://checkout.freemius.com/geo.jsonto work out which currency to show, sending nothing beyond the request itself, and caching the answer for an hour. If you turn on overlay checkout, the visitor’s browser also loads the checkout script fromhttps://checkout.freemius.com/js/v1/; with the default hosted checkout it does not. Webhooks run the other way, inbound from Freemius to your site, and each one is verified by both a generated URL key and a body signature. Nothing about your visitors is ever sent to Freemius by your server. Freemius terms: https://freemius.com/terms/ . Freemius privacy policy: https://freemius.com/privacy/ .
نقد و بررسیها
نقد و بررسیای برای این افزونه یافت نشد.
توسعه دهندگان و همکاران
“PlugUpp Live Pricing for Freemius” نرم افزار متن باز است. افراد زیر در این افزونه مشارکت کردهاند.
مشارکت کنندگانترجمه “PlugUpp Live Pricing for Freemius” به زبان شما.
علاقه مند به توسعه هستید؟
کد را مرور کنید، مخزن SVN را بررسی کنید، یا از طریق RSS در گزارش توسعه مشترک شوید.
گزارش تغییرات
1.5.0
- Changed: the settings screens are easier to read and quicker to use. A setting that is on or off is now a switch. A choice of two to five is a row of buttons, with every option in view and the chosen one filled. Longer lists stay lists. Each tab’s settings sit on one card, in groups under headings, with Save under the card.
- Changed: each product’s screen works the same way. The Featured plan override is a switch. In the shortcode builder, the choices for each element are rows of buttons and switches, and the release line’s Show is four tick boxes.
- Changed: shorter words on the controls. The badge positions read Strip, Tab, Inside, Corner and None. Checkout reads Hosted page or Overlay. The builder’s first choices read Headline plan, Headline tier and Headline cycle, and the line under the code box says what they work out to for your product.
- Changed: the log level on the Logs tab is a row of five buttons: Off, Errors, Warnings, Info and Debug.
- Changed: nothing you have saved changes. Every setting keeps its value.
- Fixed: the Freemius blocks were missing from the block editor in 1.4.0. A mistake in the editor script stopped all nine from loading. They load again.
- Fixed: turning off a product’s own featured styling always keeps that product’s own values for next time.
- Fixed: a product with no released version yet, such as a plugin still in testing, no longer logs a failed release check on every refresh. It shows no release line, the same as a product Freemius has no releases for.
1.4.0
- Added: a release line, read from Freemius. The Freemius release block and [pflp_release] show the product’s latest released version, what it requires and what it is tested up to, such as “Version 1.4.0 · Requires WordPress 6.2 and PHP 7.4 · Tested up to 7.1”, with the release date as a fourth part you can add. Choose the parts and their order, the text between them and the date format. Only a released version shows, never a beta. A product Freemius has no releases for, such as an app, shows nothing at all, and the editor, the shortcode builder and the product’s Status card each say why. A part Freemius holds nothing for is left out, and there is no fallback text, because a version typed as a fallback is exactly the copy that goes stale.
- Added: the money-back guarantee, read from Freemius. The Freemius money-back block and [pflp_moneyback] show the guarantee from the period and refund policy set in the Freemius dashboard, named the way Freemius names the policy, such as “30-day satisfaction guarantee” for its Moderate policy, or your own words with %d where the number of days goes. It shows nothing while Freemius holds no period, your own words included, so a page can never promise a guarantee the checkout does not give.
- Added: the product’s Status card shows the release and the money-back period it holds, and Refresh now fetches both with the prices. The shortcode builder offers Release line, with a Show list of the four parts, and Money-back guarantee.
- Changed: a refresh now reads the latest release from Freemius as well as the prices, and the money-back period arrives with the prices. Each is kept on its own terms: if one read fails, what it last fetched stays and the other still updates. Refresh now says so when the prices came back and the release did not.
- Changed: the webhook this plugin registers with Freemius now also listens for a version being released, deployed, updated or deleted, and for a release being suspended, so a new release reaches your pages within seconds and a withdrawn one leaves them. A site updated from an earlier version brings its existing webhook up to date by itself, once, in the background; a site that had no webhook registered is not given one.
1.3.0
- Added: the look of every currency and billing cycle toggle can be set once, under Toggles on the Appearance tab: a Style, and a Colours grid with a Normal column and an Active one for the text and the background. Leave the style Unchanged and a colour empty and your theme’s own stays, exactly as before. A toggle that names its own style in the editor or in a shortcode still keeps it, and so does one given a colour in the editor’s own panel. Size and Gap stay on each toggle, because they are layout rather than look.
- Added: buy button colours, site-wide, for each kind of button. The Appearance tab has two Colours grids, Filled buttons and Outlined buttons, each with the same shape as the one on the Featured plan tab: the text, the border and the background that kind of button takes Normal and On hover. An outlined button’s background is empty to start with, which is what makes it outlined; set one for a tint at rest or a fill under the pointer. Leave a colour empty and your theme’s own stays, as before. A colour set on a button itself, in its block panel or its shortcode, still wins, and a featured card’s button keeps its own. The two kinds are called Filled and Outlined everywhere now, including the block’s own Styles panel. Each kind of button has a Border width too, and the Buttons settings are three groups now: Buttons for what both kinds share, then Filled buttons and Outlined buttons, each a Border width and a Colours grid. A button shows a border only when it has a width, set here, on the button itself, or by your theme, and 0 means none; a Border colour never creates a width, it colours a border the button already has, and an outlined button keeps its 2px outline while its width is empty. There is no width on hover, because a border that changed under the pointer would move the page, so the On hover Border colour paints the border the button already has. An outlined button’s border follows its Text colour until you give Border one of its own. The featured card’s button has the same Border width on the Featured plan tab; a width set on the button itself, in its own Border panel, wins over it, as it wins over the site-wide ones.
- Changed: an outlined buy button now takes your theme’s own outline style wherever that style can reach it. Its 2px border and its padding were WordPress’s own, fixed, and overrode the theme’s, so it matched an outlined WordPress Button block on 2 of the 10 themes we test against; it matches on 5 now, Twenty Twenty-One, GeneratePress and Kadence joining Neve and Hello Elementor. WordPress’s own outline look stays as the fallback wherever the theme’s cannot reach: a theme that keeps its outline style for the core Buttons block, as Astra and Blocksy do, or that sets it through theme.json, as Twenty Twenty-Five and Twenty Twenty-Four do. On Astra the outlined button takes the theme’s general button padding and border colour. The Border width and colours on the Appearance tab, and the block’s own panels, still win over all of it.
- Changed: a filled buy button on a theme that styles no buttons is now padded the way WordPress pads its own button, so a filled and an outlined button side by side are the same size, in the Appearance tab’s preview too. On a theme that styles its buttons, which all ten we test against do, nothing changes.
- Changed: a featured card’s button with a Border colour and no Border width keeps the 1 pixel border it has had since 1.2.0, and its Border width now says so. That border came from the colour alone, and a colour no longer creates a width, so the first run after the update writes the width for you: 1, on the Featured plan tab and on every product’s own Featured plan, wherever a Border colour is set and the width is empty. It runs once, and a width you have set, 0 included, is never changed.
- Changed: the Settings screen has a new Appearance tab, between Settings and Featured plan, with an entry of its own in the sidebar. Settings keeps what a price says and how it behaves: Display, Billing cycle and the Button label, saved with Save settings. How every toggle, card and buy button looks moved to Appearance, in Toggles, Cards, Buttons, Filled buttons and Outlined buttons, saved with Save appearance, with the live preview beside it. Saving either tab never changes a value on the other. Both are laid out like the rest of the plugin’s screens, with their fields in one titled panel and the Save button at its foot rather than adrift below it. Every field that means the same thing on more than one screen is now called the same thing, every colour that can be left empty says Unchanged, and every number box is the same size.
- Added: the Appearance tab previews what you are setting. A live pricing card, two buy buttons, one filled and one outlined, and both toggles sit beside the fields and follow every change, drawn with your own theme and your own settings rather than a picture of them. Point at the card or a button to see its hover, or tick Hold hover to pin the hover on while you pick a colour. The figures are placeholders and no product is needed.
- Changed: the Freemius pricing card pattern now has 16 pixel corners in place of 8, which is the card as it looks on our own pricing pages. A card already on one of your pages keeps the corners it was given: a pattern is copied when you insert it, so changing it never reaches a page you have already built.
- Changed: a site installing this plugin for the first time now starts with the Card defaults filled in from the Freemius pricing card pattern: a 1 pixel #e0e0e0 border, a 16 pixel corner radius and 2rem of padding, with no background and no shadow. A card written as a shortcode then looks like a card inserted from the inserter with nothing to match up by hand. A site updating from an earlier version is not touched: its Card defaults start empty, so not one card on it moved. Empty fields now say what empty means, so a length left blank reads “Theme’s own” rather than sitting there looking unset.
- Fixed: a pricing card written as a shortcode into a page builder’s widget, alongside other content in the same widget, stretched to the full height of that widget and hung over whatever came next. Measured in an Elementor text widget: 425 pixels tall for 189 pixels of content, overlapping the section below by 236. A card now fills its container only when it is the whole of that container, which is what a row of cards is, so cards side by side are still all the same height with their buy buttons on one line.
- Added: the shortcode builder on a product’s screen can now write a whole pricing card. Choose Pricing card as the element and the box gives you the six lines a card is made of, ready to paste into a page builder’s shortcode widget or a classic editor: the card, the plan name, the price, the features list and the buy button. The four shortcodes inside name no product, plan or licence tier, because they follow the card, so changing the plan means changing one line. The Billing cycle choice is switched off for a card on purpose: naming a cycle fixes the price, and the billing toggle on the page would then leave that card behind. One card per plan, each in its own column of your page builder.
- Added: a second row of choices in the shortcode builder, so the settings you would otherwise have to look up are on the screen. A price can be written with a currency code instead of a symbol, and with the site-wide text after the figure. A buy button can be Filled or Outlined, and sized to the content or to a quarter, a half, three quarters or the full width. Either toggle can take any of the five looks. A billing cycle toggle can carry the saving badge. A features list can show each feature’s description. A card can be forced to stand out or forced not to, and its buy button can be Outlined. Every one of them is a choice of words rather than a value to type, anything left at its default is left out of the shortcode, and the sentence under the box says what the choice changes.
- Added: Card defaults, under Cards on the Appearance tab: a border colour and width, a corner radius, padding, a background and a shadow for every pricing card on the site. They start empty, and empty means unchanged, so nothing on your site moves when you update: a card still takes whatever your theme gives a plain box until you fill a field. Anything set on a card itself always wins, whether it came from the block’s own panels or from a shortcode attribute, including a background chosen from your theme’s palette. The Cards section’s Shadow colour now colours both a card’s resting shadow and its hover shadow, because they are one card’s shadow.
Older versions are in the full changelog.
