Creating Custom Add to Cart Links

Many times when building a site or theme with Easy Digital Downloads, you will want to create custom purchase/add-to-cart buttons that allow your users to purchase a digital product. Sometimes the button options that come with EDD are not quite suited to your application. Luckily, there is a very simple way to turn any hyperlink into a "purchase button".

Creating the Link

Let's say that you have a hyperlink displayed on your product details that says "Purchase This", and you have styled it exactly as you want. The only thing you have left is to turn the link into one that automatically adds the current item to the shopping cart. It's very simple and the basic format looks like this:

<a href="http://example.com/?edd_action=add_to_cart&download_id=ID_OF_THE_DOWNLOAD">Purchase This</a>

This

ID_OF_THE_DOWNLOAD

would be replaced with the actual ID number of your download.

You can find the ID of your download by going to Downloads → All Downloads and then clicking on the product you're looking for. Then in the URL you'll find the ID you're looking for. Example:

Redirect to Checkout

If, when clicked, you want the link to automatically take the user to the checkout page, do this:

<a href="http://example.com/checkout?edd_action=add_to_cart&download_id=ID_OF_THE_DOWNLOAD">Purchase This</a>

"http://example.com/checkout" would be replaced with the full URL to your checkout page.

If you are displaying the link on the single page for the "download" post type, then you can do this (it will automatically append the ID):

<a href="http://example.com/checkout?edd_action=add_to_cart&download_id=<?php echo get_the_ID(); ?>">Purchase This</a>

If you want to create a link for a specific price option, you can do it like this:

<a href="http://example.com/checkout?edd_action=add_to_cart&download_id=DOWNLOAD_ID&edd_options[price_id]=PRICE_ID">Purchase This</a>

Sending Customers Straight to PayPal

If you'd like your customers to be sent straight to PayPal, instead of to the checkout page, use a URL like this, replacing '100' with your product ID:

<a href="http://example.com/checkout?edd_action=straight_to_gateway&download_id=100">Purchase This</a>
Below is an example of using the WordPress function get_the_ID() to automatically get the product ID and append it to the URL.
<a href="http://example.com/checkout?edd_action=straight_to_gateway&download_id=<?php echo get_the_ID(); ?>">Purchase This</a>

Including a Discount Code

Full docs on  how to add a discount code to a link are found here. If you want to add both a discount code and a download ID at the same time it would look something like this:

<a href="http://example.com/?edd_action=add_to_cart&download_id=ID_OF_THE_DOWNLOAD&discount=CODE">Purchase This</a>
where CODE is the discount code you wish to use.