Jump to content

Better, More Convenient, Private Support for Your iThemes Products Is Here.

We're moving support away from the forum and in to private tickets - Log In to Get Support Here

Note: any currently open support threads in the community forum will stay open while we resolve them.

Most Liked Content

#256346 Shortcode For Exchange?

Posted Ronald on 20 May 2014 - 04:00 PM


I've worked out a way to add a "buy" button to a WordPress non exchange post or page via a shortcode. It is fairly experimental, some content is hard-coded, but if you want to give it a spin, please do. So this is not an official iThemes Exchange customisation yet.

The assumption is that you know the product ID, and that most other product information will be added in the post. So (currently) it only outputs description, price and the buy now button. In order for this to make sense, it is highly recommended that you add the superwidget to a sidebar, so that the checkout function can be initiated as well. Otherwise, the buy button would be kinda lost.

This is (as far as I'm concerned) still work in progress, but I'm curious to see how/if at all this works for you.

Add the following code at the end of your child theme's functions.php:

* Creates a shortcode to add a product to the cart
function my_it_exchange_add_to_cart($atts) {

			"product_id" => null
   ), $atts));

   it_exchange_set_product( $product_id );

	$output = "<div class='my_it_itemdescription'>Item: " . it_exchange( 'product', 'get-description' ) . "</div>";
	$output .= "<div class='my_it_price'>Price: " . it_exchange( 'product', 'get-base-price' ) . "</div>";
	$output .= "<div class='my_it_buy-now'>" .it_exchange( 'product', 'get-purchase-options', array( 'add-to-cart-edit-quantity' => true, 'buy-now-edit-quantity' =>true ) ) . "</div>";

   return $output;
add_shortcode( 'add-to-cart', 'my_it_exchange_add_to_cart' );

Then add the following shortcode in your post or page:

[add-to-cart product_id=123]

where 123 is the (WordPress) ID of the product,


#146000 Why I Admire Ithemes And Especially Webdesign.com

Posted mcfitz on 17 August 2012 - 11:30 PM

When I find something I like, I share it with others. I've had a lot of opportunities to talk about iThemes and WebDesign.com over the past few months, and the latest was this week at a local WordPress Meetup. These are a few of the things I told them.

I have been a member of WebDesign.com since last October, and it's been the best time and money I've spent in the past year. Each webinar is interesting and the topics are directly related to working in WordPress, not some out-of-touch designer's idea of what's important. The "Professor," Benjamin Bradley, is extremely knowledgeable and a great speaker. He has an incredible knack for knowing what we are about to ask next. His ability to move from beginner to expert level is super helpful, because we're quite a mixed group.

I like iThemes because Cory Miller and team are not just pushing iTheme products, but they are out to help members become better designers, better developers, and better business owners. Cory's presentations on entrepreneurs have been great, and the guest speakers he's invited have really added to the mix. I admire what he's done with the company and I respect his work ethic.

Builder and the child themes are super to work with. [I explained the difference between "frameworks," themes and child themes as best I could.] Although the child themes with Builder don't look as fancy as some other themes at the start, the ability to do ANYTHING YOU WANT with the theme is a huge advantage over a pretty but limited theme. I don't like working with any other theme brand now, after working with Builder, and that's a fact. (Plus, the new Allure themes are pretty to start with! LOL)

When I mentioned the fact that iThemes makes BackupBuddy, most of the Meetup members perked up. They recognized it and were interested in other Plugins made by the company. I made sure to mention Chris Jean and the development team a time or two, and to say how attentive they were to their customers.

The best part of all, I ended with, was the support. I have been very pleased with the support I've gotten from iThemes, and I want to especially recognize Sridhar Katakam for his patience, guidance, and the incredible amount of care and time he puts into the forums. When I see the answers from Ronald and Sridhar, I wonder how two men can possibly know so much about WordPress, Builder, plugins, and everything else. Please know that the users appreciate you tremendously, even if it isn't said as often is should be.

Thank you!

#281442 Limit Purchases To Only One Country?

Posted evita3 on 20 December 2014 - 07:06 PM

The filters you refer to are the 'alts'--synonyms that if entered will result in the same entry. This only makes sure if the client types anything close to the correct response that it will be accepted correctly. In my case for example (México) if you type in 'Mexico' it will not be found. With an alt, all variants are accepted.

