Title: CreamySales &#8211; Conversion Widgets for WooCommerce
Author: creamysales
Published: <strong>June 7, 2026</strong>
Last modified: August 4, 2026

---

Search plugins

![](https://ps.w.org/creamysales/assets/banner-772x250.png?rev=3565837)

![](https://ps.w.org/creamysales/assets/icon-256x256.png?rev=3571929)

# CreamySales – Conversion Widgets for WooCommerce

 By [creamysales](https://profiles.wordpress.org/creamyorg/)

[Download](https://downloads.wordpress.org/plugin/creamysales.1.46.zip)

 * [Details](https://srd.wordpress.org/plugins/creamysales/#description)
 * [Reviews](https://srd.wordpress.org/plugins/creamysales/#reviews)
 *  [Installation](https://srd.wordpress.org/plugins/creamysales/#installation)
 * [Development](https://srd.wordpress.org/plugins/creamysales/#developers)

 [Support](https://wordpress.org/support/plugin/creamysales/)

## Description

CreamySales connects your WooCommerce store to the CreamySales platform, allowing
you to display conversion-focused widgets on your storefront.

The plugin is a lightweight connector. Widget creation, design settings, store management,
and usage limits are managed from your CreamySales dashboard.

#### What the Plugin Does

 * Connects your WooCommerce store to your CreamySales account.
 * Loads the CreamySales widget script on your storefront.
 * Allows widgets configured in the CreamySales dashboard to appear on your site.
 * Supports WooCommerce stores using Hebrew, English, RTL, and LTR layouts.

#### Available Widgets

#### Social Proof Notifications

Display recent purchase notifications to visitors while they browse your store.

#### Cart Upsell Popups

Show targeted product offers before checkout to help increase average order value.

#### Sold Count

Display sold-count information on product pages to show demand and activity.

Widget availability may depend on your CreamySales plan.

#### Features

 * Built for WooCommerce.
 * Managed from a central dashboard.
 * Works across multiple stores.
 * Customizable widget design and behavior.
 * Supports Hebrew and English.
 * Supports RTL and LTR layouts.
 * Loads asynchronously on the frontend.
 * No theme file changes required.
 * Supports semantic product-title and active-main-image popup placement across 
   classic and block templates.

#### How It Works

 1. Install and activate the plugin.
 2. Create or log in to your CreamySales account.
 3. Connect your WooCommerce store.
 4. Configure widgets from the CreamySales dashboard.
 5. The plugin loads the active widgets on your storefront.

#### Performance

The CreamySales frontend script loads asynchronously and is designed to avoid blocking
page rendering.

#### Theme Compatibility

CreamySales widgets are displayed independently from your WooCommerce theme templates,
so no theme modifications are required.

For location-dependent product popups, CreamySales resolves semantic anchors through
explicit manual targets, Elementor Pro WooCommerce widgets, WooCommerce Blocks, 
classic WooCommerce hooks, and conservative standard WooCommerce markup. If no reliable
target exists, only that location-dependent popup is suppressed.

#### External Service

This plugin connects to the CreamySales platform at `https://creamysales.com` in
order to connect your WooCommerce store, load and manage dashboard-configured widgets,
synchronize plugin settings, check service connectivity, and record widget interaction
events.

A CreamySales account is required to use the service. The service is provided by
CreamySales.

The plugin sends the following data to CreamySales:

 * Store connection data, including the CreamySales domain ID and plugin enablement
   status, when settings are saved, when the hourly connection check runs, and when
   an administrator manually tests the connection.
 * The dashboard API key in the `X-Creamy-Key` request header when the plugin communicates
   with the CreamySales dashboard API.
 * The CreamySales domain ID when requesting the site-specific widget script. The
   returned script is stored locally under the WordPress uploads directory for performance
   and integrity control.
 * The public site key and widget interaction data from storefront visitors when
   the frontend collector sends widget analytics and events to CreamySales.
 * Limited recent WooCommerce purchase display data, including the customer’s first
   initial or configured complete first name, optional city and country, product
   name, purchase time, and product thumbnail URL, may be returned by the site’s
   own REST endpoint to display social proof widgets to storefront visitors.
 * Aggregate product and variation sales quantities for the configured period may
   be returned by the site’s public sold-count REST endpoint. This response does
   not contain customer information.
 * When the plugin is enabled and an order containing an applied LMS CreamySales
   coupon reaches processing or completed status, the plugin sends the CreamySales
   domain ID and dashboard authentication key, event type, order ID and total value,
   coupon code, product and variation IDs, actual discounted line-item price, and
   coupon discount type and value. Customer names, email addresses, postal addresses,
   and other personal data are not included.

CreamySales uses this data to provide widget display, widget configuration, service
connectivity checks, usage limits, analytics, and dashboard synchronization.

Terms of Service: https://creamysales.com/terms

Privacy Policy: https://creamysales.com/privacy-policy

## Screenshots

[⌊CreamySales connection settings.⌉⌊CreamySales connection settings.⌉[

CreamySales connection settings.

[⌊Example CreamySales widget on a WooCommerce storefront.⌉⌊Example CreamySales widget
on a WooCommerce storefront.⌉[

Example CreamySales widget on a WooCommerce storefront.

[⌊CreamySales dashboard widget configuration.⌉⌊CreamySales dashboard widget configuration
.⌉[

CreamySales dashboard widget configuration.

[[

[[

[[

[[

[[

## Installation

 1. Upload the plugin files to `/wp-content/plugins/creamysales/`, or install the plugin
    through the WordPress Plugins screen.
 2. Activate the plugin in WordPress.
 3. Go to **Settings -> CreamySales**.
 4. Connect your store to your CreamySales account.
 5. Configure your widgets from the CreamySales dashboard.

## FAQ

### Is CreamySales free?

CreamySales offers a free plan for small stores. Paid plans are available for stores
that need higher limits or additional features.

### Does the plugin work without a CreamySales account?

No. The plugin connects your WooCommerce store to the CreamySales platform, so an
account is required.

### Does the plugin modify my theme?

No. The widgets are loaded separately and do not require changes to your theme files.

### Does it support Hebrew?

Yes. CreamySales supports Hebrew and RTL layouts, as well as English and LTR layouts.

### Where do I configure the widgets?

Widgets are configured from the CreamySales dashboard.

### Does the plugin slow down my store?

The CreamySales script loads asynchronously and is designed to minimize frontend
performance impact.

### Can developers customize the recent purchase display data?

Yes. The plugin provides filters for the public herd endpoint so site-specific order
data can be adapted without editing plugin files.

Available filters:

 * `creamysales_herd_order_city` filters the displayed city. It receives the sanitized
   city, the WooCommerce order, and the raw city value.
 * `creamysales_herd_order_country` filters the displayed country. It receives the
   sanitized country, the WooCommerce order, the country code, and the raw country
   value.
 * `creamysales_herd_purchase_item` filters the full purchase display item before
   the final public response is sanitized.

For example, if a site stores a city post ID in the WooCommerce city field:

    ```
    add_filter( 'creamysales_herd_order_city', function ( $city, $order, $raw_city ) {
        if ( is_numeric( $raw_city ) ) {
            $title = get_the_title( (int) $raw_city );
            return $title ? $title : $city;
        }

        return $city;
    }, 10, 3 );
    ```

The final herd endpoint response is still limited to the public fields `name`, `
city`, `country`, `time`, `p_name`, and `p_img`. The CreamySales dashboard can configure
whether `name` contains the complete billing first name and whether city and country
are shown.

### How can developers customize semantic popup placement?

CreamySales supports product title and main-image placement plus Elementor Pro product
widget anchors for price, rating, stock, short description, add to cart, meta, content,
tabs, additional information, upsells, related products, and breadcrumbs. Manual
integrations can use:

    ```
    [creamy_anchor name="product.title.after"]


    creamy_render_anchor( 'product.title.after' );
    ```

Custom themes can place `<span data-creamy-anchor="product.title.after"></span>`
immediately after their title and add `data-creamy-anchor-target="product.main_image"`
to the stable gallery wrapper containing the current image. This markup defines 
placement while the CreamySales renderer supplies popup HTML through the namespaced`
window.CreamySalesAnchors` API. Manual theme markup has the highest resolver priority.
Complete examples and debugging instructions are in `docs/semantic-anchors.md`.

Small custom-theme example:

    ```
    <h1 class="custom-product-title">Product title</h1>
    <span data-creamy-anchor="product.title.after"></span>

    <div class="custom-product-gallery" data-creamy-anchor-target="product.main_image">
        <img src="product.jpg" alt="Product name">
    </div>
    ```

Use the stable gallery wrapper as the `product.main_image` target rather than adding
the target attribute directly to the image. CreamySales will resolve the currently
visible image inside that wrapper and keep image overlays synchronized when the 
gallery or selected variation changes.

### Where can I get support?

Visit https://creamysales.com or contact support@creamysales.com.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“CreamySales – Conversion Widgets for WooCommerce” is open source software. The 
following people have contributed to this plugin.

Contributors

 *   [ creamysales ](https://profiles.wordpress.org/creamyorg/)
 *   [ eddr ](https://profiles.wordpress.org/eddr/)

[Translate “CreamySales – Conversion Widgets for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/creamysales)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/creamysales/), check
out the [SVN repository](https://plugins.svn.wordpress.org/creamysales/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/creamysales/) by
[RSS](https://plugins.trac.wordpress.org/log/creamysales/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.46

 * Document and narrowly suppress false-positive sold-count SQL warnings.
 * Fix the remaining settings update assignment alignment warning.

#### 1.45

 * Inline prepared sold-count query templates for Plugin Check data-flow compatibility.

#### 1.44

 * Resolve Plugin Check warnings for the bootstrap variable and prepared sold-count
   queries.

#### 1.43

 * Add a custom-theme semantic anchor markup example to the FAQ.

#### 1.42

 * Add explicit custom-theme HTML integration documentation for semantic popup anchors.
 * Make REST option updates atomic and run connection checks only after settings
   are persisted.
 * Replace dated recurring aggregation jobs and per-request script cache busting
   with stable schedules and content versions.
 * Reduce repeated schema, order diagnostic, and current-day aggregation work.
 * Consolidate CreamySales HTTP transport and remove unreachable compatibility, 
   queue, authentication, and metadata code.

#### 1.41

 * Detect Elementor Pro during its early WordPress bootstrap so dedicated product
   title and product widget anchors activate reliably.

#### 1.40

 * Add isolated Elementor Pro WooCommerce semantic-anchor integration for product
   title, image, price, rating, stock, short description, add to cart, meta, content,
   tabs, additional information, upsells, related products, and breadcrumbs.
 * Prefer manual targets, then Elementor single-template widgets, while rejecting
   hidden, loop, popup, and ambiguous Elementor candidates.
 * Reuse the shared flow and image-overlay runtime without Elementor-specific observers
   or listeners.

#### 1.39

 * Reuse shared page-class definitions and one body-class snapshot for WooCommerce
   page detection.
 * Reuse the plugin URL constant for bundled frontend asset URLs.

#### 1.38

 * Add native product ID detection to the WooCommerce page-context JavaScript API.

#### 1.37

 * Add a lightweight JavaScript API for detecting native WooCommerce product, shop,
   category, cart, and checkout pages.

#### 1.36

 * Accept sold-count product IDs as one comma-separated query parameter.
 * Reject array-style and malformed sold-count product ID parameters.

#### 1.35

 * Default main-image popup width to auto.
 * Place default top-edge popups on the left in LTR layouts and the right in RTL
   layouts.

#### 1.34

 * Standardize plugin JavaScript naming, parameters, variables, spacing, and function
   documentation.
 * Add snake_case semantic-anchor and development test APIs while retaining deprecated
   renderer compatibility aliases.
 * Document all public JavaScript functions and the cached product sold-count endpoint.

#### 1.33

 * Add public creation, replacement, and removal APIs for renderer-provided popup
   HTML.
 * Mount main-image popups as absolute gallery children without page-scroll positioning.
 * Retain the fixed body portal and throttled scroll handling only as a compatibility
   fallback.
 * Make image-popup text selectable and popup controls clickable by default while
   retaining a low z-index.

#### 1.32

 * Default main-image popups to a passive full-width top bar below standard gallery
   controls.
 * Add configurable image-popup width, position, and interactivity.
 * Reduce scrolling cost with geometry-only, animation-frame overlay updates and
   focused DOM mutation handling.

#### 1.31

 * Recognize the main product `core/post-title` block as a semantic title anchor
   while rejecting product-loop titles.
 * Make administrator-authorized frontend anchor diagnostics visibly announce themselves
   in the browser console.

#### 1.30

 * Add extensible semantic popup anchors for content after the product title and
   overlays on the active main product image.
 * Integrate automatic resolution with manual markup, WooCommerce Blocks, classic
   dynamic-priority hooks, and conservative DOM fallbacks.
 * Add synchronized external overlays, provider-isolated diagnostics, extension 
   APIs, tests, and developer documentation.

#### 1.29

 * Normalize legacy dashboard option field names to the renamed herd and sold-count
   database fields.

#### 1.28

 * Rename the herd options to `show_full_first_name` and `location`.
 * Limit the expanded herd customer name to the complete billing first name.
 * Rename the sold-count `count_period` setting to `period`.

#### 1.27

 * Store nested herd name/location and sold-count period settings received through
   the authenticated options route.
 * Add a cached public sold-count endpoint for bounded product and variation ID 
   sets.
 * Support rolling week, 30-day, 60-day, yearly, and all-time sales periods.

#### 1.26

 * Remove the local Conversion Events option.
 * Send eligible conversion events whenever the CreamySales plugin is enabled.

#### 1.25

 * Check required PHP files before loading plugin modules.
 * Skip initialization and show an administrator notice when required WooCommerce
   APIs are unavailable.
 * Restrict CreamySales admin styles to the plugin settings page.

#### 1.24

 * Restore files omitted from the previous release package.

#### 1.23

 * Update LMS conversion events to the current CreamySales payload schema.
 * Include order value, coupon code, normalized discount type, and actual discounted
   line-item pricing.
 * Redact the dashboard key from administrator conversion-test diagnostics.

#### 1.22

 * Add an administrator conversion-test tab with HPOS-compatible WooCommerce order
   autocomplete.
 * Allow immediate LMS conversion tests without changing automatic delivery metadata
   or retries.
 * Show the sanitized request payload and CreamySales response for test diagnostics.

#### 1.21

 * Add privacy-minimized LMS conversion events for eligible processing and completed
   WooCommerce orders.
 * Add asynchronous delivery, retries, idempotency, and successful-delivery order
   metadata.
 * Add an administrator setting to disable conversion events.

#### 1.20.1

 * Complete AJAX settings saves without returning HTTP 502 when remote enablement
   synchronization fails.
 * Disable CreamySales locally when a remote disable request fails, while retaining
   the error for retry and diagnostics.

#### 1.20

 * Synchronize plugin enable and disable changes with the CreamySales service before
   updating local state.
 * Preserve the previous local status when the service rejects a request or returns
   a technical error.
 * Show CreamySales plan-limit and enablement errors in the AJAX settings response.

#### 1.19.2

 * Highlight incompatible resolved order city and country values in the Plugin Check
   tab.
 * Link order-data warnings to the CreamySales WordPress.org FAQ for custom herd
   endpoint mapping.

#### 1.19.1

 * Add an admin warning when the latest order city or country values do not look
   compatible with the herd endpoint.

#### 1.19

 * Add a WooCommerce order data compatibility check for herd endpoint city and country
   values.
 * Restore CreamySales service-health notices on the WooCommerce submenu settings
   screen.

#### 1.18.1

 * Update WooCommerce tested compatibility to 10.8.1.

#### 1.18

 * Move the CreamySales admin page under WooCommerce and add an external-link icon
   to the plugin support URL.

#### 1.17

 * Add plugin support links to the CreamySales admin settings page.

#### 1.16

 * Preserve custom textual herd endpoint country values while avoiding numeric country
   IDs by default.

#### 1.15

 * Add herd endpoint filters for site-specific city, country, and purchase display
   data.

#### 1.14

 * Normalize herd endpoint country values through WooCommerce country codes.

#### 1.10

 * Initial public release.

## Meta

 *  Version **1.46**
 *  Last updated **2 weeks ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.3 or higher **
 *  Tested up to **7.0.4**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/creamysales/)
 * Tags
 * [conversion](https://srd.wordpress.org/plugins/tags/conversion/)[ecommerce](https://srd.wordpress.org/plugins/tags/ecommerce/)
   [social proof](https://srd.wordpress.org/plugins/tags/social-proof/)[upsell](https://srd.wordpress.org/plugins/tags/upsell/)
   [woocommerce](https://srd.wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://srd.wordpress.org/plugins/creamysales/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/creamysales/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/creamysales/reviews/)

## Contributors

 *   [ creamysales ](https://profiles.wordpress.org/creamyorg/)
 *   [ eddr ](https://profiles.wordpress.org/eddr/)

## Support

Issues resolved in last two months:

     2 out of 2

 [View support forum](https://wordpress.org/support/plugin/creamysales/)