What can I change the Add to Cart button text to?
Anything you want. Plain text (Buy now, Pre-order, Reserve), text with the product price baked in (Get this for $49), text with stock count (Only 3 left - grab one), text personalized to the logged-in user (Welcome back John, claim yours), or even emoji. The plugin gives you a textarea with full shortcode support.
Can I set a different button label per product?
Yes. Every product gets its own Add to Cart Text field on the Edit Product screen. Leave it blank to fall back to global settings. Fill it in to override globally for that one product. Variations are also editable.
Can I change the button text based on user role?
Yes. Show Buy now to guests, Add to your stockpile to logged-in customers, Request a quote to wholesale users. Every WordPress user role gets its own label field, including custom roles from membership or B2B plugins.
What are the dynamic shortcodes?
Six built-in shortcodes turn the button text into something that updates automatically. {price} prints the current product price. {sale_price} prints the sale price when one is set. {stock_quantity} prints the live stock count. {user_name} prints the logged-in customer's first name. {product_title} prints the product name. {category} prints the primary category. Mix and match in any button label.
Does it work with variable, grouped, and external products?
Yes. Each product type gets its own label slot in settings (simple, variable, grouped, external, subscription). On archive pages, variable products usually show "Read More" - you can rewrite that too, or replace it with "View options" or "Pick your size".
Can the label differ on the shop page vs the product page?
Yes. View-level toggle: one label for archives (shop, category, search, related products), another for the single product page. Useful when archive buttons say "Choose options" but the single page says "Add to cart - $49".
What about free products, out-of-stock, or already-in-cart state?
Four condition-specific labels ship out of the box. Free price (price is zero) - show "Download now". Empty price (no price set) - show "Contact us". Already in cart - show "In your cart - view cart". Out of stock - show "Notify me". Each is configurable, each falls back to the global label when off.
Does it work with WPML or Polylang?
Yes. Every label is translation-ready. WPML and Polylang both pick up the strings via WordPress's standard translation hooks. Run the standard string-translation scan, translate per language, done. No special workflow needed.
Will it break my theme?
No. The plugin hooks WooCommerce's button-text filters (woocommerce_product_single_add_to_cart_text, woocommerce_product_add_to_cart_text). Any theme that uses WooCommerce templates correctly (Storefront, Astra, Kadence, GeneratePress, Avada, Flatsome, all block themes) inherits the new labels automatically. No template overrides needed.
Is the plugin HPOS-compatible?
Yes. HPOS (High-Performance Order Storage) is declared compatible. Block-based cart and checkout supported. Works with classic shortcode-based cart and checkout too.
What is the refund policy?
14 days on the yearly and lifetime plans; 30 days on All Access. No questions asked. The yearly plan also includes an upgrade credit toward Lifetime or All Access. Lifetime never renews. Yearly auto-renew can be turned off in your account.
Is there a free version?
Yes. The free version on WordPress.org covers global label, per-product label, and per-category label. The Pro version adds user-role labels, product-type labels, view-level labels (single vs archive), dynamic shortcodes, condition-specific labels (free, empty, in-cart, out-of-stock), custom Read More text for variable products, and priority support.