Steve let me see if I can re-understand what hack I used to do the trick to limit ITE to one country.

If I am not mistaken, I took the output of what I wanted--country and state data in an entered form--and stuck it back into the appropriate templates. This bypasses the code and forcably inserts what would normally occur if one country were chosen.


Create directories and make two files in:

The first file, 'country.php', should have something like:

* Limit to one country (US example)
<?php do_action( 'it_exchange_content_checkout_shipping_address_purchase_requirement_before_country_element' ); ?>
<div class="it-exchange-country it-exchange-left">
<label for="it-exchange-shipping-address-country">
	 <?php _e( 'Country', 'it-l10n-ithemes-exchange' ); ?>
	 <span class="it-exchange-required-star">
<select id="it-exchange-shipping-address-country" name="it-exchange-shipping-address-country">
	 <option value="US"><?php _e( 'United States', 'it-l10n-ithemes-exchange' ); ?></option>
<?php do_action( 'it_exchange_content_checkout_shipping_address_purchase_requirement_after_country_element' ); ?>

The second, 'states.php', can contain something like what comes from 'ithemes-exchange/api/data-sets':

* div bug fix for 'state' field length, and hard coded for US states
<?php do_action( 'it_exchange_content_checkout_shipping_address_purchase_requirement_before_state_element' ); ?>
<div class="it-exchange-left it-exchange-clear-left">
<label for="it-exchange-shipping-address-state">
	 <?php _e( 'State', 'it-l10n-ithemes-exchange' ); ?>
	 <span class="it-exchange-required-star">*</span>
