Search Over 30,000 FREE Plugins from the Official WordPress Plugin Directory Repository

iThemes Exchange: Simple WP Ecommerce

Easily sell your digital and physical products with iThemes Exchange, simple ecommerce for WordPress

Sell Your Stuff Online in Under 5 Minutes

iThemes Exchange makes it easy to get your store up and running quickly by making the process simple. Just install, activate, choose your payment methods and start adding your products.

A Simple Interface

Your products are not blog posts. So we created an experience that makes creating products simpler and more intuitive.

Simple but Extendable

An online store can get pretty complicated. And not everyone needs the same things. With iThemes Exchange, many features are split into add-ons. You only see what your store needs, making it simple to use and manage.

Get Paid with PayPal or Stripe

We designed Exchange's purchase experience with Stripe as the ideal payment gateway. Stripe is awesome. If you've used it, you know.

PayPal Standard (Basic or Secure) is supported out of the box as an Exchange core add-on . But we want you to have the easiest store experience with Exchange, so we're now offering the Stripe add-on for free.

Customer Management Made Easy

We don't create our own database tables for customers. We use the same built-in WordPress user system and add customer data to its own page, making it simple to edit their transactions, view available downloads and make customer notes for your reference.

Made by iThemes

We've been building and supporting WordPress tools since 2008. With our full range of WordPress themes, plugins and training, ecommerce is the next step in providing you with everything you need to build the WordPress web.

We hope you'll try Exchange and love it. But we also want to hear what we can do to make it work best for your business. Send us your ideas and feedback:

More Features

For more information on Exchange features and available add-ons, visit:


Add only the features you need. Exchange Add-ons include support for several payment gateways, coupons, digital downloads, sales reports, multi-item cart, product categories and product tags.

  • Accept PayPal Standard or Offline Payments - Process transactions out-of-the-box with PayPal Basic or PayPal Secure or take payments offline to process cash or check payments.
  • Stripe - Enable the free Stripe Add-on to process payments with Stripe, our recommended payment gateway.
  • Coupons - Generate basic coupons that apply to all products in your store.
  • Multi-item Cart - Allow customers to purchase multiple products with one transaction.
  • Basic Reporting Dashboard Widget - View basic sales statistics from the WordPress admin dashboard.
  • Digital Downloads - Add a product type for distributing digital downloads through iThemes Exchange.
  • Product Categories and Tags - Organize your store by grouping with category and tag taxonomies.
  • Guest Checkout - Enabling this add-on gives customers the ability to checkout as a guest, without registering.
  • Billing Address - Collect a billing address at checkout.
  • Customer Pricing - Let customers choose their price from a list of price options you create or let them enter their own price.
  • Simple Shipping - Adds flat rate and free shipping for your physical products.
  • Simple Taxes - This gives the admin ability to apply a default tax rate to all sales.
  • Membership - Create as many memberships as you want with specific rules for what content your members can access. You can also use the Memberships add-on to delay (or drip) content access like in a daily, weekly or monthly course.

Advanced Product Options

iThemes Exchange allows you to create products quickly and easily. But sometimes you need more than just the basics, so Advanced Product Options help by offering additional ways to manage products.

  • Download Expirations - Apply settings for download links to expire or to limit access to download links/file downloads.
  • Product Availability - Apply product availability start and end dates.
  • Product Inventory - Set and track product inventories.
  • Hidden Source Files for Digital Product Downloads - Use source file URLs from the WordPress media library or from Dropbox, Amazon, etc. and exchange automatically hides this source URL for digital product downloads.
  • LoopBuddy compatibly - Use LoopBuddy queries and layouts for individual product.
  • Builder compatibility - Apply iThemes Builder layouts for individual products.

Payment and Customer Management

View transaction details and manage customers from within Exchange.

  • Payment/Transaction Details - See order number, payment total, status, customer, payment method and date of payment for individual transactions.
  • Customer Registration - Use Exchange Registration or WordPress Registration settings.
  • Customer Data - Manage customers by viewing products purchased, transactions or add notes to customer info.
  • Issue Refunds or Resend Confirmation Emails - Easily issue refunds or resend confirmation emails for individual customers.

Customizable Emails

Use the WordPress WSIWYG editor to make custom email templates for Admin Sales Notification emails and Customer Receipt Emails. HTML is accepted.

  • Admin Sales Notification Emails - Customize the email sent to admins for sales notifications.
  • Customer Receipt Emails - Customize the receipt emails customers receive after making a purchase.
  • Email Shortcode functions - Use built-in shortcode functions in emails for customer name, full name, username, download list, order table, purchase date, total, payment id, receipt id, payment method, site name and receipt links.
Author iThemes
Contributors ithemes, blepoxp, layotte, aaroncampbell, mattdanner
Tags ecommerce
  1. ithemes-exchange screenshot 1

    Quick Setup

  2. ithemes-exchange screenshot 2

    Add New Digital Product

  3. ithemes-exchange screenshot 3

    Add New Physical Product

  4. ithemes-exchange screenshot 4


  5. ithemes-exchange screenshot 5

    Add Coupon

  6. ithemes-exchange screenshot 6

    Customer Detail

  7. ithemes-exchange screenshot 7

    Dashboard Widget

  8. ithemes-exchange screenshot 8


  9. ithemes-exchange screenshot 9

    Email Settings

  10. ithemes-exchange screenshot 10

    Pages Settings

  11. ithemes-exchange screenshot 11