<select id="it-exchange-shipping-address-state" name="it-exchange-shipping-address-state">
<option value='AL'><?php _e( 'Alabama', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='AK'><?php _e( 'Alaska', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='AZ'><?php _e( 'Arizona', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='AR'><?php _e( 'Arkansas', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='CA'><?php _e( 'California', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='CO'><?php _e( 'Colorado', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='CT'><?php _e( 'Connecticut', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='DE'><?php _e( 'Delaware', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='DC'><?php _e( 'District Of Columbia', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='FL'><?php _e( 'Florida', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='GA'><?php _e( 'Georgia', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='HI'><?php _e( 'Hawaii', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='ID'><?php _e( 'Idaho', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='IL'><?php _e( 'Illinois', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='IN'><?php _e( 'Indiana', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='IA'><?php _e( 'Iowa', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='KS'><?php _e( 'Kansas', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='KY'><?php _e( 'Kentucky', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='LA'><?php _e( 'Louisiana', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='ME'><?php _e( 'Maine', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='MD'><?php _e( 'Maryland', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='MA'><?php _e( 'Massachusetts', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='MI'><?php _e( 'Michigan', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='MN'><?php _e( 'Minnesota', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='MS'><?php _e( 'Mississippi', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='MO'><?php _e( 'Missouri', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='MT'><?php _e( 'Montana', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='NE'><?php _e( 'Nebraska', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='NV'><?php _e( 'Nevada', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='NH'><?php _e( 'New Hampshire', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='NJ'><?php _e( 'New Jersey', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='NM'><?php _e( 'New Mexico', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='NY'><?php _e( 'New York', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='NC'><?php _e( 'North Carolina', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='ND'><?php _e( 'North Dakota', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='OH'><?php _e( 'Ohio', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='OK'><?php _e( 'Oklahoma', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='OR'><?php _e( 'Oregon', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='PA'><?php _e( 'Pennsylvania', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='RI'><?php _e( 'Rhode Island', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='SC'><?php _e( 'South Carolina', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='SD'><?php _e( 'South Dakota', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='TN'><?php _e( 'Tennessee', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='TX'><?php _e( 'Texas', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='UT'><?php _e( 'Utah', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='VT'><?php _e( 'Vermont', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='VA'><?php _e( 'Virginia', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='WA'><?php _e( 'Washington', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='WV'><?php _e( 'West Virginia', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='WI'><?php _e( 'Wisconsin', 'it-l10n-ithemes-exchange' ) ?></option>
<option value='WY'><?php _e( 'Wyoming', 'it-l10n-ithemes-exchange' ) ?></option>
<?php do_action( 'it_exchange_content_checkout_shipping_address_purchase_requirement_after_state_element' ); ?>


With the coutry preselected and states loaded, there is no need to show the country field. Include this such as in your theme 'style.css' file or one specific to ITE '<your_theme>/exchange/style.css', or in a Builder stylesheet assiged to your checkout page, and best wishes:

.it-exchange-city {
width: 95% !important;
.it-exchange-country {
display: none;
.it-exchange-state {
width: 67%;

NEW NOTE: The above code used to work, but for some reason as of 12/17/15 I cannot get it to automatically select the country. As country is required first before states can be selected, one can't simply hide the country field. This means that iThemes Exchange cannot be used for just one country.

#263175 Any Progress Toward Being Able To Email Customers?

Posted pattyayers on 24 July 2014 - 11:06 AM

Thanks, Elise. The MailChimp add-on only allows people to opt in if they want, so meets a completely different need. We need to be able to email all of our customers. We'll add them to a list manually for now, but really hoping this gets some attention soon, email being such a basic aspect of e-commerce.

#259378 Shortcode For Exchange?

Posted mrarlen on 18 June 2014 - 02:41 PM

Building on Ronald's code, Here's what I came up with so far. Although I am very new at working with this API.  

This adds a Featured Thumbnail Image, Product Title and basic tags which can be styled.  

* Creates a shortcode to add a product to the cart
function my_it_exchange_add_to_cart($atts) {
						"product_id" => null
   ), $atts));
   it_exchange_set_product( $product_id );
	 $output = "<div class='my_it_product_shortcode'><div class='my_it_itemimage'>" . it_exchange( 'product', 'featured-image', array( 'size' => 'thumbnail', 'return' => 'true' ) ) . "</div>";
		$output .= "<div class='my_it_itemdtitle'><h2>" . it_exchange( 'product', 'get-title' ) . "</h2></div>";
		$output .= "<div class='my_it_itemdescription'><b>Description: </b> " . it_exchange( 'product', 'get-description' ) . "</div>";
		$output .= "<div class='my_it_price'>Price: " . it_exchange( 'product', 'get-base-price' ) . "</div>";
		$output .= "<div class='my_it_buy-now'>" .it_exchange( 'product', 'get-purchase-options', array( 'add-to-cart-edit-quantity' => true, 'buy-now-edit-quantity' =>true ) ) . "</div></div>";
   return $output;
add_shortcode( 'add-to-cart', 'my_it_exchange_add_to_cart' );

#255944 Shortcode For Exchange?

Posted webweaver on 16 May 2014 - 10:21 AM

shortcodes for individual products to be placed on non-shop page would be awesome!

#246894 Add Billing Address To User Profile

Posted ironbound on 12 March 2014 - 08:49 PM

Hi Guys,

It'd be great if you could add the billing address automatically to the user's profile on the back end.



#240654 Login Landing Page

Posted tsetford on 30 January 2014 - 10:18 PM

Sorry, first line got messed up, should be:
'redirect' => it_exchange_in_superwidget() ? it_exchange_clean_query_args() : it_exchange_get_page_url( 'profile' ),

#225330 Gravity Forms And Exchange

Posted tugmariner on 29 October 2013 - 01:41 PM

In case anyone else needs it:

//add to cart
add_action("gform_after_submission", "custom_gf_hook_after_submission", 10, 2);
function custom_gf_hook_after_submission ($entry, $form) {
//convert to named array
$vals= array();
foreach($form['fields'] as $f) {
  if(!is_array($f['inputs'])) {
  //complex type
  foreach($f['inputs'] as $i)
// use labels to access fields
if(@$vals['Product ID'] AND $vals['Quantity']) {
  it_exchange_add_product_to_shopping_cart($vals['Product ID'],$vals['Quantity']);

#197317 Hope You Guys Are Safe!

Posted superdoc on 20 May 2013 - 03:37 PM

This is Mark Klinefelter, member in Miami, FL  I just hope the ithemes group is safe and sound after the
tornado activity in Ok. City.  Buildings can always get replaced but hope all the people in your area are
safe.  South Florida has its' turn coming up on hurricane season starting June1.


#113425 My Builder Sites

Posted ka2id on 22 February 2012 - 06:08 PM

I have been using WordPress now for about a year and a half and Builder for most of that time, as someone who doesn't code PHP much, I love how Builder gives me a quick and easy way to layout my sites.

So a lot of these sites don't look like typical Builder sites because I use Builder mainly as a skeleton for the layout, then I CSS the heck out of it and do all custom graphics. Enjoy!

New condo development in Vancouver, just using the base Builder theme

Condo development  site

Realtor's website, using the Covert theme

Website for building maintenance/renovation company, using base Builder theme

Relief Pharmacy worker job site, used Builder and WPJobBoard plugin, love how one can incorporate other major themes with Builder

My own website, also done using Builder

Really loving Builder and WordPress, using it for some other cool site concepts that I will load here soon, so thanks for the amazing plugin Ithemes and let me know what you guys think!

#285879 Vimeo Videos As Digital Downloads

Posted Elise Alley on 04 February 2015 - 03:12 PM

Hi mjsdiaz,

I'm not overly familiar with Vimeo's PRO account, so I can't say for sure.  What I can tell you is that the link needs to be to an actual file, so it should have a file extension at the end like .png, .doc, .pdf, etc.  

Let us know if you have any additional questions.  



#279294 Stripe Web Hooks Errors And Membership

Posted Glenn Ansley on 01 December 2014 - 08:29 AM

Hi Elane,
We released 1.11.4 this morning. If your problem was the same as the one in the other thread, it should be fixed after you upgrade.

You will be able to confirm this by going to http://my.moodsmith.com/?it_exchange_stripe=1

Right now, you get an error that says: "Invalid webhook request for this site. "
Once it has been fixed, it should say: "iThemes Exchange webhook process Complete"

#272967 How Do I Get Rid Of The Black Dots Next To Product Category Images

Posted Ronald on 03 October 2014 - 04:06 PM

by the way, as it so happens, I have been working on a new template for Exchange Archive pages for Builder this very evening.

I've literally just minutes ago updated the codex and added: http://ithemes.com/codex/page/Exchange_FAQs:_How_Do_I_Create_a_Custom_Product_Category_Page#A_generic_Builder_Category_page_template_for_Exchange_categories


#258252 Additional Purchases Or Upsells

Posted Elise Alley on 05 June 2014 - 02:18 PM

Hi alexnavas,

There isn't an upsell option in Exchange at this time.  It has been added as a feature request which you can vote for on the Exchange Roadmap, but I don't have a timeline for if/when it will be added.  

Let us know if you have any additional questions.



#244601 How To Change Product Order Link To Go To Login Instead Of Registration

Posted Elise Alley on 25 February 2014 - 02:32 PM

Hi jgerst,

There isn't an option to change this in Exchange.  I will note this for the developers to change as it does make sense that a user who has made a purchase should be taken to the log in page.  

I'll look into a temporary solution for you in the meantime, but I don't have an answer for you right now.  

Let us know if you have any additional questions.



#233979 Physical + Digital?

Posted mythical on 17 December 2013 - 10:30 AM

I am selling CDs and want to include a digital download along with the physical CD.  Is there some way to combine digital and physical products?

I feel like I'm missing something obvious so I'm sorry if this has been addressed elsewhere.


#218210 Will Exchange Be Ready For The New Tax Laws?

Posted Elise Alley on 10 September 2013 - 01:05 PM

Hi randomblink,

We're definitely aware of and watching for this sort of change.  We will make changes to Exchange as they become relevant.  

Let us know if you have any additional questions.



#20139 Two New Websites: Yoga Center, and Construction Company

Posted kenfeldman on 21 May 2010 - 04:43 PM

Good afternoon everybody,

Here's another yoga center website. A modified version of the Life series again:

Flying Yoga Shala: <a  href="http://www.flyingyogashala.com/" rel="nofollow" target="_blank">http://www.flyingyogashala.com/</a>

And a new construction company website. This one on a fairly straight ahead Addington Theme:

Selca Construction: <a  href="http://www.selcaconstruction.com/" rel="nofollow" target="_blank">http://www.selcaconstruction.com/</a>

Thanks for taking a look!

#165392 Big Props On Two Recent Ithemes Additions

Posted Ronald on 18 December 2012 - 02:02 PM

thanks for your kind words and glad that you enjoy the new features!

Better, More Convenient, Private Support for Your iThemes Products Is Here.

We're moving support away from the forum and in to private tickets - Log In to Get Support Here

Note: any currently open support threads in the community forum will stay open while we resolve them.