Upload the Exchange plugin to your blog, activate it and enable the Digital Downloads add-on and a transaction method add-on. For more information, visit:


  • Fix: Variable name for superwidget error output


  • Update: Updating lib/classes to v2.4.8


  • Security: Fix serious XSS vulnerability
  • Fix: Issue with fallback SW filter being triggered in incorrect places
  • Fix: Compatibility with BuddyPress
  • Fix: Missing break statements in Theme API.

  • Fix: Issue with the Super Widget not rendering. Improve detection of "loop_start"

  • Fix: Issue with the Super Widget not rendering when 'the_content' is applied before the main content area.


  • Fix: Issue with the Super Widget not rendering correctly
  • Tweak: Add support for sale price to make a product free


  • Fix: PayPal Standard Secure intermittent 502 errors
  • Fix: Don't render the Super Widget in the sidebar if it is already displayed as a shortcode.
  • Tweak: Don't autoload transient transactions
  • Tweak: Update lib/classes


  • Add: it_exchange_convert_country_code() API function
  • Fix: Don't overwrite existing columns on the products list table
  • Fix: ITSEC Recaptcha Integration
  • Fix: Ensure tooltip dialog clears other DOM elements


  • Add: Filter to the max quantity check for Variants
  • Add: BN Code to PayPal Gateways
  • Tweak: Only require shipping address when necessary
  • Fix: Errors with deleted users and transaction activity
  • Fix: Errors with Guest Checkout and transaction activity


  • Fix: Metaboxes on the menus page were being incorrectly hidden.
  • Fix: t_paamayim_nekudotayim on PHP 5.2


  • Tweak: Extract session interface, IT_Exchange_SessionInterface, for managing sessions.
  • Tweak: Better activity messages for renewal payments.
  • Fix: Zero Sum Checkout subscriptions losing access
  • Fix: Offline Payments subscriptions losing access
  • Fix: Stripsllashes after jquery date format is replaced
  • Fix: Move subscription status activity reporting to Recurring Payments
  • Fix: Remove cancel URLs for zero sum checkout and offline payments
  • Fix: Only break-words on code tags in the activity stream
  • Fix: Logic for toggling offline payment subscriptions back to active after a payment has been received
  • Fix: Warning with get_class()


  • Fix: Cart ID should always be present
  • Fix: Coupons not being counted more than once
  • Tweak: Mark Zero Sum Checkout and Offline Payments subscriptions as Active when paid


  • Add activity item whenever a method ID changes
  • Display method ID in transaction details


  • Fix: Ensure line breaks are preserved
  • Fix: Make it possible for add-ons to register custom upgrades
  • Fix: Possible null error with transaction activity
  • Fix: Runaway upgrades
  • Tweak: Better display for upgrade exceptions


  • Tweak: Use shorter date format in the admin
  • Fix: Error for PHP 5.3
  • Fix: Use HTTP/1.1 for PayPal requests


  • Add: IT_Exchange_Product_Factory to allow for custom classes per-product type
  • Add: Support for per-cart and per-product coupon discount types
  • Fix: Allow for wp-author product feature
  • Fix: Ensure upgrade routine progress bar is set to 100% when upgrade completes
  • Fix: Don't get stuck in the cart state if multi-item cart is disabled in the SW shortcode
  • Fix: Don't duplicate the_content functions on the extended-description


  • Fix: Ensure purchase quantity is always at least one


  • Fix: Fatal error on coupons list table for coupons spanning more than one year.


  • Add: Support for non auto-enabling add-ons
  • Fix: Bug preventing PayPal Sandbox from working


  • Add: Transaction Activity Timeline
  • Add: Customer Order Notes core-addon
  • Add: Support for internal order notes
  • Add: iThemes Security Recaptcha Integration
  • Tweak: Improve Child Transaction UI
  • Tweak: Add succeeded as a valid PayPal status for child payments
  • Fix: Changing label in Simple Taxes does not change email receipt
  • Fix: Remove upgrades available nag, when no upgrades available.
  • Fix: Not all download files are carried over when product duplicated
  • Fix: Mitigate possible corrupt session data
  • Fix: Remove metabox drag styles on mobile


  • Fix: Issue with


  • Add: Support for per-customer coupons, per-product category coupons, and excluding products.
  • Add: Track number of coupon uses.
  • Add: Reduce coupon usage count on cancellation
  • Add: Upgrade routine for coupons.
  • Add: Support for Exchange Ghost pages in the Customizer
  • Add: Autocomplete support for purchase dialogs
  • Tweak: Mobile improvements for purchase dialogs
  • Tweak: Allow searching by coupon code
  • Tweak: Improve coupon error messages
  • Tweak: Display sale price in products list table
  • Tweak: Style tweaks
  • Fix: Prevent PayPal from adding multiple transactions during guest checkout
  • Fix: Allow a simple tax rate of 0%
  • Fix: Allow for non-physical products to be excluded from shipping calculations


  • Tweak: PayPal Locking Mechanism Updates
  • Fix: Create transactions for web_accept in PayPal during IPN, if necessary
  • Fix: Adding user nickname/nicename to Profile loop template, required in WP4.4 now
  • Fix: DBSessions, esnure sessiosn IDs are valid MD5 hash
  • Minor: CSS updates


  • Major: Template parts have been updated: super-widget-product, super-widget-cart
  • Add: The SuperWidget can now be embedded using the [it_exchange_sw] shortcode
  • Add: Products can now have a sale price
  • Add: New core-addon Sale Schedule to restrict sale availability
  • Tweak: Make deactivating a plugin from the core-addons page more straightforward
  • Tweak: Replace usages of get_class with instanceof to allow for more robust add-ons
  • Tweak: Remove the downloads hash from the downloads page by default
  • Fix: Adding categories from the edit product page
  • Fix: Update the transaction status property when the status changes
  • Fix: Ensure comment and ping status is closed. WordPress 4.4 compatibility


  • PayPal Quantum-Locking
  • Transient Transaction Code Cleanup
  • General Code Cleanup


  • Fixing typo in Transient Transaction Cleanup
  • Updating lib/classes


  • Fix for PayPal IPN race conditions
  • Fix bug causing shipping method overrise save issues when PHP Suhosin is compiled
  • Changing registration and login page default redirects to account page rather than profile page


  • PHP7 Updates from Timothy Jacobs (Iron Bound Design)
  • Fix for Inventory Bug from Timothy Jacobe (Iron Bound Design)
  • Bug fix for race condition when PayPal IPN comes before PDT


  • Changing init priority for db sessions, to happen before widget_init


  • Fix for registartion and checkout redirect bug


  • Better Output Buffer Cleaning for Plugins/Themes that have created multiple levels of Output Buffer that we need to escape
  • Change how DB sessions initialize


  • Adding another check for product_id in cart products


  • Adding extra checks for product_id and count in product array... in case the cart is corrupted and causes isues


  • End and clean the buffer before attempting to readfile/download...
  • Remove wp_new_user_notification calls, because this is handled by edit_user now


  • Let it_exchange_shipping_address_purchase_requirement_enabled filter enable save to shipping address on billing form
  • Lazy loading the ITE session - Timothy B. Jacobs
  • Admin AJAX session fix - Nikola Nikolov


  • Favor home_url over site_url


  • Don't escape email notification URLs with & because Ĵ breaks in the browser
  • Fix for adding new downloadable files to previous purchases
  • Change how we determine if an addon is core


  • Adding email address to Guest Customer label in transaction table
  • Changing itExchangeSWAjaxURL to use get_site_url() to help with potential SSL conflicts


  • Better serve filenames when downloading w/ query args
  • Adding 301 and 302 as valid response codes for download headers...
  • Updating zoom JS and related functionality
  • Removing action hook to add shipping to order table from the shipping addon and adding it in the shipping class
  • Format the pricing for shipping total in email template
  • Adding hooks to order_table email notification template, added action for coupons, simple shipping, and simple taxes to modify email notification order_table template
  • Adding Instructions after purchase message to email notifications when Offline Payments are processed
  • Added some styling and changed the text a bit to make it clearer what 'No downloads found' means in the context of the downloads page showing 'downlaods' but downlaod
  • Fixed Guest Checkout Coupon Limitation bug
  • Removing 'total' from Cart page... reserved for Checkout page only Adding taxes column to confirmation page
  • Fix for 'Most Used' categories tab not saving, update feature image JS to use .on() instead of .live()


  • Fixing typos
  • Don't lose State focus when Country changes in billing/shipping requirement


  • Updated JS Error to say 'Your photo must have a thumbnail created for it that is larger than 150x150px'
  • Fixing typo with 'site-name' text
  • Updated lib/classes to 2.4.4


  • Fix bug caused by disabled transaction methods on the quick setup wizard


  • Updated lib/classes to 2.4.3 - Fixed a potential Remote Code Execution (RCE) security hole caused by unsanitized inputs for resizing certain kinds of images and generating zip files. Exploiting this flaw would require third-party code or a privileged WordPress user. Thanks to Ryan Satterfield ( for helping to identify this issue.
  • Remove quanity input box if multi-item product is not allowed
  • Adding secure/httponly flags to setcookie, taken from original DB Sessions on github
  • Adding deactivation warning to paypal addons
  • Fix illegal offset error in cart API when admin deletes product that a customer has in the cart


  • Adding 'email' option to it_exchange_email email notification shortcode


  • Add JS hook to SW after state is updated
  • Fixes for Recurring Payments bugs
  • Change how I handle my globals... also remove my wp_mail debugs
  • Fixed bug causing broken 'View store' link in saved product notification
  • Fix JS on Shipping Settings Page
  • Modify function converting format of default price coming out of DB
  • Fix Flat Rate Shipping for international setups: Backwards Compat to ensure data coming out of DB is always
  • Add key'd filter to it_exchange_get_option
  • Fixed but that prevented it_exchange_load_addon from ever working


  • Multiple updates involving add_query_arg and remove_query_arg to esc_url()
  • Introduce it_exchange_get_admin_menu_capability( $context, $capability )
  • Adding filter to shipping address and method requirement, for that rare case when the shipping requirement should be enabled, but isn't


  • Pass shipping to PayPal when available


  • Added filter to shipping address and method requirement
  • Added cart object verification to PayPal processing


  • Fix for DB Session bloat bug


  • Deprecate the admin_menu_capability property in IT_Exchange_Admin and replace with a method so that themes can filter it.
  • If no username or password is provided on submit from exchange Login page, don't redirect to wp-login.php
  • Fix bug in purchase-requirement template part's filter name created by first param. Maintain back_compat.
  • Adding IPN Verification to PayPal non-Secure option


  • Strip any non-separator/non-digit character out of price before converting to database number
  • Fix for converting to DB number for numbers with unexpected number of decimals places
  • If unauthenticated site visitor goes directly to account, profile, or purchases, redirect them to login instead of registration
  • Fix bug not displaying quanity option in superwidget if coupons isn't activated
  • Fix bug causing all categories in product dropdown widget to have 'selected' attribute
  • Update custom dropdown_category function to reflect WP Core changeset
  • Sort addons by display name rather than addon-slug
  • Preserve logged in Guest when updating shipping method on Cart page
  • Add ability for store owners to change Guest Checkout heading text and button labels


  • Updating Duplicate Products for new Invoices update
  • Removing unnecessary esc_attr() calls from text that would have valid HTML
  • Disable Offline Payment's Purchase button when clicked
  • Adding a filter to the Products Post Type hierarchical setting
  • Modified it_exchange_is_page() to use 'name' query var instead of product slug


  • Auto-Height for admin advanced area text fields
  • Spell reset with two e's
  • Allow 3rd parties to tweak the state of the SW
  • Change unlimited inventory message
  • Don't delete transactions when customer's WP user is deleted


  • Fix bug causing it_exchange_is_page( ) to always return true when called from SW and != 'product'
  • Fix bug preventing query args from loading correct SW state. Also, prevent cart state on product page if no items are in cart
  • Enable translation mo file to be overridden in wp-content/languages/plugins/it-exchange

  • Fixed function reference in PayPal Standard (basic).


  • Fixed function reference in PayPal Standard (basic).
  • Verify quantity functionality in one more place to prevent bug of adding multiples of an item when multiples shouldn't be allowed.
  • Restricted Super-Widget JS calls to only the Super-Widget HTML.


  • Sort the advanced metaboxes alphabeticallyi. props Timothy Jacobs
  • Adding post vars to actions in print_transaction_details_metabox()


  • Fixed feature to always populate current product in GLOBAL. props Timothy Jacobs
  • If cart is not available, use site URL for cancel_return in PayPal add-ons
  • Upating PayPal add-ons to work with latest Recurring Payments options


  • Don't pre-check box to mailchimp subscription in Exchange Startup Wizard
  • Fix for DB Session Cleanup
  • Add a filter to the individual product description when generated for the cart description
  • Add product-[ID] and product-[product-type] class names to store product li elementes by default. Make filterable as well.


  • Fix bug preventing users with '&' in their username from logging in via SW. props Timothy Jacobs
  • Remember the shipping address when errors are present on SW form. props Timothy Jacobs
  • Remember the billing address when errors are present on SW form. props Timothy Jacobs
  • Remember the registration fields when errors are present on SW form. props Timothy Jacobs
  • Fixed bug that tries to display disabled Exchange profile pages on the user's profile page. props Timothy Jacobs
  • Fix bug causing menu item titles to not display when user_is_logged_in and Exchagne login/logout pages are set to 'disabled' in Settings
  • Properly escape in values in the event that poorly-formatted option names were previously inserted into the options table
  • Fixed improper order of args in call to _x()
  • Add new status to param of actions triggered when a transaction status is changed.
  • Fixed bug that was preventing default WP welcome email from being sent when new users register
  • Extend inline-docs a bit for saving custom billing address fields

  • Fix missing font-icons


  • Adding IP address of customer to Transaction meta and on the Transaction page
  • Define settings var in IT_Theme_API_Store::products before count since new filter added
  • Adding it_exchange_store_get_products_args to count() call in IT_Theme_API_Store::products (to prevent memory leaks when count() doesn't match the next call)
  • Adding filter/functionality to disable multiple shipping methods, even when multiple methods are available


  • Fixed instances where webhooks wouldn't work if ['http_scheme'] wasn't set
  • Updated es_MX mo file
  • Updated the es_MX po file
  • Fixed bad language string in template


  • Fixed bad translation string in order details template part
  • Added filters for country and state alternatives in text2select API
  • Added loading gif during SW AJAX calls to Register / Login
  • Fixed bug causing Stripe webhooks not to reach Exchange in some setups
  • Fixed notice when no cart object is returned in zero sum checkout


  • Fixing call to weight meta for product


  • Fixed typo in filter in lib/templates/content-store.php
  • Fix bug caused when the shipping methods available to an invidial product is less than that available to the whole cart
  • Redux it_exchange_get_cart_products_count() to include option 'feature' arg, to only get counts for products with a certain feature
  • Updating tooltip for measurement format in shipping
  • Check for a processed transaction before rejecting the transaction for having an empty cart -- a partial fix for a bug in PayPal when clicking the 'click here' link after th
  • Just some code formatting updates


  • Clear shipping method on cart product update
  • Fixed it_exchange_get_cart_weight to account for product count


  • Added filter to transaction object generator to allow cart taxes to be added
  • Broke out weight and dimensions shipping features
  • Revamp of it_exchange_process_webhooks to be more secure
  • Replaced __() with _x() to provide translation context to '×' in multiple files
  • Fixed bad strings in Currency data-set
  • ChangeMod on translation files
  • Add Dutch Translations for Exchange
  • Add lang directory and es_MX po/mo files
  • Add actions for applying/removing basic coupons to/from cart
  • Adding new filters and setting new global for add-ons
  • Adding some filters for Table Rate Shipping
  • Add Mexican states to states.php dataset. Props: Darryl Clark
  • Fixed bug causing JS error when Image Gallery Settings turn zoom off


  • Updated select-to-autocomplete JS from 1.0.5 to 1.0.9
  • Replaced update_plugins with manage_options to fix missing coupons and taxonomy menu items from WPMS installs.
  • Fixed bug breaking the ability to save billing as shipping when using Guest Checkout
  • Fixed bug in it_exchange_db_delete_all_sessions with miscalculated substring
  • Added title template part for content-product elements


  • Added function that logs guest user out once they hit the confirmation page.
  • Add DOING_AJAX checks to is_admin conditional in guest checkout
  • Check for non-empty product ID and product arrays before adding/updating session data
  • Add basename param to registered addons if it was added as a param in it_exchange_register_addon()
  • Added $params var to the filter for add_details in it_exchange_register_addon();
  • Change $_REQUEST to $_POST in it_exchange_register_user
  • Multiple modifications to Coupons API to make it more extendable. props Timothy Jacobs
  • Added multiple js hooks to to superwidget js
  • Add nonce to exchange registration template parts and processing function
  • Add nonce to edit profile form
  • Change customer var from private to protected so that class can be extended
  • Change var holding the last version of exchange where template parts were updated to trigger notice in admin.
  • Moved css for Add-ons menu styling to global admin stylesheet from sheet for exchange pages only.
  • Changed Swiss Frank symbol from 'Fr.' to 'CHF'
  • Core changes to support a unified checkout page in the future:
    • Moved conditional logic to determine if purchase requirement template parts are included out of template part files.
    • Added filters to hide the purchase requirements notification
    • Added new function to unregister purchase requirements
  • Changed 'Premuim' to 'Premium' and 'physcial' to 'physical' on Help page
  • Added shipping-address as a valid super-widget state when simple shipping is enabled
  • Added filter to surpress add-to-cart buttons
  • Fixed hook typos in SW template parts
  • Fixed JS error in lib/assets/js/edit-product.js when itExchange was not defined
  • Sort the Default Currency options by alpha
  • Make options in Settings dropdown for symbol position use the selected symbol


  • Added support for ContactBuddy


  • Fixed bug causing Template Updates nag to appear on every upgrade
  • Updated add/edit product styles for 4.0
  • Changed color of addon-link in admin menu
  • Added DocBlock modifications from Timothy


  • Fix for memory leak in sessions


  • Fixed non-object PHP warnings
  • Changed subtitle in readme to 'iThemes Exchange: Simple WP Ecommerce'
  • Adding new filter and global to IT_Exchange_Shipping, using for Table Rate development
  • Execute code on next upgrade to clear all bad data from cached user carts
  • Fix bug where we are checking for empty on a JSON string rather than on a PHP decoded version


  • Fixed bug where we were casting rather than checking for a conditional.
  • Allow product-type add-ons to modify admin menu_title for clarity
  • Fixing Guest Checkouts for addons using transient transactions.


  • Added support for IPN only transactions, fixes bug with users paying without PayPal accounts via PayPal and not clicking to return to the site.
  • Added for coupons as add-on
  • Added billing_address as a shortcode option to emails
  • Added shipping_address as a shortcode option to emails
  • Added Builder views for Product Categories and Product Tags when add-ons are enabled.
  • Added 'View Store' link after 'View Product' link on product creation / update.
  • Fixed auto-return bug, caused by work I'm doing to get the IPN to create transactions if they don't exists
  • Fixed typo in PayPal standard payment Url
  • Removed 'Edit' from bulk actions option list for Payments
  • Fixed bug that limited query for downlodable files to retrieving only 5.
  • Sort product downloads by ID
  • Fixed typo in PayPal standard payment URL
  • Changed 'activate_plugins' to 'manage_options' in admin menu permision params so that Exchange menu shows up in WPMS site with plugins management turned off for site admins
  • Added cart_id to transaction object cart details
  • Added 'it_exchange_before_empty_shopping_cart' action to it_exchange_empty_shopping_cart()
  • Added requirement for WP 3.7 in readme.txt
  • Added a cart id to cart data that can be used to identify a single shopping event.
  • Fixed error causing it_exchange_get_session_data() to return no data instead of all the data
  • Added options param to read function in cart API.
  • Added ability to request information from cached user cart rather than current session via cart API
  • Fixed product not available theme API text
  • Added Sync Integration Notice to Admin
  • Fixed bug in offline payments cancel URL function
  • Wrap get_admin_url in wp_login_url for sync integration


  • Empty arrays passed through json_encode result in a string that causes json_decode to output an array, but an object is expected by get_object_vars, which outputs a warning on some PHP installs. Checking for empty arrays in session for Cart Sync.
  • Register chartjs in exchange for other addons... but don't enqueue it.


  • Decode HTML entities when converting prices to database numbers, otherwise the British Pound £ adds 163 to the front of a price!
  • Add strip_tags to cart description before appending to paypal standard payment URL
  • Allow shortcodes in product description with the_content filter
  • Run product description through wp_strip_all_tags when max-length is set


  • Fixed error preventing auto-login after user reg from SW
  • Fixed PHP Warning caused by attempt to loop through non-array.\n Fixed PHP Warning caused by undefined param
  • Add JS hook to super-widget.js when cart is cleared
  • Register correct query arg for confirmation hash when used as sub wp page
  • Fixed bug that caused all Menu items to display 'Log Out' if pretty permalinks were not enabled
  • Modifed rewrite rule for confirmation page to work with child pages.
  • Set flag to flush rewrites if Confirmation page is of WP type and that WP page is updated (in the event that post_parent was updated).
  • Fixed PHP warning when submiting billing address on checkout screen
  • Changed 'Recent Payments' heading to 'Recent Transactions' in dashboard widget.
  • Fixed Bug in transaction total for dashboard widget
  • Added ability to manually change paypal standard basic payment status
  • Added ability to manually change paypal standard secure payment status
  • Sync integration, adding the it-exchange-get-overview verb to handle the dashboard widget
  • Added ability to limit coupons frequency per customer
  • Fixed bug preventing discount when product ID remains set for coupon but checkbox to limit by product was unchecked"
  • Fixed notice when ['wp_query']->queried_object is not an object


  • Fixed PHP error in older versions of PHP


  • Added a bunch of filters for EUVAT modifications
  • Modified how shipping/billing addresses are handled for 'required' state fields when the country doesn't have any states (known by Exchange)
  • Updated description for multi-item cart core add-on
  • Styling updates for confirmation page table
  • Adding an action after customers cart is cached.
  • Add styling support for nested rows in it-exchange-table
  • Sync user carts across browsers and devices: - Caches state of cart anytime it has data added, updated, deleted - Logs session ID to list of active carts for user anytime they log-in - Removes session
  • Sync user sessions across browsers if logged-in
  • i18n strings in purchase-requirements billing and shipping templates
  • Modifications to some filters
  • Fix bug in tooltip positioning
  • Whitespace in readme and history text files
  • Update tested up to
  • Fix readme
  • Add link to changelog in changelog section of the readme
  • Adding the Changelog link to the plugin meta links
  • Setup menu items filter to compare path of login/logout URLS, not the full URLs, in case of https/http conflict


  • Wrapped most instances of wp_redirect() inside it_exchange_redirect() to standardize filters
  • Fixed same border bug in confirmation table
  • Fixed bug where border would break in checkout table when amount is more than one line
  • Don't clear shipping method when card product (quantity) is updated
  • Changed 'Categories' to 'Exchange Categories' and 'Tags' to 'Exchange Tags' when viewing the Nav Menu page in admin.
  • Introduce setting to enable Visual Editor on Product Description Field
  • Responsive love for customer data -> transactions
  • Fixed line-height for it-exchange-remove-item so the x is in the vertical center
  • Add product quantity to Payment Details


  • Fixed bug preventing nav menu from showing up on Product Category and Product Tag archive pages
  • Added Continue Shopping button to cart with setting to deactivate in Multi-Item Cart settings
  • Add pro-pack block back to addons screen, make it collapsible
  • Delete duplicate _it_exchange_transaction_id meta_keys from postmeta and usermeta tables. Runs only if previous version is less than 1.8.1.
  • Fixed but causing multiple it_exchange_add_transaction_success actions to fire with each transaction.
  • Do not redirect to the wizard when Exchange is activated if its a network activate


  • Zeroed out padding by default on super widget notice messages
  • Add tooltip script to add-product page.
  • Change jQuery 'on' event to work with dynamicly created nodes in tooltip script
  • Introduced multiple core changes to support Variants add-on
  • Made it possible to enable tabbed interface for image gallery.
  • Fixed save/preview/publish buttons breaking at smaller screen widths
  • Removed set height on image gallery thumbnails to fix weirdness on smaller screens
  • Fixed the annoying 'Are you sure you want to reload' message on Add/Edit product page
  • Updated tax id link on general settings page
  • Cannot have empty string max attributes, fix for cart product page
  • Added a filter to super widget on missing product IDs
  • Made tag maps for Theme API objects extendable.
  • Added some tracing in HTML comments for template_part loops/elements if WP_DEBUG is defined as true
  • Fixed bug with metabox_title in abstract product features class - 2014-04-18 - Glenn Ansley, Lew Ayotte, Ty Carlson, Elise Alley
  • Adding missing image not included with last commit


  • Add pro-pack info to setup wizard
  • Add 'At a Glance' for products
  • Introduced abstract class for product featuress and implemented in inventory


  • Fixed issue with tracking membership cancelationg for PayPal Standard (Secure)
  • Verify billing address saved before outputting that it saved
  • Add styles to .it-exchange-visual-cc to help it look more like a card
  • Fix subtotal mis-alignment in content-cart elements and correct hook names in same template
  • Fix for Wizard opening two tabs when clicking link for Membership addon and Stripe addon


  • Added ability to get true product count from it_exchange_get_cart_products_count()
  • Added fix for WP-Engine login requirements
  • Remove image thumbnail div from products
  • Remove extra space from bottom of advanced tabs on add/edit product screen


  • Fixed issue with admin menu icons not functioning properly on sites that have an ABSPATH or WP_CONTENT_DIR of "/".


  • Fix registration call for Cart and Checkout pages
  • Fixed for Pages tab not showing Page Types set to WordPress or Disabled


  • Removed extraneous 'Product' labels
  • Added Text Domain to plugin Header block
  • Added Order By product feature to Product's Advanced options and General Settings
  • Fixed typo in Purchase Messages has_feature hook


  • Fixed issue with admin menu icons not loading on sites set to use SSL while accessed via a non-SSL URL.


  • Fixed typos in Cancel/Login Super Widget registration elements
  • Fixed get_pages globals to work properly with Membership pages (and other add-ons)
  • Fixed bug that caused slow product saves
  • Setting email notifications class variables to public for developer add-ons
  • Only init core shipping features if we have the shipping addon enabled


  • Cache Casper Pages in GLOBALS to reduce load
  • Create dummy post if none exist
  • Replaced a join() with implode()
  • Changed login redirect form to go to account page as it should
  • Added some text to clarify the Account Page tooltip
  • Removed some unused code from offline payments addon
  • removed some uneeded code from admin user transactions view
  • Changed how the view, refund, and transaction URLs are built on the admin user transaction view
  • Adding a couple of filters to modify paypal button request and query request


  • Added functionality to enable upgrades and downgrades with Membership add-on
  • Blocking attachment pages for Exchange Downloads addons
  • Break transient cache when a transaction is made
  • Cache basic reporting get_transactions in transient
  • Fixed type=url styling
  • Remove 'is-featured' class from featured images being demoted on drop.
  • Add 'is-featured' class to promoted featured image on drop
  • Add min-height to image gallery thumbnails on add-edit product screens
  • Product Gallery Modifications: - Generate unique IDs for list items instead of using image ID (allows image to be in list more than once) - When editing existing images, make clicked image already selected in Media Gallery when it opens. - When opening Media Gallery to edit an existing image, provide a way to actually save your changes.
  • Fixed bad currency labels
  • Change typo from 'Are you should' to 'Are you sure'
  • Fixed error where resending email on payment status change for guest checkout didn't add name to email template
  • Change the way checkbox and radio inputs are styled for the normal-sortables.
  • Throw vars from parse_str into an array
  • Added small top margin to transaction methods on the checkout page.
  • Fixing the dice on the coupon add/edit screen. See:


  • Edited ithemes shared resource


  • Adding an JS hook API for exchange. Based on
  • Fixed products loop template action copy/paste error -- Thanks Ronald!
  • Show all products in coupon dropdown
  • Added a max-length option to the product description.
  • Added some style mods for the colorbox popup.


  • Bug Fix: Prior versions would fix non-https URL's for local content when the site was accessed via SSL so that the URL would become an https URL; however, it would not reverse the process and change https URL's to http when accessed without SSL. This caused problems on sites that use self-signed certificates and would sometimes have local content URL's that referred to the https location. This update makes the https URL's convert to http when the site is accessed via SSL.


  • Added new action to protected pages method
  • Fixed confirmation page bug caused when setting confirmation page as a WP page
  • Fix bug where login link isn't switching to 'Log out' after login occurs
  • Fix for bug causing Account variable to not be set when using WordPress pages for protected areas
  • Fixed bug causing it_exchange_get_products to return empty when searching by product_type when only one product type is enabled
  • Fix for placeholder/value when adding new products
  • Added icon fonts as a registered stylesheet.


  • Apply number_format to it_exchange_convert_from_database_number to get properly formatted prices that have decimals ending in 0 (which get trimmed)
  • Edit Product page now remembers which advanced option you last selected
  • Give rounding for coupons a higher precision
  • Don't use theme API in lowerlevel product availability API
  • Temp fix for vidembed plugin conflict.


  • Disabled AJAX caching to deal with a bug in IE's aggressive AJAX caching
  • Add filter to guest checkout to replace email address
  • Don't print 'Available Downlowads' twice in confirmation email.
  • Don't assume we have a WP User in email notification shortcodes


  • Fixed bug that broke 3rd party calls to new WP_Query on product pages
  • Added filter to disable the Buy Now button
  • Fixed Product Type search meta key
  • Fix for Screen Options not saving Products #
  • Removed Product Purchases from sortable column list
  • Pass prefix through transaction_number filter


  • Add new WordPress Page Templates Core Add-on
  • Add ability to filter any returned shortcode replacement for an email confirmation.
  • Include current transaction details, current shortcode being processed, and the object for the email notification class.
  • Add filters and attachments param to function that sends the confirmation email
  • Added pre_query_posts action to remove hidden produts from product taxonomy queries


  • Added Response Code to 'Invalid Response' message on downloads
  • Added rounding function to discount to ensure it always rounds the same way
  • Fixed bug causing error when removing all digital downloads from a product
  • Fixed bug where hourly expiration on downloads wasn't working
  • Changed URL used to init PayPal Secure and PayPal standard payments
  • Changed hook that listens for download requests from template_redirect to wp
  • Product Categories add JS working on add/edit products screen now
  • Added simple grayscale to non selected payment types in wizard.
  • Remove quick-edit from All Payments screen
  • Added 12 actions to the Payment Details page
  • Added filter to base price product theme api
  • Added filters to preview and view product links
  • Added filters to view / preview product button labels
  • Apply cursor:not-allowed CSS rule to all external product types rather than to membership specifically.
  • Added class in Wizard to distinguish between core and external product types.
  • Removing blank localization string in categories so that packaging bot doesn't complain


  • Fixing some internal submodules. version of Exchange jumpped from 1.7.3 to 1.7.8


  • Initial Release Version


  • Fix line height on remove download button.
  • Fixing purchase quantity advance tab show/hide functionality
  • Updating all screen_icon() functions to use ITUtility
  • Fixing bug causing Product Categories widget dropdown to not work properly
  • Fixing tooltip styling on shipping settings page
  • Fixing HTML error in settings-form
  • Remove margin on shipping method.
  • Fixing it_exchange_number_format() function in javascript
  • Add filters to Product Description and Product Description tooltip
  • Fixed label misspelling on the wizard.
  • Added Open Sans to the font stack.


  • Initial Release Version


  • Initial Release Version


  • Pass current product to ajax script when checkout is clicked
  • Refactor the tooltip
  • Standardize the transaction details page styles.
  • Add filter to Product Title label and tooltip on Add/Edit Product screen.
  • Pass $description variable in existing description filter for Base Price on product Add/Edit screen.
  • Changed user profile exchange label
  • Removed some unused code
  • Make template names filterable
  • Fixing bug causing purchase notifications to be sent to the 'current user' rather thant he transaction's customer ID
  • Added some actions for manual purchases to user products view
  • Updated lib/classes


  • Enhancement: Added ITUtility::screen_icon() to allow for easily preparing code for the WordPress 3.8 release. It only runs the screen_icon() function when WordPress is older than 3.8, thus avoiding the deprecation notice.
  • Bug Fix: Removed Javascript notices created by the tooltips.
  • Bug Fix: Removed Javascript notices created by ITDialog thickboxes.


  • Add transaction object to admin_email filters


  • Updated lib/icon-fonts
  • Introduce MP6 changes for 3.8
  • Add filter to store visibility value on add/edit product screen
  • Added register script/style function to register all third party JS/CSS scripts that might be enqueued by addons
  • Updated: lib/classes
  • Added missing /div in coupons add/edit
  • Change display name of add-on from 'Basic Coupons' to 'Coupons'
  • Allow Coupons to be limited to a specific product.
  • Added filter to create_posts capability in transation post type


  • Enhancement: Improved output of ITUtility::print_r() in WordPress 3.8.
  • Enhancement: ITUtility::print_r() now indicates the number of array elements in collapsed arrays and identifies boolean values explicitly.
  • Enhancement: Added the ability for ITForm::add_drop_down() to show divided lists.
  • Bug Fix: Fixed depth cutoff of ITUtility::backtrace().
  • Bug Fix: Fixed broken javascript in error message output. This bug prevented the error message from being collapsed by default, causing the screen to show the message at all times.


  • Don't show shipping address in Payment Details if transaction doesn't include shipping
  • Convert Paypl Standard setting keys to be shorter - This was Chris's fault
  • Don't hardcode sample product to digital downloads. Make sample product one of the product-types setup in the wizard
  • Create Builder Views for all active product type's singular pages
  • Replace preg_match with strpos in Builder Views integration
  • Add action to rewrite rules method in pages class


  • Update readme.txt
  • Make buy-now theme API options filterable.
  • Replace all instances of tertiary session_id logic with calls to it_exchange_get_session_id()
  • Fix bug that caused incorrect shipping prices to be displayed on PHP versions before 5.4
  • Remove 's from all Exchange Builder view descriptions
  • Add Builder view for 'any exchange page'
  • Add functionality to it_exchange_is_page() to retrun the current page if $page param was passed empty.
  • Remove call to non-existant property in shipping-method Theme API class


  • Introducing Guest Checkout
  • Redirect back to Exchange Log in Page, not WP login page on failed log in
  • Fix typo in customer confirmation email
  • Fix bug that prevented Page settings from being saved if a page was previously set to 'disabled'
  • Fix bug requiring a WP page to be selected before saving Page settings when page type is not WordPress
  • Make default logout redirect go to login page if it isn't disabled. Go to site home if it is. Add filter to default.
  • Prevent PHP error if remote_get returns WP_Error object when trying to retreive addons json from ithemes server
  • Don't show quantity option in SW when changing coupon info
  • Remove login link from above registration fields on checkout page
  • Move login link below registration fields in SW and convert to button format
  • Add 'core' tag to Simple Shipping add-on
  • Init purchase dialog JS on SW non-AJAX load
  • Large amount of tabbing and white-space corrections
  • Decouple SW registration state login/cancel elements.
  • Add breaks to switch statements in api/theme/login.php
  • Updated our COOKIE key to work with some hosting environments
  • Fixing paypal standard return code
  • Add action to top of super widget ajax script
  • Changing core template from "Logged in as:" to "Checking out as:" on Checkout page
  • Cleaned up the image after zooming to prevent multiple images loading over and over.
  • Removed margin and padding from images inside the product image popup.
  • A couple product gallery fixes.


  • Fixed some priority bugs
  • Added additional IDs and classes to admin settings
  • Added a general remove button style
  • Added hooks for base price and customer pricing
  • Broke out lib/templates/content-checkout/elements/purchase-requirements/logged-in.php to several more template parts for flexibility needed in Guest Checkout
  • Updated the get-images function call to fix a bug
  • Updated the Setup Wizard
  • Modified the way the Logged-in purchase requirement determines which form to show (registration/login/options) so that we can filter it for Guest Checkout
  • Added Default Checkout Form option to General Settings
  • Added api method for saving billing address and defer to it from lib/cart/class.cart.php
  • Added filter to existing save_shipping_address function
  • Added conditional to update shipping/billing address API methods
  • Added filter to require-user-login check before filtering file downloads
  • Fixed call to wrong function in new confirmation page template part
  • Added a couple is_object checks before get_class calls
  • Introducing New Gallery


  • Fixed typo in email notifications
  • Fixed wizard styling for Stripe
  • Added quick fix to margins
  • Added hook to template loader
  • Added tool-tips to admin form class
  • Report 'Deleted Customer' when customer is missing
  • Changed the class for the customer menu wrapper in the confirmation page


  • Adding missing images


  • Introducing Memberships
  • Introducing Physical Products
  • Introducing Simple Shipping
  • Introducing Free Products


  • Fix bug preventing Product details from showing if apply_filters was previously called
  • Added some hooks to the customer API, fixed some typos
  • Updated get-images to allow users to specify an specific image of a specific size.


  • Fixed some i18n issues
  • Added cancel links from the Paypal add-ons
  • Fixed bug in Offline Payments for recurring, not keeping totals from parent transaction
  • Added new class for quickly generating an admin setting form
  • Added hooks to All Payments metabox in tranaction methods post type class
  • Fixed border issue when first payment item in the wizard is selected.
  • Added missing docblocks
  • Fixed negative total and negative taxes
  • Fixed bug with failed payments when multicart is deactivated


  • Groundwork for upcoming Recurring Payments add-on
  • Introduced Purchase Dialog API to allow transaction-method add-ons to invoke CC fields.
  • Added optional Billing Address purchase requirement and associated core add-on.
  • Added core add-on that enables store owner to switch product types.


  • Introducing our Simple Product Type
  • Add address-formats and measurement-formats data sets
  • Tweak stripe upsell language now that it's free
  • Create fallbacks for file delivery when allow_url_fopen and / or curl isn't available on the server
  • Removed entry-title from the product-attribute wrap and added the class option.
  • Fix template part comments in tax super widget template part
  • Add ability for Store Owner to change 'Tax' label in settings.
  • Change NL state to 'Friesland'
  • Change default cancel link on cart from 'Cancel' to 'Edit Cart' on checkout page
  • Add login, registration and cart links to login notification on checkout page


  • Added base country and base state to settings page
  • Added States data-set for US, AU, CA, ES, FR, NL, ZA
  • Added countries data set
  • Fix child theme url for functions.php include
  • Added an indication of which fields are required for registration.
  • Implementing Purchase Requirements API
  • Added new method to api/theme/customers: display-name
  • Added ability for 3rd Parties to hook into supwerwidget ajax.php
  • Added .75em bottom margin to dashboard totals.
  • Edited x visibility of the downloads list on the Add/Edit Product screen.
  • Fixed small text input size for decimal and thousands separator.
  • Fixed page settings input overlap.
  • Added missing PHP break statements in api/theme/customer.php switch statements
  • Added get_plugin_path publich function to IT_Exchange class
  • Fixed a bug that causes the get-images array to only pull the last image and not all the images for a product.
  • Allow themes to add functions.php to their /exchange folder
  • Change product title from h1 to h2 in store view
  • Fixed monthly transaction totals in reporting widget for PHP 5.2.
  • Added transaction status to reporting widget
  • Add more fonts to the add-edt product page font-family


  • Updated lib/classes to version 2.3.5


  • Added Duplicate Products core-addon
  • Fixed but that redirected user to profile rather than back to checkout when asked to register before checkout out
  • Fixed bug where activating Product Categories disables core Categories widget
  • Fixed bug where permalinks have to be updated after changing product slug
  • Fixed bug that throws PHP error when trying to call WP_Error->get_error_message()
  • Fixed bug causing 0.00$ cost products to not display their price on the product details
  • Fix bug preventing large files from being downloaded


  • Updated lib/classes to version 2.3.4


  • Fix broken confirmation page when set as a WP page type
  • Simplifying versioning notification logic since we have a gazillion template-parts now
  • Add a little more feedback to paypal error message
  • Dequeue new styles and enqueue sw styles when deprecated templates are supported by the theme
  • Temp fix for blank account page
  • Change format of discount feedback on superwidget to not display updated total.
  • Make sure we have an array before trying to loop it - Paypal Standard Secure
  • Fix error where template file name is printing at bottom of shortcode pages.
  • Adding Simple Taxes core add-on
  • Corrected typo in PayPal Secure Wizard settings
  • Fixed bug that made downloads not show on the downloads page.
  • Add theme_support option for deprecated-template-parts


Add slash to itExchangeSWAjaxURL to fix login/registration bug.

* Add default error message to login SW Ajax when WP_Error returns an empty message. * Reordered addon_init to prevent 3rd party addons from being included twice * Add filters to preserve product types on Exchange Reset * Changed the way user login and registration AJAX works in the superwidget, needed for extendability e.g. MailChimp (coming soon) * Removed the styles from the WordPress update nag. * Fixed theme api filters * Added email category type for add-ons


  • Fix typos in content-downloads.php and email confirmation.
  • Changed Video links to target _blank
  • Various readme.txt typo fixes
  • Add Notice when our default template parts get updated
  • Fixed bug not allowing inventory setting to be saved in some instances
  • Added new shortcode for email templates: login_link
  • Change default state to Registration, not Login, when user tries to access checkout while not logged in.
  • Fixed unconverted nbsp
  • Fixed mistyped localization nam
Version 1.36.2

Requires WordPress version: 3.7 or higher

Compatible up to: 4.7.2

Last Updated 25 Jan 2017

Date Added: 08 Jul 2013

Plugin Homepage


3.7 stars
17 ratings


Not Enough Data

Works: 0
Broken: 0