Extensions & Themes – Easy Digital Downloads Documentation https://easydigitaldownloads.com Sell Digital Products With WordPress Tue, 22 Jul 2025 12:49:18 +0000 en-US hourly 1 https://wordpress.org/?v=6.8.2 https://easydigitaldownloads.com/wp-content/uploads/2023/10/cropped-new-favicon-1-32x32.png Extensions & Themes – Easy Digital Downloads Documentation https://easydigitaldownloads.com 32 32 WordPress Staging Site Support https://easydigitaldownloads.com/docs/wordpress-staging-site-support/ Thu, 30 Nov 2023 21:41:02 +0000 https://easydigitaldownloads.com/?post_type=edd_doc&p=1803478 The Software Licensing extension for Easy Digital Downloads provides your customers with seamless WordPress Plugin and Theme updates. To do this, users must typically activate their license key within the settings of your Plugin or Theme installed on their WordPress-powered site. This can be a challenge when working with a WordPress Staging Site, as a

The post WordPress Staging Site Support first appeared on Easy Digital Downloads.

]]>
The Software Licensing extension for Easy Digital Downloads provides your customers with seamless WordPress Plugin and Theme updates. To do this, users must typically activate their license key within the settings of your Plugin or Theme installed on their WordPress-powered site. This can be a challenge when working with a WordPress Staging Site, as a customer could be concerned that this would count towards their license activation counts, restricting them from activating their license key on their live site.

Staging sites are important to the workflow of any site, and as such, Software Licensing does not count local or staging environments towards a license’s activation count. To help Plugin and Theme creators, we support a number of staging environment configurations.

Hosting Service Staging Environments

Many hosts provide Staging environments, allowing site owners to test updates and new plugins before they add them to their live website. The Software Licensing extension for Easy Digital Downloads recognizes and supports several of the most popular hosting services in the WordPress ecosystem. Below is a list of specifically supported hosting services that provide custom staging environments.

  • WP Engine
  • InstaWP
  • Cloudways
  • Kinsta
  • GoDaddy
  • FlyWheel
  • BlueHost
  • HostGator
  • SiteGround

If your host is not listed here, they may be using a more standard way of creating staging sites, allowing our Standard Detection rules to apply without specific rules.

If you are a hosting service and want to be added to this list, reach out to us through our support team and we will contact you about allowing your customers to activate Plugin & Theme licenses in your staging environments.

Standard Staging Environments

If the hosting provider does not provide a tool to generate a staging environment or is using a more standard URL for their staging environments, EDD supports the following subdomain patterns as WordPress Staging Site URLs.

  • *.staging.example.org
  • *.test.example.org
  • staging-*.example.org
  • dev.example.org

WP Environment Type

The Plugin Updater class included with Software Licensing’s sample plugin and theme supports the wp_get_environment_type()function that was added in WordPress 5.5.0. If the hosting service or custom staging environment sets the WP_ENVIRONMENT_TYPE constant accurately, Software Licensing will handle the detection of a staging environment automatically, regardless of the domain being used.

The post WordPress Staging Site Support first appeared on Easy Digital Downloads.

]]>
Themedd – Menus https://easydigitaldownloads.com/docs/themedd-menus/ Mon, 24 Jan 2022 19:56:52 +0000 https://edd-site.lndo.site/docs/themedd-menus/ Themedd has 3 display locations that you can add a menu to. Primary Menu A menu assigned to the Primary Menu display location will show just below the site title. Secondary Menu A menu assigned to the Secondary Menu display location will show to the far right of the site title. Mobile Menu A menu

The post Themedd – Menus first appeared on Easy Digital Downloads.

]]>
Themedd has 3 display locations that you can add a menu to.

Primary Menu

A menu assigned to the Primary Menu display location will show just below the site title.

Secondary Menu

A menu assigned to the Secondary Menu display location will show to the far right of the site title.

Mobile Menu

A menu assigned to the Mobile Menu display location will show only for mobile devices. Use this menu location to provide a more streamlined experience to mobile users, where screen real estate is scarce. If no menu is assigned to this location, the menu assigned to the Primary Menu location will be shown to mobile device users.

To learn more about menus, including creating them, adding items to a menu, deleting items and more, see the official WordPress Menu User Guide.

The post Themedd – Menus first appeared on Easy Digital Downloads.

]]>
Checkout Fields Manager – Importing and Exporting Fields https://easydigitaldownloads.com/docs/checkout-fields-manager-importing-and-exporting-fields/ Mon, 24 Jan 2022 19:56:50 +0000 https://edd-site.lndo.site/docs/checkout-fields-manager-importing-and-exporting-fields/ With Checkout Fields Manager, checkout fields can be exported for backup or exported/imported into a different website or store. This can save a great deal of time when replicating a setup or restoring after data loss. Once your form is built, you may go to Downloads → Tools → Checkout Fields Manager and export your

The post Checkout Fields Manager – Importing and Exporting Fields first appeared on Easy Digital Downloads.

]]>
With Checkout Fields Manager, checkout fields can be exported for backup or exported/imported into a different website or store. This can save a great deal of time when replicating a setup or restoring after data loss.

Once your form is built, you may go to Downloads → Tools → Checkout Fields Manager and export your form in .json format. You may also import a previously exported .json file to either restore or recreate a form.

The post Checkout Fields Manager – Importing and Exporting Fields first appeared on Easy Digital Downloads.

]]>
Themedd – Frequently Asked Questions https://easydigitaldownloads.com/docs/themedd-frequently-asked-questions/ Mon, 24 Jan 2022 19:56:44 +0000 https://edd-site.lndo.site/docs/themedd-frequently-asked-questions/ Do you have a demo of Themedd? We sure do! To view a demo of Themedd, visit our fictional eBook website, Success Stories. Could I run a marketplace with Themedd? Yes, Themedd works perfectly with  Frontend Submissions. Why do some EDD extensions now look different? Themes were designed to change how your website looks. In some instances, Themedd

The post Themedd – Frequently Asked Questions first appeared on Easy Digital Downloads.

]]>
Do you have a demo of Themedd?

We sure do! To view a demo of Themedd, visit our fictional eBook website, Success Stories.

Could I run a marketplace with Themedd?

Yes, Themedd works perfectly with  Frontend Submissions.

Why do some EDD extensions now look different?

Themes were designed to change how your website looks. In some instances, Themedd provides custom styling for some EDD extensions to provide an enhanced user experience.

Does Themedd support the Digital Marketplace Bundle?

Yes, all extensions in the Digital Marketplace Bundle will look great with Themedd.

Note: the Digital Marketplace Bundle has been discontinued and replaced with Passes. See Pricing for more information.

Can I use a page builder plugin with Themedd?

Yes, there shouldn’t be any issues with using a page builder plugin with Themedd.

Can I make custom changes to Themedd?

Absolutely! The best way to do this is from a child theme.

Can I contribute to Themedd?

Yes you can! Themedd is open source so you can contribute via GitHub.

The post Themedd – Frequently Asked Questions first appeared on Easy Digital Downloads.

]]>
Checkout Fields Manager – Exporting Payment Data https://easydigitaldownloads.com/docs/checkout-fields-manager-exporting-payment-data/ Mon, 24 Jan 2022 19:56:41 +0000 https://edd-site.lndo.site/docs/checkout-fields-manager-exporting-payment-data/ With Checkout Fields Manager, the values submitted through the custom checkout fields are automatically appended to the Payment History CSV export file that can be generated from Downloads → Reports → Export. More detailed documentation on exporting Payment data here. FAQ Can I import custom checkout field data via CSV? No, custom checkout fields cannot currently

The post Checkout Fields Manager – Exporting Payment Data first appeared on Easy Digital Downloads.

]]>
With Checkout Fields Manager, the values submitted through the custom checkout fields are automatically appended to the Payment History CSV export file that can be generated from Downloads → Reports → Export.

FAQ

Can I import custom checkout field data via CSV?
No, custom checkout fields cannot currently be imported via CSV at this time.

The post Checkout Fields Manager – Exporting Payment Data first appeared on Easy Digital Downloads.

]]>
Zapier integration with Checkout Fields Manager https://easydigitaldownloads.com/docs/zapier-integration-with-checkout-fields-manager/ Mon, 24 Jan 2022 19:56:35 +0000 https://edd-site.lndo.site/docs/zapier-integration-with-checkout-fields-manager/ The Checkout Fields Manger extension for Easy Digital Downloads allows you to collect custom information from your customers while they are checking out. If you have the Zapier extension for Easy Digital Downloads as well, you can use that custom information in your Zapier account to send to hundreds of 3rd party apps. This document

The post Zapier integration with Checkout Fields Manager first appeared on Easy Digital Downloads.

]]>
The Checkout Fields Manger extension for Easy Digital Downloads allows you to collect custom information from your customers while they are checking out. If you have the Zapier extension for Easy Digital Downloads as well, you can use that custom information in your Zapier account to send to hundreds of 3rd party apps. This document will describe how to set that up.

Step 1: Set up your custom checkout fields

The first thing you need to do is make sure you have your custom checkout fields set up using Checkout Fields Manager for Easy Digital Downloads.  Follow the setup guide for it here.

Note: Make sure your custom fields are set to save to Payment Meta and not User Meta if you’re passing data related to payments.

You’ll also need to make sure you have installed the EDD Zapier extension.

Additionally, you need to be ready to make a “test” purchase. So put your EDD store into Test Mode by navigating  to Downloads  → Settings → Payment Gateways, and enable Test Mode. You’ll also want to enable the Test Payment Gateway:

Now you are ready to make a test purchase.

Step 2: Set up the “Zap” in your Zapier account.

Now that you have the custom fields created, you can set up the “Zap”, which will collect the new order information and allow you to port it to the 3rd party app of your choice.

In your Zapier account:

  1. Click this link to gain access to the (currently private) EDD App: https://zapier.com/developer/invite/26897/ef9fb387de3ff31c7661a7ffaa919d45.
  2. Create a new Zap and select Easy Digital Downloads as a triggering service:
  3. For the trigger, choose “New Order”:
  4. Choose the site you are working with. If this is the first time you have created a Zap with Easy Digital Downloads, you will need to authenticate your site by providing your site URL, API Key & API Token. To find those keys, follow the steps in this article
  5. Once you have authenticated your site, you’ll be on “Test this Step”. Here you need to complete a test purchase in your store, making sure you fill out the custom fields you’ve set up on your Checkout. By filling them out and completing a test purchase, Zapier will become aware that your custom fields exist.

    First, click the “Connect & Continue” button. This will make Zapier “Listen” for your test purchase.

    Second, complete a test purchase in your EDD Store. In a separate browser tab, go to your store, add one of your products to the cart, and click “Checkout”. Again, make sure you fill out the custom fields on your Checkout page with some test data.

  6. Once you’ve completed the test purchase, go back to the Zapier tab. It will now say “Test Successful” and look like this:
  7. Now you can set up the integration with the 3rd party app of your choosing. For this example we will use the “Email” action to email ourself whenever a new order is placed. We’ll make the email body contain my custom field information which was entered by the customer at checkout. For the Body (HTML or Plain) area, click on the top right icon and find your custom field in the dropdown. This will add it to the body.Now that you’ve put your custom field data into the body, you can finish setting up the “Zap” as normal and activate it in your Zapier account. That’s all there is to it!

Note: Keep in mind that it is extremely important that you follow all of these steps in this order. If you don’t you may not see your custom fields in Zapier.

Also, once you’ve set up your “Zap” successfully, make sure to take your store back out of Test Mode in your EDD settings.

The post Zapier integration with Checkout Fields Manager first appeared on Easy Digital Downloads.

]]>
Fraud Monitor – Configuring Geofencing https://easydigitaldownloads.com/docs/fraud-monitor-configuring-geofencing/ Mon, 24 Jan 2022 19:56:32 +0000 https://edd-site.lndo.site/docs/fraud-monitor-configuring-geofencing/ The Geofencing feature of Fraud Monitor allows store owners to flag payments that are outside of a ‘fenced’ area, based off geolocation data. By using the Google GeoCode API, we can determine an accurate location for the billing information and couple it with the IP Address location to identify when a purchase might be invalid.

The post Fraud Monitor – Configuring Geofencing first appeared on Easy Digital Downloads.

]]>
The Geofencing feature of Fraud Monitor allows store owners to flag payments that are outside of a ‘fenced’ area, based off geolocation data. By using the Google GeoCode API, we can determine an accurate location for the billing information and couple it with the IP Address location to identify when a purchase might be invalid. Store owners can ‘fence’ payments by country or by distance.

For example, this can be used to detect if a purchase is made from a country other than the country associated with the billing address, then flag the purchase as potentially fraudulent.

Enabling Geofencing

The GeoFence feature is located in the ‘Country’ section of the Fraud Monitor configuration under Downloads → Tools → Fraud Monitor → Country.

Obtaining GeoCode API Keys

To obtain accurate location information, Fraud Monitor uses the Google GeoCode API. You need to set up an API Key to use this service.

1) Visit  https://developers.google.com/maps/documentation/geocoding/get-api-key#creating-api-keys

2) Click the ‘Get a Key’ button

3) Set up an API Key

If you have existing API Keys with Google, you need to select ‘+ Create a new project’ and then choose a name for your project:

If you do not have existing API Keys, you’ll be prompted to create one:

In both cases, once you add a project name, click ‘Create and Enable API’

4) Get your API Key for use with Fraud Monitor:

5) Add your GeoCode API Key to the Fraud Monitor settings:

Configuring a GeoFence Type

To allow store owners to customize their settings to suit their needs, Fraud Monitor allows you to configure your fence to be by “Country” or by “Distance”.

By Country

When you choose the ‘country’ setting, Fraud Monitor will compare the country supplied at checkout to the billing information and the country the IP address is registered to. If these two do not match, the payment will be flagged as fraud, for review.

By Distance

The ‘distance’ setting uses the billing address and IP address to approximate a distance based off the GeoLocation data to determine if the purchase was made from within the ‘fence’. It can be configured to use either miles or kilometers.

At the time of writing, the Google GeoCode API no longer limits the number of free requests per day however they do set a limit of maximum 50 requests/second. Once you reach this limit, Fraud Monitor will stop checking the API and bypass the Geofence feature. For more information on increasing that limit, you can see the Usage Limits section of the Google documentation.

The post Fraud Monitor – Configuring Geofencing first appeared on Easy Digital Downloads.

]]>
Campaign Monitor- Setup Documentation https://easydigitaldownloads.com/docs/campaign-monitor-setup-documentation/ Mon, 24 Jan 2022 19:56:31 +0000 https://edd-site.lndo.site/docs/campaign-monitor-setup-documentation/ The Campaign Monitor email marketing extension adds an option for your customers to join your Campaign Monitor email list during checkout. Configuration Instructions for Campaign Monitor 1. Once installed, locate the settings for this extension via WordPress admin → Downloads → Settings → Extensions → Campaign Monitor 2. Enter your API Key and Client ID

The post Campaign Monitor- Setup Documentation first appeared on Easy Digital Downloads.

]]>
The Campaign Monitor email marketing extension adds an option for your customers to join your Campaign Monitor email list during checkout.

Configuration Instructions for Campaign Monitor

1. Once
installed, locate the settings for this extension via WordPress admin → Downloads → Settings → Extensions → Campaign Monitor

2. Enter your API Key and Client ID found under
Account Settings → API Keys in your Campaign Monitor account dashboard.

Note: Your Campaign Monitor lists will not appear until the API Key and Client ID are saved.

3. Finally set a Checkout Label if you wish and click
Save Settings. By default the checkout page will show Sign up for our mailing list”. Once you Save Settings, all available lists will appear.

The post Campaign Monitor- Setup Documentation first appeared on Easy Digital Downloads.

]]>
Software Licensing – Staged Rollouts https://easydigitaldownloads.com/docs/software-licensing-staged-rollouts/ Mon, 24 Jan 2022 19:56:31 +0000 https://edd-site.lndo.site/docs/software-licensing-staged-rollouts/ Software Licensing version 3.8 added a new “Staged Rollouts” feature that allows you to set conditions for receiving automatic updates via the API. There are two types of staged rollouts that are available: Percentage rollouts – where a percentage of sites are given access to the update. Version rollouts – where the update is only

The post Software Licensing – Staged Rollouts first appeared on Easy Digital Downloads.

]]>
Software Licensing version 3.8 added a new “Staged Rollouts” feature that allows you to set conditions for receiving automatic updates via the API. There are two types of staged rollouts that are available:

  1. Percentage rollouts – where a percentage of sites are given access to the update.
  2. Version rollouts – where the update is only made available to sites currently using a lower or higher version than what you specify.

Note: These features only apply to updates given through the Software Licensing API. They do not apply to customers who are manually downloading the latest version through their account area.

Percentage rollouts

Checkbox to enable percentage rollouts

When enabled, you can choose what percent of sites should be given access to the new version. For example, if set to 50% then half of sites that check in for an update will be given the new version, and the other half will not see that an update is available (they will keep their existing version).

This can be useful if you want to test a major release with a smaller pool of sites before making it available to everyone. You can initially set the percentage lower, and slowly raise it until you’re comfortable making it available to your entire customer base (at which point you would disable staged rollouts completely).

Version rollouts

This option allows you to set version requirements for a new update.

  • If you choose less than or equal to, then customers will only be given access to this new version if they are currently on a version less than or equal to what you specify in the “Version Number” box. If you enter “2.5”, then a customer who’s on version “2.1” will see the update, but a customer who’s on version “2.6” will not.
  • If you choose greater than or equal to, then customers will only be given access to this new version if they are currently on a version greater than or equal to what you specify in the “Version Number” box. If you enter “2.5”, then a customer who’s on version “2.1” will not see the update, but a customer who’s on version “2.6” will see it.

The post Software Licensing – Staged Rollouts first appeared on Easy Digital Downloads.

]]>
Themedd – Installation https://easydigitaldownloads.com/docs/themedd-installation/ Mon, 24 Jan 2022 19:56:30 +0000 https://edd-site.lndo.site/docs/themedd-installation/ Installing Themedd from your WordPress admin We strongly recommend using a child theme with Themedd. Read our Themedd – Using a child theme article to find out how. The below will show you how to install Themedd, without using a child theme: Download Themedd to your computer. Click the download link after purchase (it’s free!) from

The post Themedd – Installation first appeared on Easy Digital Downloads.

]]>
Installing Themedd from your WordPress admin

We strongly recommend using a child theme with Themedd. Read our
Themedd – Using a child theme article to find out how.

The below will show you how to install Themedd, without using a child theme:

  1. Download Themedd to your computer. Click the download link after purchase (it’s free!) from the purchase confirmation page or from your purchase receipt email. You can also download Themedd from your account page after purchase.
  2. In your WordPress admin, go to Appearance → Themes and click Add New from the top of the screen.
  3. Click Upload Theme from the top of the screen.
  4. Click Browse, select the zip file you downloaded in step 1 and click open. Lastly, click Install Now.
  5. Click Activate to active Themedd.

Tip: Installing Themedd on a Multisite installation of WordPress? For step 2 above, go to My SitesNetwork AdminThemes.

The post Themedd – Installation first appeared on Easy Digital Downloads.

]]>
Commissions – AffiliateWP https://easydigitaldownloads.com/docs/commissions-affiliatewp/ Mon, 24 Jan 2022 19:56:26 +0000 https://edd-site.lndo.site/docs/commissions-affiliatewp/ Commissions and AffiliateWP can integrate so that the referral amount can be subtracted from the commission total. Setup With Commissions extension for Easy Digital Downloads and AffiliateWP enabled, there will be a new option registered in Affiliates → Settings → Integrations that allows you to choose whether commissions in EDD are affected by any referral

The post Commissions – AffiliateWP first appeared on Easy Digital Downloads.

]]>
Commissions and AffiliateWP can integrate so that the referral amount can be subtracted from the commission total.

Setup

With Commissions extension for Easy Digital Downloads and AffiliateWP enabled, there will be a new option registered in Affiliates → Settings → Integrations that allows you to choose whether commissions in EDD are affected by any referral commissions generated by AffiliateWP.

If you enable the Adjust EDD Commissions setting, the commission amount will be calculated from the purchase amount minus any referral commissions.

For example, if you have a $100 purchase that generates a $10 affiliate referral, the commission calculation will be based off of $90, not $100.

The post Commissions – AffiliateWP first appeared on Easy Digital Downloads.

]]>
Fraud Monitor – Installation and usage https://easydigitaldownloads.com/docs/fraud-monitor-installation-and-usage/ Mon, 24 Jan 2022 19:56:25 +0000 https://edd-site.lndo.site/docs/fraud-monitor-installation-and-usage/ The Fraud Monitor extension for Easy Digital Downloads uses a variety of tests to filter every transaction, looking for attributes commonly associated with fraudulent purchases. Fraudulent transactions are a common occurrence in this day and age of identity theft. These transactions in your Easy Digital Downloads store can be time consuming to deal with, expensive

The post Fraud Monitor – Installation and usage first appeared on Easy Digital Downloads.

]]>
The Fraud Monitor extension for Easy Digital Downloads uses a variety of tests to filter every transaction, looking for attributes commonly associated with fraudulent purchases.

Fraudulent transactions are a common occurrence in this day and age of identity theft. These transactions in your Easy Digital Downloads store can be time consuming to deal with, expensive to pay for, and could even get you blacklisted by payment gateways.

The Fraud Monitor extension uses a variety of tests to filter every transaction, looking for attributes commonly associated with fraudulent purchases. These tests are configured by the site owner.

Note: Before Fraud Monitor will begin monitoring payments, the settings must be configured.

Usage

Transactions are filtered based on the settings configured by the store owner. Filters can be based on:

  • IP Address
  • Country
  • Email address
  • Behavior based on formula created by the store owner

Once a transaction has been flagged as fraudulent, it’s placed in a holding area for review by the store owner.

Setup

After you have installed and activated the Fraud Monitor extension, you can find the settings area by navigating to Downloads → Tools→ Fraud Monitor.

  1. Review the settings in this document to enable the monitoring features you want to use for your store.
  2. (Optional) Configure geofencing.
  3. You’ll be notified when a purchase is flagged and needs to be moderated.

The initial tab contains the General settings.

Settings

General

There are three sections on the General tab.

1) General Settings

The option is Moderate Free Purchases. Typically this is off since financial fraud isn’t an option without a payment, but it may be turned on to work in conjunction with other settings to prevent other kinds of abuse.

2) Admin Notifications

This allows an admin notification email to be sent when a transaction is flagged for fraud.

3) Customer Notifications

This will send an email to the customer letting them know the transaction is under review.

Note: if a flagged payment is actually fraudulent, the email address attached to the transaction may not work at all, resulting in a bounceback. This is a common issue.

IP Addresses

Transactions from any IP address placed into the text area shown in the screenshot will immediately be held for review. IP addresses should be entered one per line.

Country

You can choose what service to use to determine a user’s country based on their IP address.

You may configure Fraud Monitor to prevent purchases from specific countries. In the screenshot above, the United Kingdom and Andorra are disallowed. To choose more countries, you may click the input to see a list of countries or start typing to narrow down the list.

Fraud Monitor can be configured to detect differences in the billing information and IP address location to possibly flag a payment for review.

The Country Check setting restricts file downloads from a country other than the one the purchase was made from, if initiated in the first 24 hours from purchase.

Email

Note: This is for email domains, not full email addresses.

Placing a domain like example.com into the text area provided will make it so any transaction using that domain in the buyer’s email address will cause it to be held for moderation.

Additional Email Settings

Optionally you may choose to also check email addresses for patterns typically associated with fraudulent activity. This looks at the entire email address and compares it against known patterns common in fraudulent purchases.

Behavior

This section allows you to make a variety of settings specific to your own products and prices to create a filter customized to your needs.

User History

Typically once a transaction has been approved, that customer bypasses the Fraud Monitor from that point forward. This section gives you the opportunity to require checks for every user on every transaction.

Gateway Settings

If you prefer that purchases made via certain gateways not be moderated at all, you can do that in the Exclude Gateways settings.

Limit Thresholds

This section allows you to set maximum values for:

  • Total Purchase Amount
  • Total Purchased Items
  • Total Purchased Bundles

These three options together can help you create some thresholds for Fraud Monitor.

For example, if you only sell one product, and it doesn’t make sense to buy more than one copy, set the Total Purchased Items to 1.

Another example involves selling 4 things for $1.00 each. You could set the Total Purchase Amount to $4.00, since there’s no reason for people to buy more than one copy.

For Total Purchased Bundles, imagine a scenario where you have two bundles and one bundle includes everything that the other bundle includes, plus more. Buying both bundles would be a waste, since the contents of one are offered in the other. If these were the only bundles on the site, then you’d set the value of Total Purchased Bundles to 2.

Product Combinations

This section allows you to create combinations of products that would indicate a fraudulent purchase. For example, buying an ebook on weight loss while ALSO buying an ebook on weight gain seems unlikely, so you could set that combination to trigger moderation.

The post Fraud Monitor – Installation and usage first appeared on Easy Digital Downloads.

]]>
Reviews – Styles https://easydigitaldownloads.com/docs/reviews-styles/ Mon, 24 Jan 2022 19:56:24 +0000 https://edd-site.lndo.site/docs/reviews-styles/ Reviews comes with styles for several different areas. These styles may be turned off if you wish to use your own. See below for instructions. The first style set we’ll look at is the rating section, which shows how many votes have been made and the ratings given. Reviews also come with built-in styles, and

The post Reviews – Styles first appeared on Easy Digital Downloads.

]]>
Reviews comes with styles for several different areas. These styles may be turned off if you wish to use your own. See below for instructions.

The first style set we’ll look at is the rating section, which shows how many votes have been made and the ratings given.

Reviews also come with built-in styles, and look like this:

Lastly, the review form itself has some styles added:

Disabling Styles

If you prefer to make your own CSS styles for Product Reviews, go to Downloads → Extensions → Reviews and find the checkbox labeled Disable EDD Reviews CSS.

When this is checked, none of the default styles for Product Reviews will load.

Note: you may still see some styling of the forms since many themes come with form styling built in.

The post Reviews – Styles first appeared on Easy Digital Downloads.

]]>
Commissions – Vendor Account Page & Export https://easydigitaldownloads.com/docs/commissions-vendor-account-page-export/ Mon, 24 Jan 2022 19:56:24 +0000 https://edd-site.lndo.site/docs/commissions-vendor-account-page-export/ This document covers how to provide Vendors with access to their commission data on an account page. Vendors can also export commissions data. Setup First, create a page with this shortcode on it: [edd_commissions] Feel free to make the page private or password protected if desired. The shortcode will print several blocks of information: Unpaid

The post Commissions – Vendor Account Page & Export first appeared on Easy Digital Downloads.

]]>
This document covers how to provide Vendors with access to their commission data on an account page. Vendors can also export commissions data.

Setup

First, create a page with this shortcode on it: [edd_commissions] Feel free to make the page private or password protected if desired.

The shortcode will print several blocks of information:

  • Unpaid Commissions
  • Paid Commissions
  • Revoked Commissions

Here’s a very simple example of the Paid Commissions block:

Vendor Reports

There are shortcodes available to present reports to your vendors. See Commissions – Reports for a list of the shortcodes and examples.

Exporting

Vendors can export a CSV file that contains Product, Amount, and Date using the Commissions extension. Note that this is different from exporting the store’s CSV file, which contains data for all vendors. The export referenced in this document is for individual vendors, NOT for the entire store.

At the bottom of this page you’ll find a small form that looks like this:

Select a month and year, then press the Download CSV button. When you open the resulting file in a spreadsheet application, it should look similar to this:

The post Commissions – Vendor Account Page & Export first appeared on Easy Digital Downloads.

]]>
Fraud Monitor – Payment Moderation https://easydigitaldownloads.com/docs/fraud-monitor-payment-moderation/ Mon, 24 Jan 2022 19:56:23 +0000 https://edd-site.lndo.site/docs/fraud-monitor-payment-moderation/ With the EDD Fraud Monitor extension, payments are stored in the Payment Moderation page when they are flagged as fraudulent. The menu item for the Payment Moderation page will have a number next to it indicating how many items are being held for moderation, as seen in the screenshot on the right. Moderation List The

The post Fraud Monitor – Payment Moderation first appeared on Easy Digital Downloads.

]]>

With the EDD Fraud Monitor extension, payments are stored in the Payment Moderation page when they are flagged as fraudulent. The menu item for the Payment Moderation page will have a number next to it indicating how many items are being held for moderation, as seen in the screenshot on the right.

Moderation List

The moderation list, as seen above, tells us these things about each payment:

  • Payment ID
  • Email address of the customer (with link to View/Edit)
  • Total Payment Amount
  • Number of reasons it was flagged
  • Payment date
  • Customer (with link to view the customer record)
  • Payment status

Clicking the View/Edit link under the email field (on mouse hover) takes you to the screen for managing the payment.

Processing a Payment in Moderation

The Payment screen for a payment held in moderation is exactly like any other payment, except for the Fraud Monitor box in the top right corner (seen here to the right).

In the Fraud Monitor box, you can see a list of reasons this payment was marked fraudulent and actions you can take.

At the top of the box you have the Remove this flag with no further action link, which basically removes the “fraud” label of that payment so it will no longer show in the Payment Moderation area. Using this action does not change the status of the purchase, which will still be Pending Review.

Accept as Valid

Clicking Accept as Valid simply removes it from the Payment Moderation area and it once again is a normal payment.

This also finishes the transaction by sending a receipt and the proper emails.

Confirm as Fraud

Clicking “Confirm as Fraud” opens a small interface for choosing a way to mark the payment, as seen here on the right. The options are

  • Refunded
  • Revoked
  • Deleted
Refunded
If the payment gateway used for the payment supports refunds, the refund will happen automatically. Otherwise it will have to be done manually after choosing this setting.
Revoked
This does not attempt a refund, but prevents the product from being downloaded.
Deleted
This option simply deletes the payment entirely. Payment fraud is very serious; if you choose this option, make sure the matter was resolved in some way.

The post Fraud Monitor – Payment Moderation first appeared on Easy Digital Downloads.

]]>
Software Licensing API – Example using Perl https://easydigitaldownloads.com/docs/software-licensing-api-example-using-perl/ Mon, 24 Jan 2022 19:56:22 +0000 https://edd-site.lndo.site/docs/software-licensing-api-example-using-perl/ This document is a subset of the Software Licensing API document which lists all features available via the API. The following is example code showcasing how to implement those features with Perl. Request use strict; use warnings; use LWP::UserAgent; use CGI; my $edd_action = 'check_license'; # Valid actions are activate_license, deactivate_license, get_version, check_license my $license

The post Software Licensing API – Example using Perl first appeared on Easy Digital Downloads.

]]>
This document is a subset of the
Software Licensing API document which lists all features available via the API. The following is example code showcasing how to implement those features with Perl.

Request

use strict;
use warnings;

use LWP::UserAgent;
use CGI;

my $edd_action = 'check_license'; # Valid actions are activate_license, deactivate_license, get_version, check_license
my $license    = '';
my $item_name  = '';
my $url        = 'example.org'; # If you have disabled URL checking in the settings, you do not need this value

my $api = 'http://domain.com/';

my $ua       = LWP::UserAgent->new();
my $response = $ua->post( $api, { 'edd_action' => $edd_action, 'license' => $license, 'item_name' => $item_name, 'url' => $url } );
my $content  = $response->decoded_content();

my $cgi = CGI->new();
# This prints the resposne from the API, you'll need to validate the data from there using the
# HTTP status headers and the `success` response from the API
print $content;

Response

A response to the above query would be a JSON formatted string that would look something like this:

{
	"license": "valid",
	"item_name": "EDD Product name",
	"expires": "2014-10-23 00:00:00",
	"payment_id": 54224,
	"customer_name": "John Doe",
	"customer_email": "john@sample.com"
}

The post Software Licensing API – Example using Perl first appeared on Easy Digital Downloads.

]]>
Commissions – Reports https://easydigitaldownloads.com/docs/commissions-reports/ Mon, 24 Jan 2022 19:56:21 +0000 https://edd-site.lndo.site/docs/commissions-reports/ With the Commissions extension, Easy Digital Downloads keeps track of what commissions are paid, and when. You can access this data in the Commissions Report and make educated decisions about your store based on that data.   Reports for all commissions are found under Downloads > Reports > Commissions. The report can be filtered using the

The post Commissions – Reports first appeared on Easy Digital Downloads.

]]>
With the Commissions extension, Easy Digital Downloads keeps track of what commissions are paid, and when. You can access this data in the Commissions Report and make educated decisions about your store based on that data.  

Reports for all commissions are found under Downloads > Reports > Commissions. The report can be filtered using the filter options above the report.

Reporting Shortcodes

Below are four shortcodes that can render reports to individual logged in users.  The screenshot below shows what they render.

  • [edd_commissions_overview] renders a grid of unpaid earnings, paid earnings, revoked rarnings, unpaid sales, paid sales, and revoked sales.
  • [edd_commissions_graph] renders a chart showing earnings and sales, filterable by date.
  • [edd_commissioned_products] renders of a list of the vendor’s items with the number of sales.
  • [edd_commissions] renders unpaid commissions, listing item, amount, rate, and date.

The post Commissions – Reports first appeared on Easy Digital Downloads.

]]>
Integration Guide: Commissions and Simple Shipping https://easydigitaldownloads.com/docs/integration-guide-commissions-and-simple-shipping/ Mon, 24 Jan 2022 19:56:20 +0000 https://edd-site.lndo.site/docs/integration-guide-commissions-and-simple-shipping/ You can integrate the Commissions extension and the Simple Shipping extension so that Shipping fees are paid out as Commissions. This way, if a vendor in your online store is earning commissions on a shippable product and they are the person shipping that item, you can make sure they receive the shipping fee. This way

The post Integration Guide: Commissions and Simple Shipping first appeared on Easy Digital Downloads.

]]>
You can integrate the Commissions extension and the Simple Shipping extension so that Shipping fees are paid out as Commissions. This way, if a vendor in your online store is earning commissions on a shippable product and they are the person shipping that item, you can make sure they receive the shipping fee. This way they can use the Shipping fee to actually ship the item to the customer and not pay out of pocket.

When setting up your shippable product, locate the “Commissions” metabox, and you will see options for how shipping fees should be split up. 

Available settings in product for splitting shipping fees:

Note: for any of the following Shipping-Split settings to be used, you must be using “Percentage” as the Commission Type. Flat Rate Commissions will not split up shipping fees.

– Use Site-Wide Default.

This option will split the Shipping fees based on the setting you’ve chosen in Downloads →Settings → Extensions → Commissions

– Split based on rate.

This option will use the commission rates in the product to split the Shipping fees among Vendors/Receivers. For example, if a Vendor/Receiver has a commission rate of 50%, they will earn 50% of the shipping fee as well. 

– Pay to 1st user.

If a specific Vendor is actually shipping the product, use this option. This option will pay the entire shipping fee to the first person listed in the “User(s)” field. While the commissions for the product’s price will still be split up based on the Rate(s), the Shipping fee will be paid entirely to the first listed Vendor/Receiver. If 1 person is shipping the item and you want them to get the entire shipping fee, make sure they are first in the User(s) field. Note that the Frontend Submissions extension will put the vendors in the User(s) field first for items submitted by that Vendor. 

– Pay to store. 

If the store (you) is shipping the item, use this option. You (the store) will get the entire shipping fee so you can use it to actually pay for shipping fees.

Site-Wide defaults for Shipping Fee split options with Commissions:

The Commissions extension has default settings which will be used by ship-able products which have the “Shipping” set to “Use Site-Wide Default”. You can find those by navigating to Downloads → Settings → Extensions → Commissions

These are the available options and what they mean:

– Split Shipping according to rates in product.

Choosing this option will cause Shipping Fees to be split using the Commission rates set up in the product in the “Rate(s)” field. Again, this option will only be used if the product being purchased is set to “Use Site-Wide Default” for the Commissions → Shipping option. Otherwise it will use the chosen setting in the actual product’s settings.

– Pay Shipping to 1st receiver in product.

If a specific Vendor is actually shipping the product, use this option. This option will pay the entire shipping fee to the first person listed in the “User(s)” field. While the commissions for the product’s price will still be split up based on the Rate(s), the Shipping fee will be paid entirely to the first listed Vendor/Receiver. If 1 person is shipping the item and you want them to get the entire shipping fee, make sure they are first in the User(s) field. Note that the Frontend Submissions extension will put the vendors in the User(s) field first for items submitted by that Vendor. Again, this option will only be used if the product being purchased is set to “Use Site-Wide Default” for the Commissions > Shipping option. Otherwise it will use the chosen setting in the actual product’s settings.

– Shipping Fee paid to store

If the store (you) is shipping the item, use this option. You (the store) will get the entire shipping fee so you can use it to actually pay for shipping fees. Again, this option will only be used if the product being purchased is set to “Use Site-Wide Default” for the Commissions → Shipping option. Otherwise it will use the chosen setting in the actual product’s settings.

The post Integration Guide: Commissions and Simple Shipping first appeared on Easy Digital Downloads.

]]>
Store Hours https://easydigitaldownloads.com/docs/store-hours/ Mon, 24 Jan 2022 19:56:19 +0000 https://edd-site.lndo.site/docs/store-hours/ The EDD Store Hours extension provides a complete solution to managing your hours of operation on an Easy Digital Downloads site. Once the extension is installed and activated you can navigate to Downloads → Settings → Extensions → Store Hours in order to adjust settings. General Settings You can select whether your store is open

The post Store Hours first appeared on Easy Digital Downloads.

]]>
The EDD Store Hours extension provides a complete solution to managing your hours of operation on an Easy Digital Downloads site.

Once the extension is installed and activated you can navigate to Downloads → Settings → Extensions → Store Hours in order to adjust settings.

General Settings

You can select whether your store is open as well as set hours of operation for each day of the week. You can also choose to close the store immediately and override the daily settings/schedule.

Display Settings

Hide Purchase Buttons: This allows you to remove purchase buttons on your site completely when the store is “closed”.

Closed Button Label: If you’re not hiding the purchase buttons, this area allows you to set a custom message which will display in place of the purchase button while the store is “closed”. 5 template tags are available to use along with custom text (see image above).

Admin Bar Notification: When selected there will be a “Store Closed” notification added to the WordPress admin bar.

The post Store Hours first appeared on Easy Digital Downloads.

]]>
Themedd – Activating the license key https://easydigitaldownloads.com/docs/themedd-activating-the-license-key/ Mon, 24 Jan 2022 19:56:18 +0000 https://edd-site.lndo.site/docs/themedd-activating-the-license-key/ Your license key for Themedd grants you access to theme updates and support. If your license key is deactivated or expired, your theme will work properly but you will not receive automatic updates. Activating your license key  Locate your license key. This can be found from the purchase confirmation page or from your purchase receipt email after

The post Themedd – Activating the license key first appeared on Easy Digital Downloads.

]]>
Your license key for Themedd grants you access to theme updates and support. If your license key is deactivated or expired, your theme will work properly but you will not receive automatic updates.

Activating your license key 

  1. Locate your license key. This can be found from the purchase confirmation page or from your purchase receipt email after purchase. You can also find the license key on your account page.
  2. Go to AppearanceThemedd License.
  3. In the License Key input field, enter your license key.
  4. Click Save License Key Changes.
  5. Once the page refreshes, click Activate License.

Note: Please contact 
support if you have issues activating your license key.

The post Themedd – Activating the license key first appeared on Easy Digital Downloads.

]]>
Per Product Notifications https://easydigitaldownloads.com/docs/per-product-notifications/ Mon, 24 Jan 2022 19:56:17 +0000 https://edd-site.lndo.site/docs/per-product-notifications/ The Per Product Notifications extension allows sales notifications to get sent to additional email addresses on a per product basis. Once the extension is installed and activated, you’ll see a new area in the right column titled Email Notifications when creating/editing a Download. This allows you to define additional email addresses here (one per line)

The post Per Product Notifications first appeared on Easy Digital Downloads.

]]>
The Per Product Notifications extension allows sales notifications to get sent to additional email addresses on a per product basis. Once the extension is installed and activated, you’ll see a new area in the right column titled Email Notifications when creating/editing a Download.

This allows you to define additional email addresses here (one per line) that should receive sale notifications anytime a product is sold.

The post Per Product Notifications first appeared on Easy Digital Downloads.

]]>
Reviews – FAQ and Troubleshooting https://easydigitaldownloads.com/docs/reviews-faq-and-troubleshooting/ Mon, 24 Jan 2022 19:56:16 +0000 https://edd-site.lndo.site/docs/reviews-faq-and-troubleshooting/ This document goes over some of the frequently asked questions and troubleshooting tips for the EDD Reviews extension for Easy Digital Downloads. FAQ and Troubleshooting: Do users need to be logged in in order to post a review?If the Reviews setting “Enable Guest Reviews” is checked, any visitor can leave a review. Can I change

The post Reviews – FAQ and Troubleshooting first appeared on Easy Digital Downloads.

]]>
This document goes over some of the frequently asked questions and troubleshooting tips for the EDD Reviews extension for Easy Digital Downloads.

FAQ and Troubleshooting:

Do users need to be logged in in order to post a review?
If the Reviews setting “Enable Guest Reviews” is checked, any visitor can leave a review.

Can I change where Reviews are shown on the page?
By default reviews will be shown directly beneath the “content” (which is the main text area of your product). You cannot move them without doing some custom development in your theme. Note that custom development isn’t provided by Easy Digital Downloads; please visit our Codeable page for more details on customizing EDD and/or the Reviews extension.

Does the Reviews Extension integrate with Google Reviews?
The Reviews extension automatically integrates with Google’s search results so your search results with product listings will show the review data.

The post Reviews – FAQ and Troubleshooting first appeared on Easy Digital Downloads.

]]>
User History Extension Documentation https://easydigitaldownloads.com/docs/user-history-extension-documentation/ Mon, 24 Jan 2022 19:56:15 +0000 https://edd-site.lndo.site/docs/user-history-extension-documentation/ The User History extension makes it easy to review and then optimize visitor paths, taking the guesswork out of improving your sales process and increasing conversions, as well as displaying purchase history. Setup There is no setup or configuration needed after the User History extension has been installed and activated. The additional information provided by

The post User History Extension Documentation first appeared on Easy Digital Downloads.

]]>
The User History extension makes it easy to review and then optimize visitor paths, taking the guesswork out of improving your sales process and increasing conversions, as well as displaying purchase history.

Setup

There is no setup or configuration needed after the User History extension has been installed and activated. The additional information provided by the User History extension is located in the Payment History → View Order Details screen.

Usage

To view the additional user history details created by this extension, navigate to Downloads → Payment History and then click View Order Details on an order you’d like to see user history on.

Once on the payment screen, scroll toward the bottom and you’ll see a “Customer Browsing History” and “Customer Purchase History” area which contains the details of that user’s purchase history and browsing history prior to that particular purchase.

The post User History Extension Documentation first appeared on Easy Digital Downloads.

]]>
Reviews – Administration https://easydigitaldownloads.com/docs/reviews-administration/ Mon, 24 Jan 2022 19:56:14 +0000 https://edd-site.lndo.site/docs/reviews-administration/ Reviews may all be seen in the WordPress admin area under Downloads → Reviews. This document will walk you through the available actions you can perform from this screen. Overview In the above screenshot, there are three reviews listed. Each row contains: The name of the reviewer Their email address The content of their review

The post Reviews – Administration first appeared on Easy Digital Downloads.

]]>
Reviews may all be seen in the WordPress admin area under Downloads → Reviews. This document will walk you through the available actions you can perform from this screen.

Overview

In the above screenshot, there are three reviews listed. Each row contains:

  • The name of the reviewer
  • Their email address
  • The content of their review
  • What Download the review pertains to with a link to that download and the number of reviews that exist for it
  • The date the review was created

Note: In the screenshot above, the first item says “In reply to Bob”. That row is not considered a Review, but rather a reply to a review. The link on Bob’s name goes to the reply on the public facing product page.

Managing/Approving Reviews

Sidenote about Review statuses: Reviews will require (or not require) approval the same way general WordPress comments do. You can control whether WordPress comments require approval under Dashboard → Settings → Discussion → “Before a comment appears”. Whatever you choose there will also be used for EDD Reviews. 

If you hover over any reviewer information, you’ll see the options to Unapprove, Edit, Spam, or Trash. All reviews are sent through the same filters WordPress uses for comments, and the status will be set accordingly. Marking a review as Unapproved removes it from the front of the site, but does not delete the review.

Marking a review as Spam puts it into the Spam folder, and marking it as Trash puts it into the Trash folder, just like comments or posts.

Editing allows you to change the name, email, url, and content of the review. You may also change the status to Approved, Pending, or Spam, and also Trash the review.

Download Admin Page

On the admin page for each individual Download, you may close or disable reviews for that specific Download. In the right sidebar you’ll find a meta box titled Review Status with a button for Disabling and a button for Closing. Disabling reviews will not show any reviews whatsoever. Closing reviews will display any existing reviews, but prevent new reviews from being submitted.

Additionally, on single Download admin pages you can manage all the reviews for that Download. You can view, unapprove, edit, spam, and trash any review. it also shows how many stars the Download got for each review.

The post Reviews – Administration first appeared on Easy Digital Downloads.

]]>
Commissions – Rate Calculations https://easydigitaldownloads.com/docs/commissions-rate-calculations/ Mon, 24 Jan 2022 19:56:13 +0000 https://edd-site.lndo.site/docs/commissions-rate-calculations/ As the complexities of your store grow it can be confusing how much is actually getting paid to whom. This document will try to clarify what’s going on in a variety of scenarios with the EDD Commissions extension. Calculation Base A key element in understanding how money is divided is the Calculation Base setting in

The post Commissions – Rate Calculations first appeared on Easy Digital Downloads.

]]>
As the complexities of your store grow it can be confusing how much is actually getting paid to whom. This document will try to clarify what’s going on in a variety of scenarios with the EDD Commissions extension.

Calculation Base

A key element in understanding how money is divided is the Calculation Base setting in the settings area for the Commissions extension.

Single Vendor

First we’re going to look at scenarios where there is a single vendor. This will help understand the sequence of events.

Let’s make up a scenario where there is a product for $100, and the Vendor gets 10%.

Subtotal (default)

If we choose Subtotal (default) then 

  • the store owner will get $90 
  • the Vendor will get $10.

Now let’s throw in a discount of 10%. With Subtotal (default)

  • the store owner only gets $80. 
  • the Vendor still gets $10

In this scenario the Vendor did not help cover some of the expense of the discount.

Total without Taxes

Using Total without Taxes and having no discount, it’s the same as our first scenario

  • the store owner will get $90
  • the Vendor will get $10. 

Now if we add in the 10% Discount, the Vendor will help carry that load. The total is reduced to $90 before being divided up

  • The store owner will get $81
  • the Vendor will get $9.

Total with Taxes

With this option we’ll still assume there is a product for $100, and the Vendor gets 10%, but now we’ll add in a 10% tax. This makes our total $110.

  • the store owner will get $99
  • the Vendor will get $11

Now let’s add in a 10% discount. This brings the total down to $99. 

  • the the store owner will get $89.10
  • the Vendor will get $9.90

Multiple Vendors, One Product

It’s possible to have one product with more than one vendor. In this case we’ll look at two vendors, each with a different commission rate.

Note: it’s important to understand two things.

  • Both vendors take their percentage from the same amount, so the order in which they process doesn’t matter.
  • Multi vendor processing takes place at the same point in the overall process as it does when there’s only a single vendor, so the relationship to totals, subtotals, and taxes is the same as when there’s a single vendor. 

To have a Download have more than one vendor with more than one vendor you’ll want to find the Commission metabox on the admin page for a Download. Users are comma separated and you’ll need to put in their WordPress user IDs. Rates are also comma separated, in the same order as the WordPress users.

Let’s make a scenario with a single Download for $100, but use the example in the screenshot, one vendor gets 10% and the other gets 5%.

Subtotal (default)

If we choose  Subtotal (default) calculation base then 

  • the store owner will get $85 
  • the first vendor will get $10
  • the second vendor will get $5

Now let’s throw in a discount of 10%. With  Subtotal (default)

  • the store owner only gets $75. 
  • the first vendor still gets $10
  • the second vendor still gets $5

In this scenario the vendors did  not help cover some of the expense of the discount.

Total without Taxes

Using  Total without Taxes and having no discount, it’s the same as our first scenario

  • the store owner will get $85
  • the first vendor will get $10. 
  • the second vendor will get $5

Now if we add in the 10% Discount, the Vendor will help carry that load. The total is reduced to $90 before being divided up. 

  • The store owner will get $76.50
  • the first vendor will get $9.
  • the second vendor will get $4.50

Total with Taxes

With this option we’ll still assume there is a product for $100, but now we’ll add in a 10% tax. This makes our total $110.

  • the store owner will get $93.50
  • the first vendor will get $11
  • the second vendor will get $5.50

Now let’s add in a 10% discount. This brings the total down to $99. 

  • the the store owner will get $84.15
  • the first vendor will get $9.90
  • the second vendor will get $4.95

Multiple Products

When dealing with multiple products, when working to calculate the totals, do the math on each product individually, using the formulas above. Then you can simply add the totals from the various products together to get the values you need.

The post Commissions – Rate Calculations first appeared on Easy Digital Downloads.

]]>
Reviews – Widgets https://easydigitaldownloads.com/docs/reviews-widgets/ Mon, 24 Jan 2022 19:56:13 +0000 https://edd-site.lndo.site/docs/reviews-widgets/ Reviews comes with three widgets, allowing you to showcase a specific review, show recent reviews from across the store, and show recent reviews for a single product. EDD Featured Review This widget allows you to select a single review from any Download and show it in a widget. Here’s a screenshot of the admin interface:

The post Reviews – Widgets first appeared on Easy Digital Downloads.

]]>
Reviews comes with three widgets, allowing you to showcase a specific review, show recent reviews from across the store, and show recent reviews for a single product.

EDD Featured Review

This widget allows you to select a single review from any Download and show it in a widget. Here’s a screenshot of the admin interface:

The output includes the widget title, review title, reviewer name, product title, review full text, and the date of the review.

EDD Reviews

This widget renders recent reviews.  You may provide a number to limit how many reviews display. Admin screenshot:

The output lists the name of the reviewer and a link to the the download.

EDD Per Product Reviews

This widget is similar to EDD Reviews but only renders reviews for a single Download, and only shows on the page for that Download. Admin interface:

The output shows all reviews for the Download (or the number you chose, if you entered one) and contains the number of stars in the review, the title of the review, and the name of the reviewer.

The post Reviews – Widgets first appeared on Easy Digital Downloads.

]]>
EDD Favorites https://easydigitaldownloads.com/docs/edd-favorites/ Mon, 24 Jan 2022 19:56:11 +0000 https://edd-site.lndo.site/docs/edd-favorites/ The EDD Favorites extension for Easy Digital Downloads is a plugin for EDD Wish Lists that allows your customers to “favorite” downloads. With 1 click a user can instantly add, or remove, a download from their favorites. Note: EDD Favorites requires the EDD Wish Lists extension to be installed and activated. Setup After you have

The post EDD Favorites first appeared on Easy Digital Downloads.

]]>
The EDD Favorites extension for Easy Digital Downloads is a plugin for EDD Wish Lists that allows your customers to “favorite” downloads. With 1 click a user can instantly add, or remove, a download from their favorites.

Note: EDD Favorites requires the EDD Wish Lists extension to be installed and activated.

Setup

After you have installed and activated the EDD Favorites extension, you can find the settings area by navigating to Downloads → Settings → Main.

Favorites Page: This is the page where users will view their Favorites. It can be any page of your choosing as long as it contains the [edd_favorites] shortcode.

Favorites Edit Page: This is the page where users will be able to edit their Favorites List. It can be any page of your choosing as long as it contains the [edd_favorites_edit] shortcode.

Favorites Text: This is the text that will display on the front-end of the website on each Download to allow the user to add it to their Favorites.

Usage

Once activated, the Favorites buttons will show by default on all Downloads.

Note: The button appearance along with the icon are determined through the EDD Wish Lists settings area.

Once an item as been added as a Favorite it will be available through the “Favorites” page that is set in the general settings area mentioned above.

From this screen, the user can add the Favorite item to their cart, remove the Favorite, as well as navigate to their Favorites settings area by clicking “Edit Settings”

This page is available through the “Edit Settings” link on the Favorites page, and this is the same area the user will see if visiting the “Favorites Edit Page” that’s setup through the general settings mentioned above.

From this page the user has the ability to rename their Favorites list, add a description, choose whether the list is public or private, as well as delete their favorites if needed.

The post EDD Favorites first appeared on Easy Digital Downloads.

]]>
EDD Purchase Gravatars https://easydigitaldownloads.com/docs/edd-purchase-gravatars/ Mon, 24 Jan 2022 19:56:10 +0000 https://edd-site.lndo.site/docs/edd-purchase-gravatars/ The Purchase Gravatars extension for Easy Digital Downloads allows you to display your customer’s Gravatars on the product page after they have completed a purchase. Configuring Purchase Gravatars After the extension has been installed and activated go to WordPress admin → Downloads → Settings → Extensions → Purchase Gravatars and configure the display settings. Next

The post EDD Purchase Gravatars first appeared on Easy Digital Downloads.

]]>
The Purchase Gravatars extension for Easy Digital Downloads allows you to display your customer’s Gravatars on the product page after they have completed a purchase.

Configuring Purchase Gravatars

After the extension has been installed and activated go to WordPress admin → Downloads → Settings → Extensions → Purchase Gravatars and configure the display settings.

Next you’ll go to WordPress admin → Downloads → All Downloads and select the Download(s) you want your customers Gravatars to be displayed for.

Add the [edd_purchase_gravatars] shortcode to the product description text box and click Update.

Alternately you can use the EDD Purchase Gravatars widget to display the images.

The post EDD Purchase Gravatars first appeared on Easy Digital Downloads.

]]>
Social Discounts Setup https://easydigitaldownloads.com/docs/social-discounts-setup/ Mon, 24 Jan 2022 19:56:09 +0000 https://edd-site.lndo.site/docs/social-discounts-setup/ The Social Discounts extension for Easy Digital Downloads detects if a user has shared or liked your product, then a discount is instantly applied, and a customizable thank you title and message is shown; all without the page refreshing. Setup After you have installed and activated the Social Discounts extension, navigate to Downloads → Settings

The post Social Discounts Setup first appeared on Easy Digital Downloads.

]]>
The Social Discounts extension for Easy Digital Downloads detects if a user has shared or liked your product, then a discount is instantly applied, and a customizable thank you title and message is shown; all without the page refreshing.

Setup

After you have installed and activated the Social Discounts extension, navigate to Downloads → Settings → Extensions → Social Discounts. You’ll first want to select the social networks you’d like people to share to, and then select your discount code. By not selecting a discount code, you can use it as a simple sharing tool.

Usage

  1. Navigate to Downloads → Discount Codes and create a discount code that you want applied when someone shares
  2. Select the Social Services to Enable you want users to be able to share on.
  3. Select how you want the social sharing to appear by choosing a Display Sharing Services option. The short-code will work regardless of the setting if you want to place share on other page(s) on your site.
  4. Select the discount code you want to use.
  5. Configure messaging and appearance.

Note: Social Discount codes cannot be used at the same time as other discount codes for a single checkout. If your customers already have a discount code for some reason, they will have to choose whether to use their existing discount code or the one automatically applied through the Social Discounts extension.

Note on Twitter: On November 20th 2015 Twitter changed the way the “Tweet” button works. As a result, the discount is now applied when the “Tweet” button is clicked (not when the tweet is published).

Usage/Modifications

The Social Discounts extension for Easy Digital Downloads has available filters, shortcodes, etc that can be used for a more customized experience.

CSS Syling

A .shared CSS class is added dynamically to the wrapping HTML div when a product is shared. This will allow you to style the “thanks” title and message to make it more obvious that the product was shared and the user should should add the product to their cart, or proceed to checkout.

Filters

The following filters are available to developers when the Social Discounts extension is activated:

edd_social_discounts_classes

edd_social_discounts_share_title

edd_social_discounts_share_message

edd_social_discounts_facebook_share_button

edd_social_discounts_share_box

Shortcodes

With Social Discounts, by default the sharing buttons will be shown automatically after the content on all your products. By using the included shortcode you can fine tune the placement on a per product basis, or even include the sharing buttons on posts and/or pages.

Default usage

[edd_social_discount]

Advanced usage

The shortcode accepts an “id” parameter. This could be the ID another post, page or product. Extremely useful for when you want to share a product, from an entirely different page. If you want to share the current product/post/page that the shortcode is on, you do not need to include the ID parameter.

[edd_social_discount id="50"]

If you’re using the ID parameter above, chances are you’ll want to also customize the sharing title and message. You can use the “title” and “message” parameters like this:

[edd_social_discount id="50" title="Share my awesome product!" message="Share my awesome product and you'll receive a discount at checkout."]

Custom Tweet message:

[edd_social_discount tweet="This is a custom message for the twitter sharing button"]

Add Shortcode to Checkout

When a customer lands on your checkout page they have shown a desire in purchasing from you. This is a perfect opportunity to offer them a discount on their order in exchange for a social share with Social Discounts.

Although adding an ID parameter to the shortcode can share a specific post/page/download, if you don’t use the ID parameter, it will share the current page. This is not ideal in situations like this, where we want to share the site URL, not the URL to the checkout page.

This small code snippet will show you how to change the share URL conditionally, and share the site URL, not the checkout page.

<?php
/**
 * Change share URL conditionally
 */
function sumobi_edd_sd_change_share_url( $url ) {

	// change the URL to share only on the checkout page
	if ( function_exists( 'edd_is_checkout' ) && edd_is_checkout() ) {
		$url = site_url(); // the URL of your website
	}
	
	return $url;
}
add_filter( 'edd_social_discounts_share_url', 'sumobi_edd_sd_change_share_url' );

The post Social Discounts Setup first appeared on Easy Digital Downloads.

]]>
Simple Shipping FAQ https://easydigitaldownloads.com/docs/simple-shipping-faq/ Mon, 24 Jan 2022 19:56:08 +0000 https://edd-site.lndo.site/docs/simple-shipping-faq/ These are common questions related to the EDD Simple Shipping extension. Does Simple Shipping integrate with my preferred shipping company? No, Simple Shipping doesn’t integrate with any shipping company. It simply collects the shipping location address and then the store owner is responsible for all shipping details. Can I have variable shipping costs by weight?

The post Simple Shipping FAQ first appeared on Easy Digital Downloads.

]]>
These are common questions related to the EDD Simple Shipping extension.

Does Simple Shipping integrate with my preferred shipping company?

No, Simple Shipping doesn’t integrate with any shipping company. It simply collects the shipping location address and then the store owner is responsible for all shipping details.

Can I have variable shipping costs by weight?

No, Simple Shipping is flat rate only.

Can I have variable shipping costs by size?

No, Simple Shipping has no mechanism for dealing with product size.

Can I have variable shipping costs by distance?

No, Simple Shipping is flat rate only (other than a separate rate for “Domestic” or “International”).

Can I charge a different rate for domestic and international shipping?

Yes, a single flat rate for domestic and a single flat rate for international.

Can Vendors set Shipping rates through Front End Submissions?

Yes. Read more in the Frontend Submissions Integration Guide.

Are shipping fees included in tax?

No.

Can products be “combined” so they are shipped in the same package?

No. This is something that has been discussed but decided it won’t be a feature that ever gets added to the Simple Shipping extension. That feature is what would take it from being a “Simple” shipping plugin to being a “Complicated” shipping plugin – and we want it to remain “Simple” to set up and use. The amount of scenarios that would need to be considered are absolutely enormous.

For a hypothetical example, you could have a car and a microwave being shipped in the same purchase. While they could fit into a very large box together, you wouldn’t necessarily just throw them into the same box. You’d need to make sure both were secure – and shipping a microwave with a car is very different from shipping one on its own. Additionally, the plugin wouldn’t know that a car is very heavy unless we also added a “weight” setting (one more level of complication for the user). We would then need to give you options to say that “if an object is heavier than X, it can’t be shipped with other items”.

Now instead, say the person was buying a microwave and a pair of headphones. They might fit into the same box and probably not increase the cost of shipping (over the cost of shipping the microwave). But say instead of buying headphones they bought a heavy brick (maybe they are collectors of bricks) the same size and shape as the headphone box. This would cost more to ship because it is heavier. The system would now need to add up the weight of the brick and the microwave to do a proper estimate of the cost of shipping the items together.

Now consider the size and shape of items as well. Say the user was buying headphones and a 2x4x8 piece of wood. These would not make sense to ship together since one is very long and the other is not. They would not simply fit into the same box easily – unless you defined the size and shape of boxes that you have “on-hand” as the shipper. This would then add more complication as you would need to enter all of your box-size possibilities.

Then there are also items that don’t have a solid width or height – like tshirts. You could fit 1 shirt into an envelope. You might even be able to fit 4 shirts into an envelope. But how do you know when you can’t fit any more shirts into an envelope? The system isn’t able to guess this and would require you to define “flexible” packaging (like envelopes that can “flex” in size) – but then let it know when to “max out”. You’d have to say “the envelope can only hold 4 shirts but not 5”. How you would say that would require a plethora of new options that would be difficult to understand.

Now imagine the person is buying 5 t-shirts and 16 pieces of paper. How many of those things combined could fit into a single envelope? Defining the way those combine becomes doubly as complex. As you add more and more different types of products, the complications increase exponentially.

The post Simple Shipping FAQ first appeared on Easy Digital Downloads.

]]>
Custom Deliverables – Frontend Submissions Integration https://easydigitaldownloads.com/docs/custom-deliverables-frontend-submissions-integration/ Mon, 24 Jan 2022 19:56:08 +0000 https://edd-site.lndo.site/docs/custom-deliverables-frontend-submissions-integration/ This document explains how the integration with EDD Custom Deliverables and EDD Frontend Submissions works. Vendor Dashboard Instructions Vendors (from Frontend Submissions) can deliver customized files to their customers. Note: If you want your Vendors to be notified when one of their products sells, you need to use the Commissions extension, which also lets you split

The post Custom Deliverables – Frontend Submissions Integration first appeared on Easy Digital Downloads.

]]>
This document explains how the integration with EDD Custom Deliverables and EDD Frontend Submissions works.

Vendor Dashboard Instructions

Vendors (from Frontend Submissions) can deliver customized files to their customers.

Note: If you want your Vendors to be notified when one of their products sells, you need to use the Commissions extension, which also lets you split the profits from a sale with the Vendor.

Instructions for Vendors:

1. Log into the Vendor Dashboard
2. Click on “Orders”.
3. Find the order in question and click “View”.
4. Under “Custom Deliverables”, upload the file you’ve customized for the customer.
5. Click “Save Custom Deliverables”.
6. Use the “Notify Customer” tool to send an email to the customer, notifying them that their files are ready to download.

The post Custom Deliverables – Frontend Submissions Integration first appeared on Easy Digital Downloads.

]]>
Software Licensing API – Example using Ruby https://easydigitaldownloads.com/docs/software-licensing-api-example-using-ruby/ Mon, 24 Jan 2022 19:56:07 +0000 https://edd-site.lndo.site/docs/software-licensing-api-example-using-ruby/ This document is a subset of the Software Licensing API document which lists all features available via the API. The following is an example code showcasing how to implement those features with Ruby. Request require 'net/http' uri = URI('http://domain.com/') req = Net::HTTP::Post.new(uri) edd_action = 'check_license' # Valid actions are activate_license, deactivate_license, get_version, check_license license =

The post Software Licensing API – Example using Ruby first appeared on Easy Digital Downloads.

]]>
This document is a subset of the
Software Licensing API document which lists all features available via the API. The following is an example code showcasing how to implement those features with Ruby.

Request

require 'net/http'

uri = URI('http://domain.com/')
req = Net::HTTP::Post.new(uri)

edd_action = 'check_license' # Valid actions are activate_license, deactivate_license, get_version, check_license
license    = ''
item_name  = ''
url        = 'example.org' # If you have disabled URL chaecking in the settings, you do not need this

req.set_form_data('edd_action' => edd_action, 'license' => license, 'item_name' => item_name, 'url' => url)

res = Net::HTTP.start(uri.hostname, uri.port) do |http|
  http.request(req)
end

case res
when Net::HTTPSuccess, Net::HTTPRedirection
  # check res.code for a 200 response, and then the response from the Software Licenseing API
  # will be located in res.body as a string of JSON
  puts res.body
else
  res.value
end

Response

A response to the above query would be a JSON formatted string that would look something like this:

{
	"license": "valid",
	"item_name": "EDD Product name",
	"expires": "2014-10-23 00:00:00",
	"payment_id": 54224,
	"customer_name": "John Doe",
	"customer_email": "john@sample.com"
}

The post Software Licensing API – Example using Ruby first appeared on Easy Digital Downloads.

]]>
Frontend Submissions – Product Moderation and Approval https://easydigitaldownloads.com/docs/frontend-submissions-product-moderation-and-approval/ Mon, 24 Jan 2022 19:56:05 +0000 https://edd-site.lndo.site/docs/frontend-submissions-product-moderation-and-approval/ With Frontend Submissions the site owner can allow Vendors to add new products freely without review, or the site owner can require that each submission be held for moderation. Moderation If the Frontend Submissions settings are set to require admin approval for uploads then the product will show in the Vendor dashboard under Products, but

The post Frontend Submissions – Product Moderation and Approval first appeared on Easy Digital Downloads.

]]>
With Frontend Submissions the site owner can allow Vendors to add new products freely without review, or the site owner can require that each submission be held for moderation.

Moderation

If the Frontend Submissions settings are set to require admin approval for uploads then the product will show in the Vendor dashboard under Products, but not on the front end of the site. This setting can be enabled or disable by navigating to EDD FES → Settings → Permissions.

When a Vendor submits a product, an email is sent to the site admin and the product is inserted into the database as Pending.

Here’s an example of a Pending product and some approved/live products.

Approval

If product uploads are set to be moderated, the store admin will need to navigate to Downloads → All Downloads to approve them.

Here’s an example:

To approve the product, hover over the product name and click Approve, OR edit the product and change its status to “Publish”.

Decline

When a product is pending review, place the product in Trash to Decline the submission of that product. The vendor will receive the Submission Declined email, if it’s enabled.

Revoke

To revoke a Vendor’s approved product, place the product in the Trash and it will be revoked. The vendor will receive the Submission Revoked email, if it’s enabled.

The post Frontend Submissions – Product Moderation and Approval first appeared on Easy Digital Downloads.

]]>
Reviews – FES Integration https://easydigitaldownloads.com/docs/reviews-fes-integration/ Mon, 24 Jan 2022 19:56:03 +0000 https://edd-site.lndo.site/docs/reviews-fes-integration/ Reviews is fully integrated with Frontend Submissions. If customers buy a vendor’s product, they can leave feedback for the vendor from their Purchase History. Feedback results are available to the shop owner and vendors only; customers will not be able to view feedback results. Enabling vendor feedback When you install the Reviews extension, if you

The post Reviews – FES Integration first appeared on Easy Digital Downloads.

]]>
Reviews is fully integrated with Frontend Submissions. If customers buy a vendor’s product, they can leave feedback for the vendor from their Purchase History. Feedback results are available to the shop owner and vendors only; customers will not be able to view feedback results.

Enabling vendor feedback

When you install the Reviews extension, if you already have Frontend Submissions installed, the installation procedure will automatically create a Vendor Feedback page with the content set as [edd_reviews_vendor_feedback] which is a WordPress Shortcode. This shortcode displays the vendor feedback form when a user visits the page.

If you install Frontend Submissions after Reviews has been activated, you will need to manually create the Vendor Feedback page:

  1. Create a new page from the WordPress Dashboard
  2. Set your title accordingly (e.g. Vendor Feedback)
  3. Set the content as [edd_reviews_vendor_feedback]
  4. Visit Downloads → Settings → Reviews and set the Vendor Feedback Page to the one you just created.

Providing vendor feedback

Once Vendor Feedback has been correctly configured, links will automatically appear on the Purchase History page.

If customers buy a vendor’s product, they can leave feedback for the vendor. A link will be displayed on the customer’s Purchase History, which they can follow to supply feedback to the vendor. Links will only appear for products created by a vendor.

The Vendor Feedback page will look something like this:

Viewing vendor feedback

If you have the manage_shop_settings capability, you can view all the Vendor Feedback provided by navigating to EDD FES → Vendor Feedback from the WordPress dashboard.

On that page, you will see a table displaying all the feedback:

From here, you have the ability to apply similar actions to that of WordPress comments whereby you can unapprove, trash, or mark feedback as spam.

From the frontend, your vendors can see all feedback given to them by navigating to their Vendor Dashboard and clicking on the Vendor Feedback tab. The difference between the admin page and the frontend page is that the admin pages shows all feedback, while the frontend page only shows feedback specific to the vendor currently logged in.

The post Reviews – FES Integration first appeared on Easy Digital Downloads.

]]>
Compare Products https://easydigitaldownloads.com/docs/compare-products/ Mon, 24 Jan 2022 19:56:01 +0000 https://edd-site.lndo.site/docs/compare-products/ EDD Compare Products allows you to generate side-by-side product comparisons. These comparisons can be created by a site owner and linked to an order to visually demonstrate important product differences to customers, and they can also by created by customers who would like to more easily compare products and make better buying decisions. After installing

The post Compare Products first appeared on Easy Digital Downloads.

]]>
EDD Compare Products allows you to generate side-by-side product comparisons. These comparisons can be created by a site owner and linked to an order to visually demonstrate important product differences to customers, and they can also by created by customers who would like to more easily compare products and make better buying decisions.

After installing and activating EDD Compare Products, a new button will be added to each item listed using the [downloads] shortcode. It will look something like this:

As you can see in the above screenshot, a new button is added for each item which, when clicked, adds the item to the list of items to compare. This list can be viewed by clicking on the “View Comparison” button (seen below). Any number of items can be added to the comparison at one time.

Configuration

To configure this extension, navigate to Downloads > Settings > Extensions > Compare Products. In this settings area, you’ll have several options to configure.

Default Comparison Page: This is the page that users will be directed to when clicking through to view comparisons. This page must contain the [edd_compare_products] shortcode.

Default Downloads: These are default download IDs that can be set by the site owner.

Default Table Style: This is the layout of the comparison table. The only available option at this time is for a horizontal scroll.

Meta Fields: Default meta fields can be defined here. Any custom meta fields attached to a download will also appear as selections in this area.

Compare Button Text: This allows you to set a custom label for the Compare button.

Go Button Text: This allows you to set a custom label for the button used to view comparisons.

Viewing Comparisons

When someone selects products to compare and visits the comparison page, they will see the products listed side by side like so:

The post Compare Products first appeared on Easy Digital Downloads.

]]>
Recurring Payments – Defining a Specific Stripe API Version https://easydigitaldownloads.com/docs/recurring-payments-defining-a-specific-stripe-api-version/ Mon, 24 Jan 2022 19:56:00 +0000 https://edd-site.lndo.site/docs/recurring-payments-defining-a-specific-stripe-api-version/ As of Recurring Payments 2.7.18, you have the ability to define the version of the Stripe API you would like to use. This can be useful when you do not have the ability to roll back or change your API version from within your Stripe Dashboard. Defining your Stripe API Version In your wp-config.php file,

The post Recurring Payments – Defining a Specific Stripe API Version first appeared on Easy Digital Downloads.

]]>
As of Recurring Payments 2.7.18, you have the ability to define the version of the Stripe API you would like to use. This can be useful when you do not have the ability to roll back or change your API version from within your Stripe Dashboard.

Defining your Stripe API Version

In your wp-config.php file, find this line:

/* That's all, stop editing! Happy blogging. */

Place the following right above it:

define( 'EDD_STRIPE_API_VERSION', '2020-03-02' );

You can see a complete list of API Versions over at Stripe: https://stripe.com/docs/upgrades#api-changelog

Please Note: If possible, it is always best to define your API version from within your Stripe Dashboard. This method of defining it is for edge cases where it is not possible to use a specific version of the API via the provided methods within Stripe. You can see full documentation on the Stripe API versions within their docs.

The post Recurring Payments – Defining a Specific Stripe API Version first appeared on Easy Digital Downloads.

]]>
Using Zapier to integrate Active Campaign with EDD https://easydigitaldownloads.com/docs/using-zapier-to-integrate-active-campaign-with-edd/ Mon, 24 Jan 2022 19:55:56 +0000 https://edd-site.lndo.site/docs/using-zapier-to-integrate-active-campaign-with-edd/ You can use Zapier to add your customer’s emails to your ActiveCampaign lists after they make a purchase on your Easy Digital Downloads shop. Here’s how: 1. Make sure you have the Zapier extension for EDD installed and activated. See primary setup documentation for instructions on how to connect Easy Digital Downloads to Zapier. 3.

The post Using Zapier to integrate Active Campaign with EDD first appeared on Easy Digital Downloads.

]]>
You can use Zapier to add your customer’s emails to your ActiveCampaign lists after they make a purchase on your Easy Digital Downloads shop. Here’s how:

1. Make sure you have the Zapier extension for EDD installed and activated. See primary setup documentation for instructions on how to connect Easy Digital Downloads to Zapier.

3. Click “Make a Zap” at the top of your Zapier account.

4. For the “Trigger”, search for “Easy Digital Downloads”.

5. We will now be presented with a list of triggers. Since we want to add customers to our Active Campaign list when a new order is placed, we will select New Order.

6. Click “Continue” at the bottom of the page.

7. Click “Connect a new account” to authenticate your EDD shop in your Zapier account. To do so, follow the steps outlined in this article.

8. Click the + button on the left sidebar between steps 1 and 2. Then click “Filter”.

9. Set the Filter to “only continue if”.

– From the first field select “Products”.
– From the second field select “Contains”.
– From the third field type in the name of your product

Click “Continue”.

10. Now, go to the “Action” steps (which is step 2) and under “Choose an app” search for “Active Campaign”.

11. Choose “Add/Update Contact” as the action.

12. Click “Connect a new account” to connect your Active Campaign account:

13. Enter your API URL and Key from your Active Campaign account:

14. After you save the API URL and Key in Zapier, it will ask you to fill out the options for the List you want to add new customers and their email addresses to. To do that, select “Customer Email” in the Email field. If you haven’t created the list you wish to utilize in Active Campaign yet, go to your active campaign account and set that up before doing this step. If you’d like, you can also set it to pull the First and Last name of the customer from EDD.

15. Scroll to the bottom of the page and click “Continue”, run the test, and you will see a “Successful” message.

16. Click “Finish”, name your zap, and that’s it! Now, new customers in your EDD shop will automatically be added to your Active Campaign list.

The post Using Zapier to integrate Active Campaign with EDD first appeared on Easy Digital Downloads.

]]>
Terms Per Product https://easydigitaldownloads.com/docs/terms-per-product/ Mon, 24 Jan 2022 19:55:55 +0000 https://edd-site.lndo.site/docs/terms-per-product/ The Terms Per Product extension for Easy Digital Downloads allows you to create and add usage terms on a per product basis. Configure the Terms Per Product Once this extension is installed and activated, go to WordPress admin → Downloads → All Downloads and select the Download(s) you wish to add your per product terms to. Within

The post Terms Per Product first appeared on Easy Digital Downloads.

]]>
The Terms Per Product extension for Easy Digital Downloads allows you to create and add usage terms on a per product basis.

Configure the Terms Per Product

Once this extension is installed and activated, go to WordPress admin → Downloads → All Downloads and select the Download(s) you wish to add your per product terms to. Within the Download Settings menu on the right you will see a Download Terms of Use box.

Once you’ve entered the terms specific to this Download click Update.

The terms specific to that product will then be displayed on the checkout page along with an Agree to Terms checkbox whenever a customer adds this product to their shopping cart and proceeds to checkout. If a customer purchases more than one item with unique terms multiple terms and checkboxes will be displayed at checkout.

The post Terms Per Product first appeared on Easy Digital Downloads.

]]>
MaxMind Setup Instructions https://easydigitaldownloads.com/docs/maxmind-setup-instructions/ Mon, 24 Jan 2022 19:55:55 +0000 https://edd-site.lndo.site/docs/maxmind-setup-instructions/ The MaxMind Fraud Protection extension for Easy Digital Downloads helps prevent fraud by utilizing services available from MaxMind, including IP geolocation and proxy detection. Setup After you have installed and activated the MaxMind Fraud Protection extension, you can find the settings area by navigating to Downloads → Settings → Misc. License Key: This is where

The post MaxMind Setup Instructions first appeared on Easy Digital Downloads.

]]>
The MaxMind Fraud Protection extension for Easy Digital Downloads helps prevent fraud by utilizing services available from MaxMind, including IP geolocation and proxy detection.

Setup

After you have installed and activated the MaxMind Fraud Protection extension, you can find the settings area by navigating to Downloads → Settings → Misc.

License Key: This is where you will enter your license key obtained from Easy Digital Downloads.

API Key: This is where you will enter your API key from your MaxMind account.

MaxMind User ID: This field is required if the “Device Tracking” functionality is to be used.

Service: Choose whether to use the minFraud or Proxy Detection service from MaxMind.

Risk Score Limit: Enter the maximum risk score to allow, a valid risk score is between 0.01 and 100. For example, if you enter 20 you would allow up to a 20% chance of fraud.

Proxy Score: Enter the maximum proxy score to allow, a valid proxy score is between 0.00 and 4.00. A score of 0 or 1 will mean a low chance of a proxy being used while 3 or 4 means a medium to high chance of the customer using a proxy.

Error Message: Here you will enter the error message you want to display when the purchase meets or exceeds your risk or proxy score.

Optional Fields: Select optional fields to be used in determining risk scores. While these options are not required, they can help give more reliable results.

Gateway Support: This allows you to choose which installed payment gateways will use the MaxMind services. For credit card gateways that use the default EDD credit card fields, you will need to disable the MaxMind field output using the available options. Only the country field will be displayed by default for gateways that do not use the default credit card fields. You can enable the city, state, and postcode fields for more accurate results.

The post MaxMind Setup Instructions first appeared on Easy Digital Downloads.

]]>
Software Licensing – Minimum Requirements https://easydigitaldownloads.com/docs/software-licensing-minimum-requirements/ Mon, 24 Jan 2022 19:55:54 +0000 https://edd-site.lndo.site/docs/software-licensing-minimum-requirements/ Software Licensing 3.8 introduced the ability to set minimum platform requirements for products. If a customer doesn’t meet those requirements, they won’t be given automatic updates through the API. API prerequisites Configuring requirements for a product Adding custom requirements API prerequisites In order for this feature to work properly, the customer’s platform versions need to

The post Software Licensing – Minimum Requirements first appeared on Easy Digital Downloads.

]]>
Software Licensing 3.8 introduced the ability to set minimum platform requirements for products. If a customer doesn’t meet those requirements, they won’t be given automatic updates through the API.

API prerequisites

In order for this feature to work properly, the customer’s platform versions need to be sent along with the API request that checks for an update.

If you’re using our plugin updater, that means your product needs to be bundling version 1.9 or greater of the EDD_SL_Plugin_Updater class file.

If you’re using our theme updater, your product needs to be bundling version 1.2 or greater.

If you’ve built a custom integration, you need to make sure to include “php_version” and “wp_version” in your API request. Consult our API documentation for more details.

If a customer’s site does not include the platform version(s) in the API request then those requirements will not be checked and the user may still receive the update.

Configuring requirements for a product

To configure requirements for a product, edit the product via Downloads > Edit. On the right sidebar, search for a metabox called “Download Requirements”. It looks like this:

Download requirements metabox

Simply enter your minimum required versions and save. Any versions left blank will not be checked or required.

Adding custom requirements

By default Software Licensing supports PHP and WordPress versions, though your own dependencies can be added with some custom code. Two steps are required:

1. Add your dependency to the metabox

Adding a new dependency is done with a simple filter like this, which needs to be added to your own site:

add_filter( 'edd_sl_platforms', function( $platforms ) {
	$platforms['your-platform-id'] = 'Your Platform Display Name';
	
	return $platforms;
} );

Replace your-platform-id with a unique, slug-friendly version of your dependency name, and replace Your Platform Display Name with the display-friendly version. Here’s an example of adding Easy Digital Downloads as a requirement:

add_filter( 'edd_sl_platforms', function( $platforms ) {
	$platforms['easy-digital-downloads'] = 'Easy Digital Downloads';

	return $platforms;
} );

Once added, your platform will appear in the metabox:

Platform requirements, with Easy Digital Downloads as a custom option

2. Include the dependency version in your API request

When checking for a new update via the API (within your product), you need to send the dependency’s current version number in the API request. To do that, you simply have to append a new argument: {your platform ID}_version.

A version check request normally looks like this:

https://YOURSITE.com/?edd_action=get_version&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=http://licensedsite.com

But with our new argument, it would look like this:

https://YOURSITE.com/?edd_action=get_version&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=http://licensedsite.com&easy-digital-downloads_version=1.0

Note the addition of &easy-digital-downloads_version=1.0 at the end.

If you’re using a custom updater, you can add the new argument directly to the API parameters sent with the request:

$api_params = array(
	'edd_action'                     => 'get_version',
	'license'                        => ! empty( $data['license'] ) ? $data['license'] : '',
	'item_name'                      => isset( $data['item_name'] ) ? $data['item_name'] : false,
	'item_id'                        => isset( $data['item_id'] ) ? $data['item_id'] : false,
	'version'                        => $this->version,
	'slug'                           => $data['slug'],
	'author'                         => $data['author'],
	'url'                            => home_url(),
	'beta'                           => ! empty( $data['beta'] ),
	'php_version'                    => phpversion(),
	'wp_version'                     => get_bloginfo( 'version' ),
	'easy-digital-downloads_version' => defined( 'EDD_VERSION' ) ? EDD_VERSION : '', // current version number
);

If you’re using our plugin updater class (version 1.9 or greater), then you can add this argument to the API request by using a filter. This filter needs to be part of your plugin, as it runs on your customers’ sites:

add_filter( 'edd_sl_plugin_updater_api_params', function( $api_params, $api_data, $plugin_file ) {
	/*
	 * Make sure $plugin_file matches your plugin's file path. You should have a constant for this
	 * or can use __FILE__ if this code goes in your plugin's main file.
	 */
	if ( __FILE__ === $plugin_file ) {
		// Dynamically retrieve the current version number.
		$api_params['easy-digital-downloads_version'] = defined( 'EDD_VERSION' ) ? EDD_VERSION : '';
	}

	return $api_params;
}, 10, 3 );

Be sure to replace easy-digital-downloads with the unique ID you’ve chosen for your dependency, and defined( 'EDD_VERSION' ) ? EDD_VERSION : '' with the current version number. This value needs to be able to be dynamically retrieved by the customer site.

The post Software Licensing – Minimum Requirements first appeared on Easy Digital Downloads.

]]>
Checkout Fields Manager – Getting Meta Data https://easydigitaldownloads.com/docs/checkout-fields-manager-getting-meta-data/ Mon, 24 Jan 2022 19:55:52 +0000 https://edd-site.lndo.site/docs/checkout-fields-manager-getting-meta-data/ The Checkout Fields Manager extensionallows you to make custom fields for your checkout form. This makes it easy to gather data from your customers. You can see it easily on the Payment History page, but what if you want to have it printed on the receipt for the customer to see? This document will help

The post Checkout Fields Manager – Getting Meta Data first appeared on Easy Digital Downloads.

]]>
The Checkout Fields Manager extensionallows you to make custom fields for your checkout form. This makes it easy to gather data from your customers. You can see it easily on the Payment History page, but what if you want to have it printed on the receipt for the customer to see? This document will help with that.

Radio Buttons Example

In this example we’re going to use a custom radio buttons field, titled “Are you happy with this purchase process?”. The meta key for this field was automatically generated as are_you_happy_with_this_purchase_process, and we’ve simply made a Yes/No answer option. See below.

Since we’re going to be rendering this information on the customer receipt, let’s take a look at that template. The template we want is called shortcode-receipt.php. Read our docs on how to move this template to your theme.

Near the top of that file you’ll find this code:

$payment = get_post( $edd_receipt_args['id'] );

which creates an object for this payment. In the rest of this file we can now find the ID for this payment under $payment->ID.

In the example above the Meta Key is are_you_happy_with_this_purchase_process. Now that we have both the ID and the Meta Key we can get the value with this code:

get_post_meta( $payment->ID, 'are_you_happy_with_this_purchase_process', true )

Note: the ‘true’ in the example above indicates that we’re expecting a single value from get_post_meta(). Checkout Fields Manager returns a single value for all field types it offers.

Printing to the Receipt

In the above example we got the value we wanted, but now we want to render it nicely in receipts. In shortcode-receipt.php you’ll find a HTML table with a CSS ID of edd_purchase_receipt. You can copy this table and change the values. Here’s an example of a table header:

Then we can print a table row for the above question, like this:

Multi-answer Example

Some field types allow for multiple answers from a customer. Check boxes allow the customer to select multiple things for example. This is still stored as a single item in meta data; it’s a single array with multiple key/value pairs. How it gets rendered is slightly different from above, however.

Here’s a custom field asking the customer what their favorite animal is:

Rendering it in our HTML table would look like this:

ID, 'favorite_animal', true ) as $animal ) {
            $animals .= '
  • ' . $animal . '
  • ' . "n"; } // print out the table row, wrapping the results in unordered list tags, and escaping with wp_kses_post() ?>

    As you can see it’s only slightly more complicated than the first example.

    Wrapping Up

    Putting together the two code samples from above, we end up with something like this:

    ID ), 'are_you_happy_with_this_purchase_process', true ) ) ); ?>
    ID, 'favorite_animal', true ) as $animal ) { $animals .= '
  • ' . $animal . '
  • ' . "n"; } // print out the table row, wrapping the results in unordered list tags, and escaping with wp_kses_post() ?>
    ID ), 'are_you_happy_with_this_purchase_process', true ) ) ); ?>

    Which will look like this:

    Key Points

    • To render Custom Fields answers on your receipts, copy the shortcode-receipt.php file to your theme and put your code in there
    • Getting the data is simply doing a get_post_meta() call on the Meta Key provided in you the admin area
    • All keys from Custom Fields Manager are stored as singles in the post_meta table.

    Note: Easy Digital Downloads does not provide support for custom coding/development. If needed we recommend hiring a developer through Codeable make the custom changes you need.

    The post Checkout Fields Manager – Getting Meta Data first appeared on Easy Digital Downloads.

    ]]>
    Variable Pricing Switcher https://easydigitaldownloads.com/docs/variable-pricing-switcher/ Mon, 24 Jan 2022 19:55:51 +0000 https://edd-site.lndo.site/docs/variable-pricing-switcher/ The Variable Pricing Switcher extension for Easy Digital Downloads allows customers to easily switch between price options on the checkout screen. Setup After you have installed and activated the Variable Pricing Switcher extension, you can find the settings area by navigating to Downloads → Settings → Extensions → Variable Pricing Switcher. Switcher Label: This is

    The post Variable Pricing Switcher first appeared on Easy Digital Downloads.

    ]]>
    The Variable Pricing Switcher extension for Easy Digital Downloads allows customers to easily switch between price options on the checkout screen.

    Setup

    After you have installed and activated the Variable Pricing Switcher extension, you can find the settings area by navigating to Downloads → Settings → Extensions → Variable Pricing Switcher.

    Switcher Label: This is the text that will appear on the checkout page above the price switcher.

    Disable cart on checkout: Enabling this option will remove the cart from the checkout page. This is particularly useful for single-product sites, or sites that do not need a shopping cart.

    Force single variable price: Enabling this option allows for only 1 variable price per product to be be purchased at once.

    Usage

    When creating or editing a download product there is a new area in the right sidebar titled “Variable Pricing Switcher”. Enable this to allow that download product to have the option to switch variable prices during the checkout process.

    Once enabled, when a customer adds an item that has variable pricing options, they will be able to change which pricing option they want during the checkout process.

    The post Variable Pricing Switcher first appeared on Easy Digital Downloads.

    ]]>
    Frontend Submissions – Tools https://easydigitaldownloads.com/docs/frontend-submissions-tools/ Mon, 24 Jan 2022 19:55:50 +0000 https://edd-site.lndo.site/docs/frontend-submissions-tools/ Front End Submissions has a number of Import, Export, and Reset tools for FES forms. You can access these options by navigating to EDD FES → Tools. These tools are specifically related to the forms that FES uses, and are for importing, exporting, and resetting the forms. Import Form This option will allow you to

    The post Frontend Submissions – Tools first appeared on Easy Digital Downloads.

    ]]>
    Front End Submissions has a number of Import, Export, and Reset tools for FES forms. You can access these options by navigating to EDD FES → Tools. These tools are specifically related to the forms that FES uses, and are for importing, exporting, and resetting the forms.

    Import Form

    This option will allow you to import a JSON file with the proper settings from an FES form export. With this tool you can move form settings from one site to another or make a backup.

    Export Form

    This option will allow you to make an export of your form settings, for moving to another site or backing up.

    Reset Form

    This option allows you to select a form and reset it to the default fields and options that it came with.

    Reset All Forms

    This option is similar to the Reset Form option except it resets all FES forms to their default fields and options.

    Reset Meta For All Forms

    Front End Submissions 2.3 added meta information to forms. This option resets all of that information, and should not be used without first consulting with EDD support.

    Delete Extraneous Forms

    This action deletes all FES Forms which are not assigned to a form in the FES Settings Panel. 

    Import Pre-FES 2.4 Settings

    This option allows you to take a form settings JSON file from a version of FES older than 2.4 and import them. This should only be done as part of a restore process in the event that migrating from pre-2.4 to 2.4 causes issues.

    Export Pre-FES 2.4 Settings

    This option allows you to export pre-2.4 settings so that you may re-import them during a migration.

    Recount Vendor Statistics

    This option allows you to recount Vendor earnings, sales, and download counts.

    The post Frontend Submissions – Tools first appeared on Easy Digital Downloads.

    ]]>
    Themedd – Widgets https://easydigitaldownloads.com/docs/themedd-widgets/ Mon, 24 Jan 2022 19:55:50 +0000 https://edd-site.lndo.site/docs/themedd-widgets/ When at least one widget has been added into the Download Sidebar, all default display elements will be removed. You can use the Download Details widget provided by Easy Digital Downloads to add back the price and purchase button, and then continue to add other widgets with full control over ordering and options. To recreate

    The post Themedd – Widgets first appeared on Easy Digital Downloads.

    ]]>
    When at least one widget has been added into the Download Sidebar, all default display elements will be removed. You can use the Download Details widget provided by Easy Digital Downloads to add back the price and purchase button, and then continue to add other widgets with full control over ordering and options.

    To recreate the price and purchase button provided automatically by Themedd:

    1. Drag the Download Details widget provided by Easy Digital Downloads into the Download Sidebar.
    2. Remove the Title.
    3. Uncheck Show Title, Show Download Categories and Show Download Tags.
    4. Click Save.

    Themedd provides 2 additional widgets that should only be used in the download sidebar:

    1. Themedd: Download Details
    2. Themedd: Download Author

    Themedd: Download Details

    The
    Themedd: Download Details widget displays information about the download. The widget’s options include:

    Title
    This allows you to set a title which will display above the widget

    Show date published
    This will display the date the download was published.

    Show number of sales
    This will display the number of sales a download has had.

    Show categories
    This will display the download’s categories.

    Show tags
    This will display the download’s tags.

    Show version number
    If the Software Licensing extension is activated, a Show version number option is added to the widget. This will display the version number of the download, set from the download’s edit screen.

    Themedd: Download Author

    The
    Themedd: Download Author widget displays information about a download’s author. The widget’s options include:

    Title
    This allows you to set a title which will display above the widget

    Show author avatar
    This will display the download author’s avatar. This can be set from the user’s profile page in WordPress.

    Show author name
    This will display the download author’s name.

    Show author signup date
    This will display the download author’s signup date.

    Show website
    This will display the download author’s website. The website can be set from the user’s profile page in WordPress.

    Show store name
    If the Frontend Submissions extension is activated, a Show store name option is added to the widget. This will display the store name of the vendor.

    The post Themedd – Widgets first appeared on Easy Digital Downloads.

    ]]>
    Setting up Conditional Gateways https://easydigitaldownloads.com/docs/setting-up-conditional-gateways/ Mon, 24 Jan 2022 19:55:48 +0000 https://edd-site.lndo.site/docs/setting-up-conditional-gateways/ Once the Conditional Gateways extension is installed and activated, a new meta box will be added to the New Downloads and Edit Downloads pages entitled “Conditional Gateways”. The Conditional Gateways meta box can be found at the bottom of the right of the page above the featured/download image, by default, and looks like this: The

    The post Setting up Conditional Gateways first appeared on Easy Digital Downloads.

    ]]>
    Once the Conditional Gateways extension is installed and activated, a new meta box will be added to the New Downloads and Edit Downloads pages entitled “Conditional Gateways”. The Conditional Gateways meta box can be found at the bottom of the right of the page above the featured/download image, by default, and looks like this:

    The meta box will list all of the currently active gateways on your Easy Digital Downloads install. By default, all gateways are allowed for every product. To restrict a download to a specific gateway or gateways, simply check them and hit save! In this example, Paypal and Stripe are the only active gateways.

    Configuring Conditional Gateways

    Beyond the per-download configuration already discussed, the Conditional Gateway extension requires very little configuration. At present, it only supports a single option which can be found under Downloads→Settings→Payment Gateways→Conditional Gateways.

    This option allows you to configure the error message shown in any case where a user may add a combination of products to their cart which results in no gateways being available.

    How Conditional Gateways works

    By default, Easy Digital Downloads allows you to implement an unlimited number of gateways on your site. For the purposes of this documentation, we are going to assume that you have two active gateways, Paypal Standard and Stripe Standard or Stripe Pro. Now let’s assume that you are an author and are selling ebooks through your website, along with other digital goods. The Paypal Terms of Service explicitly disallows selling ebooks through their gateway so, for your ebooks, you would want to disable the Paypal gateway.

    Now, if a user adds an ebook and another digital product to their cart, the system will run through each product in the cart and tally up the allowed gateways for each product. Since the non-ebook product allows both Paypal and Stripe, but the ebook only allows Stripe, the EDD checkout page will only list Stripe. If, however, you have configured all non-ebook products to ONLY allow payment through Paypal, and a user has added the previously mentioned products to the cart, Conditional Gateways will run through the products in the cart and determine that there is no active gateway capable of processing all products in the cart. If this happens, the cart will display a notification (set through options page referenced above) to the user prompting them to remove an item from the cart and disable the checkout button until a valid gateway is found.

    The post Setting up Conditional Gateways first appeared on Easy Digital Downloads.

    ]]>
    Resend Receipt https://easydigitaldownloads.com/docs/resend-receipt/ Mon, 24 Jan 2022 19:55:47 +0000 https://edd-site.lndo.site/docs/resend-receipt/ An admin can resend a receipt on behalf of the customer via the order details. To resend a receipt go to Downloads > Orders > open the order in question > Email tab and click the Resend Receipt button. Enable customers to resend receipts The Resend Receipt extension allows users to resend their receipts by

    The post Resend Receipt first appeared on Easy Digital Downloads.

    ]]>
    An admin can resend a receipt on behalf of the customer via the order details. To resend a receipt go to Downloads > Orders > open the order in question > Email tab and click the Resend Receipt button.

    Enable customers to resend receipts

    The Resend Receipt extension allows users to resend their receipts by entering the Payment ID, Purchase Key or License Key (if using the Software Licensing extension). This will work for both guest purchases and registered user purchases. If a customer’s download link has expired, this form will also allow them to receive a new download link via email.

    Setup

    After installing the Resend Receipt plugin, create a new page and add the shortcode:

    [edd_resend_form]

    You may add additional text to this page as well to provide instructions to your customers.

    Settings

    Resend Receipt settings can be found by navigating to Downloads → Settings → Extensions. There is an option to Enable Admin Notification. Check this box to receive a notification when a user resends their receipt.

    Per-Download Option

    By default the ability to resend purchase receipts is enabled for all Downloads. You may choose to disable this feature on a per-download basis. 

    The post Resend Receipt first appeared on Easy Digital Downloads.

    ]]>
    Using Acquisition Survey https://easydigitaldownloads.com/docs/using-acquisition-survey/ Mon, 24 Jan 2022 19:55:46 +0000 https://edd-site.lndo.site/docs/using-acquisition-survey/ Setup and Usage Once the Acquisition Survey extension is installed and activated, you can navigate to Downloads → Settings → Extensions → Acquisition Survey to adjust your settings. With these settings you can manage the Label for the dropdown on checkout, if the field is required by the customer, and the items available for your

    The post Using Acquisition Survey first appeared on Easy Digital Downloads.

    ]]>
    Setup and Usage

    Once the Acquisition Survey extension is installed and activated, you can navigate to Downloads → Settings → Extensions → Acquisition Survey to adjust your settings.

    With these settings you can manage the Label for the dropdown on checkout, if the field is required by the customer, and the items available for your customers to choose from.

    Survey Title: This is the title that will appear above the dropdown list. Example: How did you hear about us?

    Require Survey Response: Choose whether or not a response to the survey question is required.

    Acquisition Methods: The list is pre-populated with some of the more common methods of acquisition, but can be re-ordered and have items added or removed according to your needs.

    The end result is a new form element on the ‘Personal Info’ section of the checkout screen:

    You can also see which acquisition method was recorded when viewing payment records in Downloads → Payment History. The acquisition information will be available in the Payment Meta section of each payment record.

    Reporting

    Acquisition Survey also adds a new report to the reports section so you can get a breakdown of how your acquisition sources are performing.

    To view reports navigate to Downloads → Reports and choose ‘Acquisition’ from the dropdown list then click ‘Show’.

    The report view lists all current and past (identified with ‘inactive’) methods that have been registered with a payment:

    Developer Info

    Acquisition Survey offers a number of functions and filters that allow it to be extended.

    Recorded acquisition methods are stored in the payment meta with the ‘meta_key’ of
    _edd_payment_acquisition_method.

    You can retrieve a payments acquisition method with the call:

    edd_get_payment_meta( $payment_id, '_edd_payment_acquisition_method', false );
    

    Filters

    edd_acq_get_methods()
    // This filters the array of acquisition methods after they are returned from the database. Methods are in the form of a numerically indexed array.
    
    // Example
    array(1) {
    	array(2) {
    		'name'  => 'Customer Facing Name',
    		'value' => 'payment-meta-record'
    	}
    }
    
    edd_acq_record_acquisition_method()
    // Runs just before saving the acquisition method into the payment meta.
    
    edd_acq_method_sales()
    // Runs just before returning the number of sales for a requested acquisition method 'value'.
    
    edd_acq_method_earnings()
    // Runs just before returning the total earnings for a requested acquisition method 'value'.
    

    The post Using Acquisition Survey first appeared on Easy Digital Downloads.

    ]]>
    Reviews – Settings https://easydigitaldownloads.com/docs/reviews-settings/ Mon, 24 Jan 2022 19:55:46 +0000 https://edd-site.lndo.site/docs/reviews-settings/ The settings for Reviews are found under Downloads > Settings > Marketing > Reviews. Reviews are only valuable if they accurately represent the feelings of the users, so most of the settings are related to making the reviews accurate and meaningful. Here’s a description of each. Enable review breakdown If you see a product with

    The post Reviews – Settings first appeared on Easy Digital Downloads.

    ]]>
    The settings for
    Reviews are found under Downloads > Settings > Marketing > Reviews. Reviews are only valuable if they accurately represent the feelings of the users, so most of the settings are related to making the reviews accurate and meaningful. Here’s a description of each.

    Enable review breakdown

    If you see a product with an average rating of 5 stars, you may think “This is great!” But what if it’s only been reviewed once or twice? The rating may not be quite as meaningful. If there are 4.7 stars out of 500 reviews, the value of the rating is much higher. Enable Review Breakdown renders the number of votes with the reviews so the reader can properly evaluate the worth of the stars.

    Disable multiple reviews by same author

    If one person is allowed to create multiple reviews, the value of the ratings becomes diluted, and one person can dominate the tone of the reviews. This option prevents single users from leaving multiple reviews of the same product.

    Disable voting on reviews

    If you don’t care about rankings or voting or stars, you may simply turn off that feature with this option. Reviews will continue to be available; they just won’t have a ranking attached.

    Only allow reviews by buyers

    If it’s important to you that only people who actually experienced your product leave reviews then you can use this option to allow only those who have purchased the product to leave a review. 

    Word Counts

    A three-word review doesn’t convey much information. By the same token, a 1500-word review might be better served by its own blog post somewhere else. If you’d like to try to maintain a relative average length, you can use the Minimum word count and Maximum word count fields.

    Discounts

    You may offer a percentage discount in your store to anyone who leaves a review. Enable Reviewer Discount will activate this option, and then you may use the Reviewer Discount Amount field to set the discount amount.

    Disable EDD Reviews CSS

    This removes all built-in Reviews CSS, and allows you to style the plugin output any way you wish.

    The post Reviews – Settings first appeared on Easy Digital Downloads.

    ]]>
    Password Meter https://easydigitaldownloads.com/docs/password-meter/ Mon, 24 Jan 2022 19:55:45 +0000 https://edd-site.lndo.site/docs/password-meter/ The Password Meter extension allows you to integrate a configurable password meter with minimum strength requirements into the EDD user registration form. Configuration Instructions Once installed, you can locate the settings for this extension by navigating to Downloads → Settings → Extensions → Password Meter. Here you will see a variety of options that can

    The post Password Meter first appeared on Easy Digital Downloads.

    ]]>
    The Password Meter extension allows you to integrate a configurable password meter with minimum strength requirements into the EDD user registration form.

    Configuration Instructions

    • Once installed, you can locate the settings for this extension by navigating to Downloads → Settings → Extensions → Password Meter.
    • Here you will see a variety of options that can be configured to your liking.

    Check Mode: This allows you to determine which type of password checking is to be used. “Strict” or “Moderate” are the available options.

    Required Strength: This allows you to select the required strength of the password.

    Minimum Length: This allows you to set the minimum length of the password that’s being created.

    Maximum Length: This allows you to set the maximum length of the password that’s being created.

    Disallow Show Password: This allows for the password field to not display the “show password” toggle.

    Disallow Password Generation: This removes the “Generate Password” button available on the password field.

    Hide Tooltips: This will remove tooltips from the password field.

    Front-end Display

    Once active, the Password Meter will be automatically in place on the EDD registration form. The Password Meter will alert users if they have not met the criteria set by the site owner in the settings area.

    The Password Meter extension also provides a password generator option, which will generate a random password for the user.

    The post Password Meter first appeared on Easy Digital Downloads.

    ]]>
    Recommended Products Intro and Settings https://easydigitaldownloads.com/docs/recommended-products-intro-and-settings/ Mon, 24 Jan 2022 19:55:44 +0000 https://edd-site.lndo.site/docs/recommended-products-intro-and-settings/ Table of Contents Settings Templates Filters Shortcodes Troubleshooting Settings Once the Recommended Products extension is installed and activated, you can navigate to Downloads → Settings → Extensions → Recommended Products. Here you will have the ability to choose from several options on how you want the extension to function. Show on Downloads – Checking this

    The post Recommended Products Intro and Settings first appeared on Easy Digital Downloads.

    ]]>
    Table of Contents

    Settings

    Once the Recommended Products extension is installed and activated, you can navigate to Downloads → Settings → Extensions → Recommended Products. Here you will have the ability to choose from several options on how you want the extension to function.

    Show on Downloads – Checking this box will make the recommended products display on individual product pages.

    Show on Checkout – Checking this box will make the recommended products display on the checkout screen.

    Number of Recommendations – Determines how many recommended products are shown.

    Show Free Products – Checking this box will allow free products to be included in the recommendations. By default free products are excluded.

    Templates

    Recommended Products includes two template files that can be customized by copying them to your theme’s edd_templates directory, as shown in the Moving EDD templates to your theme documentation.

    To use the template files, copy the files from /
    edd-recommended-products/templates/ to /wp-content/themes/YOURTHEME/edd_templates/ and then modify as desired.

    Single Item Recommendations:

    To get the recommendations for a single page (single.php download post type), use the supplied single_recommendations.php template as a guide to isolate the recommendations for this specific item. If desired, you can also supply the logged in user ID as a 2nd argument to
    edd_rp_get_suggestions() to remove items the current user already owns. In the default template this is not enabled, and users will see items they have purchased in the Single view.

    Checkout Page Recommendations:

    This page uses all items currently in the cart to build a recommendation profile. You can use the supplied checkout_recommendations.php template as a guide to get the recommendations profile, and if desired specify the currently logged in user ID as a 2nd argument to
    edd_rp_get_multi_suggestions() to remove items the current user already owns. In the default template this is enabled to prevent a user from buying items again, since they are 1 step away from final checkout.

    Filters

    Recommended Products includes several filters that can be used to adjust the extension’s behavior. These filters are for developers who are familiar with WordPress Hooks and Filters.

    • edd_rp_log_query_args – Alter the number of logs used to determine recommendations (default is 250).
    • edd_rp_single_recommendation_count – Alter the number of recommendations for a single product.
    • edd_rp_single_recommendation_results – Allows you to filter the recommendations for a single product.
    • edd_rp_multi_recommendation_count – Alter the number of recommendations for the multi product view
    • edd_rp_multi_recommendation_results – Allows you to filter the recommendations for the multi product view
    • edd_rp_suggestion_counts – Add items to the recommendations count dropdown.
    • edd_checkout_image_size – Image size used for post images in the default recommendations templates.
    • edd_recommended_products_languages_directory – Alter the location for language translations
    • plugin_locale – Alter the locale being used.

    Shortcodes

    Recommended Products, includes a shortcode to allow for the recommendations to be placed within page/post content as you’d like. An example of this shortcode is:

    [recommended_products ids="24, 41" count="10" title="We Also Recommend"]
    

    The list of attributes (and their defaults) are:

    • ids: a comma separated list of Download IDs to provide suggestions for (default: current post ID)
    • user: “true” or “false”, whether to hide already purchased items from displaying (default: false)
    • count: number of suggestions to show (default: 3)
    • title: A title to display (default: “Recommended Products”)

    Troubleshotting

    Occasionally you may find that you have no recommendations. Below are some common reasons.

    Reason 1: Not Enough Data

    Recommended Products analyzes the last 250 purchases on the site (every night) and, based on those purchases, suggests other products that users have also purchased. This means that if your store is quite new, has been recently reset, or has very few transactions, you may not see any recommendations right away.

    Reason 2: Already Purchased

    On the checkout page, if the user is logged in and already owns a product, that product won’t be recommended to them, even if it met criteria to be recommended. This makes room for other products that the customer may be interested in buying.

    Reason 3: Lack of Theme Support

    Some themes simply choose not to render the Recommended Products on the Checkout page.

    More generally, the Recommended Products extension relies on some hooks provided in the default EDD templates. If those templates are edited and/or those hooks are removed, no recommendations will be printed.

    The post Recommended Products Intro and Settings first appeared on Easy Digital Downloads.

    ]]>
    Themedd – Using a child theme https://easydigitaldownloads.com/docs/themedd-using-a-child-theme/ Mon, 24 Jan 2022 19:55:43 +0000 https://edd-site.lndo.site/docs/themedd-using-a-child-theme/ We strongly recommend using a child theme instead of making modifications directly to Themedd. The child theme will inherit all functionality and styling of Themedd and prevent any of your modifications from being lost. Menus, widgets, customizer settings and much more will all be preserved.  Tip: Using a child theme can speed up development time.

    The post Themedd – Using a child theme first appeared on Easy Digital Downloads.

    ]]>
    We strongly recommend using a child theme instead of making modifications directly to Themedd. The child theme will inherit all functionality and styling of Themedd and prevent any of your modifications from being lost. Menus, widgets, customizer settings and much more will all be preserved. 

    Tip: Using a child theme can speed up development time. As a bonus, you will learn a lot about WordPress theme development!

    Installing the Themedd child theme

    1. Download Themedd to your computer. Click the download link after purchase (it’s free!) from the purchase confirmation page or from your purchase receipt email. You can also download Themedd from your account page after purchase.
    2. Download the Themedd child theme.
    3. In your WordPress admin, go to Appearance → Themes and click Add New from the top of the screen.
    4. Click Upload Theme from the top of the screen.
    5. Click Browse, select the zip file you downloaded in step 1 and click open. Lastly, click Install Now.
    6. Repeat step 5 and install the child theme you downloaded in step 2.
    7. Click Activate to active the Themedd child theme.

    Making changes to Themedd, from the child theme

    PHP
    All custom PHP functionality can be added to the functions.php file, inside the child theme.

    CSS
    All custom CSS styling can be added to the style.css file, inside the child theme.

    The post Themedd – Using a child theme first appeared on Easy Digital Downloads.

    ]]>
    Frontend Submissions – Extension Compatibility https://easydigitaldownloads.com/docs/frontend-submissions-extension-compatibility/ Mon, 24 Jan 2022 19:55:41 +0000 https://edd-site.lndo.site/docs/frontend-submissions-extension-compatibility/ Frontend Submissions is compatible with many Easy Digital Downloads extensions. Amazon S3 Frontend Submissions is fully compatible with the Amazon S3 extension with some minor behavioral changes. Uploading works exactly the same, but Vendors may not browse the server. If they need to change files, the site admin must upload a new one. If they

    The post Frontend Submissions – Extension Compatibility first appeared on Easy Digital Downloads.

    ]]>
    Frontend Submissions is compatible with many Easy Digital Downloads extensions.

    Amazon S3

    Frontend Submissions is fully compatible with the
    Amazon S3 extension with some minor behavioral changes. Uploading works exactly the same, but Vendors may not browse the server. If they need to change files, the site admin must upload a new one. If they need to revert, they cannot browse to the original file, and they have to re-upload that original file. Read more information about Amazon S3 and Frontend Submissions here.

    Commissions

    Frontend Submissions is fully compatible with the
    Commissions extension. You can read about how that integration works in this document.

    Custom Deliverables

    With Frontend Submissions and
    Custom Deliverables your Vendors can deliver customized files to their customers. See Custom Deliverables – Frontend Submissions Integration for details.

    Dropbox

    The Dropbox File Store extension is
    incompatible with Frontend Submissions.

    EDD Message

    EDD Message integrates perfectly with Frontend Submissions. With both active, it is possible to send unique, custom messages directly to Vendors. Additionally Vendors can send messages directly to their own customers.

    Purchase Limit

    There’s no direct integration between
    Purchase Limit and Frontend Submissions, but if you add a text field to your Submission Form and give it a meta key of
    _edd_purchase_limit, the value entered by the Vendor will be set as the limit. Please note this will only work if the Vendor is submitting a single priced product. If they are using variable prices, this method will not work. The site owner would have to edit the submitted product(s) manually.

    Recurring Payments

    Recurring Payments and Frontend Submissions are not fully integrated. Vendors will not be able to set recurring payment details in the submission form. However, recurring payment functionality can be enabled for vendor-uploaded products through the Edit Download screen by the site owner once submitted.

    Simple Shipping

    When
    Simple Shipping and Frontend Submissions are both active, a “Shipping” field will become available in the “Add Extension Created Fields” section of the Submission Form. When this field is added to the Submission Form, Vendors will be able to define their own international and domestic shipping rates for each product. Additionally, if a Country field is added to the Vendor profile form with the meta key “vendor_country”, shipping calculations at checkout will be based on that value instead of the one saved in the Simple Shipping settings. See detailed instructions here.

    Slack

    EDD Slack includes an integration with Frontend Submissions. With EDD Slack it is possible to receive notifications within your Slack channels when Vendors register, submit products, and edit products as well as when customers contact Vendors. Additionally, EDD Slack can include interactive buttons within notifications for Vendor applications, submissions, and product edits so you can approve or reject the request right from Slack without having to login to your WordPress dashboard.

    Software Licensing

    The
    Software Licensing extension is incompatible with Frontend Submissions.

    Other Plugins

    If you think perhaps you’ve found a conflict, or are wondering about a specific plugin, feel free to
    open a support ticket and we’ll be happy to answer your questions.

    The post Frontend Submissions – Extension Compatibility first appeared on Easy Digital Downloads.

    ]]>
    Setting up Conditional Emails https://easydigitaldownloads.com/docs/setting-up-conditional-emails/ Mon, 24 Jan 2022 19:55:41 +0000 https://edd-site.lndo.site/docs/setting-up-conditional-emails/ Once the Conditional Emails extension is installed and activated, a new section will be added to the Downloads > Emails > Conditional Emails. Prior to any configuration, the Conditional Emails section will look like this: Clicking the “Add Email” button will display a dialog allowing you to select the email condition, the status conditions, where

    The post Setting up Conditional Emails first appeared on Easy Digital Downloads.

    ]]>
    Once the Conditional Emails extension is installed and activated, a new section will be added to the Downloads > Emails > Conditional Emails. Prior to any configuration, the Conditional Emails section will look like this:

    Clicking the “Add Email” button will display a dialog allowing you to select the email condition, the status conditions, where the email should be sent, as well as the email Subject, Header, and Message.

    Email Condition Options

    Status – Changed From & Changed To Options

    Note: Options available in “Status Changed From” and “Status Changed To” can change based on what payment gateways are active.

    Send To Options

    Note: When choosing “Custom”, you will be presented with an email address field to enter a custom email address.

    Writing Your First Email

    Writing emails with the Conditional Emails extension works in much the same way as writing emails for EDD itself. HTML emails are permitted, and Conditional Emails supports a number of template tags to help you out. The following template tags are supported natively:

    {download_list} – A list of download links for each download purchased
    {file_urls} – A plain-text list of download URLs for each download purchased
    {name} – The buyer’s first name
    {fullname} – The buyer’s full name, first and last
    {username} – The buyer’s user name on the site, if they registered an account
    {user_email} – The buyer’s email address
    {billing_address} – The buyer’s billing address
    {date} – The date of the purchase
    {subtotal} – The price of the purchase before taxes
    {tax} – The taxed amount of the purchase
    {price} – The total price of the purchase
    {payment_id} – The unique ID number for this purchase
    {receipt_id} – The unique ID number for this purchase receipt
    {payment_method} – The method of payment used for this purchase
    {sitename} – Your site name
    {receipt_link} – Adds a link so users can view their receipt directly on your website if they are unable to view it in the browser correctly.
    {discount_codes} – Adds a list of any discount codes applied to this purchase

    In addition to these template tags, Conditional Emails uses the EDD core template tag system, so tags added by third-party extensions should work as well.

    The post Setting up Conditional Emails first appeared on Easy Digital Downloads.

    ]]>
    Amazon S3 and Frontend Submissions https://easydigitaldownloads.com/docs/amazon-s3-and-frontend-submissions/ Mon, 24 Jan 2022 19:55:37 +0000 https://edd-site.lndo.site/docs/amazon-s3-and-frontend-submissions/ The Amazon S3 extension and Frontend Submissions can be used together so that files uploaded by Vendors through the Vendor Dashboard are transferred automatically to your Amazon S3 account. All files uploaded by Vendors will be automatically placed in the default bucket you have selected in the Amazon S3 settings. Within the default bucket, a

    The post Amazon S3 and Frontend Submissions first appeared on Easy Digital Downloads.

    ]]>
    The Amazon S3 extension and Frontend Submissions can be used together so that files uploaded by Vendors through the Vendor Dashboard are transferred automatically to your Amazon S3 account.

    All files uploaded by Vendors will be automatically placed in the default bucket you have selected in the Amazon S3 settings. Within the default bucket, a folder with the Username or User ID of the Vendor will contain that Vendor’s files.

    Folder Name Setting

    This setting is added to the Amazon S3 Settings upon installing the Amazon S3 Extension. This setting determines the naming convention of the folder each Vendor’s files are placed in.

    Prices and Files Form

    When Amazon S3 and Frontend Submissions are both installed, files that are uploaded by Vendors (via the “Download Prices and Files” field on the “Add/Edit Product” page in their Vendor Dashboard) will be automatically transferred to your S3 account. There are no additional settings to configure; it’s all automatic.

    Amazon S3 Uploader

    This is used specifically for uploading files only accessible via the WordPress admin, which are found in the Download settings area when creating/editing a Download.

    Important Note:

    This uploader is not used for customer files; this is only for accessing files via the WordPress Dashboard.

    Notes:

    • Files are all uploaded to the same bucket
    • Files uploaded to Amazon S3 do not get stored in your local media library
    • Only files uploaded through the Download Prices and Files field are uploaded to Amazon S3

    The post Amazon S3 and Frontend Submissions first appeared on Easy Digital Downloads.

    ]]>
    MailPoet – Setup Documentation https://easydigitaldownloads.com/docs/mailpoet-setup-documentation/ Mon, 24 Jan 2022 19:55:36 +0000 https://edd-site.lndo.site/docs/mailpoet-setup-documentation/ MailPoet is a WordPress plugin that allows you to create lists of email addresses and then send emails to those lists. The Easy Digital Downloads MailPoet extension allows the store owner to associate email lists with Downloads so that customers may subscribe during the checkout process. Installation Because MailPoet is another WordPress plugin as opposed

    The post MailPoet – Setup Documentation first appeared on Easy Digital Downloads.

    ]]>
    MailPoet is a WordPress plugin that allows you to create lists of email addresses and then send emails to those lists. The Easy Digital Downloads MailPoet extension allows the store owner to associate email lists with Downloads so that customers may subscribe during the checkout process.

    Installation

    Because MailPoet is another WordPress plugin as opposed to a remote service, it’s recommended that you install MailPoet version 3 first and configure at least one email list.

    EDD MailPoet settings

    Once
    installed, locate the settings for this extension via WordPress Dashboard > Downloads > Settings > Marketing > MailPoet

    Show Signup on Checkout – This allows customers to sign up for any list at checkout. If this option is not checked, MailPoet will not be available at all in your EDD store. It’s essentially an on/off switch for the entire extension.

    Signup Checked by default – If you check this box, the “Signup for the newsletter” checkbox on the checkout page will be checked by default.

    Checkout Label – This allows you to customize the text that will be displayed on the Checkout page next to the checkbox. If you don’t enter anything “Signup for the newsletter” will show.

    Download Specific Settings

    Each download may be associated with a specific list. This allows you to have an updated list for each product. In the right column of the admin page for a single Download there is a metabox that allows the store owner to associate specific lists with that Download.

    The store owner may associate a Download with more than one list, but the customer will still only see the one checkbox with the global label referred to above.

    The post MailPoet – Setup Documentation first appeared on Easy Digital Downloads.

    ]]>
    EDD Advanced Reports Documentation https://easydigitaldownloads.com/docs/edd-advanced-reports-documentation/ Mon, 24 Jan 2022 19:55:36 +0000 https://edd-site.lndo.site/docs/edd-advanced-reports-documentation/ Advanced Reports is a reporting tool that allows you to create in-depth reports for earnings, taxes, and sales based on your store’s activity. Upon installing and activating the extension, a new section/tab named Advanced Reports will be available when navigating to Downloads → Reports. Creating A Custom Report You can create any number of advanced

    The post EDD Advanced Reports Documentation first appeared on Easy Digital Downloads.

    ]]>
    Advanced Reports is a reporting tool that allows you to create in-depth reports for earnings, taxes, and sales based on your store’s activity.

    Upon installing and activating the extension, a new section/tab named Advanced Reports will be available when navigating to Downloads → Reports.

    Creating A Custom Report

    You can create any number of advanced reports just like you would do with a post or page. Simply navigate to Downloads → Reports → Advanced Reports, and click on Create Your First Report (or Add Report if you’ve already created your first report).

    A report will have the following fields:

    Title. This identifies the report so you can later refer to it by name.

    Date range. Reports are always shown relative to the current date, and thus you can set a number of days to display going backwards in time. For example, you may choose to view the last 90 days.

    Show in Dashboard. This will allow you to pin a report to the WordPress Dashboard.

    Report Series. This allows creating more granular reports by selecting specific data to show in the report.

    Report Series

    Each report can have an unlimited number of series. Each series is comprised of a data set, outlining statistics for a similar group of data.

    When adding a series, you can customize the data that will be shown by selecting a context. The following contexts are available:

    • Gross earnings: the total amount earned from your sales.
    • Net earnings: the amount earned from sales, minus taxes (what you actually earn).
    • Taxes: the amount collected that needs to be paid in taxes.
    • Sales: the number of times an item has been sold.

    Series Filtering

    Besides selecting a context for your data, you can also filter each series to have more granular control over the results. As of now, the following filters are available:

    • Filter by download: Allows you to filter for a specific download/product in your store.
    • Filter by status: Allows you to select only payments with a certain status.

    Viewing Advanced Reports

    Once you have created your advanced reports, you can view them in the Reports section by navigating to Downloads → Reports → Advanced Reports. In this section, you can switch between all advanced reports by using the report selector located to the top right of the page.

    When viewing a report, you will be shown a graph that outlines all the series and their associated values, as well as a table further detailing each value.

    Initially, the report will display a date range going backwards from today, based on the number of days set in the Date Range field. You can, however, change the date to any range you need to.

    Each report will display a total amount for each series you have created. Depending on the context you have chosen, the total amount will be expressed as a currency or as a flat number.

    You may also click the Manage Reports button to see a list of all Advanced Reports that have been created.

    Exporting Reports

    You can export any of your advanced reports by clicking on the Export to CSV button located to the right of the date filter. You will be able to download the report in a semicolon-delimited CSV file, which you can then open in Microsoft Excel to further manage your data.

    Exported reports will have the same format as the table shown beneath the graph.

    Pin to Dashboard

    You can also pin any number of advanced reports to the dashboard, by selecting the Show In Dashboard option when creating or editing an Advanced Report. Pinned reports will be shown as an individual dashboard widget when loading the WordPress Dashboard.

    Reports shown in the dashboard will display a date going backwards from today, to the number of days specified in the date range field.

    The post EDD Advanced Reports Documentation first appeared on Easy Digital Downloads.

    ]]>
    EDD Slack Integration https://easydigitaldownloads.com/docs/slack-integration-setup/ Mon, 24 Jan 2022 19:55:33 +0000 https://edd-site.lndo.site/docs/edd-slack-getting-started/ Creating Webhooks Once the extension is installed and activated you can navigate to Downloads > Settings > Extensions > Slack and you will want to first create an Incoming Webhook for your Slack Team. This allows EDD Slack to send Notifications on your behalf, meaning it can only send Notifications to the same Channels that

    The post EDD Slack Integration first appeared on Easy Digital Downloads.

    ]]>

    Creating Webhooks

    Once the extension is installed and activated you can navigate to Downloads > Settings > Extensions > Slack and you will want to first create an Incoming Webhook for your Slack Team.

    This allows EDD Slack to send Notifications on your behalf, meaning it can only send Notifications to the same Channels that you can. If you have access to a Private Channel it can send Notifications to that Private Channel, but it cannot send Notifications to Private Channels to which you do not have access.

    While creating an Incoming Webhook Integration Slack will ask you which Channel you would like to post to. Think of this as a “Default Channel”. For each Notification that you create in the extension, you are able to designate different Channels if needed.

    Once you have generated an Incoming Webhook, enter it into the “Default Webhook URL” field and click “Save Changes”. Now you can proceed to Create Notifications!

    Creating Notifications

    Now that you have a Default Webhook URL set, it is time to set up some Notifications!

    EDD Slack allows you to configure an unlimited number of Notifications to be sent to any specified Channel in your Slack Team. Simply navigate to the settings page for the extension and click “Add Slack Notification” to bring up the configuration form. These settings can be edited later at any time.

    Here’s a description of what each field does:

    • Identifier for this Notification: This field is simply a label for you and helps you determine which saved Notification does what. You can enter whatever you’d like here. If nothing is entered, it will default to “New Slack Notification”.
    • Slack Trigger: Defines the Trigger which results in this notification sending a message to Slack. This can be an action within Easy Digital Downloads or another supported Easy Digital Downloads Extension. Based on the choice of Trigger, additional fields will be added to the Form and different Text Replacements for the Message Pre-text, Message Title, and Message fields will become available so that pertinent information about the Notification can be passed to Slack.
    • Message Pre-text: Optional text which shows above the Message Title.
    • Message Title: This allows you to control the Message Title. If nothing is entered, this will default to the Notification Identifier above.
    • Message: This is an optional field where you can enter more descriptive text within the Notification below the Pre-Text and the Title.
    • Slack Webhook URL: Allows for an alternate Webhook URL to be used in special cases. This can be used in an event where a Notification should be sent to a different Team than the one that is defined for the Default Webhook.
    • Slack Channel: This allows you to override the Slack Channel of the Webhook for this particular Notification. If you desire to send notifications to a specific Slack User in your Team, use the @username syntax. Leave blank for the Default Channel defined by the Webhook. Remember, this Channel needs to be one that the creator of the Webhook URL has access to!
    • Color: Messages sent to Slack will have this color appear in a bar before the message.
    • Username: Defines the name of the User that the message will appear to be from. The User does not need to exist in Slack and this can be set to anything you’d like. This will default to the name of your WordPress site.
    • Icon Emoji or Image URL: If the default image or emoji used for notifications isn’t your style, this field will allow for custom graphics to be specified. You can also set any created Custom Slack Emoji that you want for this field.
    • Additional fields will also appear depending on the selected Slack trigger. These allow you to specify for which Downloads a Trigger should send a Notification for example.

    When a Slack Trigger is chosen, additional Fields and Text Replacement tags are added to the Form. For example, here’s what you will see when choosing the “Purchase Complete” Trigger:

    The Text Replacement tags allow information about the Trigger to be added to the content of the Notification. This way you can see the contents of a cart for a Purchase, the Total, and other bits of information based on the chosen Trigger.

    Once the Form has been filled out to your liking, click the “Save Slack Notification” button at the bottom of the form. This will close out the Form and bring you back to the screen you were at before and flash the Notification green to show that it has been Saved. The green Checkmark will show that the Notification is Active. Congratulations, you have configured your first Slack Notification!

    If instead of a green Checkmark, you see a red “X”, the notification is Inactive. This can happen for one or more of the following reasons:

    1. A Webhook URL was not set as the Default or otherwise provided as part of the Form.
    2. The form was closed out without Saving.
    3. A previously saved Notification was using a Trigger that is no longer available. This can happen when a plugin that integrates with EDD Slack gets disabled.

    Setting up a Slack App

    These steps are optional, but unlock extra functionality within EDD Slack. If you follow these steps, you will be able to perform actions on your site directly from a Slack Notification by clicking a Button within a Slack notification as well as return data from your site using Slash Commands.

    Note: To proceed, your site must have SSL enabled!

    If your site has SSL enabled, you will see some additional options below the created Slack Notifications:

    At the top of this section, a list of any available Triggers that support Interactive Buttons will be displayed. If none are shown, you can still benefit from setting this up to use Slash Commands!

    This functionality is based on linking a Slack App to your website. Follow the link to create your own Slack App by clicking the “Create New App” button to get started.

    Initially Linking the Slack App:

    The App Name field can be anything you want. It is used within Slash Commands as the “Username” when it returns data back to you. The Workspace field should be the Team you want to link your EDD store to. Click “Create App” to continue.

    The next screen will show you your Client ID, Client Secret, and Verification Token for the Slack App in the App Credentials section lower on the page. Enter these back in the EDD Slack Settings (Downloads > Settings > Extensions > Slack)and click “Save Changes” at the bottom of the screen.

    Before you can click the “Link Slack App” button that appears, you will need to define a Redirect URL for the Slack App. Back in the settings for the Slack App you created:

    1. Click “OAuth & Permissions” on the left of the screen.
    2. Click on “Add New Redirect URL”
    3. Enter https://yoursite.com/wp-admin/edit.php?post_type=download&page=edd-settings&tab=extensions&section=edd-slack-settings where yoursite.com is the Domain of your site and click “Add” on the right side of the field.
    4. Click “Save URLs” at the bottom.

    Now you can return to the EDD Slack Settings page and click the “Link Slack App” button. This will pop up a new window where you will sign in to your Team that was set before to Authorize the Slack App on your site. Similarly to the Webhook URLs before, this will mean that it is restricted to the same Channels that the Slack User who linked the Slack App to the site has access to within the chosen Team.

    Once Authorized, the popup window will close on its own and the EDD Slack Settings Page will refresh, presenting you with a “Slack App Linked Successfully” message.

    Now that this step has been completed, API Endpoints have opened on your site. These are used for both Interactive Notifications and Slash Commands.

    The next steps are to configure your Interactive Notifications followed by your Slash Commands.

    Interactive Notifications

    To set up Interactive Notifications for EDD Slack, return to your Slack App’s Settings and click on “Interactivity & Shortcuts” on the left side of the screen.

    Click the Off toggle on the top right corner to enable them and enter https://yoursite.com/wp-json/edd-slack/v1/slack-app/interactive-message/submit in the Request URL field where yoursite.com is the Domain of your site. Once you’re finished, click “Save Changes”.

    Slash Commands

    Slash commands act as shortcuts for specific actions in Slack that you can use to interact with your EDD store.

    To set up Slash Commands, within your Slack App’s Settings, click on “Slash Commands” then click “Create New Command”. This will bring up a window where the Settings for the Slash Command will be entered. 

    EDD Slack utilizes a single Slash Command and routes it to different functions based on a passed parameter. Here is an example of a /edd command:

    • Command: /edd We recommend setting the “Command” to /edd, but if you were to decide to name it /webstore or anything else that will also work.
    • Request URL: https://yoursite.com/wp-json/edd-slack/v1/slack-app/slash-command/submit where yoursite.com is the domain name of your website.
    • Short Description: Pull Info from EDD
    • Usage Hint: Run “/edd help” for usage hints
    • Escape channels/users: This can be left unchecked in most cases. Turning this on will modify the parameters sent with a command by a user. More details here

    You can test Slash Commands by entering /edd help within any channel you have access to. Interactive Notifications will be used in place of regular Notifications where applicable.

    The extension features several useful commands that can be run within Slack to retrieve data or create something new within your WordPress site without actually logging in to your site at all.

    Slack already includes many useful slash commands which can be very helpful like the /remind command. EDD Slack introduces a few new commands that apply specifically to users of Easy Digital Downloads.

    The easiest way to view all of the available slash commands included within EDD Slack is to enter /edd help into Slack. This can be done anywhere and the results will only be visible to you. They will look like this:

    */edd sales*
    Description: Show an Earnings Report for the Selected Time Period
    Example: `/edd sales this_month`
    Option(s): `today`, `yesterday`, `this_week`, `last_week`, `this_month`, `last_month`, `this_quarter`, `last_quarter`, `this_year`, `last_year`
    Default: `this_month`
    
    */edd version*
    Description: Outputs the current version of Easy Digital Downloads.
    Example: `/edd version`
    
    */edd discount*
    Description: Outputs information about a Discount Code. This can also be used to create new Discount Codes.
    Examples:
        `/edd discount DISCOUNTCODE` - Retrieve information about a Discount Code
        `/edd discount DISCOUNTCODE $3.50` - Create or Update a Discount Code with a Flat Rate Discount
        `/edd discount DISCOUNTCODE 42%` - Create or Update a Discount Code with a Percentage Discount
    
    */edd customer*
    Description: Outputs information about a Customer. You can use either their Customer ID or their Primary Email Address for this command.
    Examples:
        `/edd customer 42`
        `/edd customer admin@realbigmarketing.com`
    
    */edd help*
    Description: Shows this Dialog. Optionally can show the Help Dialog for a Single Command.
    Example: `/edd help`
    Option(s): `sales`, `version`, `discount`, `customer`
    
    As shown above, the currently included slash commands are:
    • /edd help
    • /edd sales
    • /edd version
    • /edd discount
    • /edd customer

    Configuring Slack Team Invites

    To enable this feature, your own personal Slack User account must have the permissions necessary to Invite Users. This is normally reserved for Slack Team Admins. Similar to Interactive Messages and Webhook URLs, this inherits some capabilities of your Slack User. If you cannot Invite Users, neither can your Slack App.

    The ability to auto-invite Customers to your Slack Team exists in the extension which requires Interactive Notifications and Slash Commands to have been enabled already.

    Once you’ve enabled  Interactive Notifications and Slash Commands, a new button will appear in your EDD Slack settings to enable Slack Team Invites.

    Once you click this button, a similar popup window will appear as when you previously set up Interactive Messages and Slash Commands. This is because you need to grant more permissions to your Slack App.

    The window that appears will say that you are granting the Slack App the ability to access all content and all events in real-time. This is due to the fact that in order to invite Customers and Slack Users, your Slack App needs all of the permissions as a full-blown Slack Client. This is only used for inviting Customers to your Slack Team.

    Once this is done some new options appear. This allows you to enable Slack Team Invites for Customers as well as Slack Team Invites for Vendors (If the Frontend Submissions extension is active on your site).

    All newly invited Slack Users are auto-invited to your #general channel (Or whatever you have renamed it to). However, on this screen, you can define additional public channels you would like them to be invited to. It grabs all public channels from your Slack Team for you, so just choose whichever ones you’d like from the dropdown.

    The “Join Slack Team Text” field adjusts the text shown when giving a Customer/Vendor the option to be invited to your Slack Team. For Customers, it shows on the Checkout page, and for Vendors on the Vendor registration page.

    You can also manually invite Customers from their Customer Page under the “Tools” tab and, if you are using the  Frontend Submissions extension, Vendors from their Vendor Page under the “Profile” tab in the WordPress Dashboard.

    Available Integrations

    Easy Digital Downloads – Frontend Submissions

    If Frontend Submissions is active, the following Triggers become available:

    • New Vendor Application
    • New Vendor Product (If Vendors are given permission to create Products)
    • Vendor Product Edited (If Vendors are given permission to edit their Products)
    • New Vendor Contact Form Submitted
    • New Vendor Feedback (Requires Reviews to also be active)

    Interactive Notification Support

    The following Frontend Submissions Triggers support Interactive Notifications, provided different conditions are met. You are able to Approve or Deny the following Vendor actions directly from Slack:

    • New Vendor Application (If new Vendor Applications are not set to be auto-approved)
    • New Vendor Product (If new Vendor Products are not set to be auto-approved)
    • Vendor Product Edited (If new Edits to Vendor Products are not set to be auto-approved)

    Easy Digital Downloads – Software Licensing

    If Software Licensing is active, the following Triggers become available:

    • New License Key Generated
    • License Key Activated
      • Note: Activating manually from the Licenses screen does not trigger this.
    • License Key Deactivated
      • Note: Deactivating manually from the Licenses screen does not trigger this.
    • License Upgraded

    Easy Digital Downloads – Commissions

    If Commissions is active, the following Trigger becomes available:

    • New Commission

    Easy Digital Downloads – Purchase Limit

    If Purchase Limit is active, the following Trigger becomes available:

    • Purchase Limit Reached

    Comments on Downloads (If they’re enabled)

    While not exactly an “Integration”, by default Easy Digital Downloads does not provide support for Comments on Downloads. However, if you enable it yourself or through another plugin, the following Trigger becomes available:

    • New Comment on Download

    Interactive Notification Support

    This Interactive Notification is unique in that it has two versions: One for when your site is set to manually approve Comments and one for when it is not.

    If you are manually approving Comments on your site, you have the ability to Approve the Comment or mark it as Spam. Otherwise, you only have the ability to mark it as Spam.

    Note about Server-side Caching:

    License Activation Triggers are now specific to Activation/Deactivation via EDD’s web API.

    This can cause problems in some server configurations due to server-side caching. edd_action=activate and edd_action=deactivate URL Parameters should be excluded from caching on your site’s homepage to ensure that everything works correctly.

    Easy Digital Downloads – Reviews

    If Reviews is active, the following Triggers become available:

    • New Review on Download
    • New Vendor Feedback (Requires Frontend Submissions to also be active)

    Easy Digital Downloads – Fraud Monitor

    If Fraud Monitor is active, the following Trigger becomes available:

    • Suspected Fraudulent Purchase

    Interactive Notification Support

    You can utilize Interactive Notifications to mark a Payment as Valid or mark it as Fraud from directly within Slack. When you do this, the Log attached to the Payment will state the action taken and say that it was done via EDD Slack and by which Slack User.

    Easy Digital Downloads – Recurring Payments

    If Recurring Payments is active, the following Triggers become available:

    • New Subscription Created
    • Subscription Cancelled

    The post EDD Slack Integration first appeared on Easy Digital Downloads.

    ]]>
    Download Email Attachments https://easydigitaldownloads.com/docs/download-email-attachments/ Mon, 24 Jan 2022 19:55:33 +0000 https://edd-site.lndo.site/docs/download-email-attachments/ The Download Email Attachments extension allows you to send download files as email attachments to your customers. Setup After you have installed and activated the Download Email Attachments extension, you can find the settings area by navigating to Downloads → Settings → Extensions. The only option is to enable the functionality on a per download

    The post Download Email Attachments first appeared on Easy Digital Downloads.

    ]]>
    The Download Email Attachments extension allows you to send download files as email attachments to your customers.

    Setup

    After you have installed and activated the Download Email Attachments extension, you can find the settings area by navigating to Downloads → Settings → Extensions.

    The only option is to enable the functionality on a per download basis. If this option is not enabled then all downloads will have email attachments in place for the file downloads.

    If the above option is enabled, then each download will have an option to enable this functionality, and it will be located in the “Download Prices” area when creating or editing a download product.

    NOTE: Pay special attention to the size of your download attachments. This extension is great for sending files as attachments, but a large file over 10mb may not reach a customer’s inbox. Some customers may have the maximum size for an email set even lower. Also note that this plugin does not remove download links from the purchase confirmation page (this can be done by editing the shortcode-receipt page) or the purchase confirmation receipt (you can remove download links from the email in Downloads → Settings → Emails → Purchase Receipts).

    The post Download Email Attachments first appeared on Easy Digital Downloads.

    ]]>
    Commissions – Frequently Asked Questions https://easydigitaldownloads.com/docs/commissions-frequently-asked-questions/ Mon, 24 Jan 2022 19:55:32 +0000 https://edd-site.lndo.site/docs/commissions-frequently-asked-questions/ Here are some frequently asked questions for the Commissions extension. Do I have to pay vendors through PayPal? Paying vendors through PayPal is supported but not required. Commissions allows you to generate a CSV payout file, but this file format is supported by many platforms. Can I pay vendors through Stripe? Unfortunately not at this

    The post Commissions – Frequently Asked Questions first appeared on Easy Digital Downloads.

    ]]>
    Here are some frequently asked questions for the Commissions extension.

    Do I have to pay vendors through PayPal?

    Paying vendors through PayPal is supported but not required. Commissions allows you to generate a CSV payout file, but this file format is supported by many platforms.

    Can I pay vendors through Stripe?

    Unfortunately not at this time. Want this feature? Let us know!

    Can I pay vendors through Moneybookers?

    Yes, Moneybookers supports the Commissions CSV payout file.

    Can I pay vendors through Payoneer?

    Not at this time. Want this feature? Let us know!

    Can I pay vendors instantly during checkout?

    It’s possible via the 3rd party extension PayPal Adaptive Payments.

    Can I revoke commissions when orders are refunded?

    Yes, this is done automatically if the “Revoke on Refund” setting is enabled. If it’s not enabled, you can do it manually via the commission details. See the Commissions – Refunds doc for details.

    How many vendors can I have?

    There is no limit to the number of vendors you can have.

    Can I export commission records to a CSV file?

    From your Commissions page at Downloads → Commissions, there is a button in the top left that says Generate Payout File. See Commissions – Payouts for details.

    Can I pay commissions through PayPal without PayPal Payouts?

    Yes, though you will have to process commission payouts one vendor at a time. The process would look like this:

    1. Generate export file
    2. Manually send payout to each vendor for the amount shown in the file.

    Does Commissions work with Frontend Submissions?

    Yes! See Integration Guide: Commissions and Frontend Submissions for details.

    Can commissions be calculated before or after tax?

    Yes, using the “Calculation Base” setting under Downloads → Settings → Extensions → Commissions Calculation Base.

    Can commissions be calculated after discounts?

    Yes, using the “Calculation Base” setting under Downloads → Settings → Extensions → Commissions Calculation Base.

    The post Commissions – Frequently Asked Questions first appeared on Easy Digital Downloads.

    ]]>
    Duplicate Downloads https://easydigitaldownloads.com/docs/duplicate-downloads/ Mon, 24 Jan 2022 19:55:31 +0000 https://edd-site.lndo.site/docs/duplicate-downloads/ The Duplicate Downloads extension for Easy Digital Downloads allows you to easily duplicate a download. When the “Duplicate” button is clicked, the details of a product are copied to a new draft. Setup Once installed and activated there are no settings to configure, the functionality is immediately available. Usage When installed this extension will add

    The post Duplicate Downloads first appeared on Easy Digital Downloads.

    ]]>
    The Duplicate Downloads extension for Easy Digital Downloads allows you to easily duplicate a download. When the “Duplicate” button is clicked, the details of a product are copied to a new draft.

    Setup

    Once installed and activated there are no settings to configure, the functionality is immediately available.

    Usage

    When installed this extension will add a “Duplicate” link in addition to the other links below the title of each of your Download posts. You can see these links by hovering over a Download title when navigating to Downloads → All Downloads.

    When you click the “Duplicate” link the details of a product are copied to a new draft. This is extremely useful for variation products, because the variations do not need to be re-created for every single product.

    If you need to duplicate a large number of Downloads, it may be best to bulk import products from CSV. This is useful for importing many products at once which might be more suitable than duplicating and modifying Downloads one at a time.

    Note: There are many plugins available for duplicating posts. Some of them will copy over sales counts and earning stats which will likely lead to problems with your store. Additionally, many of these plugins do not have the programming in place to duplicate all of our custom metadata.

    The post Duplicate Downloads first appeared on Easy Digital Downloads.

    ]]>
    Custom Deliverables – Overview https://easydigitaldownloads.com/docs/custom-deliverables-overview/ Mon, 24 Jan 2022 19:55:30 +0000 https://edd-site.lndo.site/docs/custom-deliverables-overview/ This document gives a general overview of the EDD Custom Deliverables extension for Easy Digital Downloads. The Custom Deliverables extension for Easy Digital Downloads makes it possible to attach customized files to a customer’s order. The customer can log into their account at any time to download those files. The files are protected and tracked

    The post Custom Deliverables – Overview first appeared on Easy Digital Downloads.

    ]]>
    This document gives a general overview of the EDD Custom Deliverables extension for Easy Digital Downloads.

    The Custom Deliverables extension for Easy Digital Downloads makes it possible to attach customized files to a customer’s order. The customer can log into their account at any time to download those files. The files are protected and tracked by the same system that protects normal deliverable files in Easy Digital Downloads.

    Initial Setup:

    Once activated, there are no settings to configure. In all Order Details (Downloads → Orders → Order Details) a Custom Deliverables section will appear where you can upload and notify customers that custom file(s) are available for download.

    Attaching and delivering customized files to an order/payment

    Within the Custom Deliverables section, you can Upload a File the same way you add files to a product.

    (Optional) You can also choose which group(s) of files you want the customer to have access to. You can choose either default files only, customized files only, or both default and customized files.

    • Default files are the files attached to the product by default when the product was first created and added to the store.
    • Custom files are the files attached only to the payment in question.

    You can also click to mark each product in the order (or “job”) as fulfilled. Once all jobs are marked as fullfilled, the payment will show as fulfilled under Dashboard → Downloads → Orders.

    Click Notify Customer to notify customers their file is available for download.

    Edit Notify Customer Email

    You can edit the Notify Customer email under Downloads > Emails > Custom File Delivery.

    Custom Deliverables – FAQ and Troubleshooting

    How can I require that the customer be logged in to download customized files?

    If you want to require that the customer be logged into your website in order to download their customized files, you can use this code snippet: http://library.easydigitaldownloads.com/misc/restrict-downloads-to-purchase-email.html

    The best way to apply the code snippet to your site is to create a new custom plugin. To do that, install the free plugin called Pluginception, https://wordpress.org/plugins/pluginception/, and use it to create a new custom plugin. Name the plugin something appropriate and then paste the provided code snippet into it and activate the plugin.

    For Vendors in Frontend Submissions, why isn’t the “Upload Files” button working for Custom Deliverables?

    Double check that you have set up the Vendor Dashboard correctly. Go to Dashboard → EDD FES → Settings → Forms/Pages → Vendor Dashboard Page and make sure you have selected the correct page. This will solve the issue.

    The post Custom Deliverables – Overview first appeared on Easy Digital Downloads.

    ]]>
    Integration Guide: Frontend Submissions and Simple Shipping https://easydigitaldownloads.com/docs/integration-guide-frontend-submissions-and-simple-shipping/ Mon, 24 Jan 2022 19:55:29 +0000 https://edd-site.lndo.site/docs/integration-guide-frontend-submissions-and-simple-shipping/ Easy Digital Downloads and Frontend Submissions are designed to sell digital products. However, there are occasions when physical goods which are subject to shipping charges need to be sold as well in the same store. For this reason we created our Simple Shipping extension, which adds basic features for setting shipping costs on any applicable

    The post Integration Guide: Frontend Submissions and Simple Shipping first appeared on Easy Digital Downloads.

    ]]>
    Easy Digital Downloads and Frontend Submissions are designed to sell digital products. However, there are occasions when physical goods which are subject to shipping charges need to be sold as well in the same store. For this reason we created our Simple Shipping extension, which adds basic features for setting shipping costs on any applicable product. Below you can read how the Simple Shipping extension integrates with the Frontend Submissions extension.

    Adding shipping to the submission form

    To allow Vendors to set their own shipping rates on their products, edit the Submission Form and add the “Shipping” field which can be found under Add Extension Created Fields. When this is in place, vendors who edit products will see two fields: Domestic and International shipping rates.

    Basing shipping costs on vendor location

    Simple Shipping includes a setting for defining the base country of a digital store. This country will be used to determine whether the International or Domestic rate will apply when customers enter their shipping address during checkout. When using Simple Shipping with Frontend Submissions, typically the vendors will be the one handling the shipping and therefore it is necessary to base the country on the vendor’s location rather than the store owner’s.

    To change the shipping calculation to use the Vendor’s location instead of the store’s, a new “Country” field must be added to the Vendor profile form. This field must use the Meta Key “vendor_country” to work correctly. Once this field is in place and a Vendor has set their country, customers purchasing products from the Vendor will have shipping costs added based upon that Vendor’s country instead of the main store’s country.

    The post Integration Guide: Frontend Submissions and Simple Shipping first appeared on Easy Digital Downloads.

    ]]>
    QR Codes https://easydigitaldownloads.com/docs/qr-codes/ Mon, 24 Jan 2022 19:55:29 +0000 https://edd-site.lndo.site/docs/qr-codes/ QR Codes Configuration Once the QR Codes extension is installed and activated, you can configure through the creation or edit screen of a Download. When editing or creating a Download, you will see a “QR Code” section in the right sidebar area: You have the ability to create a QR code that will add the

    The post QR Codes first appeared on Easy Digital Downloads.

    ]]>
    QR Codes Configuration

    Once the QR Codes extension is installed and activated, you can configure through the creation or edit screen of a Download.

    When editing or creating a Download, you will see a “QR Code” section in the right sidebar area:

    You have the ability to create a QR code that will add the product to the cart when someone uses it, or just point to the page containing the Download/Product. Select your choice and click the “Generate” button to show the QR code, a URL and download the image if needed.

    The post QR Codes first appeared on Easy Digital Downloads.

    ]]>
    Upload File https://easydigitaldownloads.com/docs/upload-file/ Mon, 24 Jan 2022 19:55:27 +0000 https://edd-site.lndo.site/docs/upload-file/ The Upload File extension for Easy Digital Downloads allows your customers to upload files before or after completing an order. Configuration Settings After you have installed and activated the Upload File extension, you can find the settings area by navigating to Downloads → Extensions → Upload File. General Settings File Upload Location: This allows you

    The post Upload File first appeared on Easy Digital Downloads.

    ]]>
    The Upload File extension for Easy Digital Downloads allows your customers to upload files before or after completing an order.

    Configuration Settings

    After you have installed and activated the Upload File extension, you can find the settings area by navigating to Downloads → Extensions → Upload File.

    General Settings

    File Upload Location: This allows you to choose the location of the upload form, either the Checkout Page or the Receipt Page.

    Allowed File Extensions: You can choose which file extensions to allow or leave blank for no restriction on file types.

    Maximum Number of Files: This allows you to choose how many files can be uploaded by the user.

    Allow User Download: You can choose whether or not the user will be able to download the file on the Purchase Confirmation screen.

    Text Settings

    Upload Form Title: This is the title of the form upload area.

    Upload Form Description: This is the description in the upload area that appears below the title.

    Upload Form Line Item: This is the text that appears directly above the upload button. This field accepts the following template tags:

    • {limit} – The upload limit for a given product
    • {files} – Displays “file” or “files” depending on the upload limit that’s in place
    • {product} – The name of the product that uploaded files are relevant to

    Usage

    Once settings are in place, navigate to a Download product or create a new one. In the right column there will now be a “File Uploads” settings area.

    Here you are able to enable file uploads for the Download product, set an upload limit and allowed file extensions, or use the global settings outlined above by leaving blank or at zero.

    Once in place, the user will now see an upload form on checkout for any Download product that has “File Uploads” enabled.

    Upon a successful transaction, if “Allow User Download” is enabled in the global settings area, the user will see the uploaded file and have the opportunity to download it on the Purchase Confirmation page.

    The post Upload File first appeared on Easy Digital Downloads.

    ]]>
    Themedd – Enhanced plugin integrations https://easydigitaldownloads.com/docs/themedd-enhanced-plugin-integrations/ Mon, 24 Jan 2022 19:55:24 +0000 https://edd-site.lndo.site/docs/themedd-enhanced-plugin-integrations/ Themedd aims to provide a seamless experience with Easy Digital Downloads and its extensions. There are however some extensions/plugins where Themedd offers a tighter integration. Note: If an extension for Easy Digital Downloads isn’t listed below it’s highly likely it works just fine with Themedd. Only extensions with an enhanced integration have been listed in

    The post Themedd – Enhanced plugin integrations first appeared on Easy Digital Downloads.

    ]]>
    Themedd aims to provide a seamless experience with Easy Digital Downloads and its extensions. There are however some extensions/plugins where Themedd offers a tighter integration.

    Note: If an extension for Easy Digital Downloads isn’t listed below it’s highly likely it works just fine with Themedd. Only extensions with an enhanced integration have been listed in this article. If you feel an extension does not play nicely with Themedd, let us know.

    Frontend Submissions

    https://easydigitaldownloads.com/extensions/frontend-submissions

    • 100% custom CSS styling (CSS file only loaded when extension is active)
    • A unique single-vendor.php page template that can be overridden from a child theme
    • Side by side login and registration forms
    • Custom dashboard with vertical tabs
    • Vendor contact form on the single vendor page; “Display Vendor Contact Form” option added to AppearanceCustomizeEasy Digital Downloads

    Software Licensing

    https://easydigitaldownloads.com/downloads/software-licensing

    • Dequeues the extension’s CSS styling for better performance; all styling is already handled by Themedd’s CSS

    Cross-sell/Upsell

    https://easydigitaldownloads.com/downloads/edd-cross-sell-and-upsell

    • Dequeues the extension’s CSS styling for better performance; all styling is already handled by Themedd’s CSS
    • HTML markup tweaks

    Reviews

    https://easydigitaldownloads.com/downloads/product-reviews

    • 100% custom CSS styling; CSS file only loaded when extension is active
    • Adds an extra HTML body class to help with Frontend Submissions compatibility

    Commissions

    https://easydigitaldownloads.com/extensions/commissions

    • Custom CSS styling

    Points and Rewards

    https://easydigitaldownloads.com/downloads/points-rewards

    • 100% custom CSS styling; CSS file only loaded when extension is active
    • HTML markup tweaks

    Recommended Products

    https://easydigitaldownloads.com/downloads/recommended-products

    • Dequeues the extension’s CSS styling for better performance; all styling is already handled by Themedd’s CSS

    AffiliateWP

    https://affiliatewp.com

    Themedd provides an enhanced integration for our sister product, AffiliateWP.

    • 100% custom CSS styling; CSS styling only loaded when plugin is active
    • Custom dashboard with vertical tabs
    • Side by side login and registration forms

    Subtitles

    https://wordpress.org/plugins/subtitles

    • Support for subtitles on downloads
    • 100% custom CSS styling
    • HTML markup tweaks

    The post Themedd – Enhanced plugin integrations first appeared on Easy Digital Downloads.

    ]]>
    Frontend Submissions Developer Documentation https://easydigitaldownloads.com/docs/frontend-submissions-developer-documentation/ Mon, 24 Jan 2022 19:55:23 +0000 https://edd-site.lndo.site/docs/frontend-submissions-developer-documentation/ Frontend Submissions has a number of features that can be used programmatically.  Make a User a Vendor Frontend Submissions has a helper function called  make_user_vendor() which does two things at once: makes a user into a vendor changes the status on that new vendor to Approved It can be run anywhere, and looks like this:

    The post Frontend Submissions Developer Documentation first appeared on Easy Digital Downloads.

    ]]>
    Frontend Submissions has a number of features that can be used programmatically. 

    Make a User a Vendor

    Frontend Submissions has a helper function called  make_user_vendor() which does two things at once:

    • makes a user into a vendor
    • changes the status on that new vendor to Approved
    It can be run anywhere, and looks like this:
    EDD_FES()->vendors->make_user_vendor( $user_id );
    

    Important: the ID parameter used above is the WordPress user ID.

    Change a Vendor’s Status

    There are three statuses that a Vendor may have:

    • Approved
    • Pending
    • Suspended

    There are also two actions that may be taken:

    • Unsuspend
    • Revoke

    All of these use the same method, but statuses and actions are different things.  Here’s how it works.

    First you must instantiate an Frontend Submissions object like one of these:

    // Example showing required input
    $vendor = new FES_Vendor( $_id_or_email = false, $by_user_id = false );
    
    // using a vendor ID
    $vendor = new FES_Vendor( 14, false );
    
    // using the email address associated with the vendor ID
    $vendor = new FES_Vendor( 'user@example.com', true );
    

    Secondly, you run the change_status() method on that object, similar to one of these examples:

    // Example showing required input
    $vendor->change_status( $new_status = '', $in_admin = false, $output = false );
    

    The $in_admin input allows you to declare whether this action should be allowed in the context of admin area, or outside of it. You may wish to allow this change inside the admin area, but not outside the admin area for example.

    // Set a vendor to approved, inside the admin area, with no output
    $vendor->change_status( 'approved' );
    
    // Set a vendor to pending, outside the admin area, with no output
    $vendor->change_status( 'pending', true );
    
    // Set a vendor to suspended, outside the admin area, with no output
    $vendor->change_status( 'suspended', true, true );
    

    In addition to the above status changes, you can run these actions:

    // Revoke a vendor, inside the admin area, with no output.  
    // This will effectively make a user NOT a vendor, and remove all their products.
    $vendor->change_status( 'revoke' );
    
    // Changes a user from suspended to approved. At this point identical to setting
    // a user to approved, but in the future may contain some additional features.
    $vendor->change_status( 'unsuspend' );
    

    The post Frontend Submissions Developer Documentation first appeared on Easy Digital Downloads.

    ]]>
    Checkout Fields Manager – Field Types https://easydigitaldownloads.com/docs/checkout-fields-manager-field-types/ Mon, 24 Jan 2022 19:55:21 +0000 https://edd-site.lndo.site/docs/checkout-fields-manager-field-types/ The purpose of Checkout Fields Manager is to give you flexibility in what data you’d like to gather from your customer. With that in mind, CFM offers 22 different field types so that you may gather data in the best possible way. Common Field Elements While there are very few field options that occur on

    The post Checkout Fields Manager – Field Types first appeared on Easy Digital Downloads.

    ]]>
    The purpose of Checkout Fields Manager is to give you flexibility in what data you’d like to gather from your customer. With that in mind, CFM offers 22 different field types so that you may gather data in the best possible way.

    Common Field Elements

    While there are very few field options that occur on every field, there are some that are on most fields. Here are examples:

    Show field on frontend checkout field

    This option allows you to show the field either only in the admin or in both the admin and the front of the site. Here’s an example of a field in the builder set to only appear on the back end.

    Here’s that same field rendering on the Payment record page ( Downloads → Payment History):

    This field may be used by the administrator while the customer need never knows it exists.

    Show in exported CSVs

    You may choose to include this field in exported CSVs or not

    Where should this meta be stored

    You may choose to store this meta in the Payment Meta (different values for all orders by a particular user), or User Meta (same value for all orders by a particular user).

    Note: If you do not have “Require Login” enabled in your settings, the option to store the data in User Meta will not appear because your users may not have user accounts in which to store the data. This setting can be found by navigating to Downloads → Settings → Misc → Checkout 

    Meta Key

    This is the name of the meta field in which you wish to store this data. If you leave it blank when creating the field, one will be created for you based on the Field Label.

    Note: Do not change the meta key after creating it. If you do, any data created with the former meta key will be lost.

    Note: Meta keys may not have spaces. Convention is to replace spaces with an underscore, but a hyphen will also work.

    CSS Class Name

    This allows you to set a custom CSS class name just for this field.

    Size

    All fields that are text types have an option for size (width). Results may vary depending on theme used.

    Storing data in user meta

    As mentioned above, you have the option to store your field either in Payment Meta or User Meta.  Any data stored in User Meta will be attached to the logged in user making the purchase and be available to that user for future use.

    An example would be a customer phone number. Once stored in user meta during a transaction, when that customer returns and makes another transaction while logged in their phone number would be already filled in for them.

    The customer will also have access to custom fields attached to their user in their Profile Editor, created by the [edd_profile_editor] shortcode.

    Note: The option to store data in user meta will only be available if the “Require Login” option is enabled in in Downloads → Settings → Misc → Checkout.

    Field Type Options

    There are 22 field types to choose from:

    Action Hook

    This is for developers to add dynamic elements as they want. It provides the chance to add whatever input type you want to add in this form. The image below shows this field with a code example using the Hook Name “hookname”.

    Code Example: 

    add_action('{hookname}', 'my_function_name}', 10, 4 ); 
    // first param: Form Object 
    // second param: Save ID of payment if in scope, else -2 
    // third param: Save ID of user if in scope, else -2 
    // fourth param: Field Object 
    function my_function_name( $form, $payment_id, $user_id, $field ) { 	
    // Do whatever you want here 
    }
    

    Note: Easy Digital Downloads does not provide support for custom coding/development. If needed we recommend hiring a developer through Codeable make the custom changes you need.

    Checkbox

    Creates a standard generic set of checkboxes.

    Country

    This field allows you to present a list of countries to the user. The field options include all current countries, and you have the option to add or remove to create a custom list if needed.

    Date

    This field allows the end user to enter a date, and optionally a time. You may choose whether time may be entered, and whether the start view should be Day, Month, or Year. 

    Email

    This field appears like a normal text field, but validates input, requiring a valid email address.

    File Upload

    This field creates a file upload mechanism, and allows you to set a Max. file size, Max. number of files, and allows you to limit file types to these:

    • Images (jpg, jpeg, gif, png, bmp)
    • Audio (mp3, wav, ogg, wma, mka, m4a, ra, mid, midi)
    • Videos (avi, divx, flv, mov, ogv, mkv, mp4, m4v, divx, mpg, mpeg, mpe)
    • PDF (pdf)
    • Office Documents (doc, ppt, pps, xls, mdb, docx, xlsx, pptx, odt, odp, ods, odg, odc, odb, odf, rtf, txt)
    • Zip Archives (zip, gz, gzip, rar, 7z)
    • Executable Files (exe)
    • CSV (csv)
    First Name

    This field creates a text field with a default size of 40, and does not include options for meta_key or any of the import/export functions. You also may not create more than one First Name field in a form.

    Hidden

    This field creates a standard hidden form field. It has ONLY options for meta_key, meta_value, and whether or not to have it be front-end only or both front-end and back-end.

    Honeypot

    This field creates an empty field that only bots can see, and they will fill it out.  If it’s filled out, form submission is rejected. More information about honeypot fields.

    HTML

    This field allows you to provide a title and arbitrary HTML.

    Last Name

    This field is a plain text field that is for Last Name.

    Note: Forms come with a Last Name field that cannot be deleted, and you cannot add a second one, which means you probably will never use this option. Occasionally Last Name fields are removed by accident; this option allows you to restore it.

    Multiselect

    This field creates a standard multi-select select box. You may specify the default select text and create as many options as you wish.

    Radio

    This field creates a standard set of radio buttons. You may create as many as you wish.

    reCAPTCHA

    This field creates a reCAPTCHA v3 tool. In order for reCAPTCHA to work, you must insert your site key and secret key in the EDD settings panel. Please navigate to the Downloads > Settings > Extensions > Checkout Fields Manager page and add your API keys there.

    If you do not have reCAPTCHA keys, you can obtain them here. Make sure that, when you create your API keys you select reCAPTCHA V3 from the list.

    reCAPTCHA v3 works silently, so you will not see this field in your checkout form. reCAPTCHA is automatically disabled for off-site payments such as PayPal.

    Repeat

    This field creates a text field and presents the customer with the option to create as many more as they wish. Below is an example of the front-end view.

    Section Break

    This field creates a section break in the form. It allows for a title and description.

    Select

    This field creates a standard dropdown select field. It functions exactly like the Multi-select above except only one option may be chosen by the customer.

    Terms & Cond.

    This field allows you to print a block of html containing Terms and Conditions, and also provides a checkbox with a label for the customer to click to agree to.

    Text

    This field creates a standard html text input field.

    Textarea

    This field creates a standard html textarea. You may set a number of columns and rows, placeholder text, a default value, and choose between plain textarea, Rich textarea, or Teeny Rich textarea.

    URL

    This field creates a standard text input field but validates for a URL.

    User Email

    This field creates a standard text input field but validates for an email address. It is intended to take the email address of a WordPress user.

    Note: Similar to Last Name, this field should already exist in your form, and you may not add a second. This option only exists so that you may replace your email field if it’s accidentally removed.

    General Usage

    Once a field type is clicked on, it will be added to the main column in the center of the screen and you will be presented with several options for the field. The exact options can vary from field type to field type, but all fields share a few common options:

    • Required: Select “Yes” if you want customers to be required to fill out the fields, or “No” if it should be optional
    • Field Label: This is the text shown as the primary label for the field on checkout
    • Help Text: This is the text added below the field on checkout to serve as a helpful explanation of what the customer should enter

    After you have added all of the fields you need, simply like the “Save” button located at the top right area of the screen. Once saved, your fields will now be displayed on the checkout.

    Important Notes:

    There are a few checkout fields that cannot be modified by this extension:

    1. Billing Address fields. These are required by credit card payment gateways and by the EDD tax system, so these are not permitted to be modified.

    2. The Credit Card form used by payment gateways that process credit cards. Since it is vital these fields appear exactly as expected by EDD, these fields are not allowed to be modified.

    The post Checkout Fields Manager – Field Types first appeared on Easy Digital Downloads.

    ]]>
    Themedd – Page templates https://easydigitaldownloads.com/docs/themedd-page-templates/ Mon, 24 Jan 2022 19:55:21 +0000 https://edd-site.lndo.site/docs/themedd-page-templates/ In addition to the default page layout, Themedd includes two page templates: Full Width When assigned to a page, the main content will span the full width of the page and the sidebar will not be shown. Note: Themedd’s default page layout also uses the full width of the page, but only when no widgets have

    The post Themedd – Page templates first appeared on Easy Digital Downloads.

    ]]>
    In addition to the default page layout, Themedd includes two page templates:

    Full Width

    When assigned to a page, the main content will span the full width of the page and the sidebar will not be shown.

    Note: Themedd’s default page layout also uses the full width of the page, but only when no widgets have been added to the sidebar. This makes the Full Width page template perfect for pages that should always be full width, regardless of any widgets being used.

    Slim

    When assigned to a page, the main content will appear slimmer and more readable. Like the Full Width page template, no sidebar will be shown.

    Assigning a page template

    1. In the WordPress admin, go to Pages and click on the page you would like to assign a page template to.
    2. On the page’s edit screen, click the Template select menu inside the Page Attributes section. Then, click on the page template you would like to assign to the page.
    3. Click Update to update the page. 

    The post Themedd – Page templates first appeared on Easy Digital Downloads.

    ]]>
    Campaign Tracker https://easydigitaldownloads.com/docs/campaign-tracker/ Mon, 24 Jan 2022 19:55:20 +0000 https://edd-site.lndo.site/docs/campaign-tracker/ Installing the Campaign Tracker Extension After the extension has been downloaded, you can install it using the standard WordPress plugin installation method. Configuring the Addon Once Campaign Tracker is installed and activated, it automatically tracks campaign information. You don’t have to configure anything. However, it is important to note that you must be running Campaigns

    The post Campaign Tracker first appeared on Easy Digital Downloads.

    ]]>
    Installing the Campaign Tracker Extension

    After the extension has been downloaded, you can install it using the
    standard WordPress plugin installation method.

    Configuring the Addon

    Once Campaign Tracker is installed and activated, it automatically tracks campaign information. You don’t have to configure anything. However, it is important to note that you must be running Campaigns in order for there to be something to track. To easily set up a campaign, you can use this
    helpful tool for creating URL campaigns.

    The extension also automatically detects whether Universal tracking is enabled for Google Analytics or not and tracks campaign information based on that.

    Viewing campaign information in the order list page

    • Log into the WordPress admin dashboard.
    • Navigate to Downloads → Payment History. You should see a new column in the order table called “Campaign” that lists the Google Analytics campaign name for this order.
    • To sort the orders based on the Campaign name, click the column header.
    • To see only orders from a particular campaign, click the campaign name in the table.

    Viewing campaign information in the order details page

    • Log into the WordPress admin dashboard.
    • Navigate to Downloads → Payment History. You should see a new column in the order table called “Campaign” that lists the Google Analytics campaign name for this order.
    • Click the “View order details” link for the order with campaign information. You’ll see a table below the “Payment Notes” meta box that displays the campaign information. It will list values for all 5 campaign variables (campaign name, source, medium, term, and content).

    Viewing campaign information in the “New Order” email

    • Log into the WordPress admin dashboard.
    • Go to Downloads → Settings → Emails. There is a new tag called {campaign_info} available under both the “Purchase Receipt” and “Sale Notification” text boxes.
    • If the tag is used, the new sale email that is generated will display the campaign information in a table.

    Viewing earnings based on campaign information

    The extension also allows you to generate reports and visualize Earnings and Sales data based on campaign.

    • Log into the WordPress admin dashboard.
    • Navigate to the Downloads → Reports screen.
    • Choose Campaign from the dropdown and click Show button.
    • Select the campaign name to see its associated Earnings and Sales for the chosen time period.

    The post Campaign Tracker first appeared on Easy Digital Downloads.

    ]]>
    Restrict Content Pro Member Discounts https://easydigitaldownloads.com/docs/restrict-content-pro-member-discounts/ Mon, 24 Jan 2022 19:55:19 +0000 https://edd-site.lndo.site/docs/restrict-content-pro-member-discounts/ Restrict Content Pro is a simple, yet powerful membership solution for WordPress. The Restrict Content Pro Member Discounts extension for EDD allows you to create discounts based on Restrict Content Pro membership levels. These discounts are unrelated to the product itself, or any other discount codes and options. These discounts are specifically connected to Membership

    The post Restrict Content Pro Member Discounts first appeared on Easy Digital Downloads.

    ]]>
    Restrict Content Pro is a simple, yet powerful membership solution for WordPress. The Restrict Content Pro Member Discounts extension for EDD allows you to create discounts based on Restrict Content Pro membership levels.

    These discounts are unrelated to the product itself, or any other discount codes and options. These discounts are specifically connected to Membership Levels in Restrict Content Pro. If you have a certain membership level, you automatically get whatever discount is set for that membership level.

    This document assumes you have Restrict Content Pro installed and know how to use it. Full documentation for Restrict Content Pro can be found here.

    Creating Member Discounts

    Immediately after installing the Member Discount extension you will find a Downloads → Member Discounts menu option in the WordPress admin.

    Then at the top of the page there’s an Add New button.

    The options for creating a new discount are quite simple. You provide a Title, which will be displayed on the checkout form, choose a Subscription level, and then a percentage off the total cost.

    Once a discount is created for a given membership level, that discount is automatically applied to any sale for anyone holding that membership level. The customer doesn’t need to do anything to make the discount take effect.

    Here’s a screenshot of a checkout page for a Platinum Member with a 50% discount for all Platinum Members.

    Customers who are not members, or are members with no discount set, will never see an indication that discounts exist for any membership level.

    Excluding products from the automatic discounts

    You can prevent single products and/or whole product categories from being discounted. To do that, edit the product or product category in question, then enable the option to exclude the product or category from discounts.

    To exclude a single product, edit the product, check the option to Exclude from RCP Member Discounts in the Download Settings panel, and save the product.

    To exclude an entire category of products, go to Downloads → Categories, edit the category you want to exclude, select the Exclude from RCP Member Discounts option, and save the category.


    Note to shop owners: if you are testing this extension on your site to see how it works, it’s important to understand its functionality. The extension checks a member’s subscription status when adding items to the cart, not on every page load. If you are adding items to the cart to see the discount, and then switching to another window to expire the member, you will still see the discount in the cart if you refresh the screen. To accurately test, you need to remove the items from the cart and add them back. You will see that the discounts are not applied.

    The post Restrict Content Pro Member Discounts first appeared on Easy Digital Downloads.

    ]]>
    EDD Message – Setup and Usage https://easydigitaldownloads.com/docs/edd-message-setup-and-usage/ Mon, 24 Jan 2022 19:55:18 +0000 https://edd-site.lndo.site/docs/edd-message-setup-and-usage/ The EDD Message extension for Easy Digital Downloads allows you to send emails directly to customers from your WordPress dashboard. After you have installed and activated the EDD Message extension you can find the settings area by navigating to Downloads → Settings → Extensions → EDD Message. The Logging settings allow you to keep a

    The post EDD Message – Setup and Usage first appeared on Easy Digital Downloads.

    ]]>
    The EDD Message extension for Easy Digital Downloads allows you to send emails directly to customers from your WordPress dashboard.

    After you have installed and activated the EDD Message extension you can find the settings area by navigating to Downloads → Settings → Extensions → EDD Message.

    The Logging settings allow you to keep a record of the emails being sent between different users on the website. By default no logging is enabled.

    When the Frontend Submissions extension is also active the settings page has a few more options:

    The new settings allow you to disable communication between the vendor and the customer on the Vendor Dashboard page, and also disable a few fields on the message form.

    Usage

    Messaging Customers

    With EDD Message, it is simple to send emails directly to customers from your WordPress dashboard. Simply follow these steps:

    1. Login to your site and go to Downloads → Customers.

    2. Click on a customer’s name.

    3. On the left side of the page, look for the Messages icon and click on it:

    4. Fill out any fields that apply.

    5. Click Send Message.

    Notes:

    • Only the “To”, “Subject” and “Message” fields are required. The rest use store default values or simply nothing at all.
    • The “To” field will be auto-populated with options which are all the email addresses associated with the customer.
    • The message format and template will use the same settings as defined in Downloads → Settings → Emails.

    Frontend Submissions Integration – Messaging Vendors

    When the Frontend Submissions extension is active the EDD Message extension also allows the store Administrator to send a message to a Vendor from the admin dashboard.

    To send unique messages directly to vendors in Frontend Submissions, simply follow these steps:

    1. Go to EDD FES → Vendors.

    2. Click on the name of a Vendor.

    3. Click the Message Vendor icon in the left side menu then fill out all the fields necessary for the message you wish to send. Only “To”, “Subject” and “Message” are required.

    After you’ve sent the message to the vendor, the email’s contents and details will be logged at the bottom of the message form page.

    Frontend Submissions Integration – Vendors Messaging Customers

    When the Frontend Submissions extension is active the EDD Message extension allows Vendors to send a message directly to the Customer that purchased a product from them.

    1. Login as a Vendor and navigate to the Vendor Dashboard page.

    2. Click on the Orders tab.

    3. Locate the order with a customer you would like to message and click on the Send Message button.

    4. Fill out the fields which apply for the unique message. Only “To”, “Subject” and “Message” are required.

    5. Click the Send message button.

    Note: Messages sent by vendors to customers are not saved. Only messages sent by admins to vendors or customers through the admin interfaces are logged.

    The post EDD Message – Setup and Usage first appeared on Easy Digital Downloads.

    ]]>
    AWeber https://easydigitaldownloads.com/docs/aweber/ Mon, 24 Jan 2022 19:55:17 +0000 https://edd-site.lndo.site/docs/aweber/ AWeber is a service that helps you manage email subscription lists. The Easy Digital Downloads extension for AWeber helps you connect the service to your store, and allows customers to subscribe to your email lists on AWeber during the checkout process. General Settings The configuration settings for EDD AWeber are found by navigating to Downloads

    The post AWeber first appeared on Easy Digital Downloads.

    ]]>
    AWeber is a service that helps you manage email subscription lists. The Easy Digital Downloads extension for AWeber helps you connect the service to your store, and allows customers to subscribe to your email lists on AWeber during the checkout process.

    General Settings

    The configuration settings for EDD AWeber are found by navigating to Downloads > Settings > Marketing > AWeber.

    AWeber Authorization Code

    The first setting is an Authorization Code. This allows your site to communicate with your account at AWeber. Next to the Authorization Code field is a direct link to get to your AWeber page for getting this key.  If you’re already logged in it will take you directly to a page telling you you’ve authorized Easy Digital Downloads and present you with a key which will be a long string of random letters and numbers. You will copy the authorization code and then paste it into the “Aweber Authorization Code” field in Downloads > Settings > Marketing > AWeber.

    Show Signup on Checkout

    If this option is checked the customer will have the ability to subscribe to your Aweber list during the checkout process. If the customer chooses to, their email address will be subscribed to your list at AWeber. See “Checkout Label” below for settings.

    Choose a list

    This allows you to choose the Aweber list you’d like customers to be subscribed to if they opt-in during checkout.

    Checkout label

    This allows the site admin to set what will appear next to the subscribe checkbox on the checkout page. (Example: Join Our Newsletter!)

    Download Specific Settings

    When editing a specific Download there will be a meta box in the right column labeled AWeber. It will show all the email lists available on AWeber, and the site owner may pick one to be attached to this Download, and override the global setting.

    If this option is enabled, then when the customer checks out and opts-in they will be subscribed to THIS list, rather than the one set in the main AWeber settings area. This allows you to set up a custom list for each product, and once you have a list built up for a specific product you can email that list with new releases, security issues, etc.

    The post AWeber first appeared on Easy Digital Downloads.

    ]]>
    List File Names https://easydigitaldownloads.com/docs/list-file-names/ Mon, 24 Jan 2022 19:55:16 +0000 https://edd-site.lndo.site/docs/list-file-names/ The List File Names extension for Easy Digital Downloads allows you to display the names of the files that a customer will receive when they complete their purchase. Setup After you have installed and activated the List File Names extension, there is no setup process and the functionality is immediately available. Standard Usage Adding the

    The post List File Names first appeared on Easy Digital Downloads.

    ]]>
    The List File Names extension for Easy Digital Downloads allows you to display the names of the files that a customer will receive when they complete their purchase.

    Setup

    After you have installed and activated the List File Names extension, there is no setup process and the functionality is immediately available.

    Standard Usage

    Adding the [edd_file_names] shortcode to the product description will create a list of the file’s names as shown under the Download File section.

    The placement of the shortcode determines where the list of file names will appear. Below is an example of the description area when creating/editing a Download.

    When viewed on the front-end of the site, the download description will display as well as a list of names of any files attached to the Download based on the location of the shortcode.

    Usage on other Pages/Posts

    The [edd_file_names] shortcode also accepts two parameters:

    • Title
    • ID

    When using the “ID”, you are able to show the file name(s) from a Download on other pages or posts instead of on the Download itself. This can be useful when referencing Downloads on other areas of the site. The “title” allows for a custom title to be added. This is an example of a WordPress page using the ID and Title parameters.

    The front-end display of the page will show the file name based on the ID provided as well as the custom title.

    The post List File Names first appeared on Easy Digital Downloads.

    ]]>
    ConvertKit Setup Documentation https://easydigitaldownloads.com/docs/convertkit-setup-documentation/ Mon, 24 Jan 2022 19:55:15 +0000 https://edd-site.lndo.site/docs/convertkit-setup-documentation/ The ConvertKit email marketing extension adds an option for your customers to join your ConvertKit email list during checkout. Configuration Instructions for ConvertKit Once installed, locate the settings for this extension via WordPress admin > Downloads > Settings > Marketing > ConvertKIt. Enter your API Key and Secret Key found in your ConvertKit account settings

    The post ConvertKit Setup Documentation first appeared on Easy Digital Downloads.

    ]]>
    The
    ConvertKit email marketing extension adds an option for your customers to join your ConvertKit email list during checkout.

    Configuration Instructions for ConvertKit

    1. Once installed, locate the settings for this extension via WordPress admin > Downloads > Settings > Marketing > ConvertKIt.
    2. Enter your API Key and Secret Key found in your ConvertKit account settings page.
    3. Return to the ConvertKit Settings section on your website under Downloads > Settings > Marketing > ConvertKIt and paste/enter the API and Secret Key into their fields on the page.
    4. Click the “Save Changes” button at the bottom of the page. This will allow the ConvertKit extension to retrieve the list of forms from your ConvertKit account.
    5. Choose the form you wish to subscribe customers to from the drop down box beside “Choose a form”
    6. Add a short, appropriate description in the “Checkout Label” field. By default, “Signup for the newsletter” will be displayed on the checkout page if you don’t enter your own text.

    Product Specific Lists and Tags

    You can subscribe customers of specific products to one or more ConvertKit forms by going to the product edit screen and selecting the form(s) you wish customers to be added to in the “ConvertKit” box.

    In this section, you can also select whether to add tags to customers when they purchase that specific product. This can be useful for making use of the
    automation features in ConvertKit. Tags need to be created inside your ConvertKit account which is retrieved by the extension.

    Troubleshooting

    Why can’t I see my new ConvertKit forms or tags in WordPress?

    The extension only retrieves forms and lists from ConvertKit every 4 hours (approximately). This is to prevent your site from contacting ConvertKit too often. To force refresh your lists, go to
    Downloads > Settings > Marketing > ConvertKit and click Save Changes.

    The post ConvertKit Setup Documentation first appeared on Easy Digital Downloads.

    ]]>
    Software Licensing API – Example using jQuery https://easydigitaldownloads.com/docs/software-licensing-api-example-using-jquery/ Mon, 24 Jan 2022 19:55:14 +0000 https://edd-site.lndo.site/docs/software-licensing-api-example-using-jquery/ This document is a subset of theSoftware Licensing API document which lists all features available via the API. The following is example code showcasing how to implement those features with jQuery. Request var data = { edd_action: 'check_license', // Valid actions are activate_license, deactivate_license, get_version, check_license license: '', item_id: encodeURIComponent(''), url: 'domain.com' // If you

    The post Software Licensing API – Example using jQuery first appeared on Easy Digital Downloads.

    ]]>
    This document is a subset of the
    Software Licensing API document which lists all features available via the API. The following is example code showcasing how to implement those features with jQuery.

    Request

    var data = {
    edd_action: 'check_license', // Valid actions are activate_license, deactivate_license, get_version, check_license
    license: '',
    item_id: encodeURIComponent(''),
    url: 'domain.com' // If you Disable URL Checking, you do not need this entry
    };

    // The url to the site running Easy Digital Downloads w/ Software Licensing
    var postUrl = 'http://example.com/';

    var requestSettings = {
    type: 'POST',
    data: data,
    dataType: 'jsonp'
    };

    var request = jQuery.ajax( postUrl, requestSettings );

    request.always( function(response) {

    var slData = jQuery.parseJSON( response.responseText );

    if ( slData.success && slData.success == true ) {
    // License check returned data
    // Parse the request for the necessary action requested above
    } else {
    // License check did not return successfully
    }

    Response

    A response to the above query would be a JSON object that would look something like this:

    {
    	"license": "valid",
    	"item_name": "EDD Product name",
    	"expires": "2014-10-23 00:00:00",
    	"payment_id": 54224,
    	"customer_name": "John Doe",
    	"customer_email": "john@sample.com"
    }
    

    The post Software Licensing API – Example using jQuery first appeared on Easy Digital Downloads.

    ]]>
    Integration Guide: Commissions and Frontend Submissions https://easydigitaldownloads.com/docs/integration-guide-commissions-and-frontend-submissions/ Mon, 24 Jan 2022 19:55:12 +0000 https://edd-site.lndo.site/docs/integration-guide-commissions-and-frontend-submissions/ The EDD Frontend Submissions extension and the EDD Commissions automatically integrate together to make it easy to pay Vendors commissions for sales of their products. Set Up Instructions: EDD Commissions and EDD Frontend Submissions extensions should both be installed and activated in the “Plugins” page in your WordPress Dashboard. How the integration works: When your

    The post Integration Guide: Commissions and Frontend Submissions first appeared on Easy Digital Downloads.

    ]]>
    The
    EDD Frontend Submissions extension and the EDD Commissions automatically integrate together to make it easy to pay Vendors commissions for sales of their products.

    Set Up Instructions:

    EDD Commissions and EDD Frontend Submissions extensions should both be
    installed and activated in the “Plugins” page in your WordPress Dashboard.

    How the integration works:

    When your Vendors submit a new product for sale through Frontend Submissions, commissions will automatically be enabled for that product and the commission recipient will automatically be set to that Vendor. Their commission rate in the product itself will be left blank and the default commission rate will be used. The amount that is automatically applied is either based on the Default rate from the Commissions settings or User Global Rate. These default rates are used when the rate in the product settings is left blank.

    Note: The Commission Rates inside the product setting is not automatic, if black it utilizes one of the default rates but if the rate is set, it will override the default and global rates.

    User Rate

    User rates can be set on a per-user basis. This would be used if you want to set different rates for different vendors. If you want all users to have the same commission rate, the user rate would be left blank. This setting will override the Default Rate set in the Commisions settings.

    When your Vendors submit a new product for sale through Frontend Submissions, commissions will automatically be enabled for that product and the commission recipient will automatically be set to that Vendor. Their commission rate in the product itself will be left blank. This means that their commission rate will fall back to their User Rate, which you can configure for each Vendor by editing their user profile under: Users → User’s Global Rate

    Commissions Default Rate

    The commissions’ default rate applies to all commissions where the User Rate and Product rate are blank.

    This can be set under: Downloads → Settings → Extensions → Commissions → Default rate

    More details about setting commissions rates can be found here.

    Override Site Default and User Default rate

    If you wish to override the Site Default and User Default rates for any individual product, set the rate in the product itself by editing that product and going to the “Commissions” metabox. There, you can enter a commission rate for that Vendor for that specific product only.

    Note: The Product rate is used first. If it is blank, then the User rate is used. If that is also blank, the Site default rate is used.

    Setting Vendor Paypal Emails upon registration

    If you are paying your Commissions through Paypal and want to make sure your Vendors enter a Paypal email when registering, there is a field available when both Frontend Submissions and Commissions are active. Navigate to
    EDD FES Registration Form Add Extension Created Fields Paypal Email


    The post Integration Guide: Commissions and Frontend Submissions first appeared on Easy Digital Downloads.

    ]]>
    Widgets Pack FAQ https://easydigitaldownloads.com/docs/widgets-pack-faq/ Mon, 24 Jan 2022 19:55:11 +0000 https://edd-site.lndo.site/docs/widgets-pack-faq/ The EDD Widgets Pack may be purchased here. Once installed and activated, this extension will give you 8 new custom Easy Digital Downloads widgets. You can view the new widgets by navigating to Appearance → Widgets in your WordPress Dashboard. The new widgets are: Top Sellers Related Downloads Most Recent (Download) Featured Download Random Download

    The post Widgets Pack FAQ first appeared on Easy Digital Downloads.

    ]]>
    The EDD Widgets Pack may be purchased here.

    Once installed and activated, this extension will give you 8 new custom Easy Digital Downloads widgets. You can view the new widgets by navigating to Appearance → Widgets in your WordPress Dashboard.

    The new widgets are:

    • Top Sellers
    • Related Downloads
    • Most Recent (Download)
    • Featured Download
    • Random Download
    • Most Commented (Download)
    • Downloads Archive
    • Downloads Calendar

    If you need help using or working with Widget areas, you can read more in this tutorial.

    FAQ

    1. Why is the Most Commented Download Widget not working?

    This widget works if comments have been enabled for the downloads post type. To enable comments, use the following code:

    // Download Comment Supports
    if ( ! function_exists( 'your_prefix_edd_download_supports' ) ) {
        function your_prefix_edd_download_supports( $supports ) {
            $supports[] = 'comments';
            return $supports;
        }
    }
    add_filter( 'edd_download_supports', 'your_prefix_edd_download_supports' );
    

    2. How do I set a fixed size for the widget’s thumbnail image?

    The EDD Widgets pack allows you to set a fixed thumbnail size from code, to ensure the widget will look good on your theme. To do so, use the filters below:

    // Set EDD Widgets Pack default image size
    if ( ! function_exists( 'your_prefix_edd_widgets_thumbnail_size' ) ) {
        function your_prefix_edd_widgets_thumbnail_size( $size ) {
            return array( '56', '56' );
        }
    }
    add_filter( 'edd_widgets_top_sellers_thumbnail_size', 'your_prefix_edd_widgets_thumbnail_size' );
    add_filter( 'edd_widgets_most_recent_thumbnail_size', 'your_prefix_edd_widgets_thumbnail_size' );
    add_filter( 'edd_widgets_most_commented_thumbnail_size', 'your_prefix_edd_widgets_thumbnail_size' );
    add_filter( 'edd_widgets_related_downloads_thumbnail_size', 'your_prefix_edd_widgets_thumbnail_size' );
    // Set EDD Widgets Pack default image size for widgets that show only one download
    if ( ! function_exists( 'your_prefix_edd_widgets_single_thumbnail_size' ) ) {
        function your_prefix_edd_widgets_single_thumbnail_size( $size ) {
            return array( '155', '156' );
        }
    }
    add_filter( 'edd_widgets_random_download_thumbnail_size', 'your_prefix_edd_widgets_single_thumbnail_size' );
    add_filter( 'edd_widgets_featured_download_thumbnail_size', 'your_prefix_edd_widgets_single_thumbnail_size' );
    

    The post Widgets Pack FAQ first appeared on Easy Digital Downloads.

    ]]>
    Recurring Payments – Authorize.net Gateway Configuration https://easydigitaldownloads.com/docs/recurring-payments-authorize-net-gateway-configuration/ Mon, 24 Jan 2022 19:55:11 +0000 https://edd-site.lndo.site/docs/recurring-payments-authorize-net-gateway-configuration/ Recurring Payments integrates fully with Authorize.net. The Authorize.net payment gateway is available for Easy Digital Downloads via the Authorize.net extension. See Documentation for installing, configuring, and using the extension for details on the configuration of Authorize.net.

    The post Recurring Payments – Authorize.net Gateway Configuration first appeared on Easy Digital Downloads.

    ]]>
    Recurring Payments integrates fully with Authorize.net. The Authorize.net payment gateway is available for Easy Digital Downloads via the Authorize.net extension.

    See Documentation for installing, configuring, and using the extension for details on the configuration of Authorize.net.

    The post Recurring Payments – Authorize.net Gateway Configuration first appeared on Easy Digital Downloads.

    ]]>
    GetResponse Documentation https://easydigitaldownloads.com/docs/getresponse-documentation/ Mon, 24 Jan 2022 19:55:10 +0000 https://edd-site.lndo.site/docs/getresponse-documentation/ The GetResponse email marketing extension adds an option for your customers to join your GetResponse email list during checkout. Configuration Instructions for GetResponse Once installed, locate the settings for this extension via WordPress admin → Downloads → Settings → Marketing→ GetResponse Enter your GetResponse API key. This must be obtained from the GetResponse website from

    The post GetResponse Documentation first appeared on Easy Digital Downloads.

    ]]>
    The GetResponse email marketing extension adds an option for your customers to join your GetResponse email list during checkout.

    Configuration Instructions for GetResponse

    1. Once installed, locate the settings for this extension via WordPress admin → Downloads → Settings → Marketing→ GetResponse
    2. Enter your GetResponse API key. This must be obtained from the GetResponse website from the Integrations and API section.
    3. Once you have entered the API key, press Save Changes. This will load a list of your available GetResponse campaigns into the dropdown labeled “Choose a Campaign”. Select the campaign you want users to be subscribed to.
    4. Select whether or not to display the opt-in checkbox. If this option is not checked, GetResponse will not be available at all in your EDD store. It’s essentially an on/off switch for the entire extension.
    5. Select whether or not to require double opt-in.
    6. Setup the label for the opt-in checkbox. Default text that will be displayed is “Signup for the newsletter

    Configuring Per-Download Settings

    Each download may be associated with a specific list. This allows you to have an updated list for each product. In the right column of the admin page for a single Download there is a meta box that allows the store owner to associate specific lists with that Download.

    The store owner may associate a Download with more than one list, but the customer will still only see the one checkbox with the global label referred to above.

    FAQ

    Will customers be automatically subscribed if I don’t show the option to subscribe upon checkout?

    No. If you don’t check the checkbox for the option called “Show Signup Checkbox” they will not be automatically subscribed upon checkout.

    The post GetResponse Documentation first appeared on Easy Digital Downloads.

    ]]>
    Recurring Payments – Developer: EDD_Recurring_Subscriber https://easydigitaldownloads.com/docs/recurring-payments-developer-edd_recurring_subscriber/ Mon, 24 Jan 2022 19:55:09 +0000 https://edd-site.lndo.site/docs/recurring-payments-developer-edd_recurring_subscriber/ Table of Contents Creating Objects Available Methods Conditional Methods Getting Subscriber Information Setting Subscriber Options Managing Subscriptions Recurring Payments comes with a new EDD class for managing subscribers. The EDD_Recurring_Subscriber class allows you to interact with subscription customers and the subscriptions on their accounts. Creating Objects EDD_Recurring_Subscriber should be called with an identifier for an

    The post Recurring Payments – Developer: EDD_Recurring_Subscriber first appeared on Easy Digital Downloads.

    ]]>
    Table of Contents

    Recurring Payments comes with a new EDD class for managing subscribers. The EDD_Recurring_Subscriber class allows you to interact with subscription customers and the subscriptions on their accounts.

    Creating Objects

    EDD_Recurring_Subscriber should be called with an identifier for an EDD customer or WordPress user on the site. This could be an email address or a WordPress user ID or an EDD Customer ID. Here are some examples:

    $subscriber = new EDD_Recurring_Subscriber( 'user@example.com' );
    

    If you pass an integer it will look for an EDD customer with that customer_id.

    $subscriber = new EDD_Recurring_Subscriber( 3 );
    

    If you pass an integer with a second argument of true then it will look for a WordPress user with that user_id.

    $subscriber = new EDD_Recurring_Subscriber( 3, true );
    

    Any of the above will return an object that looks like this:

    EDD_Recurring_Subscriber Object
    (
        [subs_db:EDD_Recurring_Subscriber:private] => EDD_Subscriptions_DB Object
            (
                [table_name] => wp_edd_subscriptions
                [version] => 1.4.1.3
                [primary_key] => id
            )
    
        [id] => 11111
        [purchase_count] => 19
        [purchase_value] => 2173.3
        [email] => user@example.com
        [emails] => Array
            (
                [0] => user@example.com
            )
    
        [name] => Bob Smith
        [date_created] => 2015-06-15 16:38:08
        [payment_ids] => 
        [user_id] => 1nan1
        [notes:protected] => 
        [raw_notes:EDD_Customer:private] => 
        [db:protected] => EDD_DB_Customers Object
            (
                [meta_type] => customer
                [date_key] => date_created
                [cache_group] => customers
                [table_name] => wp_edd_customers
                [version] => 1.0
                [primary_key] => id
            )
    )
    

    Available Methods

    Each of the methods below assumes that you have an object associated with a specific customer, and will refer to that customer as “the customer”.

    Conditional Methods

    $subscriber->has_active_subscription()

    This method checks to see if the customer has a subscription that is either active or canceled, but not expired.

    Returns boolean, filtered this way:

    apply_filters( 'edd_recurring_has_active_subscription', $ret, $this );
    
    $subscriber->has_product_subscription( $product_id = 0 )

    This method checks to see if the customer has any kind of subscription on a specific EDD product ID.

    Accepts an integer that is an EDD product ID.

    Returns boolean filtered this way:

    return apply_filters( 'edd_recurring_has_product_subscription', $ret, $product_id, $this );
    
    $subscriber->has_active_product_subscription( $product_id = 0 )

    This method checks to see if the customer has an active subscription on a specific EDD product ID.

    Accepts an integer that is an EDD product ID.

    Returns boolean filtered this way:

    return apply_filters( 'edd_recurring_has_active_product_subscription', $ret, $product_id, $this );
    

    Getting Subscriber Information

    $subscriber->get_subscription_by_profile_id( $profile_id = ” )

    This method accepts a payment profile_id and returns an EDD_Subscription object with all of the information about that subscription.

    Accepts a payment gateway profile ID. You can find profile IDs for specific subscriptions on the details page for a specific subscription under Downloads → Subscriptions.

    Returns an EDD_Subscription object. An example may be found in the EDD_Subscription docs.

    $subscriber->get_subscription( $subscription_id = 0 )

    This method accepts a subscription returns an EDD_Subscription object with all of the information about that subscription, similar to $subscriber->get_subscription_by_profile_id()

    $subscriber->get_subscriptions( $product_id = 0, $statuses = array() )

    This method will get all subscriptions for the customer that meet the input requirements. It accepts two arguments, the first being a product_id and the second being an array of statuses. Here are some examples:

    // gets all subscriptions for the customer
    $subscriber->get_subscriptions();
    
    // gets all subscriptions for the customer for product ID 85
    $subscriber->get_subscriptions( 85 );
    
    // gets all active subscriptions for the customer for product ID 85
    $subscriber->get_subscriptions( 85, array( 'active' ) );
    
    // gets all active subscriptions for the customer, regardless of product
    $subscriber->get_subscriptions( '', array( 'active' ) );
    
    // gets all active and cancelled subscriptions for the customer, regardless of product
    $subscriber->get_subscriptions( '', array( 'active', cancelled' ) );
    
    $subscriber->get_new_expiration( $download_id = 0, $price_id = null )

    This method determines the expiration date of a subscription one period beyond the current expiration date. For example, if the expiration date were 2017-01-01 23:59:59 and the period was one month, then this method would return 2017-02-01 23:59:59.

    Accepts an integer for download_id as the first argument required.

    Accepts an integer for price_id in the case of variable prices, optional

    Returns a date formatted like Y-m-d H:i:s.

    $subscriber->get_recurring_customer_ids()

    This method returns an array containing all of the customer IDs created by payments gateways for the customer. An example would be

    Array
    (
        [stripe] => cus_85YmUU1QuH5yxY
    )
    

    Output is filtered this way:

    apply_filters( 'edd_recurring_customer_ids', $ids, $this );
    
    $subscriber->get_recurring_customer_id( $gateway = false )

    This method accepts a gateway name and returns a string containing the customer ID associated with the customer and that gateway.

    Accepts a string containing a gateway name like stripe.

    Returns a string containing a customer ID like cus_85YmUU1QuH5yxY

    Output is filtered this way:

    apply_filters( 'edd_recurring_get_customer_id', $customer_id, $this );
    

    Setting Subscriber Options

    $subscriber->set_as_subscriber()

    This method takes the customer and creates an EDD Customer with their information.

    $subscriber->set_recurring_customer_id( $recurring_id = ”, $gateway = false )

    This method accepts a payment gateway recurring ID and a payment gateway name and associated them with the customer.

    Accepts a string containing a payment gateway recurring ID like cus_85YmUU1QuH5yxY. Required.

    Accepts a string containing a gateway name like
    stripe. Required

    Managing Subscriptions

    $subscriber->add_subscription( $args = array() )

    This method adds a subscription to an EDD customer. If there is no customer_id included it creates one from the WordPress customer.

    This method uses EDD_Subscription::create(), and therefore has all of the same requirements. Full documentation for EDD_Subscription::create().

    Accepts an array of data required by EDD_Subscription::create().

    Returns a subscription object.

    $subscriber->add_payment( $args = array() )

    This method adds a payment record to a specific subscription for the customer. It accepts an array like this:

    $args = array(
        'subscription_id' => 0,
        'amount'          => '0.00', 
        'transaction_id'  => '',  
    );
    

    The subscription_id array key must not be empty and should be an integer.

    This method uses EDD_Subscription::add_payment() and therefore has all of the same requirements. Full documentation for EDD_Subscription::add_payment().

    Returns true.

    The post Recurring Payments – Developer: EDD_Recurring_Subscriber first appeared on Easy Digital Downloads.

    ]]>
    Themedd – Customizer https://easydigitaldownloads.com/docs/themedd-customizer/ Mon, 24 Jan 2022 19:55:07 +0000 https://edd-site.lndo.site/docs/themedd-customizer/ Themedd’s settings can be found in the WordPress customizer. Go to Appearance → Customize in your WordPress dashboard. The following sections will be available: Site Identity Logo Use this setting to add a logo to your site. Your logo will appear just above the site title. Site Title Use this setting to configure your site’s

    The post Themedd – Customizer first appeared on Easy Digital Downloads.

    ]]>
    Themedd’s settings can be found in the WordPress customizer. Go to
    AppearanceCustomize in your WordPress dashboard.

    The following sections will be available:

    Site Identity

    Logo
    Use this setting to add a logo to your site. Your logo will appear just above the site title.

    Site Title
    Use this setting to configure your site’s title. If you do not want to show the site title along with your logo, uncheck the “Display Site Title and Tagline” setting.

    Tagline
    Use this setting to configure your site’s tagline.

    Display Site Title and Tagline
    Uncheck this option to hide the site title and tagline. This is useful when you’d like to add a logo which already includes the name of your website.

    Site Icon
    Use this setting to add a site icon.

    Colors

    Themedd has a variety of color options to help match your brand. The color options have been split up into the following sections:

    • General (6 color options)
    • Header (21 color options)
    • Footer (6 color options)
    • Mobile Devices (8 color options)

    Theme Options

    Full Width Layout
    This will allow you to switch between a typical “boxed” or full width” layout.

    Display Excerpts
    Show either excerpts or the full content on post listings.

    Header Search
    This displays a search box in the site header and mobile menu. By default, the search box will search everything. If Easy Digital Downloads is installed and active, and the Restrict Header Search setting is enabled, the header search will be restricted to searching downloads only.

    Easy Digital Downloads

    This section will only show once Easy Digital Downloads has been activated.

    Restrict Header Search
    Enabling this setting restricts the header search (see Theme Options above) to only downloads. When the search results are displayed, the user will see a grid of downloads rather than the typical search results listing.

    Distraction Free Checkout
    Enabling this setting provides a distraction free experience for your customers at checkout. It does this by removing any header menus, footer widgets and sidebars.

    Display Vendor Contact Form
    This setting is only be shown when Frontend Submissions is installed and activated. Enabling this setting will display a vendor contact form on the single vendor page so customers can get in touch with the vendor.

    Display Cart Icon
    Hide or show the cart icon that appears in the site header.

    Item Quantity and Cart Total
    Choose to display only the item quantity, cart total, item quantity and cart total, or nothing at all.

    Custom Post Type Archive Title
    By default, Easy Digital Downloads shows a listing of downloads on your site’s /downloads page. This setting allows you to configure the title for this page. If you have disabled the custom post type archive page, this setting will not be visible.

    Header Image

    Use this section to add a header image to your website.

    Background Image

    Use this section to add a background image to your website. To set a background color, visit the
    ColorsGeneral section.

    Menus

    Use this section to configure your menus. Themedd has 3 menu locations:

    Mobile Menu
    The mobile menu shows when your website is viewed on mobile devices such as a phone or tablet. It will also show when the browser’s window width is reduced to a width best represented by a mobile device.

    By default, the mobile menu will use any menu items assigned to the
    Primary Menu location. You can however created your own mobile menu, assign to the Mobile Menu location, and only those menu items will show for mobile devices.

    Primary Menu
    Create a menu and assign it to the Primary Menu location to build your main site navigation.

    Secondary Menu
    Create a menu and assign it to the Secondary Menu location to build your secondary site navigation. This will appear in the site’s header.

    Widgets

    Use this section to add widgets to the various sidebars available.

    Static Front Page

    Use this section to set a static front page and the posts page.

    Additional CSS

    Use this section to add additional CSS to your site.

    The post Themedd – Customizer first appeared on Easy Digital Downloads.

    ]]>
    Recurring Payments – REST API Endpoint https://easydigitaldownloads.com/docs/recurring-payments-rest-api-endpoint/ Mon, 24 Jan 2022 19:55:06 +0000 https://edd-site.lndo.site/docs/recurring-payments-rest-api-endpoint/ Recurring Payments extends the existing RESTful API built into Easy Digital Downloads. It can be accessed at http://example.com/edd-api/subscriptions/?key=YOUR_API_KEY&token=YOUR_API_TOKEN Note: make sure to replace example.com with your own address and the key and token values with your own. The above example will return a list of all existing subscriptions in the store. Input The Recurring Payments

    The post Recurring Payments – REST API Endpoint first appeared on Easy Digital Downloads.

    ]]>
    Recurring Payments extends the existing RESTful API built into Easy Digital Downloads. It can be accessed at

    http://example.com/edd-api/subscriptions/?key=YOUR_API_KEY&token=YOUR_API_TOKEN
    

    Note: make sure to replace example.com with your own address and the key and token values with your own.

    The above example will return a list of all existing subscriptions in the store.

    Input

    The Recurring Payments REST API accepts 3 options besides key and token: customer, number, and paged.

    Customer

    The input for a customer can either be an integer representing a customer_id or an email address. The resulting URL will look similar to this:

    http://example.com/edd-api/subscriptions/?key=YOUR_API_KEY&token=YOUR_API_TOKEN&customer=2
    

    or

    http://example.com/edd-api/subscriptions/?key=YOUR_API_KEY&token=YOUR_API_TOKEN&customer=user@example.com
    

    Number

    The number option accepts an integer and returns that many results. An example would look like this:

    http://example.com/edd-api/subscriptions/?key=YOUR_API_KEY&token=YOUR_API_TOKEN&number=5
    

    Paged

    The paged option allows you to choose a slice of a larger number. For example, if you have 100 entries, and you use number=10 you could pass paged=2 and you could get rows 11-20. That would look like this:

    http://example.com/edd-api/subscriptions/?key=YOUR_API_KEY&token=YOUR_API_TOKEN&number=10&paged=2
    

    Output

    The output for each subscription contains all information about that subscription as well as about the customer and each renewal (child) payment. Additionally, there’s a value indicating the time spent getting the information for all results. Example:

    {
        "subscriptions": [
            {
                "info": {
                    "u0000EDD_Subscriptionu0000subs_db": {
                        "table_name": "wp_edd_subscriptions",
                        "version": "1.0",
                        "primary_key": "id"
                    },
                    "id": "1",
                    "customer_id": "2",
                    "period": "month",
                    "initial_amount": "50.00",
                    "recurring_amount": "50.00",
                    "bill_times": "0",
                    "parent_payment_id": "87",
                    "product_id": "85",
                    "created": "2016-03-15 15:36:30",
                    "expiration": "2016-04-15 23:59:59",
                    "status": "active",
                    "profile_id": "paypal-363e3cc178dab152bb59b958024bce75",
                    "gateway": "paypal",
                    "customer": {
                        "id": "2",
                        "purchase_count": "2",
                        "purchase_value": "20.000000",
                        "email": "support@easydigitaldownloads.com",
                        "name": "Jane Doe",
                        "date_created": "2016-03-07 22:33:44",
                        "payment_ids": "16",
                        "user_id": "3",
                        "notes": [
    
                        ]
                    }
                },
                "payments": [
                    {
                        "id": 106,
                        "amount": 10.36,
                        "date": "March 21, 2016",
                        "status": "Renewal"
                    },
                    {
                        "id": 105,
                        "amount": 10,
                        "date": "March 21, 2016",
                        "status": "Renewal"
                    },
                    {
                        "id": 104,
                        "amount": 10,
                        "date": "March 21, 2016",
                        "status": "Renewal"
                    }
                ]
            }
        ],
        "request_speed": 0.076335906982422
    }
    

    The post Recurring Payments – REST API Endpoint first appeared on Easy Digital Downloads.

    ]]>
    All Access – Managing a customer’s All Access Passes. https://easydigitaldownloads.com/docs/all-access-managing-a-customers-all-access-passes/ Mon, 24 Jan 2022 19:55:05 +0000 https://edd-site.lndo.site/docs/all-access-managing-a-customers-all-access-passes/ This document demonstrates how to manage a customer’s All Access Pass using the EDD All Access extension for Easy Digital Downloads. Managing a customer’s All Access Pass: After a customer has purchased an All Access Product, you can modify their All Access Pass’s settings for that specific customer. This is useful if you have a special

    The post All Access – Managing a customer’s All Access Passes. first appeared on Easy Digital Downloads.

    ]]>
    This document demonstrates how to manage a customer’s All Access Pass using the
    EDD All Access extension for Easy Digital Downloads.

    Managing a customer’s All Access Pass:

    After a customer has purchased an All Access Product, you can modify their All Access Pass’s settings for that specific customer. This is useful if you have a special customer whom you would like to treat differently than other customers. For example, your normal customers might get 10 downloads per day but you may wish to give a special customer 20 downloads per day. 

    To modify the customer’s All Access Pass, find the customer in question by navigating to:
    DownloadsCustomers

    On the Customer Details page, click the “All Access Passes” tab and then click “View Details”. 

    There, you’ll see 2 sets of data:

    1. Settings at “Time of Purchase”
    These are the settings used by default when a customer purchases an All Access Product.

    2. “Customer Specific” Settings
    You can override the settings at the Time of Purchase by selecting to use the Customer Specific Settings instead. This allows you to set things like the download-limit differently for only this single customer. It’s important to note that if the customer renews their All Access Pass, the customer specific settings will remain and still be used for that customer. 

    Customer All Access Pass Tools

    Regenerate All Access Passes allows you to regenerate the customers All Access Pass data based on the current Product’s All Access settings. For example, if the Categories assigned to the pass have been updated, this tool will apply those changes to the existing customer’s pass(es).

    To access this tool, on the Customer Details page, click the “Tools” tab.

    The post All Access – Managing a customer’s All Access Passes. first appeared on Easy Digital Downloads.

    ]]>
    Themedd – Installing demo content https://easydigitaldownloads.com/docs/themedd-installing-demo-content/ Mon, 24 Jan 2022 19:55:04 +0000 https://edd-site.lndo.site/docs/themedd-installing-demo-content/ If you’d like to set up your site like the Themedd demo at  https://successstories.themedd.com, follow the instructions below. themedd-demo-content.xml

    The post Themedd – Installing demo content first appeared on Easy Digital Downloads.

    ]]>
    If you’d like to set up your site like the Themedd demo at  https://successstories.themedd.com, follow the instructions below.

    themedd-demo-content.xml

    The post Themedd – Installing demo content first appeared on Easy Digital Downloads.

    ]]>
    Recurring Payments – Content Restriction Integration https://easydigitaldownloads.com/docs/recurring-payments-content-restriction-integration/ Mon, 24 Jan 2022 19:54:59 +0000 https://edd-site.lndo.site/docs/recurring-payments-content-restriction-integration/ The Content Restriction extension for Easy Digital Downloads makes it easy to require a purchase before allowing access to some content. With Recurring Payments integration you can require an active subscription in order to access restricted content. There are two ways to implement the integration: Full Content Restriction When activated, Content Restriction creates a meta

    The post Recurring Payments – Content Restriction Integration first appeared on Easy Digital Downloads.

    ]]>
    The Content Restriction extension for Easy Digital Downloads makes it easy to require a purchase before allowing access to some content. With Recurring Payments integration you can require an active subscription in order to access restricted content.

    There are two ways to implement the integration:

    Full Content Restriction

    When activated, Content Restriction creates a meta box on every post type except Downloads (e. g. Pages, Posts, and any custom post types). With Recurring Payments integration it also includes a checkbox to require an active subscription.

    Partial Content Restriction

    Content Restriction provides a shortcode that you can wrap around segments of content to restrict that content.  With Recurring Payments it accepts a new variable like this: [edd_restrict subscription="true"] Content [/edd_restrict]

    This will allow you to restrict access to any fragment of information where shortcodes work to only customers with active subscriptions.

    FAQs

    Does this setting apply to non-subscription purchases?

    The “Active Subscribers Only?” option is ignored for One-time Purchases. Therefore, if the product or product option does not have recurring enabled, a one time purchase will still have access to the restricted content, regardless of whether “Active Subscribers Only?” is enabled or not. 

    Note: If Recurring is enabled for an existing product that was previously a one time purchase, existing customers without a subscription will NOT have access to “Active Subscriptions Only?” content.

    The post Recurring Payments – Content Restriction Integration first appeared on Easy Digital Downloads.

    ]]>
    Configuring the Digital Badge extension https://easydigitaldownloads.com/docs/configuring-the-digital-badge-extension/ Mon, 24 Jan 2022 19:54:58 +0000 https://edd-site.lndo.site/docs/configuring-the-digital-badge-extension/ The Digital Badge extension for Easy Digital Downloads allows you to add a badge to specific products marking them as digital downloads, not physical, shipped products. 1. Configure the Digital Badge extension Once this extension is installed and activated, go to WordPress admin → Downloads → Settings → Extensions → Digital Badge Settings to configure the text

    The post Configuring the Digital Badge extension first appeared on Easy Digital Downloads.

    ]]>
    The Digital Badge extension for Easy Digital Downloads allows you to add a badge to specific products marking them as digital downloads, not physical, shipped products.

    1. Configure the Digital Badge extension

    Once this extension is installed and activated, go to WordPress admin → Downloads → Settings → Extensions → Digital Badge Settings to configure the text that will be displayed to your customers.

    2. Enable Digital Badges per Download

    Once you’ve entered the Download Badge Text, the Product Badges box will need to be checked for each applicable Download. The Product Badges checkbox is located in the Download Settings menu on the right side of your screen when viewing a Download.

    After checking the Product Badges box click Update to save your changes and display the badge.

     

    The post Configuring the Digital Badge extension first appeared on Easy Digital Downloads.

    ]]>
    Commissions – Configuring Vendor Rates https://easydigitaldownloads.com/docs/commissions-configuring-vendor-rates/ Mon, 24 Jan 2022 19:54:58 +0000 https://edd-site.lndo.site/docs/commissions-configuring-vendor-rates/ With Commissions, the rates paid to vendors are completely configurable by the site owner, and can be a flat rate, a percentage, or a mix of both. There are global settings, but then on each product you can optionally override the global setting and choose something unique for that product. Rate Types Flat Rate Flat

    The post Commissions – Configuring Vendor Rates first appeared on Easy Digital Downloads.

    ]]>
    With Commissions, the rates paid to vendors are completely configurable by the site owner, and can be a flat rate, a percentage, or a mix of both. There are global settings, but then on each product you can optionally override the global setting and choose something unique for that product.

    Rate Types

    Flat Rate

    Flat Rate is very simple, for every sale the vendor gets a certain amount.  It doesn’t matter if the sale is $10 or $100, the vendor gets whatever the site owner has set. Flat Rate is only configured in the Per-Product settings.

    Percentage Rate

    With a percentage rate the vendor gets a piece of the sale which varies based on the size of the sale. This rate can also be calculated at different times in the payment process. For example, it could be calculated on the subtotal, on the total before tax, or on the total after tax.

    Under Downloads → Settings → Extensions → Commissions you’ll find a section called Commissions Settings. In there is a drop down menu titled Calculation Base. This allows the site owner to determine when the percentage is calculated.

    Global Settings

    The global settings for Commissions are under Downloads → Settings → Extensions → Commissions.

    Within this section you can set the Default Rate as a percentage. You do NOT need to enter the % in the field.

    You may also set the Calculation Base. The options for this are:

    • Subtotal (default)
    • Total With Taxes
    • Total Without Taxes

    NOTE: This does NOT automatically set up commissions for anyone, it simply creates some base settings as tools when you DO set up commissions on a single product.

    Per-Product Settings

    Each Download contains Commissions section in the Edit Download page that can be used to over-ride the global Commissions settings. This box has a checkbox to enable commissions. When that box is checked you’re given several options.

    Commission Type: This can be Percentage or Flat rate.

    Users(s): This is for the User ID(s) that should get commissions.  If there is more than one User, the IDs should be comma separated.

    Rate(s): This is where you may over-ride the global setting. If the Commission Type is set to flat then the number entered is in currency, rather than a percentage.

    The post Commissions – Configuring Vendor Rates first appeared on Easy Digital Downloads.

    ]]>
    All Access – Tools https://easydigitaldownloads.com/docs/all-access-tools/ Mon, 24 Jan 2022 19:54:57 +0000 https://edd-site.lndo.site/docs/all-access-tools/ This document describes the options added under “Tools” for the EDD All Access extension for Easy Digital Downloads. Tools: “Backfill All Access Pass” tool. This tool can be found by navigating to Downloads → Tools. It is used to go through any old payments to see if any All Access Passes need to be activated

    The post All Access – Tools first appeared on Easy Digital Downloads.

    ]]>
    This document describes the options added under “Tools” for the EDD All Access extension for Easy Digital Downloads.

    Tools:

    “Backfill All Access Pass” tool.

    This tool can be found by navigating to Downloads → Tools. It is used to go through any old payments to see if any All Access Passes need to be activated for any payments that existed prior to the activation of EDD All Access. This is useful if you had some kind of pre-existing system for providing All Access and are now switching to use the EDD All Access extension.

    Note: It is extremely important that before you use this tool, you have set up your All Access Products properly. If not, incorrect All Access Passes will be generated which will be difficult to fix. To properly set up All Access Pass Products, see the document on Creating an All Access Product.

    “Migrate RCP Members to All Access Members” tool.

    If you have the Restrict Content Pro plugin active, and wish to change to use the All Access system instead, there is a tool built into the All Access extension to make the migration happen in one-click. This tool can be found by navigating to Downloads → Tools. It allows you to migrate your users from the Restrict Content Pro plugin, and converts them into Easy Digital Downloads customers with an All Access Pass. It also migrates their subscriptions from Restrict Content Pro’s system to Easy Digital Downloads’ Recurring Payments extension’s system.

    Before you migrate, make sure you completely set up your All Access product the way you want, including the Recurring Payments/Subscriptions settings. Make sure the subscription settings match the subscription settings you had for that product in Restrict Content Pro. For example, if the subscription term in RCP was “1 year”, make sure the EDD Product has “1 year” set as both the All Access term and as the Recurring Payments term.

    Note: For this tool to appear, you must have the Restrict Content Pro plugin active, the EDD Recurring Payments extension active, and the EDD All Access extension active at the same time.

    Reports

    Download Popularity via All Access:
    Starting in version 1.1.3 of EDD All Access, you can view a report of your most popular products, as downloaded by your All Access Pass holding customers.

    You can find the report in your WordPress dashboard by navigating to Downloads → Reports and choosing “All Access: Download Popularity” from the dropdown selection.

    It contains 4 columns:

    1. Product Name. The name of the product that was downloaded.
    2. Number of Downloads. This column shows the number of times the product was downloaded by all customers combined in the time period chosen
    3. Unique Passes Used. This column shows the total number of unique passes which were used to download the product in question, for the time period chosen.
    4. Popularity Rate. This column shows the percentage of pass holders who chose to download the product, with 100% representing the total number of pass holders who could have downloaded the product, and the percentage rate shown representing the number of those customers who actually did download it.


    The post All Access – Tools first appeared on Easy Digital Downloads.

    ]]>
    Recurring Payments – Template Files https://easydigitaldownloads.com/docs/recurring-payments-template-files/ Mon, 24 Jan 2022 19:54:56 +0000 https://edd-site.lndo.site/docs/recurring-payments-template-files/ Recurring Payments comes with four template files, all stored in the templates/ directory in the Recurring Payments plugin folder. They are: paypal-express-confirm.php paypal-commerce-processing.php shortcode-subscription-receipt.php shortcode-subscription-update.php shortcode-subscriptions.php Customizing Template Files The template files in the Recurring Payments plugin may be copied to your theme directory in the same way that EDD core templates may be copied.

    The post Recurring Payments – Template Files first appeared on Easy Digital Downloads.

    ]]>
    Recurring Payments comes with four template files, all stored in the templates/ directory in the Recurring Payments plugin folder. They are:

    • paypal-express-confirm.php
    • paypal-commerce-processing.php
    • shortcode-subscription-receipt.php
    • shortcode-subscription-update.php
    • shortcode-subscriptions.php

    Customizing Template Files

    The template files in the Recurring Payments plugin may be copied to your theme directory in the same way that EDD core templates may be copied. Full documentation on how to copy your template files is found here.

    The post Recurring Payments – Template Files first appeared on Easy Digital Downloads.

    ]]>
    Conditional Success Redirects Documentation https://easydigitaldownloads.com/docs/conditional-success-redirects-documentation/ Mon, 24 Jan 2022 19:54:55 +0000 https://edd-site.lndo.site/docs/conditional-success-redirects-documentation/ Conditional Success Redirects allows you to easily send a purchaser to any given page on your site after the sale is completed. This is particularly useful for referring someone to a related product, or perhaps to documentation, or CD liner notes etc. After you install the plugin a new navigation item will appear at the bottom

    The post Conditional Success Redirects Documentation first appeared on Easy Digital Downloads.

    ]]>
    Conditional Success Redirects allows you to easily send a purchaser to any given page on your site after the sale is completed. This is particularly useful for referring someone to a related product, or perhaps to documentation, or CD liner notes etc.

    After you install the plugin a new navigation item will appear at the bottom of your EDD Downloads admin menu (Downloads→Conditional Success Redirects). Clicking it will take you to an admin archive page like the one below.

    Adding New Conditional Success Redirect

    Below is the “Add New” page.  You simply choose the product you wish to apply this to, and then the page you want to send the purchaser then click “Add Redirect”.

    Editing a Conditional Success Redirect

    Once a Conditional Success Redirect exists you can edit it, as well as set it to Active or Inactive, as shown below.

    Important Note

    You may only have one Conditional Success Redirect for a given product.  If one already exists you won’t even see that product as available on the Add New page.  If you’re trying to add a new one, and your product isn’t available, a Conditional Success Redirect probably already exists for it, and you should look at the admin archive page.
    Walkthrough:
    Here’s a short video demonstrating how the plugin works:

    The post Conditional Success Redirects Documentation first appeared on Easy Digital Downloads.

    ]]>
    All Access – FAQs and Troubleshooting https://easydigitaldownloads.com/docs/all-access-faqs-and-troubleshooting/ Mon, 24 Jan 2022 19:54:54 +0000 https://edd-site.lndo.site/docs/all-access-faqs-and-troubleshooting/ This document goes over some of the frequently asked questions and troubleshooting tips for the EDD All Access extension for Easy Digital Downloads. FAQ and Troubleshooting: When do All Access Pass periods begin and end? By default, All Access Passes begin at the exact second when they are purchased. If a customer purchases an All

    The post All Access – FAQs and Troubleshooting first appeared on Easy Digital Downloads.

    ]]>
    This document goes over some of the frequently asked questions and troubleshooting tips for the EDD All Access extension for Easy Digital Downloads.

    FAQ and Troubleshooting:

    When do All Access Pass periods begin and end?
    By default, All Access Passes begin at the exact second when they are purchased. If a customer purchases an All Access Pass at 5:01PM, their pass officially starts right then. By default, they expire at 5:01PM as well at the end of the period. For example, if the period is 1 day, their pass will expire at 5:01PM the day after they purchase.

    If an All Access Pass is renewed (re-purchased) prior to the expiration, the next All Access period will begin immediately when the current one expires.

    Can I prevent specific products from being downloaded through All Access Passes?
    Yes. To exclude any product from being downloaded though All Access Passes, edit the product in question and check the “Exclude from All Access” button.

    Will price variations be hidden for customers with an All Access Pass?
    No – they will not be hidden. To clarify, this question relates to products with price variations (like “Small”, “Medium”, and “Large” for example). If a customer purchases an All Access Pass, even though they have access to the “Large” version, the “Small” and “Medium” products will still display and can be downloaded by the customer. This is because price variations could be delivering different products. For example, a photo site might sell a “Small”, “Medium”, and “Large” version of a photo. A customer with an All Access Pass will be able to download all of the different sizes. Smaller sizes will not be hidden. You will want to structure your products accordingly.

    All Access not working for a customer:
    If you have aggressive object caching on (like “memcached”), it could be preventing your plugin from properly fetching new All Access-enabled products. Try turning off object caching and confirming by making a new All Access product and test purchasing it. At that point, you may need to run the “Backfill All Access Pass data” tool located under Downloads → Tools

    If you aren’t sure how to turn off memcached or other object caching mechanisms, contact your hosting provider as they are the ones who will have that turned on for your account. They can help you clear the cache or disable it.

    Do customers need to be logged in to purchase?
    Yes. In order to use an All Access Pass, the customer must be logged-in. If your store does not require logins/registration at checkout, your customer will see this message: “You must be logged in to purchase”. To fix that, turn on the registration/login forms on checkout by navigating to Downloads → Settings → Misc → Checkout.

    If you don’t wish to enable that on your checkout page, you could also use the free Auto Register extension for Easy Digital Downloads which will automatically create a user account for every customer who purchases from your store.

    Can I create a page of products that only displays products the customer has access to through their All Access Pass?
    Yes. It is very simple by changing the way you use the [downloads] shortcode. See this document for a complete guide on making your own custom page of products the customer can download using their All Access Pass.

    What happens if a customer renews their All Access Pass early but then decides to upgrade before the All Access Period expires?
    In this very specific and (typically) rare scenario, the customer will not get anything in return for their yet-to-be-used renewal payments. While those early renewal payments would have taken over if they had not upgraded, when they upgraded, the prior, “upgraded” All Access Pass acts as if it had never been purchased. Those early renewal payments will not affect the upgraded-to All Access Pass in any way. Depending on your store’s policies, you will likely want to refund any unused renewal payments to your customer after they upgrade.

    Note: True “upgrading” requires the Software Licensing extension and the use of its upgrade path system.

    What happens if a customer renews early but then asks for a refund of just a renewal payment before the initial period expires?
    Refunded renewal payment will not renew an All Access period when it expires. Only “completed” and valid renewal payments will be used to renew an All Access period. If any valid renewal payments exist, the oldest renewal payment will be used to renew the All Access period when it expires.

    How can I move from Restrict Content Pro to All Access?
    If you are using the Restrict Content Pro (RCP) plugin and want to switch to using EDD All Access instead, you can migrate your old RCP customers in a single click. All Access includes a migration tool that allows you to “map” your old RCP products to new All Access products. Any of your old customers will automatically get that All Access product and the dates of their purchase will line up so that their expiration times remain exactly the same. You can find this under Downloads > Tools > Migrate RCP Members to All Access Members

    Is it possible to ONLY allow customers to purchase All Access?
    Yes. If your store has many downloads in EDD but you only want customers to purchase an All Access pass, navigate to Downloads > Settings > Extensions > All Access and set the option called “Change the way purchase buttons are displayed” to Option 2. You can see more about this in this document.

    The post All Access – FAQs and Troubleshooting first appeared on Easy Digital Downloads.

    ]]>
    EDD Wish Lists https://easydigitaldownloads.com/docs/edd-wish-lists/ Mon, 24 Jan 2022 19:54:53 +0000 https://edd-site.lndo.site/docs/edd-wish-lists/ Table of Contents Setup & Usage List Management Templates Modifications The Wish Lists extension for Easy Digital Downloads gives customers the ability to save and share their favorite products on your site. Setup After you have installed and activated the Wish Lists extension, you can find the settings area by navigating to Downloads → Settings

    The post EDD Wish Lists first appeared on Easy Digital Downloads.

    ]]>
    Table of Contents

    The Wish Lists extension for Easy Digital Downloads gives customers the ability to save and share their favorite products on your site.

    Setup

    After you have installed and activated the Wish Lists extension, you can find the settings area by navigating to Downloads → Settings → Extensions → Wish Lists.

    Wish Lists Page: This is the page where users will view their own wish lists. This page must include the [edd_wish_lists] shortcode.

    Wish Lists View Page: This is the page where users will view each wish list. This page must include the [edd_wish_lists_view] shortcode.

    Wish Lists Edit Page: This is the page where users will edit a wish list that they own. This page must include the [edd_wish_lists_edit] shortcode.

    Wish Lists Create Page: This is the page where users will create a wish list. This page must include the [edd_wish_lists_create] shortcode.

    Add To Wish List Text: This is the text that will appear on the button or link to indicate the customer can click to add the item. The default is “Add to wish list“.

    Add To Cart Text: When looking at a Wish List, each item has a button to allow adding that item to the cart. This field allows the store owner to indicate what text should be used. The default is Add to cart”.

    Allow Guests To Create Wish Lists: Choose whether guests (non logged in users) can create Wish Lists. If no, then only registered users can create wish lists.

    Icon: The “Add” button may use a selection of different icons in addition to the “Add” text including a plus sign, bookmark, gift, heart, star or no icon.

    Button Style: Choose whether the “Add” mechanism will be a button or a link.

    Sharing: Customers with Wish Lists may share their lists through the following platforms:

    • Twitter
    • Facebook
    • Google+
    • LinkedIn
    • Email

    Usage

    Once setup, each product will have a link or button (store owner’s choice) that communicates to the customer that they can add the product to a wish list.

    Once that button/link is clicked, a modal window appears asking the customer to either add the item to an existing list or create a new list.

    If selecting “Add to new”, the user will be presented with the option to name the list as well as choose whether the list is Public or Private (only viewable by the user).

    List Management

    Wish List Page

    The main Wish list management page shows only content related to the customer currently logged in, or the customer that created lists in the current session. It offers a button to create a new list, and then shows each list created by the customer.

    Creating a List

    When on the main Wish List management page, the customer may click the Create new wish list button. This will take the customer to a new page where they will be asked for a List Name, List Description, and have the option of making the list Public or Private.

    The customer may also create a new list immediately after clicking an Add to wish list button or link from the main store listings page.

    Editing a List

    When on the main Wish List page, on the right of every list is an edit link.

    Clicking that link will take the customer to a page where they can rename the list, change the description, change its visibility permissions, or delete the list.

    Deleting a List

    The edit screen also has a Delete wish list link, as seen in the screenshot immediately above. Clicking it will bring up a modal window, asking the customer if they’re sure they want to delete the list.

    Once the customer confirms the deletion, the list is removed. The customer is returned to the main Wish List management page and a message is displayed indicating that the list has been deleted.

    Templates

    EDD Wish Lists has 4 templates you can edit, located in the plugin’s templates folder, just like EDD. Copy each template into your child theme’s edd_templates folder and edit accordingly.

    Note: Do not edit the templates in the plugin folder as your modifications will be lost when the plugin is updated.

    Click here to read documentation on how to properly move templates.

    1. wish-lists.php
      The main wish lists page where users view all of their lists.
    2. wish-list-view.php
      The page where users view/share an individual wish list.
    3. wish-list-edit.php
      The form for editing a wish list
    4. wish-list-create.php
      The form for creating a wish list.

    Modifications

    Changing the default labels

    By default, the standard singular label in the Wish Lists extension is “Wish List” and the plural is “Wish Lists”. You might want to change these labels to better represent your website.

    The example below shows how you can change both the singular and plural labels to “Light Box” and “Light Boxes” – Perfect if you sell stock photography.

    Modifying the default message

    It’s possible to change the default messages that appear throughout EDD Wish Lists.

    Copy and paste the following function (mind the opening PHP tag) into your child theme’s functions.php or custom plugin and modify each of the messages accordingly.

     <?php
    
    function sumobi_edd_wl_messages( $messages ) {
    
    	$messages = array(
    		'must_login'                   => sprintf( __( 'Sorry, you must login to create a %s', 'edd-wish-lists' ), edd_wl_get_label_singular( true ) ),
    		'list_updated'                 => sprintf( __( '%s updated', 'edd-wish-lists' ), edd_wl_get_label_singular() ),
    		'list_created_guest'           => sprintf( __( '%s created and saved for 30 days. If you wish to keep it longer, please create an account.', 'edd-wish-lists' ), edd_wl_get_label_singular() ),
    		'list_created'                 => sprintf( __( '%s created', 'edd-wish-lists' ), edd_wl_get_label_singular() ),
    		'list_deleted'                 => sprintf( __( '%s deleted', 'edd-wish-lists' ), edd_wl_get_label_singular() ),
    		'no_lists'                     => sprintf( __( 'You currently have no %s', 'edd-wish-lists' ), edd_wl_get_label_plural( true ) ),
    		'list_delete_confirm'          => sprintf( __( 'You are about to delete this %s, are you sure?', 'edd-wish-lists' ), edd_wl_get_label_singular( true ) ),
    		'no_downloads'                 => sprintf( __( 'Nothing here yet, how about adding some %s?', 'edd-wish-lists' ), edd_get_label_plural( true ) ),
    		'lists_included'               => __( 'This item has already been added to: ', 'edd-wish-lists' ),
    		'modal_option_save'	           => __( 'Save', 'edd-wish-lists' ),
    		'modal_option_close'           => __( 'Great, I'm done', 'edd-wish-lists' ),
    		'modal_option_add_new'         => __( 'Add to new', 'edd-wish-lists' ),
    		'modal_option_add_to_existing' => __( 'Add to existing', 'edd-wish-lists' ),
    		'modal_option_title'           => __( 'Title', 'edd-wish-lists' ),
    		'modal_delete_title'           => sprintf( __( 'Delete %s', 'edd-wish-lists' ), edd_wl_get_label_singular( true ) ),
    		'modal_button_delete_confirm'  => sprintf( __( 'Yes, delete this %s', 'edd-wish-lists' ), edd_wl_get_label_singular( true ) ),
    		'modal_share_title'	           => sprintf( __( 'Share this %s', 'edd-wish-lists' ), edd_wl_get_label_singular( true ) ),
    		'modal_share_success'          => __( 'Successfully shared', 'edd-wish-lists' ),
    		'list_option_private'          => __( 'Private - only viewable by you', 'edd-wish-lists' ),
    		'list_option_public'           => __( 'Public - viewable by anyone', 'edd-wish-lists' ),
    		'list_title_required'          => __( 'You need to enter a title', 'edd-wish-lists' ),
    		'item_already_purchased'       => __( 'Already purchased', 'edd-wish-lists' ),
    	);
    
        return $messages;
    }
    add_filter( 'edd_wl_messages', 'sumobi_edd_wl_messages' );
    

    Change the icon’s position

    In the Wish Lists addon here’s how you can globally change the icon’s position to appear to the right of the text on all add-to wish list links.

    Move the wish list button to the download details widget in the Marketify theme

    If you’re using the Marketify theme with EDD Wish Lists there’s a way to move the “add to wish list” button from it’s default location, and position it inside EDD’s “Download Details” widget.

    This is the widget you’ll end up with, which you can now freely position within your sidebar.

    Drag the “Download Details” widget into the “Download Single Sidebar” widget area where you’d like it to appear. Clear out all the options if you don’t need them.

    That’s it!

    The post EDD Wish Lists first appeared on Easy Digital Downloads.

    ]]>
    Reviews – Shortcodes https://easydigitaldownloads.com/docs/reviews-shortcodes/ Mon, 24 Jan 2022 19:54:53 +0000 https://edd-site.lndo.site/docs/reviews-shortcodes/ Reviews includes a shortcode that you may use to embed product reviews in any post, page, or custom post type. Note: The shortcode only allows you to show product reviews, it does not allow the user to submit reviews. That can only be done via the Download (or Product) page. The shortcode looks like this:

    The post Reviews – Shortcodes first appeared on Easy Digital Downloads.

    ]]>
    Reviews includes a shortcode that you may use to embed product reviews in any post, page, or custom post type.

    Note: The shortcode only allows you to show product reviews, it does not allow the user to submit reviews. That can only be done via the Download (or Product) page.

    The shortcode looks like this:

    [review id="REVIEW_ID"]
    

    The easiest way to embed a review is to use the Insert Review button above the classic content editor.

    Pressing the Insert Review button will open a modal window. The modal will display a dropdown of all reviews; select the one you want and press Insert Review.

    This will render a shortcode like the one mentioned at the top of the article.

    If you use the Gutenberg or block editor for your pages and posts, we recommend inserting a shortcode block, then adding the shortcode manually.

    Output

    A shortcode like this will look like the screenshot below on the page:

    The review will show the review title, author, download title, the review itself, the date of the review, and a link to the review.

    Displaying multiple reviews

    Other parameters can be passed to the [review] shortcode to allow you to display multiple reviews at a time.  A shortcode to display multiple reviews looks like this:

    [review download="DOWNLOAD_ID" multiple="true" number="10"]
    

    The above shortcode will display 10 reviews for a given download ID.

    The post Reviews – Shortcodes first appeared on Easy Digital Downloads.

    ]]>
    CSV Coupon Importer https://easydigitaldownloads.com/docs/csv-coupon-importer/ Mon, 24 Jan 2022 19:54:52 +0000 https://edd-site.lndo.site/docs/csv-coupon-importer/ Easy Digital Downloads has a very nice interface for creating Discount Codes, but entering many of them at once can be time consuming. The CSV Coupon Importer allows you to import many of them at once from a CSV file. Configuration Instructions for CSV Coupon Importer Once installed, locate the settings for this extension via WordPress

    The post CSV Coupon Importer first appeared on Easy Digital Downloads.

    ]]>
    Easy Digital Downloads has a very nice interface for creating Discount Codes, but entering many of them at once can be time consuming. The
    CSV Coupon Importer allows you to import many of them at once from a CSV file.

    Configuration Instructions for CSV Coupon Importer

      1. Once installed, locate the settings for this extension via WordPress admin → Downloads → Settings → Extensions → Coupon Importer
      2. The first step is to map your CSV columns to Discount Code values.

    1. Find the section titled CSV Coupon Import Mapping and for each Discount Code value choose the column that matches.

    Here’s an example of a CSV file in a spreadsheet application:

    Here’s the mapping interface to match that CSV data:

    Each field will tell you what kind of data needs to be there, whether it’s a specific word like “flat” or a boolean value like 0 or 1.

    When you’ve finished mapping the values, click
    Save Changes at the bottom of the page.

    Usage

    Once your columns are mapped properly go to
    Downloads → Import Coupons. There you may choose your input file that you wish to import.

    Validation

    Before committing to the import you may choose
    Validate File Only. This will check your file for problems, so that you can fix them before actually importing.

    Import File

    Once your file has validated you can choose Import File with the validator checkbox unchecked and your coupons will import.

    Potential Issues

    It’s possible to try to import so many items at once that your server will time out. Each server has a different timeout setting; you’ll need to experiment with yours. When it times out, it will have successfully imported a number of discount codes, so you should check to see how many worked.

    The post CSV Coupon Importer first appeared on Easy Digital Downloads.

    ]]>
    Advanced Sequential Order Numbers Setup https://easydigitaldownloads.com/docs/advanced-sequential-order-numbers-setup/ Mon, 24 Jan 2022 19:54:50 +0000 https://edd-site.lndo.site/docs/advanced-sequential-order-numbers-setup/ This extension adds a layer on top of the built-in Easy Digital Downloads order number functionality. The plugin assigns sequential order numbers to all new orders created after the activation of the plugin. Getting started Once the plugin is installed, you need to enable the plugin from the settings page. The plugin settings can be

    The post Advanced Sequential Order Numbers Setup first appeared on Easy Digital Downloads.

    ]]>
    This extension adds a layer on top of the built-in Easy Digital Downloads order number functionality. The plugin assigns sequential order numbers to all new orders created after the activation of the plugin.

    Getting started

    Once the plugin is installed, you need to enable the plugin from the settings page. The plugin settings can be found at Downloads > Settings > Payments > Advanced Sequential Order Numbers.

    After the plugin is enabled, you do not have to do anything else. By default, the first order number will be 1 for all order series. If you wish to start somewhere else, you can change the next order number to be used in the settings as well.

    Number series

    The plugin operates with three different number series:

    1. “Temporary order” numbers
    2. “Free order” numbers
    3. “Completed order” numbers

    The number series are individually sequential and can be assigned unique prefixes and postfixes.

    Temporary order numbers

    When an order is created in EDD, a temporary order number is assigned to the order. The order number will be replaced once the order is marked as complete.

    The temporary order is also stored for later reference and is visible on the payment details page.

    Free order numbers

    Once an order is completed, if the order total is 0, the order will be assigned an order number from this order series. Different order numbers for free orders can be disabled in the plugin settings.

    Completed order numbers

    If the order isn’t free, or the free order number series is disabled, once an order is completed, a regular order number is assigned to the order.

    Order number padding

    By default, order numbers only contain the number of digits that make up the number. If you want all order numbers to contain the same number of digits (i.e. 001 instead of 1), you can use this setting to achieve that.

    Pad with

    The character used to pad order numbers. For example, use 0 to add zeroes before the order number to get an order number of 001.

    Order number length

    This is used to set the length or number of digits in your order. The prefix/postfix values are not included in the order number length.

    Next order numbers

    This is the order number of the next order. If it’s empty, it’s 1. You can use this to start future orders at a specific number, 1000 instead of 1, or if you want to reset and start orders at 1 after updating the Prefix or Postfix.

    Removing the plugin

    If you wish to delete the plugin, you can do so without any issues, since this plugin doesn’t change any of the original order data.

    FAQ

    Does making changes to any of the settings affect existing orders?
    No, updates to any of the settings only affect future order numbers.

    Is it possible to have duplicate order numbers?
    Yes, if the “Next order number” is set to an order number that already exists. Advanced Sequential Order Numbers will not check existing order numbers, so it’s important to make sure updating the settings does not result in duplicate order numbers.

    The post Advanced Sequential Order Numbers Setup first appeared on Easy Digital Downloads.

    ]]>
    Themedd – Optimizing the checkout https://easydigitaldownloads.com/docs/themedd-optimizing-the-checkout/ Mon, 24 Jan 2022 19:54:50 +0000 https://edd-site.lndo.site/docs/themedd-optimizing-the-checkout/ Removing the sidebar at checkout The EDD checkout page will show a sidebar if you have any widgets assigned to the sidebar widget location. To remove the sidebar, assign either the Full Width or Slim page template to your EDD checkout page. Distraction Free Checkout The Distraction Free Checkout option simplifies the EDD checkout page,

    The post Themedd – Optimizing the checkout first appeared on Easy Digital Downloads.

    ]]>
    Removing the sidebar at checkout

    The EDD checkout page will show a sidebar if you have any widgets assigned to the sidebar widget location. To remove the sidebar, assign either the Full Width or Slim page template to your EDD checkout page.

    Distraction Free Checkout

    The Distraction Free Checkout option simplifies the EDD checkout page, removing any distractions such as header menus, footer widgets (if set), and sidebars. This improves the customer’s checkout experience and helps to lower cart abandonment. The site title (and logo if set) will still be linked to your site’s homepage so the customer can find their way back.

    To enable Distraction Free Checkout:

    1. From within the WordPress admin, go to AppearanceCustomizeEasy Digital Downloads
    2. Enable the Distraction Free Checkout checkbox
    3. Click Save & Publish

    Tip: You can use the Slim page template in conjunction with Distraction Free Checkout to make your checkout “slimmer”. Slim checkout pages have been known to improve conversions. Consider A/B testing your site’s checkout page to see if this helps increase sales.

    Empty cart

    When a customer’s cart is empty, Distraction Free Checkout will be automatically disabled. This is done intentionally so a customer can navigate around your site and find products to add to their cart. Once a product has been added to the cart and they navigate to checkout again, Distraction Free Checkout will be enabled.

    Showing products to the customer when the cart is empty

    Use the Empty Cart plugin to show products to the customer when their cart is empty.

    The post Themedd – Optimizing the checkout first appeared on Easy Digital Downloads.

    ]]>
    Software Licensing – Changelogs https://easydigitaldownloads.com/docs/software-licensing-changelogs/ Mon, 24 Jan 2022 19:54:49 +0000 https://edd-site.lndo.site/docs/software-licensing-changelogs/ The Software Licensing extension has a built-in mechanism for associating a changelog with a Download. This makes it easy to keep the changelog updated as well as easy to see on the web for any Download. Creating a changelog When editing a Download in the admin area, find the Licensing meta box.  Make sure licenses

    The post Software Licensing – Changelogs first appeared on Easy Digital Downloads.

    ]]>
    The Software Licensing extension has a built-in mechanism for associating a changelog with a Download. This makes it easy to keep the changelog updated as well as easy to see on the web for any Download.

    Creating a changelog

    When editing a Download in the admin area, find the Licensing meta box.  Make sure licenses are created for this Download by checking the checkbox.

    One of the features that will appear when licensing is enabled is a large WYSIWYG text box. Create your changelog in this box.

    As your changelog grows in length, you may find that it would be beneficial to reduce the length of the changelog when providing it via the `get_version` API request. As of Software Licensing 3.6.10, changelogs now support the ‘Read More’ tag, which will truncate the changelog when viewed over the API only. A URL to the full changelog will be placed at the end of the truncated changelog. Just insert following at the appropriate point in your changelog:

    Viewing a changelog

    To view the changelog of a Download that has one, first visit the product page for that Download.

    Then add this to the end of the URL:

    ?changelog=1
    

    And then the page will show the changelog.

    The post Software Licensing – Changelogs first appeared on Easy Digital Downloads.

    ]]>
    Hide Download https://easydigitaldownloads.com/docs/hide-download/ Mon, 24 Jan 2022 19:54:46 +0000 https://edd-site.lndo.site/docs/hide-download/ The Hide Download extension allows you to hide a download so it does not appear on the Downloads archive page or anywhere where the [downloads] shortcode is being used. Once installed and activated, you will see the Hide Download options area when creating or editing a download. The options are located in the Download Settings

    The post Hide Download first appeared on Easy Digital Downloads.

    ]]>
    The Hide Download extension allows you to hide a download so it does not appear on the Downloads archive page or anywhere where the [downloads] shortcode is being used.

    Once installed and activated, you will see the Hide Download options area when creating or editing a download. The options are located in the Download Settings area in the right column of the create/edit screen of a Download.

    The two options available are:

    Hide this download – This hides the download from the Downloads archive page which is typically located at http://your-site.com/downloads

    Disable direct access to this download – This removes access to the download. In the event a user was to enter the direct URL of the download, it will not be available.

    This extension can be useful if you want to remove a download from the archive page and specifically highlight it elsewhere on your site using the [purchase_link] shortcode or a custom link.

    The post Hide Download first appeared on Easy Digital Downloads.

    ]]>
    Gateway Fees Setup https://easydigitaldownloads.com/docs/gateway-fees-setup/ Mon, 24 Jan 2022 19:54:45 +0000 https://edd-site.lndo.site/docs/gateway-fees-setup/ Gateway Fees allows you to charge customers additional fees depending on the payment method used to complete a purchase. Alternatively, you can also use this extension to give discounts for using certain gateways. Note: Gateway Fees are no currently compatible with Recurring Payments (both the initial and renewal payments). Fees will only apply to one time

    The post Gateway Fees Setup first appeared on Easy Digital Downloads.

    ]]>
    Gateway Fees allows you to charge customers additional fees depending on the payment method used to complete a purchase. Alternatively, you can also use this extension to give discounts for using certain gateways.

    Note: Gateway Fees are no currently compatible with Recurring Payments (both the initial and renewal payments). Fees will only apply to one time purchases.

    Once the extension is
    installed and activated, in your EDD store, go to Downloads → Settings → Payments and find the Gateway Fees section. It’ll look like this:

    Applying a fee

    At the bottom of the page is an area to set up a label and either a flat fee or a percentage fee for each Gateway you have enabled. The screenshot below shows how you can add a 2.9% + $0.30 cents fee for purchases made with the Test Payment for example.

    Once you have a gateway fee set up, it automatically takes effect on the checkout page. Below is the example of a Test Payment fee of 2.9% plus 30 cents per transaction on a $100.00 purchase.

    Applying a discount

    Add the minus sign to any fee in order to apply a discount. For example, you might want to provide a 3% discount for using
    Check Payment Gateway. To do so, input -3 in the “Percent fee for Check Payment” field.

    Calculation examples

    Note: Gateway Fees calculations can be very confusing.  Please read this section carefully and do experiments on your own calculations.

    Something important to keep in mind is that this extension is not intended to simply add a fee to the transaction, but rather take the fees charged by the gateway and pass them on to the customer.

    When the price is $100 and you want to use Gateway Fees to pass a 2.9% fee to the customer, what you actually want to do is have a total price that leaves you with $100 and still pays your fee to the payment processor. So as mentioned above, you’re not using this extension to apply a fee. Instead, you’re using it to offset a fee that will be applied by the payment processor.
    Instead of adding 2.9% to $100, we divide $100 by 0.971 (1 minus 2.9%). What this gives us is $102.98661. This may look strange, but $102.99 is now fully prepared to pay a 2.9% fee. Here’s the math: $102.99 * 0.971 (meaning minus the 2.9% fee) = $100. You get $100 while the customer pays a $3.00 fee to the payment processor.
    Now in the example above there’s also a 30 cent per transaction fee, so the real end total will be $103.30.

    More examples

    Cart Total Gateway Percentage Gateway Flat Fee Customer Pays
    100 2.9% 0.30 103.30
    29.99 3.3% 0.30 31.32
    16.00 2.9% 0.30 16.77
    42.00 4.7% 0.30 44.37
    15.00 3.0% 0.00 15.46
    24.00 2.9% 0.00 24.72
    9.99 0.0% 0.30 10.29
    49.99 0.0% 0.30 50.29

    The post Gateway Fees Setup first appeared on Easy Digital Downloads.

    ]]>
    Reviews – REST API https://easydigitaldownloads.com/docs/reviews-rest-api/ Mon, 24 Jan 2022 19:54:44 +0000 https://edd-site.lndo.site/docs/reviews-rest-api/ Reviews integrates with the EDD REST API allowing you to retrieve reviews in either a JSON or XML format. The EDD REST API provides an endpoint called /reviews/. The reviews endpoint allows you to query the database and retrieve a list of reviews placed on all products from your store. A basic reviews query looks

    The post Reviews – REST API first appeared on Easy Digital Downloads.

    ]]>
    Reviews integrates with the EDD REST API allowing you to retrieve reviews in either a JSON or XML format.

    The EDD REST API provides an endpoint called /reviews/. The reviews endpoint allows you to query the database and retrieve a list of reviews placed on all products from your store. A basic reviews query looks like this:

    http://yoursite.com/edd-api/reviews/?key=c281cf0a95be875d9eeb284fb004c938&token=5f9432f3ffa5945755ebc66179810d70
    

    For each review returned, you’ll receive the following information:

    • id – The unique ID of the review
    • title – The title of the review
    • parent – If the review is a reply, this gives the ID of the parent review
    • download_id – The ID of the download for which this review was created
    • download_title – Title of the download for which this review was created
    • rating – The rating given by the reviewer. This will be null for a reply.
    • author – The name of the author of the review
    • email – The email address of the author of the review
    • IP – The IP address from which the review was submitted
    • date – The date the review was submitted
    • date_gmt – The date (in GMT) the review was submitted
    • content – The content of the review
    • status – The status of the review. 1 represents approved and 0 represents unapproved (pending). The status can also be “spam” or “trash”
    • user_id – The WordPress user ID of the review author
    • type – Either a review or reply depending on what it is
    • votes – The number of people who have voted that this review is helpful or unhelpful. This will be null for a reply. If this is a review, it will have sub-keys of yes and no

    A reviews query response looks like this:

    {
        "reviews": {
            "total": "2",
            "most_recent": [
                {
                    "id": "63",
                    "title": null,
                    "parent": "60",
                    "download_id": "1568",
                    "download_title": "Endless Possibilities",
                    "rating": null,
                    "author": "Sunny Ratilal",
                    "email": "dev@local.dev",
                    "IP": "172.17.0.1",
                    "date": "2016-07-20 17:24:48",
                    "date_gmt": "2016-07-20 17:24:48",
                    "content": "Replying to test review",
                    "status": "1",
                    "user_id": "1",
                    "type": "reply",
                    "votes": null
                },
                {
                    "id": "61",
                    "title": "Great read",
                    "parent": "0",
                    "download_id": "1566",
                    "download_title": "eBook",
                    "rating": "4",
                    "author": "Sunny Ratilal",
                    "email": "dev@local.dev",
                    "IP": "172.17.0.1",
                    "date": "2016-07-19 19:25:22",
                    "date_gmt": "2016-07-19 19:25:22",
                    "content": "Well written book",
                    "status": "1",
                    "user_id": "1",
                    "type": "review",
                    "votes": {
                        "yes": "3",
                        "no": "0"
                    }
                },
            ]
        },
        "request_speed": 0.08372688293457
    }
    

    Certain query variables can be attached to the base query. If you want to receive the data for a single review, you can add the &review_id={identifier} parameter, like this:

    http://yoursite.com/edd-api/reviews/?key=c281cf0a95be875d9eeb284fb004c938&token=5f9432f3ffa5945755ebc66179810d70&review_id=61
    

    The response for a single review looks like this:

    {
        "reviews": {
            "id": "61",
            "title": "Great read",
            "parent": "0",
            "download_id": "1566",
            "download_title": "eBook",
            "rating": "4",
            "author": "Sunny Ratilal",
            "email": "dev@local.dev",
            "IP": "172.17.0.1",
            "date": "2016-07-19 19:25:22",
            "date_gmt": "2016-07-19 19:25:22",
            "content": "Well written book",
            "status": "1",
            "user_id": "1"
        },
        "request_speed": 0.0022079944610596
    }
    

    If you want to view all the reviews for a single download, you can add the &download_id={identifier} parameter, like this:

    http://yoursite.com/edd-api/reviews/?key=c281cf0a95be875d9eeb284fb004c938&token=5f9432f3ffa5945755ebc66179810d70&download_id=1568
    

    The above query will generate a response similar to above but will have multiple sub-keys under the reviews key

    The post Reviews – REST API first appeared on Easy Digital Downloads.

    ]]>
    Free Downloads Compatibility With Email Services https://easydigitaldownloads.com/docs/free-downloads-compatibility-with-email-services/ Mon, 24 Jan 2022 19:54:43 +0000 https://edd-site.lndo.site/docs/free-downloads-compatibility-with-email-services/ Free Downloads is an Easy Digital Downloads extension that allows the store owner to offer products for free while getting an email address from the customer. You can read the full documentation for Free Downloads here. Free Downloads can integrate with these email services: GetResponse MailChimp Aweber MailPoet Sendy ConvertKit

    The post Free Downloads Compatibility With Email Services first appeared on Easy Digital Downloads.

    ]]>
    Free Downloads is an Easy Digital Downloads extension that allows the store owner to offer products for free while getting an email address from the customer. You can read the full documentation for Free Downloads here.


    Free Downloads can integrate with these email services:

    The post Free Downloads Compatibility With Email Services first appeared on Easy Digital Downloads.

    ]]>
    Frontend Submissions – Email Configuration https://easydigitaldownloads.com/docs/frontend-submissions-email-configuration/ Mon, 24 Jan 2022 19:54:41 +0000 https://edd-site.lndo.site/docs/frontend-submissions-email-configuration/ Frontend Submissions can send emails to both site administrators and Vendors for a variety of reasons. You can configure the contents of these emails by navigating to Downloads > Emails > Frontend Submissions. Template Tags In the emails that the Vendor and admins receive regarding applications (application received/approved/denied), the following template tags can be inserted: {firstname} – The

    The post Frontend Submissions – Email Configuration first appeared on Easy Digital Downloads.

    ]]>
    Frontend Submissions can send emails to both site administrators and Vendors for a variety of reasons. You can configure the contents of these emails by navigating to Downloads > Emails > Frontend Submissions.

    Template Tags

    In the emails that the Vendor and admins receive regarding applications (application received/approved/denied), the following template tags can be inserted:

    {firstname} – The first name of the Vendor
    {lastname} – The last name of the Vendor
    {fullname} – The full name of the Vendor (first + last name: John Smith)
    {username} – The username of the Vendor
    {vendor-email} – The email address of the Vendor
    {sitename} – The name of our site, as defined by the “Site Name” settings located in Settings → General of the WordPress Dashboard

    On the emails that the Vendor and admins receive regarding Submissions, the following template tags can be used:

    {firstname} – The first name of the Vendor
    {lastname} – The last name of the Vendor
    {fullname} – The full name of the Vendor (first + last name: John Smith)
    {username} – The username of the Vendor
    {vendor-email} – The email address of the Vendor
    {sitename} – The name of our site, as defined by the “Site Name” settings located in Settings → General of the WordPress Dashboard
    {post-title} – The name of the submission
    {post-content} – The content (description) of the submission
    {post-categories} – The Category the submission is in
    {post-tags} – The Tags the submission has
    {post-date} – The date the submission was submitted
    {post-status} – The current status of submission (Pending Review, Published, Trashed)

     When customizing the emails for Frontend Submissions you can use the Insert Marker button to easily add one of the available email tags.

    Sample Emails

    Admin Emails:

    New Vendor Application:

    {fullname} has applied to become a vendor.

    Submission Received:

    Vendor {fullname} – {vendor-email} has submitted the following submission for review:
    Name of Submission: {post-title}
    Content of Submission: {post-content}
    Submission Category: {post-categories}
    Submission Tags: {post-tags}
    Date of Submission: {post-date}

    Vendor Emails:

    Vendor Application Received:

    Dear {firstname},
    Your application to become a vendor has been received.

    Regards,
    {sitename}

    Vendor Application Approved:

    Dear {firstname},
    Your application to become a vendor has been approved!

    Regards,
    {sitename}

    Vendor Application Denied:

    Dear {firstname},
    Your application to become a vendor has been declined.

    Regards,
    {sitename}

    Submission Received:

    Dear {firstname},
    Your submission, {post-title}, has been received.

    Regards,
    {sitename}

    Submission Approved:

    Dear {firstname},
    Your submission, {post-title}, has been approved!

    Regards,
    {sitename}

    Submission Declined:

    Dear {firstname},
    Your submission, {post-title}, has been declined.

    Regards,
    {sitename}

    Note: The Frontend Submission plugin does not include a feature to email Vendors when their products have sold. This is because the Frontend Submissions plugin does not handle the actual payment to any of the Vendors. If desired, it can be done by using the EDD Commissions extension and setting the commission to zero, which will still send an email to a Vendor when their product is purchased.

    The post Frontend Submissions – Email Configuration first appeared on Easy Digital Downloads.

    ]]>
    Using Zapier to Integrate Constant Contact with EDD https://easydigitaldownloads.com/docs/using-zapier-to-integrate-constant-contact-with-edd/ Mon, 24 Jan 2022 19:54:40 +0000 https://edd-site.lndo.site/docs/using-zapier-to-integrate-constant-contact-with-edd/ You can use Zapier to add your customer’s email addresses to your Constant Contact lists after they make a purchase on your Easy Digital Downloads shop. Here’s how: 1. Make sure you have the Zapier extension for EDD installed and activated. See primary setup documentation for instructions on how to connect Easy Digital Downloads to

    The post Using Zapier to Integrate Constant Contact with EDD first appeared on Easy Digital Downloads.

    ]]>
    You can use Zapier to add your customer’s email addresses to your Constant Contact lists after they make a purchase on your Easy Digital Downloads shop. Here’s how:

    1. Make sure you have the Zapier extension for EDD installed and activated. See primary setup documentation for instructions on how to connect Easy Digital Downloads to Zapier.

    3. Click “Make a Zap” at the top of your Zapier account.

    4. For the “Trigger”, search for “Easy Digital Downloads”.

    5. We will now be presented with a list of triggers. Since we want to add the customer to our Constant Contact list when a new order is placed, we will select New Order. You can also use a number of other triggers but New Order is the main one you will want to use.

    6. Click “Save and Continue” at the bottom of the page.

    7. Click “Create Contact” then “Save + Continue”.

    8. Click “Connect a new account” to authenticate your EDD shop in your Zapier account, or use an existing account you have already connected. To do so, follow the steps outlined in this article.

    9. Once connected, set up the contact information. At minimum, you must select a list to subscribe customer’s to and an email address for the contact.

    10. Click “Finish”, name your zap, and that’s it! Now, new customers in your EDD shop will automatically be added to your Constant Contact list when a purchase is made.

    Going further

    Zapier is endlessly flexible so you can do a lot more than subscribe customers when a purchase is made. For example, you can use the filter options in Zapier to conditionally subscribe customers based on what they purchased or how much money they spent with your store.

    Here are some other examples to help you go further with this integration:

    • You could remove a contact anytime a license key expires in Software Licensing
    • You could remove a contact anytime a subscription expires or fails in Recurring Payments
    • You could subscribe customers that purchase more than $500 to a special VIP list
    • You could unsubscribe a contact anytime a customer is deleted in Easy Digital Downloads

    The post Using Zapier to Integrate Constant Contact with EDD first appeared on Easy Digital Downloads.

    ]]>
    Per Product Emails Documentation https://easydigitaldownloads.com/docs/per-product-emails-documentation/ Mon, 24 Jan 2022 19:54:39 +0000 https://edd-site.lndo.site/docs/per-product-emails-documentation/ EDD sends an email to the purchaser with every sale. Per Product Emails allows you to additionally send a custom email for any given product. Create Per Product Emails Once installed and activated, navigate to Downloads > Emails, click Add New Email and select Per Product Email. This will open the email editor to create

    The post Per Product Emails Documentation first appeared on Easy Digital Downloads.

    ]]>
    EDD sends an email to the purchaser with every sale. Per Product Emails allows you to additionally send a custom email for any given product.

    Create Per Product Emails

    Once installed and activated, navigate to Downloads > Emails, click Add New Email and select Per Product Email.

    This will open the email editor to create your Per Product email, for the selected Download.

    Enable the email at the top and click Save.

    View & Edit existing Per Product Emails

    Once you have a custom email configured, you’ll be able to see it in the list of emails under Downloads > Emails. You can use the Senders filter to only display Per Product Emails. You are able to click the email to open the editor or toggle the Status to disable or enable.

    Common Issues and FAQ

    Product Variations

    This extension does not support sending unique emails for product variations at this time.

    Original Purchase Receipts

    Easy Digital Downloads will send a purchase receipt as well as a custom email when Per Product Emails is active on a specific Download. You can disable the default Purchase Receipt under Downloads > Emails.

    Multiple Downloads in the cart

    Once custom emails have been configured, it will send a custom email for each item in the cart. For example, if you have configured emails for Product A and Product B and someone purchases both in the same transaction, the extension will send two custom emails – one for each product

    The post Per Product Emails Documentation first appeared on Easy Digital Downloads.

    ]]>
    ActiveCampaign Documentation https://easydigitaldownloads.com/docs/activecampaign-documentation/ Mon, 24 Jan 2022 19:54:38 +0000 https://edd-site.lndo.site/docs/activecampaign-documentation/ The ActiveCampaign email marketing add-on adds an option for your customers to join your ActiveCampaign email list during checkout. Configuration Instructions for ActiveCampaign 1. Once installed, locate the settings for this extension via WordPress admin → Downloads → Settings → Marketing > ActiveCampaign. 2. Then, enter your API URL, API Key, and List ID for

    The post ActiveCampaign Documentation first appeared on Easy Digital Downloads.

    ]]>
    The ActiveCampaign email marketing add-on adds an option for your customers to join your ActiveCampaign email list during checkout.

    Configuration Instructions for ActiveCampaign

    1. Once installed, locate the settings for this extension via WordPress admin → Downloads → Settings → Marketing > ActiveCampaign.

    2. Then, enter your API URL, API Key, and List ID for ActiveCampaign, found under Settings → Developer in your ActiveCampaign account dashboard.

    Note: Your ActiveCampaign lists will not appear until the API URL and Key are saved.

    3. Finally set a Checkout Label and click Save Settings. Once you Save Settings, available lists will appear.

    Adding customers to lists

    Customers are added one of two ways:

    1. By choosing a list in the settings above and selecting Show Signup on Checkout. Customers will have the option to opt in to this list during checkout.
    2. Inside the product settings, you can choose a specific list that the customer should be added too, as a result of purchasing that particular product. Customers will need to opt in on checkout to get added to this list.

    Troubleshooting

    Emails are not added to a list selected in the Download’s Per-Product Lists
    Most likely, the customer did not opt in upon checkout. If opt-in is not selected, then an email will not be added to the default list or the per-product list(s). If opt-in is selected at checkout, the email address will be added to the default list and any other per-product lists that might be selected.

    The post ActiveCampaign Documentation first appeared on Easy Digital Downloads.

    ]]>
    Pushover Notifications Setup https://easydigitaldownloads.com/docs/pushover-notifications-setup/ Mon, 24 Jan 2022 19:54:37 +0000 https://edd-site.lndo.site/docs/pushover-notifications-setup/ The Pushover extension integrates with the Pushover Notifications for WordPress plugin and pushover.net to send push notifications from your EDD store. Note: As an alternative, the Zapier Extension can also be utilized for similar (and more advanced) functionality. See the EDD Zapier documentation and this guide in place of the instructions below to implement Push.

    The post Pushover Notifications Setup first appeared on Easy Digital Downloads.

    ]]>
    The Pushover extension integrates with the Pushover Notifications for WordPress plugin and pushover.net to send push notifications from your EDD store.

    Note: As an alternative, the Zapier Extension can also be utilized for similar (and more advanced) functionality. See the EDD Zapier documentation and this guide in place of the instructions below to implement Push.

    If you have not already done so, please complete the following steps first:

    1. Signup for a free Pushover account.
    2. Download the iOS or Android app, depending on your platform.
    3. Download and install the Pushover WordPress plugin.
    4. Install and activate, the EDD Pushover extension, then go to WordPress admin → Settings → Pushover Notifications for EDD specific options.

    Once you have done the steps above, follow the directions below to complete the setup (as shown in the screenshot).

    Go to Settings → Pushover Notifications from your WordPress Dashboard

    1. Enter your Application API Token/Key in the settings field.
    2. Enter your User Key in the settings field. This and the step above will connect the plugin to your Pushover account.
    3. Under the Send Notifications For options, choose the items you wish to receive notifications for. It is recommended that you at least enable notifications for New Sales and Daily Sales Report

    Your site will now push notifications to your device any time a sale is completed.

    Note, the notification is only pushed to your device when a sale is marked as “complete”. If your payments are still set to “pending”, notifications will not be sent to your device. If this is happening to you, please check the FAQs.

    The post Pushover Notifications Setup first appeared on Easy Digital Downloads.

    ]]>
    Frontend Submissions – Vendor Shop Pages https://easydigitaldownloads.com/docs/frontend-submissions-vendor-shop-pages/ Mon, 24 Jan 2022 19:54:36 +0000 https://edd-site.lndo.site/docs/frontend-submissions-vendor-shop-pages/ With Frontend Submissions, each Vendor has its own Shop page, which is an archive of its products. The parent Vendor page is a normal WordPress Page with the [downloads] shortcode on it. You can choose what page that is in FES > Settings > Forms/Pages. Assuming your Vendor Page has a slug of “vendor”, then

    The post Frontend Submissions – Vendor Shop Pages first appeared on Easy Digital Downloads.

    ]]>
    With Frontend Submissions, each Vendor has its own Shop page, which is an archive of its products. The parent Vendor page is a normal WordPress Page with the [downloads] shortcode on it. You can choose what page that is in FES > Settings > Forms/Pages.

    Assuming your Vendor Page has a slug of “vendor”, then you can append the username of any vendor to the URL to get that vendor’s personal Shop page.

    Example with the Vendor being used in this documentation: http://eddstoredomain.com/vendor/vendorredirecttest/

    Below is an example of Vendor Shop page.

    The post Frontend Submissions – Vendor Shop Pages first appeared on Easy Digital Downloads.

    ]]>
    Software Licensing – Developer Customizations https://easydigitaldownloads.com/docs/software-licensing-developer-customizations/ Mon, 24 Jan 2022 19:54:35 +0000 https://edd-site.lndo.site/docs/software-licensing-developer-customizations/ Table of Contents Instantiating Objects Available Properties Available Methods Just like Easy Digital Downloads core, the Software Licensing extension includes a variety of action and filter hooks that you can use to tweak the behavior of the extension to better suit your needs. This documentation is written for advanced users who are already familiar with

    The post Software Licensing – Developer Customizations first appeared on Easy Digital Downloads.

    ]]>
    Table of Contents

    Just like Easy Digital Downloads core, the Software Licensing extension includes a variety of action and filter hooks that you can use to tweak the behavior of the extension to better suit your needs. This documentation is written for advanced users who are already familiar with the WordPress Plugins API.

    License Creation

    License Length

    By default, every license key is given a one year expiration date. This expiration length can easily be changed by using the edd_sl_license_exp_length filter. There are four parameters passed to the filter:

    • $length (string) – The expiration length for this license. “+1 year” is default
    • $payment_id (int) – The payment ID of the purchase this license was generated with
    • $download_id (int) – The download/product ID this license is connected to
    • $license_id (int) The ID of the newly created license

    Here’s a quick example of how you might change the expiration length:

    function pw_edd_sl_license_length( $length, $payment_id, $download_id, $license_id ) {
    	return '+2 years'; // set length to two years from creation date
    }
    add_filter( 'edd_sl_license_exp_length', 'pw_edd_sl_license_length', 10, 4 );
    

    Execute Functions After License Creation

    The edd_sl_store_license action is fired just after the license key is created and all meta data is attached to it. The action takes three parameters:

    • $license_id (int) – The ID of the newly created license
    • $download_id (int) – The ID of the download/product this license is connected to
    • $payment_id (int) – The ID of the purchase this license was created with

    A sample function you might attach to this action could look something like this:

    function pw_edd_sl_custom_admin_alert( $license_id, $download_id, $payment_id ) {
    	
    	// send admin alert
    
    	wp_mail( get_bloginfo( 'admin_email' ), 'License Created', 'A new license key with the ID of ' . $license_id . ' has been created.' );
    
    }
    add_action( 'edd_sl_store_license', 'pw_edd_sl_custom_function', 10, 3 );
    

    Execute Functions During License Activation

    The edd_sl_activate_license action runs just after a license is activated via the API.

    do_action( 'edd_sl_activate_license', $license_id, $download_id );
    

    Execute Functions During License Checking

    The edd_sl_check_license action runs just after a license is checked via the API.

    do_action( 'edd_sl_activate_license', $license_id, $download_id );
    

    Other Filters

    edd_sl_license_response – applied to the response sent when remotely checking a download/product version.

    edd_sl_get_license_logs – applied when the log entries for a license are retrieved.

    edd_sl_encoded_package_url – applied when the encoded package URL for download packages is retrieved.

    edd_sl_download_package_url – applied when the download package file for auto updates is retrieved.

    edd_license_labels – applied to the post type labels when registering the edd_license post type.

    Other Actions

    edd_sl_before_package_download – executes just before the download file for auto upgrades is served to the browser.

    Software Licensing version 3.5 and later includes an EDD_SL_License class for interacting with license key records. The EDD_SL_License class allows you to interact with license key data, update existing license keys, and create new license key records.

    Instantiating Objects

    To improve performance when accessing a license object you should use the wrapper method, which uses the WordPress core object caching layer. You can use either the License ID or License Key to instantiate an object. If no license exists for the provided information the wrapper method will return `false`:

    // Instantiate a license via ID
    $license = edd_software_licensing()->get_license( 2326422 );
    
    // Instantiate a license via the license key
    $license_by_key = edd_software_licensing->get_license( '9e21e9a885212f96cccb4d6186541332', true );
    
    // If you pass in an invalid license ID or key you will get 'false' as a response.
    $invalid_license = edd_software_licensing()->get_license( -1 );
    

    EDD_SL_License can be instantiated with a license ID or no value when creating a new license. Here are some examples:

    $license = new EDD_SL_License( 2326422 );
    

    If you wish to create a new license:

    $license = new EDD_SL_License();
    $license->create( $download_id = 0, $payment_id = 0, $price_id = false, $cart_index = 0, $options = array() );
    

    While you can directly instantiate a license with EDD_SL_License, it’s preferred to use the wrapper function for performance reasons.

    The arguments necessary to create a new license will be covered below.

    Available Properties

    The EDD_SL_License class includes numerous accessible properties that hold information related to the license key record.

    • ID – The ID number of the license record. This corresponds to the WP_Post object’s ID.
    • parent – The post ID of the parent license, if any.
    • name – The name of the license. This is a concatenation of the customer’s email address and the name of the product the license key is associated with.
    • key – The license key itself. This is typically a 32 character string but can be anything.
    • user_id – The ID of the WP_User the license key belongs to, if any.
    • customer_id – The ID of the EDD_Customer the license belongs to.
    • payment_id – The ID of the EDD_Payment that the license was created for.
    • payment_ids – An array of payment IDs related to the license. Includes renewals and upgrades.
    • cart_index – The numerical index in the cart items array of the product the license key is associated with.
    • download – An EDD_SL_Download instance of the download product the license key is associated with.
    • download_id – The post ID of the download product the license key is associated with.
    • price_id – The ID of the price option of the download product assigned to the license key.
    • activation_limit – The number of unique URLs / machines the license key can be activated on.
    • sites – An array of the site URLs (or machine IDs) the license key is activated on.
    • activation_count – The number of unique URLs / machines the license key is currently activated on.
    • expiration – The expiration date of the license key.
    • is_lifetime – Boolean flag indicating if the license is a lifetime (never expires) license.
    • status – The current status of the license (active, inactive, expired).
    • post_status – The post_status of the WP_Post object for the license.
    • child_licenses – An array of child license keys, if any.

    Each property can be accessed directly, like this:

    // Access the price ID of the license
    $price_id = $license->price_id;
    

    Each property can also be updated by setting the value of the property, like so:

    // Set the license activation limit
    $license->activation_limit = 100;
    

    Changes to object properties will be saved immediately without any need to call a save or update method.

    Available Methods

    The EDD_SL_License class includes public methods for accessing the object properties and several other help methods that may be used to access and interact with the license data.

    $license->create( $download_id = 0, $payment_id = 0, $price_id = false, $cart_index = 0, $options = array() )

    This method allows you to create a new license record for an existing download product and payment record.

    • $download_id – This must be the ID of an existing download product
    • $payment_id – This must be the ID of an existing payment record that included a purchase of $download_id
    • $price_id – This is an optional price ID for $download_id if variable prices are enabled
    • $cart_index – This is optional cart item index that identifies exactly which cart item this license corresponds to
    • $options – An array of options for the license. Can include the following keys
      • parent_license_id
      • activation_limit
      • license_length
      • expiration_date
      • is_lifetime

    The create() method can be used to create a new license key but typically will not be used manually except in very custom implementations.

    $license->update( $data = array() )

    This method allows you to update meta data for a license in bulk. The $data array should be a key/value pair of meta_key/meta_value.

    $license->renew()

    This method will trigger a renewal of a license key, extending the expiration date by one period and resetting the license status to either inactive or active.

    $license->enable()

    This method will re-enable a disabled license key.

    $license->disable()

    This method will disable a license key.

    $license->get_meta( $meta_key = ”, $single = true )

    This method will retrieve metadata for a license.

    $license->update_meta( $meta_key = ”, $value = ”, $old_value = ” )

    This method will update metadata for a license.

    $license->get_renewal_url()

    This method will retrieve the renewal URL for a license.

    $license->is_site_active( $url )

    This method will determine if the supplied URL is registered on the license.

    $license->is_at_limit()

    This method will check if the license has reached its activation limit.

    $license->license_length()

    This method will return the length of a single period for the license, such as lifetime or +1 year.

    $license->add_site( $url )

    This method can be used to register a new site URL on a license.

    $license->remove_site( $url )

    This method can be used to remove a site URL from a license.

    $license->reset_activation_limit()

    This method can be used to reset the activation limit on a license according to the settings on the download product.

    The post Software Licensing – Developer Customizations first appeared on Easy Digital Downloads.

    ]]>
    Gravity Forms Checkout Setup and Usage https://easydigitaldownloads.com/docs/gravity-forms-checkout-setup-and-usage/ Mon, 24 Jan 2022 19:54:34 +0000 https://edd-site.lndo.site/docs/gravity-forms-checkout-setup-and-usage/ The Gravity Forms Checkout extension for Easy Digital Downloads allows you to create purchase forms for any of your products through Gravity Forms. Setup After you have installed and activated the Gravity Forms Checkout extension, there are no further setup steps – the extension is ready to use. Note: These instructions require the Gravity Forms

    The post Gravity Forms Checkout Setup and Usage first appeared on Easy Digital Downloads.

    ]]>
    The Gravity Forms Checkout extension for Easy Digital Downloads allows you to create purchase forms for any of your products through Gravity Forms.

    Setup

    After you have installed and activated the Gravity Forms Checkout extension, there are no further setup steps – the extension is ready to use.

    Note: These instructions require the Gravity Forms Checkout extension as well as Gravity Forms.

    Connect to EDD Download

    In the Gravity Forms form editor, add a Product field to your form.

    Edit the Product field and give it a name you want to show users. In the example below, the product has been named “Product Name.”.

    This can be done by hovering over the product field and clicking the “Settings” button.

    There will be a dropdown field under the text “Connect to EDD Download.” Select the appropriate EDD product from the list. If the product has variations, you’ll see a message saying there are variations (which require additional setup). Instructions for variable products can be seen below.

    Now save the form and you’re done!

    Connect to EDD Download with Variable Pricing

    When connecting a product with Variable Pricing, you will see an additional message under the “Connect to EDD Download” dropdown stating that the download has variations.

    When connecting a Download with Variable Pricing, you’ll also need to add an “Option” field in the form.

    Once the “Option” field is in place, select a Download from the “Product Field Mapping” dropdown menu.

    If the product you chose has variations, a “Load EDD Options & Prices for this Product” button will appear:

    Clicking the “Load EDD Options…” button will load the price variations from the selected Easy Digital Downloads product:

    Now save the form and you’re done.


    Advanced: How Gravity Forms Checkout Connects with EDD Variations

    Either the Name of the product variation or Price ID must be the same as in Easy Digital Downloads.

    Connecting using Variation Name

    The easiest way to connect the Gravity Forms option choices to Easy Digital Downloads price variations is to give them the same name. The EDD names are automatically loaded when you click the “Load EDD Options & Prices for this Product” button.

    Connecting using Variation Price ID

    When you enable variable pricing in Easy Digital Downloads, use the name of the price variations.

    If instead you want to use a different name, use the number representing the position of the option, starting with one. In the example shown below, the “Good” variation would be 1, “Better” would be 2, and “Best” would be 3.

    You can see in the next screenshot that the values that have been set are 1, 2, and 3. even though the names are different, it will be connected because those numbers match the EDD variation positions.

    FAQ

    Why are Purchases being marked as “Pending”?

    There are a few reasons why a Gravity Forms purchase would be marked as Pending in Easy Digital Downloads.

    The Gravity Forms form didn’t include any payment methods.

    The status will be set to “Pending” if:

    • The total of the order is greater than zero
    • The connected Gravity Forms form has no configured method of payment; there is no payment made at the time of submission

    If this is the case, then you will need to modify the default payment status to be “Completed.”

    Gravity Forms hasn’t “heard back” from the payment processor yet

    It can take some time for payment processors to notify a website that a payment has been accepted or rejected. During this time, the purchase will be marked as “Pending” until the notification comes in.

    Does Gravity Forms Checkout support subscription payments?

    No, at this time subscription payments are not supported with Gravity Forms Checkout. If this feature is important to you, please let us know.

    How to define the Customer fields that should be used

    If you have a form that has multiple name, email, or address fields, you may want to change which fields are used for the Customer.
    In Version 2.0, if your form has multiple fields of those types, you will see a new “EDD Fields” form setting.

    From the EDD Fields settings page, choose the field that will be used for the EDD Customer. By default, the first field of its type will be used.

    How to redirect to the EDD Payment Confirmation page

    If you want to show users an Easy Digital Downloads receipt instead of a Gravity Forms receipt, you can do that by updating the Gravity Forms form confirmations. Here’s how.

    While in the form, navigate to Settings → Confirmations.

    Hover over “Default Confirmation” and click the “Edit” link.

    Change the “Confirmation Type” to “Redirect”. Once it’s set to redirect, update the Redirect URL setting to the Purchase Confirmation page URL from Easy Digital Downloads.

    Once you have the redirect URL in place, click “Save Confirmation” and new purchases will now be redirected to the Easy Digital Downloads purchase confirmation page. Users will see a receipt generated by Easy Digital Downloads.

    Modifications

    How to modify the default payment status

    The default status of new orders before payment is applied is “Pending.” If you want to accept payments by default, use the code below:

    <?php
    add_filter( 'edd_gf_default_status', 'modify_edd_gf_default_status', 10, 2 );
    
    /**
     * Modify the default status when there's no status match.
     *
     * @param string $default Default payment status for EDD ("pending" or "publish") (Default: "pending")
     * @param string $status The status of the Gravity Forms entry, set in $entry['payment_status']
     */
    function modify_edd_gf_default_status( $default = 'pending', $status = '' ) {
    	// Set the default status to be Completed/Paid
    	return 'publish';
    }

    How to include base product download links when purchasing a product with price variations

    Prior to Version 1.3, if a customer purchased a product with variable pricing and the base product also had a download associated with it, they would receive a link to the base product as well as the variable product they bought. In Version 1.3, this was changed so that customers would only receive a link to the option they purchased.


    If you would like to restore this functionality, add this code to your theme’s functions.php file:

    <?php
    add_filter('edd_gf_variable_products_include_base', '__return_true');

    The post Gravity Forms Checkout Setup and Usage first appeared on Easy Digital Downloads.

    ]]>
    Downloads as Services https://easydigitaldownloads.com/docs/downloads-as-services/ Mon, 24 Jan 2022 19:54:33 +0000 https://edd-site.lndo.site/docs/downloads-as-services/ Once the Downloads As Services extension is installed and activated, a new section will be added to the Download creation/edit screen as well as the Easy Digital Downloads settings area. Settings Area: By navigating to Downloads → Settings → Extensions you will have the ability to select Download categories that are “services”. If a download

    The post Downloads as Services first appeared on Easy Digital Downloads.

    ]]>
    Once the Downloads As Services extension is installed and activated, a new section will be added to the Download creation/edit screen as well as the Easy Digital Downloads settings area.

    Settings Area:

    By navigating to Downloads → Settings → Extensions you will have the ability to select Download categories that are “services”.

    If a download belongs to one of the categories selected, then the Purchase Confirmation page will not show the “no downloadable files” message for that particular download.

    Settings Per Download:

    When creating or editing a Download product, you will see a new area in the right column in the Download Settings area which will allow you to set the individual Download as a “service”.

    If this setting is active, then the Purchase Confirmation page will not show the “no downloadable files” message for that particular download.

    The post Downloads as Services first appeared on Easy Digital Downloads.

    ]]>
    Creating Cross-sells and Upsells https://easydigitaldownloads.com/docs/creating-cross-sells-and-upsells/ Mon, 24 Jan 2022 19:54:32 +0000 https://edd-site.lndo.site/docs/creating-cross-sells-and-upsells/ Table of Contents Creating Cross-sells & Upsells Settings Removing the Excerpt Unhook Upsells From a Single Product Page Moving Cross-sells Above Product Listing on Checkout Custom Headings Remove the Stylesheet Filtering Products in the Admin Creating Cross-sells and Upsells With the EDD Cross-sells and Upsell extension, creating either a cross-sell or upsell is easy and

    The post Creating Cross-sells and Upsells first appeared on Easy Digital Downloads.

    ]]>
    Table of Contents

    Creating Cross-sells and Upsells

    With the
    EDD Cross-sells and Upsell extension, creating either a cross-sell or upsell is easy and intuitive. Follow the steps below to setup your Cross-sells/Upsells.

    1. Visit the download in the WordPress admin that you would like to add cross-sells/upsells for
    2. Scroll down to the new Cross-Sell & Upsell metabox area
    3. Set specific headings if necessary, otherwise the headings from the main settings area will be used.
    4. Click into the provided fields, and select your desired products that will be the Cross-sell or Upsell item(s)
    5. Save

    Cross-sells will be shown on the checkout page, and upsells will be shown on the individual product page.

    Cross-sell & Upsell Settings

    Once installed and activated, a new EDD Cross-sell Upsell Settings section will appear when navigating to Downloads → Settings → Extensions → Cross-sell & Upsell.

    Default Upsell Heading

    This is the default heading shown on single product pages. Headings are also customizable on a per-product basis from each individual product page.

    Default Cross-sell Heading

    This is the default heading shown at checkout for Cross-sell products. Headings are also customizable on a per-product basis from each individual product page. If multiple cross-sells are shown from different products, then the default heading is used.

    Maximum Upsells To Show

    This is the maximum number of upsells that will be shown on a single product page

    Maximum Cross-sells To Show

    This is the maximum of upsells that will be shown on a single product page

    Removing the Excerpt

    To remove the excerpt using the
    Cross-sells and Upsells addon, copy and paste one of the following functions (mind the opening PHP tag, as it’s not needed if code is being added to existing PHP file) into your child theme’s functions.php or a custom plugin.

    This example shows how you can remove the excerpt.

    	/**
    	 * EDD Cross-sell & Upsell - Removing the excerpt
    	 * https://easydigitaldownloads.com/extensions/cross-sell-and-upsell/?ref=166
    	*/
    	function sumobi_edd_csau_show_excerpt() {
    		return false;
    	}
    	add_filter( 'edd_csau_show_excerpt', 'sumobi_edd_csau_show_excerpt' );
    

    This example shows how you can remove the excerpt, but only on single download pages.

    	/**
    	 * EDD Cross-sell & Upsell - Removing the excerpt, but only on single download pages
    	 * https://easydigitaldownloads.com/extensions/cross-sell-and-upsell/?ref=166
    	*/
    	function sumobi_edd_csau_show_excerpt() {
    		if ( is_singular( 'download' ) ) {
    			return false;
    		}
    
    		return true;
    	}
    	add_filter( 'edd_csau_show_excerpt', 'sumobi_edd_csau_show_excerpt' );
    

    Unhook Upsells From a Single Product Page

    With Cross-sells and Upsells, if you want to remove the upsells from displaying after the content, you can use the filter below.

    You may wish to do this if you wanted to re-hook the upsells onto another action hook.

    	remove_filter( 'the_content', 'edd_csau_single_download_upsells', 100 );
    

    Move Cross-sells About Product Listing on Checkout

    By default with the Cross-sells and Upsells addon, the Cross-sells are shown just below the product listing on the checkout page. If you would like them to appear above the product listing you can paste the following code into your theme’s functions.php:

    	function sumobi_edd_csau_move_cross_sells_at_checkout() {
    	    // remove cross-sells from after the product listing at checkout
    	    remove_action( 'edd_after_checkout_cart', 'edd_csau_display_on_checkout_page' );
    
    	    // add the cross-sells before the product listing at checkout
    	    add_action( 'edd_before_checkout_cart', 'edd_csau_display_on_checkout_page' );
    	}
    	add_action( 'template_redirect', 'sumobi_edd_csau_move_cross_sells_at_checkout' );
    

    Custom Headings

    Custom headings on your Cross-sells and Upsells are a great way to not only increase sales but build customer relationships.

    Upsell Heading

    In the Settings for Cross-sells and Upsells, you can set a default Upsell heading. You can further enhance the power of this extension by making custom headings for specific Downloads. Each Download has a metabox for managing the heading.

    In the referenced metabox above, you have the ability to set a custom heading that is shown above the upsell products on the individual product page. This is perfect for creating a more personal message that relates to the products being offered.

    Cross-sell Heading

    The custom Cross-sell heading is shown on the checkout page. If your customer has a song (by their favorite music artist for example) in their shopping cart, you could offer more songs from that artist as a cross-sell.

    If the customer happens to have something completely unrelated in their cart which also triggers a cross-sell product, the fallback heading is shown (this is set by navigating to Downloads → Settings → Extensions → Cross-sell & Upsells)

    Remove the Stylesheet

    The Cross-sells and Upsells addon comes with styles that affect the output of the suggested downloads.

    You can remove the stylesheet that the extension loads by adding the below code to your theme’s functions.php file or through a custom plugin.

    	function sumobi_edd_csau_deregister_styles() {
    		wp_deregister_style( 'edd-csau-css' );
    	}
    	add_action( 'wp_enqueue_scripts', 'sumobi_edd_csau_deregister_styles', 20 );
    

    Filtering Products in the Admin

    With the Cross-sells and Upsells addon, products can be filtered in the WordPress admin on the main Downloads page via the dropdown menus above the downloads. A new dropdown menu will be added where you can quickly show:

    • Downloads with cross-sells
    • Downloads with upsells
    • Downloads with both cross-sells and upsells

    Combined with the standard WordPress filter options, it’s a powerful way to quickly find all your downloads with cross-sells and upsells.

    The post Creating Cross-sells and Upsells first appeared on Easy Digital Downloads.

    ]]>
    Commissions – Refunds https://easydigitaldownloads.com/docs/commissions-refunds/ Mon, 24 Jan 2022 19:54:31 +0000 https://edd-site.lndo.site/docs/commissions-refunds/ Commissions are great, but what happens when the customer returns the product for a refund? The commissions for that sale need to be returned as well. Fortunately Easy Digital Downloads takes care of that. As long as the commission hasn’t actually been paid out it’s very easy for Easy Digital Downloads to manipulate the sale

    The post Commissions – Refunds first appeared on Easy Digital Downloads.

    ]]>
    Commissions are great, but what happens when the customer returns the product for a refund? The commissions for that sale need to be returned as well. Fortunately Easy Digital Downloads takes care of that.

    As long as the commission hasn’t actually been paid out it’s very easy for Easy Digital Downloads to manipulate the sale record and adjust the payout properly. Once the commission has been paid out your only option is to ask the vendor nicely to return the money. This can be awkward, so here’s a workflow that can keep the headaches away.

    The important thing is to have a return policy with a shorter time frame than your commissions payout time.

    Setting Up Refund Terms

    Under Downloads → Settings → Misc you’ll find the Terms of Agreement settings. This is where you would put in your refund policy. You may use the Easy Digital Downloads Terms of Agreement as an example. For this document we’ll use 14 days as an example timeframe.

    Setting Up Commission Terms

    Commission terms need to be communicated to your vendors, but there isn’t a specific way it must be done. You could create a page and print them there, include them in a signup email, or any other way that works for you. The key is that they’re properly communicated to your vendors.

    To help avoid refund issues, make your commission payout time frame longer than your return time frame. For example, if your return time frame is 14 days as we mentioned above, then make your commission payout time frame 30 or 45 days after the sale.

    Handling Refunds

    When a sale is made, payment from the customer is collected, but the commissions are not paid out automatically, they’re simply noted in Easy Digital Downloads.

    When you refund a payment that has commissions we’re able to simply edit the payment and revoke the commission because we haven’t paid the vendor their commission yet. Here’s the process:

    Step 1: Find and View the Payment

    You can find the order on the Payment History page. Click View Order Details.

    Step 2: Find the Commission Record

    Under Payment Notes you’ll find a record of commissions being recorded. Click on the View link. This should take you to a listing of one, see below.

    Step 3: Revoke the Commission

    While viewing the commission, hovering over it will make a menu appear that contains the Revoke link. This will NOT delete the commission, but merely mark it revoked, so that it won’t appear in any list to be paid.

    Wrapping Up

    When the site owner goes to pay out commissions they can use the date chooser to only select commissions that are older than whatever term they have set for their vendors. It also ignores all revoked commissions.

    The post Commissions – Refunds first appeared on Easy Digital Downloads.

    ]]>
    Zapier Extension Setup Documentation https://easydigitaldownloads.com/docs/zapier-extension-setup-documentation/ Mon, 24 Jan 2022 19:54:30 +0000 https://edd-site.lndo.site/docs/zapier-extension-setup-documentation/ The Zapier extension for Easy Digital Downloads allows you a simple and powerful way to integrate your Easy Digital Downloads store with 400+ third party web services, including Highrise, Twilio, Campaign Monitor, MailChimp, Xero, Zendesk, Dropbox, Google Docs and more! EDD Setup After you have installed and activated the Zapier extension, you will need to

    The post Zapier Extension Setup Documentation first appeared on Easy Digital Downloads.

    ]]>
    The Zapier extension for Easy Digital Downloads allows you a simple and powerful way to integrate your Easy Digital Downloads store with 400+ third party web services, including Highrise, Twilio, Campaign Monitor, MailChimp, Xero, Zendesk, Dropbox, Google Docs and more!

    EDD Setup

    After you have installed and activated the Zapier extension, you will need to generate an API key in order for the extension to work.

    Navigate to Downloads > Tools > API Keys. If you already have an API key connected to your user account, you can use that one.

    Note: For use with Zapier, the API key needs to be generated for a user account that is an “Administrator”.

    Zapier Setup

      1. Click this link to gain access to the (currently private) EDD App: https://zapier.com/developer/public-invite/76688/7cf87d2c6d63d9fbd9a75fe40dbf3065/.
      2. Create a new Zap and select Easy Digital Downloads as a triggering service:
      3. The first time you create a Zap with Easy Digital Downloads, you will need to authenticate your site by providing your site URL, API key, and API Token. To find those keys, follow the steps in this article.
      4. Configure the Zap to behave as you need with optional conditional parameters. Zapier will then ask you to run a test trigger:
      5. When you see the screen above, go to your WordPress dashboard and navigate to Downloads → Settings → Extensions → Zapier.

    When there, send the Trigger that Zapier is asking you for:

    After you click the correct Trigger to send, you will see this in your Zapier tab:

    Note: If you are getting an error like “Problem creating Webhook Subscription”, you may need to re-save your permalinks in WordPress. Do this by navigating to Settings → Permalinks → Save. If the error still happens after saving your permalinks, double check the Zapier extension for EDD is activated under Dashboard → Plugins.

    Sample triggers in Zapier

    Here is a description of each of the sample triggers in EDD Zapier and when they typically happen on their own:

    Send “New Customer” Notification
    This will send a test trigger to Zapier pretending that a new customer was created.

    Send “Updated Customer” Notification
    This will send a test trigger to Zapier pretending that a customer was updated/changed.

    Send “New Order” Notification
    This will send a test trigger to Zapier pretending that an order was just completed/paid.

    Send “Pending Order” Notification
    This will send a test trigger to Zapier pretending that a payment just came in but that payment’s status is “pending”. Note that an example of this is someone who has filled out the checkout form and then gone to PayPal for payment. We have the record of sale, but they haven’t completed their payment yet.

    Send “Failed Order” Notification
    This will send a test trigger to Zapier pretending that an order failed. Note that a “failed” payment usually happens if the credit card was rejected by the bank or a payment error occurred.

    Send “Abandoned Order” Notification
    This will send a test trigger to Zapier pretending that an order was abandoned. Note that “abandoned” payments happen if a “pending” payment is not completed after a week.

    Send “Refunded Order” Notification
    This will send a test trigger to Zapier pretending that an order was refunded.

    Send “Revoked Order” Notification
    This will send a test trigger to Zapier pretending that an order was revoked. A “revoked” order happens if you are taking away a customer’s access to the product without refunding their money.

    Send “Deleted Order” Notification
    This will send a test trigger to Zapier pretending that an order was deleted.

    Send “Pre-Approved Order” Notification
    This will send a test trigger to Zapier pretending that an order was pre-approved. A pre-approved payment is one where the customer has approved the payment, but it hasn’t been processed yet. This only happens in some unique and specific set-ups typically involving some sort of crowdfunding plugin.

    Send “File Downloaded” Notification
    This will send a test trigger to Zapier pretending that a file was downloaded by a customer.

    Send “New Subscription” Notification
    This will send a test trigger to Zapier pretending that a new Recurring Subscription was created. This typically happens when a customer purchases a recurring product for the first time. However, it can also happen if you manually create a subscription profile for a customer under Downloads → Subscriptions → Add New.

    Send “New Subscription Payment” Notification
    This will send a test trigger to Zapier pretending that a new recurring product was successfully purchased. This happens when a customer successfully purchases a recurring product for the first time.

    Send “Subscription Renewed” Notification
    This will send a test trigger to Zapier pretending that a recurring payment was successful. This typically happens each time a recurring payment comes in – but not for the original payment in a subscription.

    Send “Subscription Completed” Notification
    This will send a test trigger to Zapier pretending that a recurring subscription was completed. This typically happens if your recurring product has a maximum number of times it should charge the customer. For example, if you have it set to only charge the customer 4 times, after the 4th recurring payment comes in the subscription is completed.

    Send “Subscription Expired” Notification
    This will send a test trigger to Zapier pretending that a recurring subscription expired. This typically happens if a customer has signed up for a subscription but their credit card is cancelled and they don’t make the recurring payment in time.

    Send “Subscription Failing” Notification
    This will send a test trigger to Zapier pretending that a recurring subscription is failing. This typically happens if a customer has signed up for a subscription but their credit card is cancelled and we are still trying to charge their card because the expiration time has not yet been reached.

    Send “Subscription Cancelled” Notification
    This will send a test trigger to Zapier pretending that a recurring subscription was cancelled. This typically happens if a customer chooses to cancel their subscription.

    Send “New License Key” Notification This will send a test trigger to Zapier pretending that a new license key was just created.

    Send “License Key Status Changed to Inactive” Notification This will send a test trigger to Zapier pretending that a license key was just set to “inactive”. A license is typically “inactive” if it is not currently active on any sites.

    Send “License Key Status Changed to Expired” Notification This will send a test trigger to Zapier pretending that a license key was just set to “expired”. A license is typically “expired” if it is past its expiration date and was not renewed by the customer.

    Send “License Key Status Changed to Disabled” Notification This will send a test trigger to Zapier pretending that a license key was just set to “disabled”. A license is typically “disabled” if you manually set it to be disabled as the site-admin or the purchase was refunded.

    Send “License Key Status Changed to Active” Notification This will send a test trigger to Zapier pretending that a license key was just activated on a site.

    Send “License Key Deactivated” Notification
    This will send a test trigger to Zapier pretending that a license key was just deactivated from a site.

    Fields available from Easy Digital Downloads in Zapier

    When setting up a Zap in your Zapier account, it is helpful to know what information will be available to you from Easy Digital Downloads. Here is a breakdown of the standard fields included in each hook:

    New Order, Refunded Order, Revoked Order, Pending Order, Failed Order, Abandoned Order, Deleted Order, Cancelled Order :

    • Order ID
    • First Name
    • Last Name
    • Ordered Products
    • Order Date
    • Order Key
    • Payment Gateway
    • Subtotal
    • Tax
    • Fees
    • Total
    • Discount Codes
    • Transaction ID
    • Customer Email
    • Billing Address

    New Customer, Update Customer:

    • User ID
    • Name
    • First Name
    • Last Name
    • Email
    • Payment IDs
    • Purchase Value
    • Date Created
    • Purchase Count
    • Notes

    New License, License Activated, License deactivated, License Expired, License Disabled:

    • License ID
    • License Key
    • License Status
    • Customer Name
    • Customer Email
    • Product ID
    • Product Name
    • Activation Limit
    • Activation Count
    • Activated URLs
    • Expiration Date
    • Is License Lifetime (true/false)

    File Downloaded:

    • File Name
    • File URL
    • User Email
    • Product Name

    Subscription Created, Subscription Renewed, Subscription Completed, Subscription Expired, Subscription Failing, Subscription Cancelled :

    • Customer ID
    • Subscription Period
    • Initial Amount
    • Recurring Amount
    • Bill Times
    • Transaction ID
    • Initial/Parent Payment ID
    • Product ID
    • Created Date
    • Expiration Date
    • Status
    • Profile ID
    • Gateway
    • Customer
    • User ID

    Related Articles

    Integrated Extensions

    The following extensions for Easy Digital Downloads have been integrated to have triggers in Zapier:

    The post Zapier Extension Setup Documentation first appeared on Easy Digital Downloads.

    ]]>
    Software Licensing – Update notifications not showing https://easydigitaldownloads.com/docs/software-licensing-update-notifications-not-showing/ Mon, 24 Jan 2022 19:54:30 +0000 https://edd-site.lndo.site/docs/software-licensing-update-notifications-not-showing/ When using Software Licensing there are several things that can cause plugin updates to not show up. 1. Not having version numbers in sync. There are three places you must increment your software when releasing a new version. A. The Licensing meta box in your download page B. In your Updater file. Themes have a file

    The post Software Licensing – Update notifications not showing first appeared on Easy Digital Downloads.

    ]]>
    When using Software Licensing there are several things that can cause plugin updates to not show up.

    1. Not having version numbers in sync.

    There are three places you must increment your software when releasing a new version.

    A. The Licensing meta box in your download page

    B. In your Updater file. Themes have a file called theme-updater.php and plugins have some code right in the main plugin file.

    Themes have something like this:

    	$config = array(
    		'remote_api_url' => 'https://easydigitaldownloads.com', // Site where EDD is hosted
    		'item_name' => 'Theme Name', // Name of theme
    		'item_id' => 123, // ID of download
    		'theme_slug' => 'theme-slug', // Theme slug
    		'version' => '1.4', // The current version of this theme
    		'author' => 'Easy Digital Downloads', // The author of this theme
    		'download_id' => '', // Optional, used for generating a license renewal link
    		'renew_url' => '' // Optional, allows for a custom license renewal link
    	),
    

    Note the ‘version’ in there.  It must match what you have in the Meta Box above.

    Plugins have something like this:

    $edd_updater = new EDD_SL_Plugin_Updater( EDD_SAMPLE_STORE_URL, __FILE__, array(
    			'version' 	=> '1.4', 			// current version number
    			'license' 	=> $license_key, 		// license key (used get_option above to retrieve from DB)
    			'item_name'     => EDD_SAMPLE_ITEM_NAME, 	// name of this plugin
    			'item_id'     => EDD_SAMPLE_ITEM_ID, 	// download ID on your site
    			'author' 	=> 'Pippin Williamson'  // author of this plugin
    		)
    	);
    

    Note the version number in that code as well.

    C. The plugin header.

    Just like every other plugin there’s a version number in the header. Example:

     <!--?php
    /**
     * Plugin Name: Easy Digital Downloads
     * Plugin URI: https://easydigitaldownloads.com
     * Description: Serve Digital Downloads Through WordPress
     * Author: Pippin Williamson
     * Author URI: https://pippinsplugins.com
     * Version: 1.4
    

    Important: All three of these version numbers must match.

    2. Download name mismatch and no item_id specified

    In order for the license updater to receive updates from the correct download on your site, the item_name and item_id keys are included in the array demonstrated above. It is not necessary to include both. If both are present, the item_id value will be used and item_name will be disregarded.

    If only item_name is used, it is critical that the value matches exactly the download’s actual title. If the title is not an exact match, update notifications will not be shown. For this reason, we recommend using item_id instead.

    3. Using a security plugin or htaccess rules that blocks the ?edd_action=get_version/activate_license requests

    Some plugins and htaccess rules block get variables like the one above because they’re commonly used by attackers.  Look for these settings and make sure they’re off.

    4. Why isn’t it working on my multisite setup?

    The plugin needs to be activated either via the multisite network or via one of the individual sites. The custom updater only works when the plugin is activated; otherwise, the code cannot run.

    The Network Admin will only see updates via the Network Admin Dashboard, if the plugin is Network Activated OR the plugin is activated on the Main site. Note, the main site is the WordPress site on the network labeled Main:

    Note: The Network Admin will not see an update notice from the Network Admin Dashboard if the plugin is active on any of the other sites on the network. But the network admin can see and update the plugin via the site’s plugin list where the plugin is activated.

    Only Network Administrators will see the update notice, as that is the only user level which can update plugins on multisite.

    That means in order to get updates to appear on the Network Admin Dashboard, without Network Activating the plugin, the following needs to happen: 

    1. Activate plugin on the Main site 
    2. Activate license key on the Main site 
    3. Visit Plugins page on site (or Network Admin → Home → Updates). Note, although a site admin visiting the Plugins screen will trigger the check for an update, the notice will only appear to Network Admins.
    4. This caches the available plugin updates in a network-wide transient.
    5. As a Network Admin, you can visit Network → Plugins and see the update.

    Why do some plugins show an update notification when they are not activated on any of the multisite sites?
    Plugins on wp.org will show that an update is available without being activated.

    5. Why does my plugin always show there’s an update?

    The updater class in your plugin had a bug before version 1.6. Update to 1.6 or higher and this issue will be resolved.

    You may get the latest version of the the updater class from the sample plugin available in your purchase history at  https://easydigitaldownloads.com/your-account/.

    6. Incorrect __FILE__ parameter provided to updater class

    If you are extending the updater class from a file other than the main plugin file, add a define(‘YOUR_PREFIX_PLUGIN_FILE’, __FILE__ ); to the main plugin file, and then instead of calling __FILE__ as the second parameter of the new EDD_SL_Plugin_Updater class, call YOUR_PREFIX_PLUGIN_FILE there.

    The post Software Licensing – Update notifications not showing first appeared on Easy Digital Downloads.

    ]]>
    Checkout Fields Manager – Setup Documentation https://easydigitaldownloads.com/docs/checkout-fields-manager-setup-documentation/ Mon, 24 Jan 2022 19:54:29 +0000 https://edd-site.lndo.site/docs/checkout-fields-manager-setup-documentation/ The Checkout Fields Manager extension allows you to add custom fields to the checkout page of your store. Common uses are to collect VAT, phone numbers or other customer questions relevant to your business and/or product. Once it is installed and activated, a new menu called Checkout Form will be added to the primary Downloads

    The post Checkout Fields Manager – Setup Documentation first appeared on Easy Digital Downloads.

    ]]>
    The Checkout Fields Manager extension allows you to add custom fields to the checkout page of your store. Common uses are to collect VAT, phone numbers or other customer questions relevant to your business and/or product.

    Once it is installed and activated, a new menu called Checkout Form will be added to the primary Downloads menu. After navigating to Downloads > Checkout Form, you will be presented with a screen that has a drag-and-drop interface for adding and arranging checkout fields.

    To add a field, simply click on the field type you wish to add from the box on the right and it will be added to your form.

    Storing Field Data

    When creating a new field you’ll usually be asked if you want to store the data in User Meta or Payment Meta. Here’s a brief description of each.

    User Meta

    User Meta is information about a user. A common WordPress example would be Last Name. If you’re making a new custom field for information related to the user, Secondary Email for example, you should store it in User Meta. This will make that information visible in the Customer Information tab in EDD as well as the Customer Profile Editor for customers to update themselves.

    Note: The option to save meta to user will not be available unless Require Login is enabled. To enable go to Downloads → Settings → Misc → Checkout and enable “Require Login”.

    Payment Meta

    Payment Meta is information about a payment. An example would be quantity. If you’re making a new custom field for information relating to the payment, a field for comments about the product for example, you should store it in Payment Meta. This will make that information visible and editable in the Payment History.

    Viewing Custom Fields

    For the examples shown below, we’re adding an email text field called Customer Secondary Email. This first image is an example of the setup for all of the User Meta output examples below.

    Help Text: This will be shown on the checkout page for this field.

    CSS Class Name: You can add custom CSS class for the field in order to style it. (Example: my-custom-class)

    Size: You can determine the width of the custom field (results may vary depending on the theme used)

    Conditional Logic: Checkout Fields can be shown or hidden based on conditional logic rules either tied to the cart contents or the user. See the Checkout Fields Manager Conditional Logic doc for details on setting up conditional logic rules.

    Field Display In Checkout

    Once a field is added, and it’s set to show on the checkout form, it will look like this on the checkout form:

    Field Display In Profile Editor

    If the metadata is stored in User Meta then the field will appear on the customer-facing profile editor which is created by the [edd_profile_editor] shortcode. It will then look like this:

    Field Display in Customer Information

    If the metadata is stored in User Meta you’ll be able to see it in the Customer Details by navigating to
    Downloads > Customers.

    Field Display in Payment History

    If the metadata is stored in Payment Meta, you’ll be able to see it on the Payment History page for the transaction. This example uses a custom field titled “Payment Info”.

    Adding Field Values to Purchase Emails

    The checkout field customer responses can be added to the purchase receipt emails and also the admin sale notification emails via template tags.

    The template tags that are used for each field are automatically generated based on the “meta_key” field given for each checkout field.

    For example, if you have a field called “Company Name” that has a meta_key of “company_name”, you will use {company_name} as the template tag in the emails.

    Amazon S3 Integration

    If you have the EDD Amazon S3 extension installed, the Checkout Fields Manager ‘File Upload’ field will upload your customer’s files into a folder named ‘cfm’ inside of your Amazon S3 bucket.

    Note: Checkout Fields Manager does not integrate with the Free Downloads extension.

    The post Checkout Fields Manager – Setup Documentation first appeared on Easy Digital Downloads.

    ]]>
    Frontend Submissions – Vendor Accounts https://easydigitaldownloads.com/docs/frontend-submissions-vendor-accounts/ Mon, 24 Jan 2022 19:54:27 +0000 https://edd-site.lndo.site/docs/frontend-submissions-vendor-accounts/ With Frontend Submissions, if you wish to allow vendors to register accounts, you will have to enable the functionality from the settings page. The option to enable or disable vendor registrations can be found by navigating to Downloads > Settings > FES > Permissions. If Vendor registration is open to all then the end user

    The post Frontend Submissions – Vendor Accounts first appeared on Easy Digital Downloads.

    ]]>
    With Frontend Submissions, if you wish to allow vendors to register accounts, you will have to enable the functionality from the settings page. The option to enable or disable vendor registrations can be found by navigating to Downloads > Settings > FES > Permissions.

    If Vendor registration is open to all then the end user may go to your Vendor Registration Page to sign up. When someone signs up as a Vendor, they will be assigned the user role of Subscriber unless they already had a WordPress user account with a different user role.

    Registration

    If the end user is not signed in as a WordPress user, this is the form they will see:

    If the end user is already signed in as a WordPress user, this is the form they will see.  This form is much simpler because it’s taking existing information from the WordPress user:

    After Registration

    After completion of the registration form, the new Vendor will see one of two things:

    1. If you have auto-approval turned on then they are sent directly to the Seller Dashboard where they can begin adding products
    2. If you have auto-approval turned off then they will see a message that says “Your application is pending”. The store administration will receive an email alerting them to the fact that a new Vendor registration requires approval.

    Manually Grant Vendor Status

    To manually make any WordPress user into an FES Vendor, browse to their WordPress profile page. Find the section titled “Easy Digital Downloads Frontend Submissions.” In that section there is a link titled Make Vendor. Simply clicking that link will make that user a Vendor.

    This same area can be used to see that a user is a Pending Vendor, and link to the Vendor Profile. In the Vendor Profile a user can be Approved as a Vendor.

    Vendor Management

    You may manage Vendors by navigating to Downloads > Vendors. Note, this title may be different if you’ve changed the “Vendors” text to something else.

    Here you’ll see a list of all Vendors currently on the website. Hovering over a Vendor name will allow you to View, Approve, or Reject the application as well as options to Suspend or Delete active Vendors.

    If you click the View link then you’ll be taken to the Vendor Details page. The Vendor information area uses a tabbed interface, with the tabs along the left side.

    Vendor Status

    Pending: While in pending status a vendor cannot submit products to the marketplace.

    Approved: An Approved vendor can submit products to the marketplace.

    Suspended: A Suspended vendor cannot submit products. Any of their products that are Live will be set to Draft when their role is set to Suspended. Vendors can be set back to Approved at any time by the store admin. Any of their products that were previously live will get set back to Live.

    Vendor Overview

    The first tab is the Vendor Overview.

    The Vendor Overview tab contains:

    • Vendor name
    • Vendor email
    • Vendor sign-up date
    • WordPress User ID
    • Vendor status
    • Vendor mailing address (if applicable)
    • Number of sales
    • A list of products
    • A button to Delete this Vendor
    • A button to Suspend this Vendor
    • A link to edit the information on this panel

    Vendor Notes

    The Vendor Notes tab is designed for site administrators to make private notes about Vendors. These notes are visible ONLY to site administrators. Below is an example with one note.

    Vendor Registration

    This tab allows site administrators to change the Vendor’s information including the following:

    • First Name
    • Last Name
    • Email Address
    • Display Name

    Vendor Profile

    This tab sets the name of the Vendor’s store as well as allowing for a custom email address for the Vendor contact form.  If no email address is provided, the address from the WordPress user profile will be used. Other fields available in the Profile form are editable in this area as well.

    Vendor Products

    This tab lists all of the Vendor’s products, showing ID, Title, Status, and number of sales. Titles are links to the product admin pages. There’s also a sum of the number of sales if more than one.

    Vendor Reports

    This tab can show both earnings and sales over time. It can be filtered to show

    • Today
    • Yesterday
    • This Week
    • Last Week
    • This Month
    • Last Month
    • This Quarter
    • Last Quarter
    • This Year
    • Last Year

    Vendor Exports

    This tab allows the site administrator to download a PDF with Sales and Earnings for the current year as well as a Customer list for any given product or all products. The customer list could be emails only or emails and names. The customer list is delivered in CSV format.

    Vendor Deletion

    The Delete tab allows a site owner to delete a Vendor as well as choose to delete their products or attribute them to another user.

    The post Frontend Submissions – Vendor Accounts first appeared on Easy Digital Downloads.

    ]]>
    Commissions – Setup & Overview https://easydigitaldownloads.com/docs/commissions-setup-overview/ Mon, 24 Jan 2022 19:54:26 +0000 https://edd-site.lndo.site/docs/commissions-setup-overview/ The Commissions extension allows you to automatically record and track commissions for download sales. A commission is a percentage of the total product price or flat rate that is paid out to a specified user. This extension allows you to create a marketplace type system that allows you to give authors a certain percentage of

    The post Commissions – Setup & Overview first appeared on Easy Digital Downloads.

    ]]>
    The Commissions extension allows you to automatically record and track commissions for download sales. A commission is a percentage of the total product price or flat rate that is paid out to a specified user. This extension allows you to create a marketplace type system that allows you to give authors a certain percentage of each sale.

    The Commissions extension is often paired with Frontend Submissions, but this is NOT required. Commissions can be paid to any WordPress user at either a flat rate or a percentage of the sale.

    Setup

    Once Commissions is activated, settings will exist in two places:

    EDD Settings:

    Downloads → Settings → Extensions → Commissions

    Product Settings:

    Downloads → All Downloads → Edit → Commissions

    Setup Steps:

    1. Configure sitewide settings

    Navigate to: Downloads → Settings → Extensions → Commissions

    Default rate: Default commission rate for products with commissions enabled. See Configuring Vendor Rates for details.

    Calculation Base: Set how the commissions are calculated. See Configuring Vendor Rates for details.

    Allow $0.00 commissions: By default, EDD records commissions even if the value of the commission is $0.00. While this may be useful for tracking purposes in some situations, some users may find it confusing. If you prefer not to see $0.00 commissions, disable them here.

    Revoke on Refund: Automatically revoke any unpaid commissions when a payment is refunded.

    Recurring Payments Commissions: When using Recurring Payments, this option will record commissions for subscription renewal payments.

    2. Configure commissions on each individual product

    Navigate to: Downloads → All Downloads → Edit → Commissions

    Each product needs commissions enabled as well as one or more vendors added to the product’s commission settings. See Configuring Vendor Rates for details on these settings.

    3. Email Notifications

    By default, vendors will be notified via email for each sale of a product they are receiving a commission on. This can be disabled or customized under Downloads > Emails. See the email settings for details on editing emails.

    It’s recommended only one email is enabled, not both. Have both enabled will cause duplicate emails.

    Commission Earned: Sends email on a per-commission basis

    Commission Earned on Order: Sends all commissions earned in a single email. This prevents duplicate emails if someone earns multiple commissions from a single order.

    Default Email:

    4. Export and pay vendors

    On a regular basis (monthly is suggested), export your commissions report and pay your users. See Exporting and Paying vendors for details on this process.

    (Optional) Vendor Commissions Page

    The [edd_commissions] shortcode can be used to allow vendors to view commissions and export their commission data. See Vendor Commissions Page for details.

    The post Commissions – Setup & Overview first appeared on Easy Digital Downloads.

    ]]>
    Frontend Submissions – Vendor Dashboard https://easydigitaldownloads.com/docs/frontend-submissions-vendor-dashboard/ Mon, 24 Jan 2022 19:54:24 +0000 https://edd-site.lndo.site/docs/frontend-submissions-vendor-dashboard/ The Vendor Dashboard in Frontend Submissions is an administration area for Vendors. This page can be set by navigating to EDD FES → Settings → Forms/Pages. This page must contain the [fes_vendor_dashboard] shortcode. From this dashboard Vendors may  Manage Products Add Products View and Manage Orders Edit their store profile Log out If the site

    The post Frontend Submissions – Vendor Dashboard first appeared on Easy Digital Downloads.

    ]]>
    The Vendor Dashboard in Frontend Submissions is an administration area for Vendors. This page can be set by navigating to EDD FES → Settings → Forms/Pages. This page must contain the [fes_vendor_dashboard] shortcode.

    From this dashboard Vendors may 

    • Manage Products
    • Add Products
    • View and Manage Orders
    • Edit their store profile
    • Log out

    If the site owner has added a Vendor Announcement (EDD FES → Settings → Main Settings) it will show on this page.

    Last is a Comments section, which is an aggregate of all comments on products owned by this Vendor (if applicable).

    Products

    The Vendor can View, Edit, or Delete any of their products. 

    Add Product

    Here, a Vendor can add a new product. The fields available are determined by how the site owner populates the Vendor Submission Form. 

    Orders

    The Vendor can see all orders from their store as well as view each order.

    When clicking “View” on an order, the Vendor is presented with a full record of the order. 

    Profile

    The Vendor will be able to edit their profile information.

    The post Frontend Submissions – Vendor Dashboard first appeared on Easy Digital Downloads.

    ]]>
    Discounts Pro Setup Documentation https://easydigitaldownloads.com/docs/discounts-pro-setup-documentation/ Mon, 24 Jan 2022 19:54:23 +0000 https://edd-site.lndo.site/docs/discounts-pro-setup-documentation/ Once the Discounts Pro extension is installed and activated, there will be a new submenu item added under the Downloads menu called Discounts Pro. Navigate to Downloads → Discounts Pro to see existing discounts and/or add new ones. To create a new discount, click Add Discount at the top of the screen. You will be

    The post Discounts Pro Setup Documentation first appeared on Easy Digital Downloads.

    ]]>
    Once the Discounts Pro extension is installed and activated, there will be a new submenu item added under the Downloads menu called Discounts Pro. Navigate to Downloads → Discounts Pro to see existing discounts and/or add new ones.

    Screenshot from 2014-08-11 14:39:22

    To create a new discount, click Add Discount at the top of the screen. You will be presented with a screen that looks like this:

    Once you have the discount configured the way you want, click Publish. Once published, any customer who has met the specified criteria will have the discount automatically added to the shopping cart:

    Discount Types

    Note: With the many combinations available with Discounts Pro, we recommend you test your discounts to ensure desired functionality before making them available to your customers.

    Recurring Payments Note: Discounts Pro discounts will apply to both the initial payment AND the renewal payments, regards of Recurring Payment’s discount settings, as those settings only apply to Discount Codes.

    Fixed Price

    Fixed amount discount for any product and quantity that are added to the cart. If the discount exceeds the cart’s total, the total will be $0.00.

    Percentage Price

    Percentage amount discounted for any product and quantity added to the cart.

    Product Quantity

    Discount based on multiple quantities of a single product. The discount value applies to each quantity.

    For example, a quantity of 3 and a discount value of $1 with result in a $3 discount.

    Each X products

    Every X number of products gets a discount. One example of this usage would allow a store to setup a “Buy One Get One X Off” discount. This does not apply to multiple quantities of the same product.

    From X products

    Per product discount when X number of downloads are added. This does not apply to multiple quantities of the same product.

    For example, get $1 off each download when you buy 10 downloads.

    NOTE: If product quantity and individual products are set and the amount of products selected matches the quantity set, then the discount will only apply when those specific products are in the cart. Example: If product quantity is “2” then you can only choose 2 products for the discount to apply to.

    Products in Cart

    Discount based on total number of items in cart. Multiple quantities of the same item and/or multiple products.

    Cart threshold

    Discount applies when cart subtotal reaches a set amount. If quantity is $100, discount will not apply until cart has $100 of products.

    The post Discounts Pro Setup Documentation first appeared on Easy Digital Downloads.

    ]]>
    All Access – Settings https://easydigitaldownloads.com/docs/all-access-settings/ Mon, 24 Jan 2022 19:54:23 +0000 https://edd-site.lndo.site/docs/all-access-settings/ This document describes all of the site-wide settings available in the EDD All Access extension for Easy Digital Downloads. Settings: There are a few optional settings you can use to configure how your customers will experience their All Access Pass. These settings can be found by navigating to Downloads → Settings → Extensions → All

    The post All Access – Settings first appeared on Easy Digital Downloads.

    ]]>
    This document describes all of the site-wide settings available in the EDD All Access extension for Easy Digital Downloads.

    Settings:

    There are a few optional settings you can use to configure how your customers will experience their All Access Pass. These settings can be found by navigating to DownloadsSettingsExtensionsAll Access.

    “Download Now” button text: All Access converts the normal “Buy Now” buttons into “Download Now” buttons. This allows you to change adjust that text.

    Allow redownloading: Allows pass holders to re-download the same file again without it counting towards their download limit for a given period.

    If All Access Expired (Message shown to user): When a customer’s All Access Pass expires, if they attempt to download a product using their All Access Pass, they will see an error page. On that page they will see the message “Your All Access Pass is expired”. This allows you to change adjust that text.

    If All Access Expired (Redirect URL): If, once the customer’s All Access Pass has expired, you don’t want to show the user the default error page, you can use this setting to redirect the user to any URL. For example, you can make a new WordPress Page with a custom error message on it – even prompting the user to repurchase the All Access Pass using something like the [purchase_link] shortcode. The URL to that page can be entered for the redirect and the user will be directed to that page if they try to download a product using an expired All Access Pass.

    If category not included (Message shown to user): Similarly to the above settings, these are used if the customer tries to download an item that is in a category which they don’t have an All Access Pass for.

    If category not included (Redirect URL): If the customer does not have access to a specific category and you don’t want to show the user the default error page, you can use this setting to redirect the user to any URL.

    If Product Variation not included (Message shown to user): Also similar to the above settings, these are used if the customer tries to download an item that is a product variation which they don’t have an All Access Pass for.

    If Product Variation not included (Redirect URL): If the customer does not have access to a specific variation and you don’t want to show the user the default error page, you can use this setting to redirect the user to any URL.

    If Download Limit reached (Message shown to user): Also similar to the above settings, these are used if the customer tries to download an item and their limit has been reached, the error message can be adjusted here.

    If Download Limit reached (Redirect URL): If the customer has reached their download limit and you don’t want to show the user the default error page, you can use this setting to redirect the user to any URL.

    Hide non-relevant variable prices: If a customer has an All Access pass but that pass doesn’t provide access to a specific variable price, should it be hidden? For example, if the All Access Pass gives access to a “Large” version and thus you want to hide the “Medium” and “Small” versions, choose “Yes” and they will be hidden from those All Access Pass holders. Note they will still appear to people without an All Access pass where they normally would.Hide non-relevant variable prices.

    Another example might be, the pass provides access to all options but to the pass holder, there is no difference. Each option may deliver the same file. In this case you could set the All Access Product’s “Total Price Variations” & “Included Price Variations”. This will prevent the variable options from appear for pass holders:

    Add to Cart Display Mode: This set of options allows you to change the way purchase buttons display on your site. It’s an easy way to “Upsell” All Access. Or, if your site is set up so that you ONLY sell All Access Passes and not individual items, this is a good place to make that happen.

    Show “Buy All Access” Instructional Text: If your “Add To Cart” Display Mode is set to option 2 or 3, should instructional text be shown above the “Buy All Access” button?

    “Buy All Access” Instructional Text: If your “Add To Cart” Display Mode is set to option 2 or 3, what should the text above the “Buy All Access” button say? Default: “To get access, purchase an All Access Pass here.”

    Show “Log In” Instructional Text: If your “Add To Cart” Display Mode is set to option 2 or 3, should instructional text be shown before the “Log In” button?

    “Log In” Instructional Text: When a “Login” link is shown below the “Buy All Access” button, what should the text before the link say? Default: “Already purchased?”

    Bonus Option: Replace “Buy All Access” buttons with a Custom URL button?: If your “Add To Cart” Display Mode is set to option 2 or 3, instead of showing the “Buy All Access” buttons it describes, you can choose to show a custom button pointing that that URL will display instead. This is perfect if you have a custom-built “pricing” page you’d like to direct your potential customers to.

    Custom Button URL: What URL should the Custom button link to when clicked?

    Custom Button Text: What should the text on the custom button say? Defaults to “View Pricing” if left blank.

    The post All Access – Settings first appeared on Easy Digital Downloads.

    ]]>
    Purchase Rewards https://easydigitaldownloads.com/docs/purchase-rewards/ Mon, 24 Jan 2022 19:54:22 +0000 https://edd-site.lndo.site/docs/purchase-rewards/ The EDD Purchase Rewards extension for Easy Digital Downloads allows store owners to give a coupon code to a customer as a reward for making a purchase. That reward can be a percentage off, or a flat fee discount on a future purchase. Note: If using with our Free Downloads extension and the “Auto Handler”

    The post Purchase Rewards first appeared on Easy Digital Downloads.

    ]]>
    The EDD Purchase Rewards extension for Easy Digital Downloads allows store owners to give a coupon code to a customer as a reward for making a purchase. That reward can be a percentage off, or a flat fee discount on a future purchase.

    Note: If using with our Free Downloads extension and the “Auto Handler” option is set to “Auto Download”, be sure to enable “Email Discount Code to Customer”. The customer will not reach the Purchase Confirmation page to receive the discount code if the “Auto Download” option is chosen in the Free Downloads settings area.

    Setup

    After you have installed and activated the Purchase Rewards extension, you can find the settings area by navigating to Downloads → Settings → Extensions.

    Minimum Purchase Amount: This would require that the customer spend a certain amount of money on a single transaction before the reward would be given. If you leave it blank then there is no minimum. If you choose to set a minimum, put in only the number, not any currency symbol.

    Discount Code: If you’d like to offer an existing discount code, select it from the dropdown menu. Note: If you choose an existing Discount Code then all of its rules apply. Full documentation on Discount Codes here.

    Create Discount Code: If you don’t wish to use an existing discount code, you can set one that will be created on the fly as a one-time use code for each customer. Simply click the “Create Discount Code” checkbox and then proceed to the options below it.

    Discount Type: Your new discount can either be a percentage off or a flat rate.

    Discount Amount: This value is a number that will be either a percentage or a flat value, depending on what was selected for Discount Type.

    Enable Purchase Sharing: This will display the sharing icons, regardless of whether the customer must share their purchase for a reward.

    Force Share For Discount Reward: This requires that the customer must share their purchase to at least 1 social network before a reward is given. If “Enable Purchase Sharing” is not enabled above, it will only show the sharing icons when needed.

    Email Discount Code To Customer: If this option is checked then the discount code will be emailed to the address provided by the customer.

    Also provided is a rich text area in which to create the email that will be sent to the customer.

    Template tag options for this text area are:

    • {name} – The customer’s name
    • {discount_code} – The discount code the customer is receiving
    • {site_name} – Your site name
    • {site_url} – Your site’s URL


    Twitter Message: This is the text that will be included in the “Share Tweet” if the share icons are enabled. It automatically includes the URL of the site so you don’t need to include it. If left blank, no message will be included.

    Twitter Username: This is the username that you want the Twitter “Follow” button to use. If blank the button is disabled.

    Default Sharing Title: This text appears above the sharing buttons on the purchase confirmation page. The default is “Share your purchase!”

    Default Sharing Message: Message shown when sharing is enabled and no discount is set, or when purchase does not meet reward requirements.

    Reward Title: Title shown when purchase meets reward requirements. Default: You’ve Been Rewarded!

    Reward Message: Message shown when purchase meets reward requirements. Default: We’d like to offer you a {discount_amount} discount which you can use on your next purchase:

    Reward Sharing Title: Title shown when sharing is enabled and purchase meets reward requirements Default: Share for a discount on your next purchase!

    Reward Sharing Message: Message shown when sharing is enabled and purchase meets reward requirements Default: We’d like to offer you a {discount_amount} discount which you can use on your next purchase, just for sharing!

    Reward Sharing Thanks Title: Title shown when purchase has met reward requirements and the customer has shared their purchase Default: Thanks for sharing.

    Reward Sharing Thanks Message: Message shown when purchase has met reward requirements and the customer has shared their purchase. Default: Here’s your {discount_amount} discount code

    The post Purchase Rewards first appeared on Easy Digital Downloads.

    ]]>
    Simple Shipping Setup https://easydigitaldownloads.com/docs/simple-shipping-setup/ Mon, 24 Jan 2022 19:54:21 +0000 https://edd-site.lndo.site/docs/simple-shipping-setup/ Easy Digital Downloads is first and foremost built for selling digital products, which do not need shipping at all. That said, you may occasionally want to send something to someone, either as a standalone product (t-shirts, hats, etc.) or in conjunction with a digital product (CD case, custom artwork, etc). For those occasions, we offer

    The post Simple Shipping Setup first appeared on Easy Digital Downloads.

    ]]>
    Easy Digital Downloads is first and foremost built for selling digital products, which do not need shipping at all. That said, you may occasionally want to send something to someone, either as a standalone product (t-shirts, hats, etc.) or in conjunction with a digital product (CD case, custom artwork, etc). For those occasions, we offer the Simple Shipping extension.

    Initial Setup:

    Once you’ve purchased and installed the Simple Shipping extension, in the WordPress admin go to: Downloads > Settings > Extensions > Simple Shipping

    There, you’ll need to choose a Base Region and choose whether to apply tax to shipping fees. The Base Region setting will let Simple Shipping know whether an order is “Domestic” or “International” when applying the shipping fee to an order.

    Creating a Shipping-Enabled product.

    To enable shipping for a product, while creating or editing that product look for the “Download Prices” section. When you check the “Enable Shipping” checkbox, you can set a flat rate for both Domestic and International shipping.

    Note: Domestic means that the customer is in your store’s country. International means the customer is not in your store’s country.

    If you have enabled variable pricing, you can also set up different shipping rates for each variation of a product. For example, a “Small (Option 1)” version can have different shipping rates than a “Large (Option 2)” version. Click “Show advanced settings” to enter the Simple Shipping Settings.

    Shipping your orders

    Once you receive an order for a shipping enabled product, you need to handle the actual shipping. To do that, you need the customer’s address so you can put it on the package you are shipping. All of the information for shipping can be found on the Payment’s “Order Details” page. Find this by navigating to:
    Downloads → Orders → Find the order → click “View Order Details”

    On the Order Details page, find the section called “Shipping Address”. This contains the address the customer entered upon checkout. You will use this information to send the package to the customer.

    Once you’ve shipped the item, check the box called “Check if this purchase has been shipped”. This is an easy way to remember whether or not an order has been shipped or not. Then, when looking through your orders on the “Orders” page, the “Shipped” column will indicate if an order has been shipped or not:

    Tracking Numbers

    If you wish to provide a tracking number to your customers, once you’ve shipped the item and have the tracking number from your shipping company, enter it into the box called “Tracking Info” on the Order Details page. Then, click “Save Payment” to update it. After it is saved, you will see the “Track Parcel” option and also the “Send Tracking Info” option. This will send an email to the customer with the tracking information.

    Simple Shipping Emails

    Customer tracking emails

    You can customize the email sent to your customer when you click the “Send Tracking Info” button. The controls for this can be found in your WordPress Dashboard by navigating to:
    Downloads > Emails > Order Shipping Notification

    Clicking the Order Shipping Notification opens the editor:

    By including template tags in the email, they will be replaced with the actual information relating to this order. You can click the Insert Tag button to open the list of available tags, which you can click to insert into the email. The following template tags can be used for this email:

    {download_list} – A list of download links for each download purchased {file_urls} – A plain-text list of download URLs for each download purchased

    {name} – The buyer’s first name

    {fullname} – The buyer’s full name, first and last

    {username} – The buyer’s user name on the site, if they registered an account

    {user_email} – The buyer’s email address

    {billing_address} – The buyer’s billing address

    {date} – The date of the purchase

    {subtotal} – The price of the purchase before taxes

    {tax} – The taxed amount of the purchase

    {price} – The total price of the purchase

    {payment_id} – The unique ID number for this purchase

    {receipt_id} – The unique ID number for this purchase receipt

    {payment_method} – The method of payment used for this purchase

    {sitename} – Your site name

    {receipt_link} – Adds a link so users can view their receipt directly on your website if they are unable to view it in the browser correctly.

    {discount_codes} – Adds a list of any discount codes applied to this purchase

    {ip_address} – The buyer’s IP Address

    {tracking_ids} – Show saved tracking ids for payment.

    New Sale Notifications

    If an order includes a product with shipping enabled, the customer’s shipping information will be automatically appended to the New Sale Notification email. No customization is necessary to include this information.

    Integrations

    Frontend Submissions: Simple Shipping is compatible with Frontend Submissions.

    Commissions: You can split shipping fees so they are paid to specific commissions receivers. See the full documentation for Shipping and Commissions integration.

    Alternatives

    Note that this plugin is meant to be very simple and does have limitations on how complex its shipping options are. If you need more robust/complex shipping options, it may be wise to look at other eCommerce solutions. Here are some we recommend:

    The post Simple Shipping Setup first appeared on Easy Digital Downloads.

    ]]>
    Discount Code Generator https://easydigitaldownloads.com/docs/discount-code-generator/ Mon, 24 Jan 2022 19:54:20 +0000 https://edd-site.lndo.site/docs/discount-code-generator/ The Discount Code Generator extension for Easy Digital Downloads allows site administrators to generate discount codes in bulk and then export them directly to CSV. Setup There are no setup steps/configuration. Once install and activated, the Discount Code Generator functionality is immediately available. Usage After you have installed and activated the Discount Code Generator extension,

    The post Discount Code Generator first appeared on Easy Digital Downloads.

    ]]>
    The Discount Code Generator extension for Easy Digital Downloads allows site administrators to generate discount codes in bulk and then export them directly to CSV.

    Setup

    There are no setup steps/configuration. Once install and activated, the Discount Code Generator functionality is immediately available.

    Usage

    After you have installed and activated the Discount Code Generator extension, you will then navigate to Downloads → Discount Codes. You will see a “Generate Codes” button that will be used to generate the discount codes.

    Clicking on the “Generate Codes” button will present the Discount Code Generator screen where you can apply settings for the discount codes that will be created.

    Number of Codes: This is the number of discount codes to be created.

    Name: This is the name of the discount code. Each code will be appended with a number (Example: New Discount-1).

    Code: Select the format in which the code is created as well as the number of characters used.

    Type: Choose whether the discount is a percentage or flat amount.

    Amount: Choose the amount of the discount.

    Downloads Requirements: Select downloads for the discount to apply to and choose whether to only apply the discount to those selected Download(s). Leave blank for all Downloads.

    Start Date: Choose the date that the discount code will start. Leave blank to start immediately.

    Expiration Date: Choose the date that the discount code will end. Leave blank to work indefinitely.

    Minimum Amount: Choose the minimum amount to be spent in order for discount code to apply. Leave blank for unlimited.

    Max Uses: Choose the maximum number of times that the discount code can be used. Leave blank for unlimited.

    Use Once Per Customer: Choose whether or not the discount code should be used only once per customer.

    Discount Code Generation

    Once the settings are in place, click the “Create Codes” button and your discount codes will be automatically generated.

    Export

    If needed, you can navigate to Downloads → Reports → Export. Then click “Generate CSV” in the Export Discount Codes in CSV section.

    You will then be given a .csv file containing all Discount Codes.

    The post Discount Code Generator first appeared on Easy Digital Downloads.

    ]]>
    Recurring Payments – Manually Create Subscriptions https://easydigitaldownloads.com/docs/recurring-payments-manually-create-subscriptions/ Mon, 24 Jan 2022 19:54:20 +0000 https://edd-site.lndo.site/docs/recurring-payments-manually-create-subscriptions/ Table of Contents Add New subscription fields How to Manually Create Subscriptions Recreating a Subscription and Order Recreating a Subscription for an existing order Manually Migrating Subscriptions Creating a Stripe Subscription This document covers manually creating subscriptions and migrating subscriptions from another platform. It will not create a payment or subscription record at the payment

    The post Recurring Payments – Manually Create Subscriptions first appeared on Easy Digital Downloads.

    ]]>
    Table of Contents

    This document covers manually creating subscriptions and migrating subscriptions from another platform. It will not create a payment or subscription record at the payment gateway, this is for the purpose of adding a subscription to EDD that already exists at the payment gateway or for testing purposes.

    About the Add New subscription fields

    Price and Billing Cycle: Fields for Initial Price, Recurring Price, and Billing Cycle. In most cases, the initial and recurring amounts are the same.

    Times Billed: This specifies how many payments should occur. 0 is default and allows the subscription to run indefinitely until the store or customer cancels. If a number is entered here, then the user will be billed that many times after the initial purchase. Example: If “Times Billed” is set to 1, then the user will be billed twice – once for the initial purchase and once more for the “Times Billed” setting.

    Customer Email: This allows you to select an existing customer or specify an email address to create a new customer.

    Product: The Product this subscription applies to.

    Initial Purchase ID: A new subscription will either create a new payment record or an existing Order can be specified.

    Gateway: If creating a new payment record, the gateway needs to be specified. This has to match the gateway that the subscription exists on or renewals and cancelations may not work properly.

    Profile ID: This is the unique ID of the subscription in the payment gateway. Typically referred to as a Subscription ID.

    Transaction ID: The initial purchase ID from the payment gateway. This is mostly for the store owner’s reference and is not actually utilized by the EDD subscription.

    Date Created: The date the subscription was created. This field is optional.

    Expiration Date: The date the subscription expires and/or the date of the next renewal.

    Subscription Status: Current status of the subscription.

    Required fields: Price and Billing Cycle, Customer, Product, and Expiration Date.

    How to Manually Create Subscriptions

    1. Navigate to Dashboard → Downloads → Subscriptions → Add New
    2. Set the Initial, recurring, and billing cycle. Most likely the initial and recurring price is the same.
    3. Leave Times Billed set to 0 unless the subscription is to end after a set number of payments. Such as a payment plan.
    4. Set customer or input a new email address if the customer doesn’t already exist.
    5. Select the Product that the subscription is tied to.
    6. If no order already exists in your EDD store, keep “Create new payment record” selected and choose the Gateway. If an order does exist, select “Enter existing payment ID” and input the Payment ID.
    7. If a transaction ID exists for the initial purchase, input the ID. This field is optional.
    8. Input the Date Created, otherwise, today’s date will be used, if left empty.
    9. Input the Expiration Date, which should match the expiration/renewal date of the subscription at the merchant processor.
    10. Set the Subscription Status.

    Recreating a Subscription and Order

    This might be used if you need to exchange a product tied to a software license or in the event both the subscription and order needed to be recreated.

    1. Navigate to Dashboard → Downloads → Subscriptions → Add New
    2. Set price and billing cycle to match the current subscription
    3. Times Billed should be 0 if the subscription was set up to run indefinitely.
    4. Select the customer. Since the subscription is being recreated, the customer should already exist.
    5. Select Download and variable option
    6. Leave “Initial Purchase ID” set to “Create new payment record”
    7. Use the Profile ID from the existing subscription
    8. Use the Transaction ID from the existing subscription
    9. Use the Date Created from the original subscription
    10. Use the Expiration Date from the original subscription
    11. Set the subscription status Active
    12. Click “Add Subscription”
    13. Once you confirm the newly created subscription and the order is set up as expected, update the Profile ID from the original subscription by setting it to blank or 0. This confirms upcoming renewals will only renew the new subscription in EDD, not the original you are replacing.

    Recreating a Subscription for an existing order

    In a rare instance, you might have to re-create a subscription for an existing order. Most commonly if the subscription’s price was updated at the payment gateway and you want it to reflect in EDD. Follow all steps to make sure the original subscription is properly handled.

    1. Navigate to Dashboard → Downloads → Subscriptions → Add New
    2. Set price and billing cycle to match the current subscription
    3. Times Billed should be 0 if the subscription was set up to run indefinitely.
    4. Select the customer. Since the subscription is being recreated, the customer should already exist.
    5. Select Download and variable option.
    6. Set “Initial Purchase ID” to Enter existing payment ID” and enter the Order ID.
    7. Use the Profile ID from the existing subscription
    8. Use the Transaction ID from the existing subscription
    9. Use the Date Created from the original subscription
    10. Use the Expiration Date from the original subscription
    11. Set the subscription status Active
    12. Click “Add Subscription”
    13. Once you confirm the newly created subscription is set up as expected, update the Profile ID from the original subscription by setting it to blank or 0. This confirms upcoming renewals will only renew the new subscription in EDD, not the original you are replacing.

    Manually Migrating Subscriptions

    If you have existing Subscriptions in PayPal, Stripe, or another Payment Gateway and want to migrate them over to work with the EDD Recurring Payments extension, follow these steps to make it work.

    1. Navigate to Dashboard → Downloads → Subscriptions → Add New.

    2. Enter all of the data on the form there until you get to the field titled Profile ID.

    3. Each Payment Gateway has a unique ID for each customer’s subscription. To connect the user’s subscription to the gateway, you need to obtain the Profile ID (Subscription ID) and Transaction ID from your Payment Gateway. Find your gateway below and follow the specific steps for that Gateway:

    Stripe Subscription ID and Transaction ID:

    1. Log into your Stripe Account and navigate to Customers → Subscriptions in the left sidebar.

    2. Click on the subscription in question.

    3. Copy the subscription ID and paste it into the Profile ID field in your WordPress dashboard (see first steps on this page).

    4. Now, we need the Transaction ID. In your Stripe account, click on Payments (or click the customer’s email address in the Subscription details) on the left sidebar. Find the first payment which started the customer’s subscription. Click on it, and scroll down to the Connections section and copy the ID, beginning with “ch_”:

    5. Paste the Transaction ID and fill out the rest of the fields and click Add Subscription.

    6. If you haven’t already when you initially set up EDD Recurring, set the Stripe Webhook to point to your website so that it can tell Easy Digital Downloads when new recurring payments come in. Follow the guide for setting up Recurring and Stripe webhooks here.

    Paypal Subscription / Recurring ID and Transaction ID:

    1. Log into your PayPal account and go to the Transaction you want to migrate by going to Activity > All Transactions in the menu at the top.

    2. Find the Payment in question and click on the customer name to open.

    3. The Transaction ID and Recurring or Subscription ID (Profile ID in EDD) will be listed there. Copy and paste them to the EDD Subscription you are creating.

    4. Finally, make sure you set your Paypal IPN to point to your website so that it notifies Easy Digital Downloads when a recurring payment has gone through. This way, a new Payment will be generated in Easy Digital Downloads to match up with the recurring payment in Paypal. You can follow the Paypal IPN Guide to set up your IPN for Easy Digital Downloads.

    Creating a Stripe Subscription

    There might be an instance where you want to create a new subscription in Stripe. Maybe an error occurred or the customer cancelled inadvertently and you need to re-create the subscription.

    Note, if there is an existing subscription in Stripe, Stripe does allow you to change the pricing of the subscription, so you can utilize an existing subscription if you need to make changes. You can add or remove products, add a coupon code to update the pricing or add a trial to extend the renewal date.

    1. From your Stripe Dashboard, go to Customer and open the customer in question.

    2. From the customer details in Stripe, click the + to create a subscription

    3. Add a product. If you need a unique price, any product will work as the price is what matters, the customer does not see what product is added to this subscription. You can also apply a coupon to lower the price for one payment or indefinitely depending how the coupon is configured.

    4. Configure Free Trail Days. If you want the subscription to bill today, skip this step. If a payment already exists or you don’t want the amount to bill until a later date, set the “Free trial days”.

    When you input a number of days, Stripe will present the “Ends” date, the customer will get charged on this date.

    5. Click, Create subscription. Review the summary on the right side, to confirm the amount due today is correct and the “ends” date is correct if you added a trial date.

    6. Open the new subscription in Stripe and copy the Subscription ID. Use that when creating or re-creating the subscription in EDD using the instructions in this documentation.

    The post Recurring Payments – Manually Create Subscriptions first appeared on Easy Digital Downloads.

    ]]>
    All Access – Extension Integrations https://easydigitaldownloads.com/docs/all-access-extension-integrations/ Mon, 24 Jan 2022 19:54:19 +0000 https://edd-site.lndo.site/docs/all-access-extension-integrations/ This document describes all of the special integrations with other extensions that are built into the EDD All Access extension for Easy Digital Downloads. Integrations EDD Commissions EDD Content Restriction EDD Recurring Payments EDD Simple Shipping EDD Software Licenses EDD Product Updates Integration List: The All Access extension for Easy Digital Downloads has special integrations

    The post All Access – Extension Integrations first appeared on Easy Digital Downloads.

    ]]>
    This document describes all of the special integrations with other extensions that are built into the
    EDD All Access extension for Easy Digital Downloads.

    Integration List:

    The All Access extension for Easy Digital Downloads has special integrations built for other extensions. To see all of those, how they work, and what they do, follow the links here:

    EDD Commissions:

    Video explanation of How Commissions are calculated by All Access:

    When a customer’s All Access period ends, the All Access will split commissions among all deserving Vendors. To enable this, follow these steps:

    1. Make sure you have the EDD Commissions extension enabled.

    2. Follow the set-up guide for EDD Commissions.

    3. Edit your All Access Pass products and make sure the “Enable Commissions” option is checked. Then make sure the Commission “Type” is set to “All Access calculates commissions”. That’s it!

    Here’s how it works from there: At the end of a customer’s All Access period, it takes a look at ALL the products that customer chose to download in that period. It will split the money earned from the original All Access Pass purchase between all the Vendors whose products were downloaded by the customer.
    Vendors will only earn a percentage of the value of their products to the store. The way it splits the cost between creators is “weighted” based on the “actual” cost of the products they downloaded. For example, if a customer pays $100 for All Access for 30 days and downloads 10 differently-valued photos from 10 different creators, at the end of 30 days it triggers the creation of commissions like this:

    1. Find the total “value” of ALL products downloaded by the customer.
    It adds up the “actual” price of each downloaded item.

    2. Find the percentage, or “weight” each product is worth.
    For each downloaded item, it divides the “actual” price by the total value (from step 1 above). This tells us the percentage of the total that each file download is worth.

    3. Find the actual value of each product. Using the percentage (from step 2 above), it then splits the $100 that the customer paid for All Access so we know what each product was actually worth in real money.

    4. Split the value of the product with the Vendor. Each Vendor will have a commission percentage (which is entered when you/they set up their product and its commission). That commission percentage now comes into play to split the value of their products (from step 3). They will be paid that amount of money.

    Note that Vendors will not be paid until the end of a customers All Access period. Therefore, your store will want to make sure to keep commission-payable funds from a customer available until the end of each customers All Access period.

    Notes:

    Excluded Products: If a product does not have commissions enabled, it will not be included in the calculation at the end of a customer’s All Access Period even if the customer downloaded the product using their All Access Pass.

    Upgrades: If your store is using multiple All Access Passes with the ability to upgrade from one to another and you are using EDD Commissions with EDD All Access to generate fair commissions for Vendors in your store, you will want to use the upgrade path system in EDD Software Licensing. This will enable EDD All Access to automatically track which payments were preliminary ones and split up commissions using the total value of all upgraded payments combined – instead of just splitting the value of the final upgraded payment. Using EDD All Access, EDD Commissions, and EDD Software Licensing together in this way will prevent unfair commission splitting for upgraded All Access Passes.

    Troubleshooting Tips for All Access + Commissions:
    1. Double check that all of your All Access Products have Commissions enabled.
    2. Double check that the products downloaded by the customer have commissions enabled.

    Commissions FAQ

    Am I required to use the “All Access” style of commissions on All Access enabled products? Not at all! You can choose to use normal commission calculations which don’t depend the customer’s download behaviour. These normal commissions are paid out immediately after purchase – just like all other normal commissions in the EDD Commissions extension.

    What happens if a customer downloads the same product more than once during an All Access Period? If a product is downloaded by an All Access customer more than once, it will only be calculated as if it were downloaded 1 time. For example, if the customer downloaded a $100 product 3 times, its “weight” is only 100 as opposed to 300.

    Is it possible to pay commissions out before a Customer’s All Access Pass expires? No. It isn’t possible to pay commissions earlier than the expiration of an All Access Pass because it isn’t known what the customer has chosen to download yet. They could (in theory) download 400 items on their last day which completely changes the calculation and value of all other products previously downloaded. For example, if you want to pay commissions monthly, you will have to set the All Access period to be monthly as well so that the correct calculation can take place for the correct amount of money paid by the customer.

    Are there any filter hooks that make it possible to change the way this calculation works? You can completely override the All Access commissions calculation functions and replace them with your own using the “eddc_commissions_calculated” filter hook in EDD Commissions. Note that doing this would require custom development which isn’t provided by Easy Digital Downloads. However, there is a consultants page if you’d like to hire someone to build a custom commissions calculation for you: https://easydigitaldownloads.com/customize-easy-digital-downloads/.

    What happens to the leftover money that isn’t paid out to Vendors?
    The store retains it. If you are the store owner, you retain it. Because all money paid to the store goes to the store itself, commissions are paid out of that at a later time. Whatever you don’t pay to your Vendors in Commissions, you keep.

    Can my store award commissions on a lifetime All Access Pass? Unfortunately, there is no way to calculate commissions when a pass does not have an expiration date. Due to the way that commissions on passes are calculated, it is required that the pass have an period end, so that all the products downloaded during the pass period can be used to determine what commissions to award.

    EDD Content Restriction

    If you want to restrict the viewable content of a page or post in WordPress and only want it to be viewable if the customer has an active All Access Pass, you can use EDD All Access with EDD Content Restriction. There aren’t any special settings needed for this.

    When you are setting up the restricted content, simply choose an All Access Pass product as the requirement for viewing the product. If the customer’s All Access Pass is expired, they won’t be able to view the restricted content any more. If they repurchase the All Access Pass, they can view the restricted content again. This is perfect for things like video rentals. You can embed a video on the page and restrict the page to only people with active All Access Passes.

    Sample Video Rental Configuration using EDD ALL Access:Example Video Rental by Disney's WordPress

    EDD Recurring Payments:

    When creating an All Access Pass product, if you have the EDD Recurring Payments extension, you can set the expiration of the All Access Pass to “Sync with Recurring”. Make sure the All Access Pass has
    recurring payments enabled. When the Recurring period is at its end, the All Access Pass expire and then automatically renew when the recurring payments comes in.

    EDD Simple Shipping:

    Products that are have Shipping enabled through the EDD Simple Shipping extension can not be downloaded for free using an All Access Pass. This is because they are likely physical products and so there isn’t anything to download. Their “Buy Now” buttons will remain as “Buy Now” buttons even if the customer has an All Access Pass.

    EDD Software Licensing:

    You can sell “Master Licenses” which use a single license for all (or just some) of your licensed products. This is possible because an All Access Product can be license-enabled through Software Licensing. When creating/editing the All Access Product, by enabling “license creation” in the Licensing metabox, the customer will receive a license key when they purchase that All Access Pass.

    Any licensed products that are included in the All Access Pass (in the “Access To” option), will accept the All Access License Key. Your customers will only have to purchase the All Access Pass Product and can then use that single license key.

    Upgrade Paths in Software Licensing and All Access.
    When an All Access Pass is truly/correctly upgraded through the Software Licensing upgrade path system, the start date of the upgraded All Access Pass will match the start date of the initial All Access Pass. The end date will match the settings for the upgraded All Access Pass. To keep your All Access Passes and Licenses expiring at the same time after they are upgraded, it is recommended to set the All Access Pass period to match the period for the license from Software Licensing.

    Notes:
    Any activations will be tracked on the license itself. At this time you cannot track which specific products have been activated using the All Access License.

    EDD Product Updates:

    For the EDD Product Updates extension, you can send update emails to purchasers of multiple products. So, for example, if you update “Product A”, you can choose to send the product update email out to purchasers of both “Product A” and to purchasers of “All Access”. This way, everyone who has access to that extension gets the update email.

    The post All Access – Extension Integrations first appeared on Easy Digital Downloads.

    ]]>
    Reviews – Initial Setup https://easydigitaldownloads.com/docs/reviews-initial-setup/ Mon, 24 Jan 2022 19:54:18 +0000 https://edd-site.lndo.site/docs/reviews-initial-setup/ 1. Installation Please see the extension installation instructions if needed. 2. Settings The settings for this plugin can be found under Downloads > Settings > Marketing > Reviews You have the option to Enable the Review Breakdown, which displays a fully formatted element above the reviews section showing how many people have voted for each

    The post Reviews – Initial Setup first appeared on Easy Digital Downloads.

    ]]>
    1. Installation

    Please see the extension installation instructions if needed.

    2. Settings

    The settings for this plugin can be found under Downloads > Settings > Marketing > Reviews

    You have the option to Enable the Review Breakdown, which displays a fully formatted element above the reviews section showing how many people have voted for each star.

    In the Styles section, you have the option of disabling the CSS that comes with the plugin. The CSS styles certain elements which provide some form of compatibility with your existing theme. (Note: the CSS provided by the plugin does _not_ provide 100% theme compatibility and changes may have to be made). The CSS provided styles the reviews and the review breakdown.

    3. Widgets

    The plugin comes with three widgets: Featured Review, EDD Reviews, and EDD Per Product Reviews.

    3.1 Featured Review

    The Featured Review widget allows you to select a review and display it. The widget can be found under Appearance → Widgets.

    a. Drag the Featured Review widget to the widget area where you want it to display
    b. Select a review from the dropdown list
    c. Click the Save Changes button

    3.2 EDD Reviews

    The EDD Reviews widget allows you display recent reviews that have been made on the site, similar to the WordPress Recent Comments widget. The widget can be found under Appearance → Widgets.

    a. Drag the EDD Reviews widget to the widget area where you want it to display
    b. Enter the number of reviews you wish to display
    c. Click the Save Changes button

    3.3 EDD Per Product Reviews

    The EDD Per Product Reviews widget allows you to display reviews for a single Download. This widget only displays on the single Download view.

    a. Drag the EDD Per Product Reviews widget to the widget area where you want it to display (must be a widget area that displays on single downloads)
    b. Enter the number of reviews you wish to display, or leave the field blank to display all
    c. Click the Save Changes button

    4. Viewing Reviews for a Product

    Every review can be seen by navigating to Downloads → Reviews.

    Each review can be edited if needed, as well as replied to from this screen.

    5. Emails

    There are several email options to message the store owner and/or customer under Downloads > Emails.

    Review Notification: Email to store owner when a customer submits a review
    Reviewer Discount: Provide a customer with a discount code for submitting a review.
    Request a Review: Schedule emails to send out, after a successful order, to request a review. (ie Immediately, Next Day, 1 Week, etc)

    Email Tag

    You can also use the {review_request} tag in the Purchase Receipt.

    See the email settings for details on editing emails.

    6. Shortcode

    The Review plugin has a shortcode that can be used to embed reviews within your theme. The structure of the shortcode is as follows:

    [review id="REVIEW_ID"]

    The REVIEW_ID should be replaced with the review ID. You can locate the Review ID by navigating to Downloads → Reviews and editing a Review. In the address bar of your browser (where URL appears), you will see the following in the URL: “page=edd-reviews&r=XX” where “XX” is the Review ID.

    This will embed a fully formatted element in your post/page displaying the review looking like this:

    6. Styling

    The Reviews extension has been designed to integrate as much as possible with the default WordPress Comments output, so if your theme has styling applied for comments, reviews will most likely look like your comments do on blog posts. The plugin does come with styling, though, so the Review Title and the Rating render correctly.

    The post Reviews – Initial Setup first appeared on Easy Digital Downloads.

    ]]>
    Git Download Updater – Setup Documentation https://easydigitaldownloads.com/docs/git-download-updater-setup-documentation/ Mon, 24 Jan 2022 19:54:17 +0000 https://edd-site.lndo.site/docs/git-download-updater-setup-documentation/ The Git Download Updater extension supports both GitHub and BitBucket. Connecting to BitBucket To connect your Easy Digital Downloads website to your Bitbucket account, you will need to create an APP inside your Bitbucket account and then add the APP Password and your Bitbucket username in the extension’s settings. To create an app password follow

    The post Git Download Updater – Setup Documentation first appeared on Easy Digital Downloads.

    ]]>
    The Git Download Updater extension supports both GitHub and BitBucket.

    Connecting to BitBucket

    To connect your Easy Digital Downloads website to your Bitbucket account, you will need to create an APP inside your Bitbucket account and then add the APP Password and your Bitbucket username in the extension’s settings.

    To create an app password follow the steps below:

    1. From the top right cog wheel icon, select Personal Bitbucket Settings.
    2. Select App passwords under Access management.
    3. Select Create app password.
    4. Give the app password a name that will help you remember what it’s used for.
    5. In the Permissions section check the boxes for:
      • Account > Email and Read
      • Workspace Membership > Read
      • Projects > Read
      • Repositories > Read
    6. Copy the generated password in a safe place for now. The password is only displayed this one time.

    Here is an image of all the required permissions described at step 5 above:

    More details on app passwords (including usage and revocation) can be found in the Bitbucket documentation.

    Once you have the new app password add it to the Downloads > Settings > Extensions > Git Updater page.

    The Username field is your actual Bitbucket username (do not confuse this with the account email). You can easily find it on this page: https://bitbucket.org/account/settings/ under the “Bitbucket profile settings” section.

    Connecting to GitHub

    To use GitHub, navigate to Downloads > Settings > Extensions > Git Updater. Follow the instructions there to connect to GitHub.

    Configuring a Download with the Git Updater

    Setting Your Download Files

    Once you have connected your website to either GitHub or Bitbucket, you can add files to your Download products.

    1. The “Download Files” metabox on the download edit screen will now have a checkbox labeled “Fetch download from a git repository.”

    2. After a moment or two, a new set of fields will show up that will allow you to select a repository.

    3. Search for the repository name, and then select the tag that you want to use.

    Note: The Version Tag used in Git Updater is required to be a native git tag. It does not parse versions from your readme file. To learn more about using the tag feature in git, you can visit this guide.

    4. Click “Fetch Now”. When your download has been successfully imported from the git repository, the button will say “Fetched”.

    5. You can now edit the file and/or zip name if desired, or leave them as default. Your zip file is ready to go!

    When you are ready to release a new version, simply select the tag you wish to use and click fetch. After fetching is complete, update your product.

    FAQs & Troubleshooting

    How do I exclude or remove files before the zip is generated?

    The Git Download Updater uses the ‘export’ feature of Git to build out the file to deliver. You can use the `.gitattributes` file to determine what files you want to ignore during the export. Here is an example of how we use it for EDD Core.

    For more details on using git attributes to exclude files, see this tutorial.

    Update conflict between free and paid version

    There are two different ways to resolve this issue:

    1. Change the name and/or slug of the pro version. Because of a nuance with the WordPress update API, WordPress cannot actually distinguish them as separate plugins.
    2. Add “wp_override” to the third parameter of the EDD_SL_PLugin_Updater class when it is instantiated, like this:
    // set up the updater
    $edd_updater = new EDD_SL_Plugin_Updater( EDD_SAMPLE_STORE_URL, __FILE__, array(
    		'version'     => '1.0', 				// current version number
    		'license'     => $license_key, 		// license key (used get_option above to retrieve from DB)
    		'item_id'   => EDD_SAMPLE_ITEM_ID, 	// name of this plugin
    		'author'      => 'Easy Digital Downloads',  // author of this plugin,
    		'wp_override' => true
    	)
    );

    Note: this requires v1.6.4 of the plugin updater class.

    The post Git Download Updater – Setup Documentation first appeared on Easy Digital Downloads.

    ]]>
    Purchase Limit Setup https://easydigitaldownloads.com/docs/purchase-limit-setup/ Mon, 24 Jan 2022 19:54:12 +0000 https://edd-site.lndo.site/docs/purchase-limit-setup/ Once the Purchase Limit plugin is installed you can navigate to Downloads → Settings → Extensions → Purchase Limit to adjust the configuration of the extension. There are two places to manage settings. Global settings (see below) Per Product Global settings Labels The global settings area allows you to set the text for the Buy

    The post Purchase Limit Setup first appeared on Easy Digital Downloads.

    ]]>
    Once the Purchase Limit plugin is installed you can navigate to Downloads → Settings → Extensions → Purchase Limit to adjust the configuration of the extension. There are two places to manage settings.

    1. Global settings (see below)
    2. Per Product

    Global settings

    Labels

    The global settings area allows you to set the text for the Buy button in the event of a Sell Out, and also allows you to set an error message in case someone makes it to a checkout page for a sold out Download.

    Scope

    Download restrictions can apply Site Wide, or Per User.

    Site Wide means you have a set number of items available globally.

    Per User means you may have an unlimited number of items, but no user may have more than a set number.

    There is also an option to show how many items are available for purchase.

    Show Remaining Purchases

    You can choose to show how many purchases are remaining as well as set a custom message.

    Date Restrictions

    In addition to or instead of limiting by number you may limit downloads by date as well. You can set a begin date and/or an end date. This allows you to do things like not allow sales until a date, or close all sales at a certain date, or allow sales only between 2 dates.

    Errors

    Errors can be rendered inline or the user can be redirected to any page on the site. If inline is chosen, the Error Label mentioned above can be used.

    If redirection is chosen then it’s up to the site editor to put a proper error message on the selected page.

    Per Product

    The Purchase Limit If the “Per User” option is selected, a new configuration area is available on each Download.

    On a single product you may set a specific number of downloads for that item and/or restrict by date for that item. This is used just like managing the inventory of a physical product.

    Important If there is a global date restriction you may narrow it on the single page, but not expand it. For example, if the global restriction is a 4 day span, you may narrow it to fewer than 4, but not expand it to more than 4.

    NOTE: Purchase Limit takes into account lifetime sales on downloads so if adding to an existing site, the purchase limit figure needs to exceed lifetime sales. Example: If “Download X” has 20 total sales and purchase limit is set to 10, the item will show as “Sold Out”.

    The post Purchase Limit Setup first appeared on Easy Digital Downloads.

    ]]>
    Software Licensing API – Example using cURL https://easydigitaldownloads.com/docs/software-licensing-api-example-using-curl/ Mon, 24 Jan 2022 19:54:10 +0000 https://edd-site.lndo.site/docs/software-licensing-api-example-using-curl/ This document is a subset of the Software Licensing API document which lists all features available via the API. The following information is how to implement those features with cURL. cURL is an open source command line tool and library for transferring data with URL syntax. cURL comes installed on modern versions of Mac OS

    The post Software Licensing API – Example using cURL first appeared on Easy Digital Downloads.

    ]]>
    This document is a subset of the
    Software Licensing API document which lists all features available via the API. The following information is how to implement those features with cURL.

    cURL is an open source command line tool and library for transferring data with URL syntax. cURL comes installed on modern versions of Mac OS X, and by default in most Linux distributions. You can test simply by typing

    curl
    

    on the command line and pressing enter. If cURL is installed you’ll see a message similar to this:

    curl: try 'curl --help' or 'curl --manual' for more information
    

    To ask cURL to make an http request for you, tell it your variables and the URL you’d like to send it to, like this:

    curl
    -d edd_action=check_license 
    -d item_name="EDD Product Name" 
    -d license=cc22c1ec86304b36883440e2e84cddff 
    -d url=http://licensedsite.com 
    http://YOURSITE.com/
    

    In the above example we prefixed each variable with -d so the contents will be urlencoded. A response to the above query would be a JSON formatted string that would look something like this:

    {
    	"license": "valid",
    	"item_name": "EDD Product name",
    	"expires": "2014-10-23 00:00:00",
    	"payment_id": 54224,
    	"customer_name": "John Doe",
    	"customer_email": "john@sample.com"
    }
    

    Flags

    cURL accepts many flags to change its behavior. A full tutorial of cURL is out of the scope of this document, but take a look at these flags that may interest you:

    • -u, –user USER[:PASSWORD] Server user and password
    • -A, –user-agent STRING Send User-Agent STRING to server (H)
    • -d, –data DATA HTTP POST data (H)
    • -s, –silent Silent mode (don’t output anything)
    • -o, –output FILE Write to FILE instead of stdout
    • -k, –insecure Allow connections to SSL sites without certs (H)
    • -K, –config FILE Read config from FILE

    bash scripting

    bash is a common Unix shell and allows for scripting actions. The following is a simple bash script that will prompt for several things and then run the cURL request and render the output to the screen.

    #!/bin/bash
    
    # This script accepts arguments for accessing the Easy Digital Downloads
    # Software Licensing REST API, then runs cURL to get the results.
    
    read -p "Item Name: " item_name;
    read -p "EDD Action: " edd_action;
    read -p "License: " license;
    read -p "URL: " url;
    
    exec curl --data-urlencode "item_name=$item_name" --data-urlencode "edd_action=$edd_action" --data-urlencode "license=$license" --data-urlencode "url=$url" http://YOURSITE.com/;
    

    The above example could get changed to ask more questions, have different cURL flags, or anything you wish.

    The post Software Licensing API – Example using cURL first appeared on Easy Digital Downloads.

    ]]>
    Software Licensing – Parsing readme.txt files in WordPress Plugins https://easydigitaldownloads.com/docs/software-licensing-parsing-readme-txt-files-in-wordpress-plugins/ Mon, 24 Jan 2022 19:54:09 +0000 https://edd-site.lndo.site/docs/software-licensing-parsing-readme-txt-files-in-wordpress-plugins/ Software Licensing supports readme.txt files to be automatically parsed and used to populate the update available dialogues in WordPress. This allows plugins to show all of the same standard information in the update dialog as plugins hosted on WordPress.org do. To enable readme.txt parsing, first go to Downloads → Settings → Extensions → Software Licensing and enable the

    The post Software Licensing – Parsing readme.txt files in WordPress Plugins first appeared on Easy Digital Downloads.

    ]]>
    Software Licensing supports readme.txt files to be automatically parsed and used to populate the update available dialogues in WordPress. This allows plugins to show all of the same standard information in the update dialog as plugins hosted on WordPress.org do.

    To enable readme.txt parsing, first go to Downloads → Settings → Extensions → Software Licensing and enable the “Selling WordPress Plugins?” option:

    This will enable a new section in the Download Edit screens that looks like this:

    First you will need to upload your readme.txt file to a public location on your server (or use a Github URL). Once you’ve done that, simply enable each of the options you wish to be enabled in the update dialog.

    Note, your readme.txt must follow the WordPress.org readme.txt file guidelines. If you need to test whether your readme.txt file is valid, you can use the readme.txt validation tool. WordPress.org also offers a sample readme.txt file with guidelines.

    The post Software Licensing – Parsing readme.txt files in WordPress Plugins first appeared on Easy Digital Downloads.

    ]]>
    Recurring Payments – Software Licensing Integration https://easydigitaldownloads.com/docs/recurring-payments-software-licensing-integration/ Mon, 24 Jan 2022 19:54:08 +0000 https://edd-site.lndo.site/docs/recurring-payments-software-licensing-integration/ Software Licensing works seamlessly with Recurring Payments. Here are some of the highlights: It fully integrates with software upgrades. Renewal discounts are applied properly. Canceling a subscription partway through the subscription period does NOT expire the license key, it remains valid for as long as was paid for. It supports upgrading to a one-time fee

    The post Recurring Payments – Software Licensing Integration first appeared on Easy Digital Downloads.

    ]]>
    Software Licensing works seamlessly with Recurring Payments. Here are some of the highlights:

    • It fully integrates with software upgrades.
    • Renewal discounts are applied properly.
    • Canceling a subscription partway through the subscription period does NOT expire the license key, it remains valid for as long as was paid for.
    • It supports upgrading to a one-time fee lifetime subscription, which ends the recurring billing.

    Frequently Asked Questions

    What happens if a license key is renewed early?

    If a license key is renewed early, a “subscription” (which is created by EDD Recurring immediately upon renewal) is created and the license key expiration date is extended by one period, where a period is whatever the store owner has set (12 months, 6 months, etc). This can cause the subscription and license key expiration dates to become out of sync. This isn’t an issue, when this happens the customer is essentially pre-paying for their license key.

    For example, assume a store is set up with annual licenses:
    1. A customer purchases a license on January 1, 2022, setting the expiration date to January 1, 2023.
    2. The store owner changes that product to include a recurring subscription on June 1, 2022.
    3. The customer decides to renew their license early on July 1, 2022.
    4. The license will now expire on January 1, 2024.
    5. The subscription payment will be automatically processed one year from the early renewal, on July 1, 2023.
    6. The expiration date of the license will now, after the automatic payment is processed, be set to January 1, 2025.
    What happens if a license key was purchased without a subscription but then renewed with the purchase of a subscription? Do expiration and renewal dates get synced?

    When renewing a license and converting it to a subscription, the expiration of the license and renewal date of the subscription do not synchronize. The subscription will extend the license’s expiration date in accordance with the license length configuration. The subscription will also set a renewal date for itself, in accordance with its own configuration. For example:

    1. A yearly license purchased on January 1, 2022, will expire on January 1, 2023.
    2. On June 1st, 2022 the license is renewed early and converted to a subscription:
      1. The license will have its expiration date extended by 1 year to be January 1, 2024
      2. The subscription will have a renewal date of June 1st, 2023
    3. On June 1st, 2023, when the subscription renews, the license key will again have its expiration date extended by a year, to January 1, 2025. This 3rd step will continue to happen yearly, so long the subscription on step 2 remains active and is not canceled or expired (due to failed payment)
    Can you sync a license key and subscription expiration dates?

    If the customer or store owner wants to re-sync the license and subscription, the subscription can be canceled and manually renewed when the license is set to expire. This may not be in the best interest of the customer if the license key price has increased. Manually renewing would create a subscription at the new price.

    What happens if renewal discounts are enabled? How will the subscription be charged?

    Renewal discounts are applied to renewals only, not the initial payment. If a product costs $100 with a 50% renewal discount, the initial payment will be $100, and every renewal after that will cost $50.

    Renewal discounts are created in the Software Licensing extension under Settings → Extensions → Software Licensing.

    How do discount codes affect renewal discounts?

    In Recurring payments, there is a setting for One-Time Discounts. If this box is checked, the discount code will only apply to the initial subscription, and all renewals will be processed at their normal amount. When unchecked, a discount applied to the initial subscription purchase will continue to be applied to all automatically renewed payments.

    With Software Licensing renewal discounts, they will apply as they normally do to automatic renewals, so if the One-Time Discount is unchecked, and there is a Software Licensing renewal discount, both will be applied to the automatically renewed amount.

    What if a customer upgrades a license key?

    Upgrading license keys are fully supported. The upgrade cancels the original subscription purchased and creates a new subscription record. All license keys retain their original expiration date, and any prorated and additional discounts associated with the Software Licensing upgrade path are applied to the purchase. Not only do the upgraded license keys retain their expiration date, but the new subscription’s expiration will match the license’s original expiration as well, regardless of the date the upgrade was done by the customer.

    How do site admins find the license key associated with a subscription?

    To see the license key associated with a subscription, you can go to Downloads → Subscriptions, and click on the View link next to the subscription. The license key associated with the subscription will be located in its own section on the Subscription Details view.

    What about bundle products that use a subscription?

    Bundles that are subscriptions and have licensing enabled work just like a single product. A single subscription is created for the customer, that contains the bundle product. The recurring renewal of that subscription will maintain access to all the bundled products. See Product Bundle Licensing for details.

    How are email notifications for license keys with subscriptions handled?

    When both Recurring Payments and Software Licensing are activated, there are two sets of email notifications that can be configured, one in the Software Licensing settings and one in the Recurring Payments settings. When a license key is associated with a recurring subscription, the renewal/expiration notices configured in the Recurring Payments settings will be used. Those notices configured in the Software Licensing settings will be ignored for license keys that are connected to a subscription so long as the subscription remains Active. If a subscription for a license key is canceled or becomes expired, the emails configured in the Software Licensing settings will be used.

    How do renewal discounts work with free trials?

    When using free trials and renewal discounts, the renewal discount will be applied to the first payment processed after the free trial is completed.

    For example, if you sell a $100 / year product with a 1 month free trial and a 20% renewal discount, the payments will be as follows:

    • $0.00 for the first month
    • $80 for the first payment after the trial is completed
    • $80 for each year following

    If you sell a $100 / year product without renewal discounts, the payments will be as follows:$0.00 for the first month

    • $100 for the first payment after the trial is completed
    • $100 for each year following

    The post Recurring Payments – Software Licensing Integration first appeared on Easy Digital Downloads.

    ]]>
    Software Licensing – Releasing Beta Versions https://easydigitaldownloads.com/docs/software-licensing-releasing-beta-versions/ Mon, 24 Jan 2022 19:54:07 +0000 https://edd-site.lndo.site/docs/software-licensing-releasing-beta-versions/ This feature allows site administrators to distribute beta versions of their software, providing a more reliable system for smooth updates. To release a beta version, you first need to enable a beta on your download product. This can be done from the product edit screen. Once enabled, you will be asked to provide the version

    The post Software Licensing – Releasing Beta Versions first appeared on Easy Digital Downloads.

    ]]>
    This feature allows site administrators to distribute beta versions of their software, providing a more reliable system for smooth updates.

    To release a beta version, you first need to enable a beta on your download product. This can be done from the product edit screen.

    Once enabled, you will be asked to provide the version number, the beta download file, and the beta changelog.

    The source file is what will be given to customers when they install the beta. If selling WordPress plugins or themes, this is the file that will be delivered via the EDD_SL_Plugin_Updater and EDD_SL_Theme_Updater classes. If selling non-WordPress software, this is the download package that will be delivered in the get_version API call.

    The version number should be set to your latest version number with a beta indicator. For example, if you are releasing a beta for version 3.5 of your software, set this version to 3.5-beta1. If you need to release a second beta, set the version to to 3.5-beta2 and so on. If you wish, you may also use alpha version numbers to release pre-beta versions. Version numbers should follow conventional versioning in order to ensure new version checks work as expected.

    The beta changelog field allows you to specify the information that will be made available in update notifications. When selling WordPress plugins or themes, this is the update information that will be displayed through the EDD_SL_Plugin_Updater and EDD_SL_Theme_Updater classes. If selling non-WordPress software, this is the information that will be included in the changelog portion of the get_version API call.

    Beta versions are made available by appending &beta=1 to the get_version API call. This means that you will need to provide some mechanism for your customers to opt into beta versions if they wish to install / download the betas.

    In our own usage of Software Licensing in Easy Digital Downloads, we have added a settings screen to our Tools menu that allows customers to opt into beta versions of our extensions. Here’s a screenshot of what that looks like:

    For WordPress themes and plugins, the beta=1 parameter will be added to the get_version requests automatically if the beta flag is passed to the plugin and theme updaters. Also note that the version of the plugin or theme in the code itself (the plugin header or theme header) should reflect the beta version. For example, use “2.8-beta1” instead of “2.8”. See the plugin and theme implementation guides for more information:

    The post Software Licensing – Releasing Beta Versions first appeared on Easy Digital Downloads.

    ]]>
    Free Downloads – Advanced Usage https://easydigitaldownloads.com/docs/free-downloads-advanced-usage/ Mon, 24 Jan 2022 19:54:05 +0000 https://edd-site.lndo.site/docs/free-downloads-advanced-usage/ Custom Links Starting with Free Downloads 2.0.0, we now support the creation of true custom free download links through two methods. The preferred method is through our new [edd_free_download] shortcode, which takes a single argument, download_id. For example, if you wanted to create a Free Downloads button for a download with the ID “123” that

    The post Free Downloads – Advanced Usage first appeared on Easy Digital Downloads.

    ]]>
    Custom Links

    Starting with Free Downloads 2.0.0, we now support the creation of true custom free download links through two methods. The preferred method is through our new [edd_free_download] shortcode, which takes a single argument, download_id.

    For example, if you wanted to create a Free Downloads button for a download with the ID “123” that displayed an image rather than the normal EDD purchase button, you would enter the following:

    [edd_free_download download_id="123"]YOUR IMAGE HERE[/edd_free_download]

    Similarly, you can create the same link manually by entering the following (be sure to change the ID to your free download/product’s ID):

    <a href="#edd-free-download-modal" class="edd-free-download" data-download-id="123"><img src="IMAGE URL HERE"></a>
    

    Custom Templates

    We now offer the ability to customize the Free Downloads modal in much the same way that you can customize other EDD templates. In the
    edd-free-downloads/templates folder you will find two files, one which controls the modal dialog, and one which controls the mobile window.

    Simply copy these to the edd_templates directory in your theme (you may need to create it), and change to your liking! Remember that the fields still need to have the same names for them to work with Free Downloads!

    You can read more here on moving and using template files.
    https://docs.easydigitaldownloads.com/article/1216-moving-edd-templates-to-your-theme

    The post Free Downloads – Advanced Usage first appeared on Easy Digital Downloads.

    ]]>
    Commissions – Payouts https://easydigitaldownloads.com/docs/commissions-payouts/ Mon, 24 Jan 2022 19:54:05 +0000 https://edd-site.lndo.site/docs/commissions-payouts/ This document covers how to handle Payouts with Commissions. The extension’s primary purpose is tracking commissions for your vendors. It provides you with tools for tracking payouts, but the payment methods are handled outside the Commissions extension. Notice for Stripe Payment Gateway Users: Stripe Connect is currently not supported as a method of paying out

    The post Commissions – Payouts first appeared on Easy Digital Downloads.

    ]]>
    This document covers how to handle Payouts with Commissions. The extension’s primary purpose is tracking commissions for your vendors. It provides you with tools for tracking payouts, but the payment methods are handled outside the Commissions extension.

    Notice for Stripe Payment Gateway Users: Stripe Connect is currently not supported as a method of paying out commissions.

    There are currently two recommend methods for handling payouts:

    1. Manual Payouts

    This could be in the form of a check, cash, any online payment platform (Venmo, CashApp, Facebook, etc.), or PayPal.

    2. PayPal Payouts

    PayPal Payouts allows you to pay vendors in bulk via PayPal using a CSV file generated by EDD Commissions.

    Your PayPal account must be approved for Payouts by PayPal before it will work with your account. See these prerequisites to get PayPal Payouts configured.

    Vendor PayPal Email

    By default, the Commissions extension will use the email associated with a user’s WordPress account as their PayPal email. If you need to change the email used to pay a user (because their account address is different than their payment address), go to that user’s profile in the WordPress admin, scroll to the bottom, and enter their email in the field titled “User’s PayPal Email”.

    Downloading Your Payout File

    On the Commissions screen at Downloads → Commissions, there is a button in the top left that says Generate Payout File.

    Clicking this option will open a small form, allowing you to select a date range as well as a minimum balance vendors must have to be included in this payout. For example, it may not be worthwhile to pay vendors until they’ve accumulated a balance of more than $1.00. The Minimum field accepts only integers (1 not 1.50 for example).

    Once you click Generate File you’ll be asked to download a .csv file containing the PayPal emails and amounts for all commissions.

    The .csv file will look something like this:

    Once the CSV is downloaded, it’s configured to immediately upload to PayPal Payouts or it can be used for for any other method you prefer.

    Submitting PayPal Payouts

    See Send payouts from Payouts Web for instructions on how to use the CSV payout file with PayPal Payouts.

    The post Commissions – Payouts first appeared on Easy Digital Downloads.

    ]]>
    Free Downloads – FAQ https://easydigitaldownloads.com/docs/free-downloads-faq/ Mon, 24 Jan 2022 19:54:04 +0000 https://edd-site.lndo.site/docs/free-downloads-faq/ Is there a way to optionally skip the email form? Yes! Since version 2.0.0, the email form can be skipped by enabling the Bypass If Logged In and/or Direct Download options. Are downloads tracked if the email form is skipped? It depends on whether the person is logged in or out. If they are logged

    The post Free Downloads – FAQ first appeared on Easy Digital Downloads.

    ]]>
    Is there a way to optionally skip the email form?

    Yes! Since version 2.0.0, the email form can be skipped by enabling the Bypass If Logged In and/or Direct Download options.

    Are downloads tracked if the email form is skipped?

    It depends on whether the person is logged in or out. If they are logged in and they skip the email form because you have Bypass If Logged In enabled, the download will be tracked. But if they are logged out and skip the download form because you have Direct Download enabled, the download will not be tracked. This is because payment records can not be created in Easy Digital Downloads unless there is an email address that the record can be assigned to. Since the person is logged out and we weren’t able to capture their email address, we can’t create a payment record for them. Because of that, the download is not tracked in that scenario. This is the only scenario where downloads are not tracked when using Free Downloads.

    Can I use Free Downloads with my email service?

    Yes, you can! See this doc for more information: https://easydigitaldownloads.com/docs/free-downloads-compatibility-with-email-services/.

    Can I require that email addresses be verified before sending the download link?

    Yes, there is an option that can be enabled to require that customers click a verification link in an email sent to them before they are provided with access to the download files.

    Can I disable emails for Free Downloads?

    Yes, there is an option in “Processing Settings” in the Free Downloads settings area to disable both Purchase Confirmation Emails as well as Admin Sales Notification Emails.

    Can I redirect the user to a custom confirmation page after they download?

    Yes. You can do this by using the On Complete Handler setting in the Free Downloads settings. Set it to Custom Redirect and you can enter the URL you would like to automatically direct them to after they download.

    Can I keep the customer on the same page after they download?

    Yes. You can do this by using the On Complete Handler setting in the Free Downloads settings. Set it to Auto Download and the customer will remain on the same page after their download completes.

    Will Free Downloads work on a mobile device?

    Yes. Within the Processing Settings, you have full control over how Free Downloads are served to your customers when they’re using a mobile device.

    The post Free Downloads – FAQ first appeared on Easy Digital Downloads.

    ]]>
    PDF Invoices Setup Documentation https://easydigitaldownloads.com/docs/pdf-invoices-setup-documentation/ Mon, 24 Jan 2022 19:54:03 +0000 https://edd-site.lndo.site/docs/pdf-invoices-setup-documentation/ Note: The PDF Invoices extension is considerd LEGACY. The functionality has been combined with the Invoices extension. It is recommended that all stores switch to the Invoices extension as PDF Invoices will no longer receive updates and support To get started with PDF Invoices, the first thing you will want to do is install and

    The post PDF Invoices Setup Documentation first appeared on Easy Digital Downloads.

    ]]>

    Note: The PDF Invoices extension is considerd LEGACY. The functionality has been combined with the Invoices extension. It is recommended that all stores switch to the Invoices extension as PDF Invoices will no longer receive updates and support

    To get started with PDF Invoices, the first thing you will want to do is install and activate it on your WordPress site. For instructions on how to install an extension, see this documentation.

    Using PDF Invoices

    Once PDF Invoices is installed and activated, invoices will be available to customers and admins without additional configuration. Although, most stores will want to customize invoices with their contact details and branding, which can be done in the PDF Invoice settings, explained below in this doc.

    Accessing Invoices

    Customer Access to Invoices

    Users can access their past invoices by visiting their account page you have set up on your site using the [purchase_history] shortcode. A new column will appear in the table with direct links to invoices based the purchase.

    Email Receipt

    You may also use the new 
    {invoice} template tag in the email settings found on Downloads → Settings → Emails (tab) page to put a link to the downloadable invoice in your emails.

    Note: A user account is not required for customer to download the invoice via the email receipt.

    Admin Access to Previous Invoices

    To view PDF invoices for past purchases, you can go to the Payment History page and hover over any purchase to reveal a “Download Invoice” link. Clicking that link will give you access to the invoice for that particular purchase.

    Basic Settings

     You can find the settings by going to
    Downloads → Settings → Extensions (tab) → PDF Invoices (section) in your WordPress dashboard.

    There you will find a few basic settings for extension configuration as well as fields where you can input unique information about your store to display on your invoice. Simply make your selections and fill in your store information.

    Disable Invoices for Free Downloads: This prevents PDF Invoices appears for $0 purchase via the Purchase History and Email Receipts. 

    Invoice Template: Chose between several templates for your PDF Invoices.

    Characters not displaying correctly?: Some translations and non-English characters may not display properly. This setting should fix those situations.

    Store Information

    Fields are optional, so you leave fields black if you don’t want to include them in the invoice.

    Logo: If the logo is greater than 90px in height, it will not be shown. On the Traditional template, if the logo is greater than 80px in height, it will not be shown. Also note that the logo will be output at 96 dpi.

    PDF Invoices supports the listed template tags for use 
    only in the Header Message, Footer Message, and Additional Notes fields. These fields do not support templates tags from EDD or any other extensions.

    Note: HTML is not supported in the Additional Notes field.

    If you would like to download a .zip file of invoices in bulk, there is a 3rd party extension available here

    Common Issues

    Though
    PDF Invoices works perfectly fine in most environments, there are occasional scenarios where undesired behavior has been experienced by a select group of customers. Here are a few known issues and their solutions:

    Uploaded images broken or errors when downloading invoices with image

    In most cases, this issue is resolved by removing the image from the PDF Invoices settings and uploading it again. The problem is often caused by changes made to the site since the image was originally uploaded such as converting the site to use SSL or new security measures implemented.

    Additionally, there are cases where .PNG image files do not work correctly with PDF Invoices. Using a .JPG file instead of a .PNG will usually restore the desired functionality.

    Invoice IDs are displaying in the wrong format

    If the IDs on the PDF invoices are not displaying in the format you prefer, they can be customized using the
    Advanced Sequential Order Numbers extension.

    Some custom information from the checkout form is not appearing on the invoice

    Currently PDF Invoices does not support the addition of custom information such as custom checkout fields to the PDF templates. It is a known feature request which is being considered for a future release of the plugin. For now, apart from some custom development, it is possible to customize the invoices generated by our
    Invoices extension.

    If you have any questions or need assistance using PDF Invoices, please use the 
    support email form.

    The post PDF Invoices Setup Documentation first appeared on Easy Digital Downloads.

    ]]>
    License Free Downloads https://easydigitaldownloads.com/docs/license-free-downloads/ Mon, 24 Jan 2022 19:54:02 +0000 https://edd-site.lndo.site/docs/license-free-downloads/ License Free Downloads allows the customer to purchase one licensed product and get one or more licensed products for free. The store administrator determines which products are available for free with a given purchase. License Free Downloads requires the Software Licensing extension for Easy Digital Downloads. Configuration Instructions for License Free Download Once installed, locate

    The post License Free Downloads first appeared on Easy Digital Downloads.

    ]]>
    License Free Downloads allows the customer to purchase one licensed product and get one or more licensed products for free. The store administrator determines which products are available for free with a given purchase. License Free Downloads requires the Software Licensing extension for Easy Digital Downloads.

    Configuration Instructions for License Free Download

    1. Once installed, locate the settings for this extension via WordPress admin → Downloads → Settings → Extensions → License Free Download
    2. The settings area allows the store owner to set labels for user facing text.

    Product Settings

    Edit the product you wish to offer for free for existing license holders and locate the metabox titled “License Holders Free Download“. In this box you can activate the Free Download and select which licensed products will give free access to this product.

    NOTE: Both products must be using the license creation option of the Software Licensing extension. The checkbox to activate it for a product is on the admin page for every product in the Licensing meta box.

    Create the Interface

    In order to make it so that people can download the product for free, you must include this shortcode on that product’s page: [edd_lfd]. Paste the shortcode into the content area when editing the product.

    The resulting form will look something like this:

    The customer will take the license key from their purchase and paste it into this form. They will be immediately taken to the checkout page where they can “buy” the product for free.

    The post License Free Downloads first appeared on Easy Digital Downloads.

    ]]>
    Custom Prices – Overview https://easydigitaldownloads.com/docs/custom-prices-overview/ Mon, 24 Jan 2022 19:54:02 +0000 https://edd-site.lndo.site/docs/custom-prices-overview/ This document gives a general overview of the EDD Custom Prices extension for Easy Digital Downloads. Installing the plugin and Activating your License key: EDD Custom Prices uses licenses to provide automatic updates for the extension. Once installed and activated you should first activate your license key in order to receive automatic updates. You will have received

    The post Custom Prices – Overview first appeared on Easy Digital Downloads.

    ]]>
    This document gives a general overview of the EDD Custom Prices extension for Easy Digital Downloads.

    Installing the plugin and Activating your License key:

    EDD Custom Prices uses licenses to provide automatic updates for the extension. Once
    installed and activated you should first activate your license key in order to receive automatic updates. You will have received a license key in your purchase receipt; copy the key to your clipboard, then go to  Downloads → Settings → Licenses and enter the key into the “License Key” field under “Custom Prices”. Click “Save Changes” to activate your license.

    Anytime a new version of the extension is available, you will be notified of the update just like any other WordPress plugin.

    Enabling Custom Prices for a product

    To enable custom prices for a product, find the product which you want to enable them for under
    Dashboard → Downloads → All Downloads. Then, in the “Download Prices” metabox, click to enable custom pricing. You’ll have a few additional options there:

    Default: This option allows you to set what the price is set to by default when the customer first loads the page.

    Min: This option allows you to set a minimum price. If the customer tries to enter a lower price than the minimum you set here, they will see a message which says “Please enter a custom price higher than the minimum amount”.

    Button Text: This option allows you to write a custom message on the purchase button for this product. For example, you can instruct the customer to “Pay whatever you want”, or to “Enter your custom price”. It defaults to “Name your price”.

    Bonus Item: This option allows you to give away a single bonus product if the customer enters a high enough (or low enough) custom price. First, enter the “Condition” required to get the custom product. Then, set the price required to receive the bonus product. Lastly, choose which product the customer will receive upon purchase.

    Integrations with other extensions

    EDD Recurring Payments

    If you use the Recurring Payments extension for Easy Digital Downloads and you have both Custom Prices and Recurring Payments enabled for a product, when a customer enters a custom price, their subscription will automatically be set up for that custom amount. Therefore, when their subscription automatically recurs, the amount they will be charged will be the custom price they entered.

    If you enable free trial, the initial payment will be free and all subsequent payments will be for the custom amount entered by the customer.

    EDD Frontend Submissions

    If you use the Frontend Submissions extension for Easy Digital Downloads and you want your Vendors to be able to create product that are custom-pricing enabled, there isn’t a way for Vendors to enable that themselves at this time. Instead, once the Vendor has submitted their product, an admin level user will have to log in and enable custom pricing for the product by following the steps above under “Enabling Custom Prices for a product”.

    The post Custom Prices – Overview first appeared on Easy Digital Downloads.

    ]]>
    Frontend Submissions – Form Builder https://easydigitaldownloads.com/docs/frontend-submissions-form-builder/ Mon, 24 Jan 2022 19:54:01 +0000 https://edd-site.lndo.site/docs/frontend-submissions-form-builder/ Frontend Submissions uses a number of forms that need to be created by the site owner for use by the Vendors. FES facilitates this by including a full featured Form Builder.  If you’re familiar with some other common form builders like Gravity Forms, Ninja Forms, or Caldera Forms, you’ll see that the FES form builder

    The post Frontend Submissions – Form Builder first appeared on Easy Digital Downloads.

    ]]>
    Frontend Submissions uses a number of forms that need to be created by the site owner for use by the Vendors. FES facilitates this by including a full featured Form Builder. 

    If you’re familiar with some other common form builders like Gravity Forms, Ninja Forms, or Caldera Forms, you’ll see that the FES form builder has similar functionality. 

    The form builder is used for the Vendor Submission/Registration Form as well as the Vendor Profile Form.

    Clicking the buttons in the right column will add the associated fields to the form editor on the left. Depending on which form you’re editing, the options will change.

    Submission Form Fields, Registration Form Fields, and Profile Form Fields options are related to each form being created/edited, while the Add Custom Fields options are available for all forms and include things like Text Areas, Dropdowns, etc. Add Extension Created Fields will show fields available that have been added by other Easy Digital Downloads extensions (if applicable).

    Built-In Examples

    Below is an example of one of the simplest built-in fields, Title.

    Required: Choose whether the field should be required or not.

    Field Label: Choose the title of the field.

    Help Text: This is text that will appear under the title (similar to a sub-heading). This would be used to describe in more detail what information you’re asking for in the field.

    CSS Class Name: You can add a class name here, so that the field could be styled through custom CSS if needed.

    Size: You can choose the size of the text field. 40 is default.

    Custom Examples

    A custom field would be a traditional HTML form field, but one that doesn’t save its data in a predefined WordPress location like Title and Body.

    Text Field

    Below is an example of a plain text input field.  Because this is a custom field the data will get saved in a meta table in WordPress, and therefore the Meta Key field is required.
    Custom fields also have the option to show the information on the front end with the product’s information/description.

    Note: When using the “Post Format” option, ensure that the active theme supports Post Formats or this option will not work as intended.

    Action Hooks

    The Action Hook button doesn’t make a form field. Instead, it inserts a location for you to create a hook. Instructions for using it are included in the form builder itself, as seen below. This requires knowledge of coding and is meant for more experienced users.

    Data Storage

    The Registration form creates a WordPress user, so all meta information is stored in the
    usermeta WordPress table.

    The Profile form is also related to users, so its meta information is also stored in the
    usermeta WordPress table.

    The Submission form stores its data in a custom content type in the WordPress posts table, so all meta data is stored in the
    postmeta WordPress table.

    The post Frontend Submissions – Form Builder first appeared on Easy Digital Downloads.

    ]]>
    Vendd Getting Started Guide https://easydigitaldownloads.com/docs/vendd-getting-started-guide/ Mon, 24 Jan 2022 19:53:58 +0000 https://edd-site.lndo.site/docs/vendd-getting-started-guide/ Table of Contents Installation License Key Child Theme Customizer Page Templates Easy Digital Downloads Frontend Submissions Widgets Plugin Support Vendd is a full-featured marketplace theme designed for use with Easy Digital Downloads, supporting extensions, and other handy WordPress plugins. However, it is flexible enough to stand on its own as a simple theme for any type of

    The post Vendd Getting Started Guide first appeared on Easy Digital Downloads.

    ]]>
    Table of Contents

    Vendd is a full-featured marketplace theme designed for use with Easy Digital Downloads, supporting extensions, and other handy WordPress plugins. However, it is flexible enough to stand on its own as a simple theme for any type of content.

    In this doc, we will go over the basics of how to get Vendd up and running as well as tips for getting the most out of its features. This is not a technical guide.

    Installation & Activation

    To get started, download Vendd to your computer in zip file format. You should have received a download link on the purchase confirmation page after making your purchase and in your purchase receipt email. You can also download Vendd from 
    your account page.

    Once you have Vendd on your computer in a zip file (Ex.vendd-v1.0.zip), navigate to Appearance > Themes in your WordPress dashboard and click the “Add New” button at the top of the page. At the top of the next page, click the “Upload Theme” button and you will be directed to a page where you can search for the Vendd zip file on your computer.

    Browse your computer and select to upload the file as-is. Follow the on-screen process and when given the opportunity, select to activate your new theme.

    Now that Vendd is installed and activated, you can view the front end of your website to see it in action. However, there are a few things you may want to set up in your dashboard. Let’s cover that information.

    Activate Your License Key

    The most important thing to do is activate your license key.
    Please note that Vendd is fully functional whether you activate your license key or not. However, you will not receive dashboard updates for the theme unless you activate your license key.

    Navigate to Appearance > Vendd License. There you will find the form to enter your license key and activate it. Your license key was provided to you on the purchase confirmation page after your purchase and also in the purchase receipt email. Again, you can also find your license key on your EDD account page.

    Enter your license key into the text field and click the “Save License Key Changes” button. This will save your license to the database. Now you can click the “Activate License” button to activate your license.

    Once your license is activated, you’re all set to receive dashboard updates when new versions of Vendd are pushed out.

    Note: Please contact support if you have issues activating your license key.

    Activate Your Child Theme

    This step is not required. However, we highly recommend that you install a child theme before making any adjustments to your new Vendd install.

    Child themes are designed to protect your theme customizations from theme author updates while inheriting all of the parent theme (Vendd) functionality. Because child themes are treated as actual themes themselves, if you begin to set up menus, widgets, customizer settings, etc. in your parent theme, those customizations will be lost when you do choose to activate a child theme.
    It’s best to activate a child theme first.

    Navigate to Appearance > Vendd License in your WordPress dashboard and beneath the license key area, you will find instructions for how to create your own child theme. Follow the directions and activate your child theme.

    Note: This section will disappear once you have a child theme installed and activated.

    Vendd Customizer

    Besides the license key form, all of Vendd’s settings are built into the WordPress Customizer.

    To start making customizations, navigate to Appearance > Customize in your WordPress dashboard. This is a great place to handle most of your theme customizations.

    By default, the following sections should appear in the sidebar of the customizer (depending on what other tools you have installed on your site, you may see more sections):

    • Site Title (Logo) & Tagline
    • Vendd Design
    • Content Options
    • Navigation Menus
    • Static Front Page

    If you have Easy Digital Downloads activated, you will also see a section titled “Easy Digital Downloads.” Likewise, if you have Frontend Submissions activated, you will see a section called “EDD Frontend Submissions.”

    We will not discuss the “Navigation Menus” and “Static Front Page” sections as they are default WordPress functionality.

    Site Title (Logo) & Tagline

    This is a modified version of WordPress’ default section for editing your site’s title and tagline. Vendd makes slight adjustments based on the theme’s capabilities.

    In this section, you can still edit your site title and tagline. You can also choose to upload a site logo which will automatically replace your site title text and link to your site home URL. With a site logo uploaded, you may no longer need your tagline to display. You can check the setting to remove the tagline and it will no longer display.

    Vendd Design

    Primary Design Color

    The bulk of Vendd’s design is created using one color called the “Primary Design Color.” In this section, you can set your primary design color to be whatever you’d like.

    Full Site Background Color

    Vendd also allows you to adjust the background of your site, the area that displays outside of the main page area. By editing the “Full Site Background Color,” you can set your site background to a solid color of your choosing.

    Full Site Background Image

    If you would like to use a background image, you can upload an image through the “Full Site Background Image” setting. Take note that if you use a background image, unless it is transparent, this will appear to override your background color setting.

    Enable Parallax Background Effect

    If you opt to use the site background image, you can check the “Enable Parallax Background Effect” setting to give the main page area the appearance of moving at a different speed than the background image as you scroll the page.

    Content Options

    This is where you start getting into the content structure of your site.

    Display Post Excerpts

    On your main blog page, you have the option of showing full post content or post excerpts. For excerpts, check the “Display Post Excerpts” setting.

    Excerpt & More Link Text

    When using post excerpts or truncating full posts with WordPress’ “more tag,” a link to the full article will display. Use the “Excerpt & More Link Text” field to edit the text for that link.

    Show Featured Images in Post Listings

    Still on the main blog page, you have the option to display featured images uploaded to your individual posts. To do so, make sure the “Show Featured Images in Post Listings” setting is checked.
    These images will be cropped into a square if you are displaying post excerpts.

    Show Featured Images on Single Posts

    You can choose whether or not you want to display the same featured images on individual posts with the “Show Featured Images on Single Posts” setting.

    Enable Comments on Standard Pages

    Moving on to WordPress Pages, they’re typically not a place for conversation. However, if you’d like to allow comments on pages, check the “Enable Comments on Standard Pages” setting. Take note that comments can be disabled from the Edit Page screen and this setting
    will not reverse that.

    Show Search in Main Menu

    Checking this box will add a search form to the very last line item in your Main Menu. The search form will expand only when in focus to save space. It will be expanded by default an actual search results page in order to display the given search query and allow for easy editing.

    Use Advanced Search Results

    By default, Vendd will display search results in much the same manner as it display the blog feed. The Advanced Search Results template will logically separate products, posts, and pages in order to make the search results easier to understand. The downloads themselves will display exactly as the [downloads] shortcode does.

    Information Bar Text

    At the very top of most pages on your site, there is an area called the “Information Bar.” This area supports a single level menu as well as an area for general text. Use the “Information Bar Text” field to control the text displayed in this area.

    Footer Credits & Copyright

    Lastly, you may edit the footer text on your site using the “Footer Credits & Copyright” field. If you do not enter any information into this area, it will display your site title, tagline, and a copyright date by default.

    Easy Digital Downloads

    Show Comments on Downloads

    EDD single download pages do not typically support comment functionality. While Vendd adds this functionality, you can choose wwhetherhere or not to add download comment support using the “Show Comments on Downloads” setting.

    Show Categories/Tags on Downloads grid

    In various pages on your site, you may be using the [downloads] shortcode to display a grid layout of your products. Vendd enhances the product display by also showing download category and tag information for each product. Using the “Show Categories/Tags on Downloads grid” setting, you can choose whether or not to show this information.

    EDD Button Color

    While you have already chosen a primary design color for your site, that setting does not control the color of EDD buttons. Instead, you can do so using the “EDD Button Color” setting. This color picker works alongside EDD’s button color settings found at Downloads -> Settings -> Styles in your WordPress dashboard. By default, EDD’s settings are used. You may simply override those limited settings using the color picker in the customizer.

    Store Front Title

    When creating a new page in WordPress, there is a setting called “Template” in the “Page Attributes” section on the edit screen. From there, you can select to use the “EDD Downloads” page template on all pages where you are using the [downloads] shortcode. When you choose to use that template, your downloads display grid will include a customizable page headline. Use the “Store Front Title” field to customize this headline.

    Empty Cart Title, Text, and Downloads Count

    Your EDD site must have a checkout page to function properly. However, when a user’s checkout cart is empty, default content will display. You can control the display of this content with the “Empty Cart Title,” “Empty Cart Text,” and “Empty Cart Downloads Count” settings.

    Note: This section will only appear if Easy Digital Downloads is installed and activated.

    EDD Frontend Submissions

    FES Dashboard Title

    The main focus area for Frontend Submissions is the vendor dashboard which you should already have configured as you are using the extension. The dashboard page format is shared by all vendors but you can customize the title of the dashboard instead of using the name of the actual WordPress Page. To do so, use the “FES Dashboard Title” field.

    Show contact form on Vendor template

    When FES is activated, download items will display vendor information on both the downloads grid display as well as the single download page. This information will link to the appropriate vendor’s store profile where all of his or her products will display. At the bottom of this page there is a contact form that customers can use to contact the vendors directly. Choose whether or not to show this form with the “Show contact form on Vendor template” setting.

    General Customizer Information

    As mentioned previously, these settings are specific to the active theme. So it’s best to adjust these settings with a child theme activated.

    Some settings are self-explanatory while others are a little more difficult to understand. Where necessary, the setting labels will be immediately followed by a question mark [?] that will reveal a setting description when clicked. View these descriptions to understand more about a particular setting like what it is used for or what HTML tags it will allow.

    Note: This section will only appear if Frontend Submissions is installed and activated.

    Vendd Page Templates

    As mentioned previously, there is a setting titled “Template” underneath the “Page Attributes” section on the page edit screen in your WordPress dashboard. This setting is used to control what front-end theme template any given page will use.

    Vendd comes with three default page templates that can be selected at any time. 

    Full-width Page
    This template displays full-width and uses the full site header and footer. However, it does not support a sidebar. All content entered into this page will display the full width of the content area.
    Landing Page

    This template is designed to limit distractions by narrowing the overall width of the design, removing all menus and the Information Bar, and not supporting sidebars. The Landing Page template is perfect for pages that are meant to serve one purpose only.

    Focus Page

    This template is a mix between the aforementioned templates. The overall site structure will display full-width and support a full header and footer. However, the content area is narrowed down and centered much like the Landing Page template. It does not support a sidebar. This template is perfect for login/registration forms and the like.

    When Easy Digital Downloads Is Activated

    When EDD is activated, more page templates will appear in the Template setting. While they are optional, it is recommended that you use them appropriately.

    EDD Checkout

    When you activated EDD for the first time, a checkout page was created for you with the [download_checkout] shortcode in the content. The shortcode works just fine in a regular page. However, switching that page to the EDD Checkout page template will narrow and center the checkout page content and reduce distractions so that your customers are more likely to complete their order.

     
    EDD Downloads

    EDD’s [downloads] shortcode will display your products wherever you place it as long as shortcodes are accepted. However, a grid layout of products does not always look nice everywhere. The EDD Downloads template is built to improve the display of the downloads grid and also utilizes custom settings mentioned in the Customizer section.

    EDD Members

    This template should be applied to a page that is
    not created when EDD is activated. The purpose of this template is to display information useful to your previous customizers, like download history and a profile editor. Create a new page and set its template to EDD Members to create a members area that only logged in users will be able to view. No shortcodes are necessary because they are already built into the template.

    EDD Purchase Confirmation

    This template is where customers are redirected after they have completed a purchase. When you activated EDD for the first time, this page was created for you with the [edd_receipt] shortcode in the content. This shortcode works just fine in a regular page. However, switching that page to the EDD Purchase Confirmation page template will remove all unnecessary information so that your customers are focused on their purchase details.

    EDD Purchase History

    When you activated EDD for the first time, this page was created for you with the [purchase_history] shortcode in the content. This shortcode works just fine in a regular page. However, switching that page to the EDD Purchase History page template will remove all other content from the page and center the content.

    EDD Transaction Failed

    When you activated EDD for the first time, this page was created for you with content in it explaining to the customer that his or her transaction has failed. You may use the EDD Transaction Failed page template to minimize distractions and help the customer understand what should be done next.

    When Frontend Submissions Is Activated

    When FES is activated, more page templates will appear in the Template setting. While they are optional, it is highly recommended that you use them appropriately.

    FES Dashboard

    When you activated FES for the first time, a page was created for you with the [fes_vendor_dashboard] shortcode in the content. This is the dashboard area that all vendors will use.

    This template is responsible for the designed display of the FES dashboard. When the dashboard is placed in a regular WordPress page, it can be difficult for vendors to navigate. This template structures the dashboard in a manner that improves navigation and styling.

    Again, it is highly recommended that the [fes_vendor_dashboard] shortcode is only used in pages that use the FES Dashboard page template.

    FES Vendor

    As mentioned previously, vendor information will display in the downloads grid as well as the single download page when FES is activated in order to indicate which vendor created the product. This introduces links to the vendor’s profile page and that is where the FES Vendor page template should be used.

    The vendor profile utilizes the [downloads] shortcode just like your store front. So the FES Vendor template improves the display of the downloads grid. It also adds additional content specific to the vendor including his or her avatar, profile biography, and a contact form (if the Customizer setting is checked).

    Without this page template activated, only the downloads grid will show with no vendor information or contact form. In the event the vendor page is displayed and no specific vendor is targeted in the URL, it will still show the downloads grid but will not show the additional content.

    Vendd Widgets

    By default, Vendd will output content in the sidebar of single product pages. This output will look just like widgets, though they are not widgets. If you choose not to add any widgets to the
    Download Sidebar widgetized area, the default output will display automatically.

    In the event you add one or more widgets to the Download Sidebar widgetized area, all default output will be removed and you are now in full control of the single product page sidebars. This is handy if you want to reorganize the content in your sidebar, or even add and remove content.

    Each of the sections in the default output can be replicated with actual widgets. Below you will find each default section and its

    Purchase Form

    By default, Vendd will prevent the standard purchase button from displaying below the product description’s and instead, display it in the sidebar.

    That said, if you add custom widgets to the sidebar, meaning you have now removed the default display of the purchase button, please remember to add the purchase form back so that your users can make purchases. The most direct way to do this is using the
    Download Details widget.

    When you use the
    Download Details widget to output a new purchase form, keep in mind that the widget has additional settings so you will want to customize those to your liking. This widget is native to Easy Digital Downloads and is not specific to Vendd.

    Author Information & Download Details

    Vendd comes with two built-in widgets that serve a very specific purpose. They are specific to single download pages and should only be used in the “Download Sidebar” widgetized area.

    These widgets are exact replicas of the default content shown on single download sidebars. The widgets simply exist so that if you decide to add widgets to the download sidebar, as mentioned above, you can still have the same content but arranged in a way that better fits your needs. Likewise, you can add widgets to the mix or remove widgets.

    Vendd: Download Author Widget 

    The Download Author Widget displays information about a product’s author. The widget’s options include a title field and checkbox toggling of the author’s avatar, name, author-since date, and personal links. Simply toggle the checkboxes to show or hide this information on the front-end.

    Vendd: Download Details Widget 

    The Download Details Widget displays information about the product itself. The widget’s options include a title field and checkbox toggling of the product’s publish date, sales count, categories, and tags.

    If the Software Licensing extension is activate, you also have two more options for showing whether or not the product is licensed and what its version number is.

    Downloads Cart

    You can use the Downloads Cart widget to output a store cart for the user. This widget is native to Easy Digital Downloads and is not specific to Vendd.

    Plugin Support

    Vendd is designed to support additional plugins by default. While
    Vendd is not limited to the following plugins, it has been enhanced specifically to support:

    As time goes on, more plugins may be added to the list so check back with each update.

    The post Vendd Getting Started Guide first appeared on Easy Digital Downloads.

    ]]>
    Featured Downloads https://easydigitaldownloads.com/docs/featured-downloads/ Mon, 24 Jan 2022 19:53:56 +0000 https://edd-site.lndo.site/docs/featured-downloads/ The Featured Downloads extension for Easy Digital Downloads allows you to mark specific Downloads as “featured” and then display them on your site through the use of a shortcode or template tag. Setup After you have installed and activated the Featured Downloads extension, you can find the option to make a Download “featured” by navigating

    The post Featured Downloads first appeared on Easy Digital Downloads.

    ]]>
    The Featured Downloads extension for Easy Digital Downloads allows you to mark specific Downloads as “featured” and then display them on your site through the use of a shortcode or template tag.

    Setup

    After you have installed and activated the Featured Downloads extension, you can find the option to make a Download “featured” by navigating to Downloads → All Downloads and either creating a new Download or editing an existing Download.

    Usage

    Once you’ve added all of the Downloads you want, there are two ways that you can display the Featured Downloads on your site.

    Shortcode

    Add the featured attribute to the existing [downloads] shortcode provided by Easy Digital Downloads. This will display a list of all Featured Downloads.

    [downloads featured="yes"]
    

    Template Tag

    If you’re comfortable adding custom code to your theme, the following code can be used anywhere in your theme’s files to show the Featured Downloads. Typical usage would be in single.php, page.php, or in conjunction with a conditional statement used in functions.php.

    if( function_exists( 'edd_fd_show_featured_downloads') ) { edd_fd_show_featured_downloads(); }

    Once in place, the featured downloads will be displayed on the page you’ve added either the shortcode or template tag to.

    FAQ and Troubleshooting

    How are featured products ordered?

    • If you are using the shortcode option, featured products are ordered based on your ordering settings for the shortcode. To learn more about how products are ordered when using the [downloads] shortcode in Easy Digital Downloads, view the full document for the shortcode. 
    • If you are using the custom code example above, they will be ordered based on the date the product was published. 

    The post Featured Downloads first appeared on Easy Digital Downloads.

    ]]>
    Mailchimp Setup Documentation https://easydigitaldownloads.com/docs/mailchimp-setup-documentation/ Mon, 24 Jan 2022 19:53:55 +0000 https://edd-site.lndo.site/docs/mailchimp-setup-documentation/ Mailchimp can be an extremely powerful tool for communicating with and retaining your customers. The EDD Mailchimp email marketing extension allows you to subscribe customers to specific lists for later communication. If installing on an existing EDD store, the Mailchimp extension will not add existing customers to Mailchimp. To do so, you will need to

    The post Mailchimp Setup Documentation first appeared on Easy Digital Downloads.

    ]]>
    Mailchimp can be an extremely powerful tool for communicating with and retaining your customers. The EDD Mailchimp email marketing extension allows you to subscribe customers to specific lists for later communication.

    If installing on an existing EDD store, the Mailchimp extension will not add existing customers to Mailchimp. To do so, you will need to export customers from EDD and import to Mailchimp. These email addresses should be imported as Transactional users since they have not opted in as a subscriber.

    Configuring the Mailchimp Extension

    To configure the Mailchimp extension you will need to configure its settings.

    1. Log into the WordPress Admin area
    2. Navigate to Downloads → Settings → Marketing→ Mailchimp
    3. Fill out the appropriate fields
      1. The Mailchimp API Key must be acquired from Mailchimp.com
      2. Log into the Mailchimp account you want to connect to this extension
      3. Navigate to Account | Extras | API Keys & Authorized Apps
      4. Click the “Add A Key” button
      5. (Optional) Edit the “Label” to something relevant such as “EDD Store”
      6. Copy the API Key.
    4. Return to the Mailchimp Settings in your WordPress dashboard and paste/enter the Mailchimp API key into the Mailchimp API Key field.
    5. Click the “Save Changes” button at the bottom of the page. This will allow the Mailchimp extension to retrieve the mailing lists (Audiences) from Mailchimp.
    6. Choose whether or not to “Show Signup On Checkout.” When selected, this option outputs a checkbox on the checkout page, giving the customer the option to sign up to the mailing list selected in step 13 (below).
    7. Add a short, appropriate description of the checkbox in the “Checkout Label” field. If left blank, the buyer will see “Signup for the newsletter”.
    8. Select “Double Opt-In” if you would like customers to receive a verification email before being subscribed to your mailing list.
    9. Select “Replace Interests” if you’d like your customer’s interest groups to be replaced in Mailchimp when they make a purchase. Interest Groups in Mailchimp are one way you can choose to target emails to specific customers. For example, using interest groups, you could send emails only to customers who are interested in “Product A”. The way this extension works is that if a customer purchases “Product A” from your store, their interest groups will include “Product A” alongside any other products they have purchased. But if you select the “Replace Interests” option, any other products they’ve purchased will be removed from their interest groups, as opposed to simply adding “Product A” alongside those other interests.
    10. If you want to send test (as well as non-test) purchase information to Mailchimp, check the option called “Record eCommerce Data in Test Mode”. Note that by default, purchase information is sent to Mailchimp so that you can send emails to specific customers. For example, you could send emails to “First-time purchasers” only within your Mailchimp dashboard.
    11. Connect a list (Audience)
      1. Under “Available Lists” choose which lists you’d like to connect. Only lists that have been connected can be used with Easy Digital Downloads. Click the checkbox next to each list you’d like to connect.
      2. Click “Save Changes” at the bottom of the screen. This will connect those lists from Mailchimp to your store.
      3. When the page reloads, you’ll see the lists you chose to connect listed under “Connected Lists”.
      4. Note: if you do not see any lists here, it’s possible that you haven’t created a list in Mailchimp yet. Create a list / audience there first.
    12. Choose a default list. Under “Connected Lists” the first column shows which list is the default list. This list is the one that will be used at checkout when customers choose to join the list.

    Best Practices

    The Mailchimp extension contains a number of options. Below are the recommended best practices for most stores. The EDD Mailchimp extension allows you to offer a Newsletter signup upon checkout as well as add customers to a List and/or Interest Group based on what product is purchased. Although you can connect multiple lists, for best practices it’s recommended that you only connect one list to the Mailchimp extension. Mailchimp counts the same email address added to two separate lists as two email addresses so it’s in your best interest to use a single list (in most cases).

    Default List / Newsletter Signup
    The default list selected in the Mailchimp settings has two purposes.

    • It is the list that stores all transactional data from the purchase which is used for Mailchimp’s ecommence features (ie Sending Receipts via Mailchimp) and segmenting lists.
    • The default list is the list that is used for the Newsletter signup of customer’s opt-in upon checkout. A customer will not be added to this list as a Subscriber unless they opt-in upon checkout.

    Segmenting Customers
    Most stores are interested in segmenting customers based on purchases. Since the transactional data is sent to Mailchimp, it’s recommended that you segment your lists from Mailchimp and not EDD’s Per-Product list settings. See https://mailchimp.com/help/segment-a-list-by-purchase-activity/ for details. This ensures a customer is never added to your list without opting in.

    Automatically Adding Customers based on purchase
    In some cases, stores may want to add customers to a list without requiring the customer opt-in. Please be aware that this can be illegal and/or violate GDPR, so use with caution. To avoid this, segment via Mailchimp (see above). If you require this ability, this can be done by using the Per-Product mailing list settings. These settings allow you to add customers to lists and/or Interest Groups based on the purchase of a product. It would be recommended that you use a separate list for Per-Product subscribers, separate from the Default list for your newsletter, otherwise, customers will get subscribed to your Newsletter whether they opt-in or not. See Per-product Mailing List Settings below for details on how this works.

    Per-product Mailing List Settings

    Note regarding opt-in:
    Per-product lists do not support opt-in. This means the customer will be subscribed whether they opt-in to the default list or not. Additionally, if you use the same list for your newsletter and per product list, a customer will be Subscribed even when not opting in. If this goes against your country’s GDPR practices or this is not the behavior you want, it’s recommended you segment lists via Mailchimp and not EDD or use a separate list for your download selected lists.

    You can also choose one or more Mailchimp mailing lists you’d like a customer to be subscribed to when they purchase a specific product. Do this by going to the product’s edit screen and selecting the list(s) you wish customers to be added to in the “Mailchimp” box. In this section, you can also select whether to subscribe customers to specific groups within the list. If a list has one or more groups, the group(s) will be shown as an additional checkbox that is indented below the main list name, like this:

    The per-product mailing list settings are separate from the default list setting you configured previously. The per-product mailing list settings require that the customer opt into the mailing lists during checkout by checking the signup box that you configured previously in order to add customer’s to the selected list/group.

    Note that the groups under the lists come from the groups you create for the list in your Mailchimp account. Learn more in Mailchimp’s documentation on list groups. Once you create groups, click Save Changes in the EDD Mailchimp settings to make new group data accessible to EDD.

    Add / Removing Groups

    If you add or remove groups via MailChimp, you can update the groups that appear in the per-products settings by clicking Sync Groups for the list you updated in your Mailchimp settings: Downloads → Settings → Marketing→ Mailchimp

    Syncing Ecommerce Data

    If you install this extension when you already have customers, and you’d like to get past data into your Mailchimp lists, you can use the Sync Ecommerce Data option. Go to Downloads → Settings → Marketing→ Mailchimp → Connected Lists and find the list you wish to sync.

    Clicking “Sync Ecommerce Data” will sync all of your store’s purchase data into your Mailchimp account so that you can send targeted campaigns out to specific types of customers in your shop – right from within your Mailchimp Dashboard. To learn more about Mailchimp’s targeting options based on sales data, see this document.

    Note on Syncing Ecommerce Data
    This does not import customers to Mailchimp from your EDD store; it only adds sales data to customer email addresses that already exist. For example, if User A is already on your list in Mailchimp and then makes a purchase from your store, Mailchimp will learn that User A made a purchase. This way you can target emails to “First-time purchasers” for example.

    Syncing Groups Data

    Why can’t I see my new Mailchimp lists in WordPress?
    The extension only retrieves lists from Mailchimp every 4 hours (approximately). This is to prevent your site from contacting Mailchimp too often. To force refresh your lists, go to Downloads > Settings > Marketing > Mailchimp and click Save Changes.

    FAQs

    Why are emails added as non-subscribed?

    When using the Mailchimp integration with EDD, your customer’s email address is added to all connected lists. It’s subscribed to the intended list and added as non-subscribed to the others, for e-commerce data tracking. Mailchimp explains more here. If you don’t want the non-subscribed emails, you can archive them from your account.

    Can I send abandoned cart emails via Mailchimp?

    No. The only emails that can be sent via Mailchimp in place of EDD is email receipts.

    Why aren’t users being signed-up at checkout?

    The most likely cause is the customer did not opt in via checkout. If they did not opt in, they will not be added to your list. Make sure “Show Signup on Checkout” is enabled via the EDD Mailchimp extension settings.

    If you have set up anything that causes the customer to bypass the “normal” checkout screen, they won’t be added to the ‘Checkout’ Mailchimp list based on your default Mailchimp settings. A few examples of this would be ” Buy Now” buttons via Stripe Standard, Stripe Pro, PayPal, or any other checkout-bypassing setup.

    If you are using the Free Downloads extension and you want your users to be subscribed to Mailchimp when downloading, make sure to check the “Display Opt-In” setting under Downloads → Settings → Marketing → Free Downloads.

    If my store is set to bypass the checkout screen, will customers be subscribed to the Mailchimp per-product mailing lists?

    No. A customer has to opt-in upon checkout or via Free Downloads to be added to your Mailchimp list as a Subscriber.

    Why didn’t a purchase get logged in Mailchimp?

    Usually, if one of your Mailchimp campaigns caused a user to purchase a product from your digital shop, the purchase will be logged in your Mailchimp campaign report letting you know. However, if the customer does not have the Mailchimp browser “cookie”, the purchase will not be logged in Mailchimp. Here are a few possible reasons this could happen:

    • The customer has cookies blocked in their browser
    • The customer cleared their cookies after clicking the link in your campaign
    • The customer clicked the link in your campaign but closed their browser and purchased using a direct link later
    • The customer used a different computer or browser to complete their purchase
    • Any other reason the cookie might not exist will cause the purchase to not be logged in Mailchimp.

    Integrate Free Downloads with Mailchimp to grow your Email List:

     

    The post Mailchimp Setup Documentation first appeared on Easy Digital Downloads.

    ]]>
    Recurring Payments – Subscription Emails https://easydigitaldownloads.com/docs/recurring-payments-subscription-emails/ Mon, 24 Jan 2022 19:53:54 +0000 https://edd-site.lndo.site/docs/recurring-payments-subscription-emails/ Recurring Payments has the ability to send a number of emails to customers related to events such as payments made, payments failed, and subscription cancellations. This article will cover them all, as well as how to use them. Recurring Payments emails are setup under Downloads > Emails. Use the Sender filter and select Recurring Payments from

    The post Recurring Payments – Subscription Emails first appeared on Easy Digital Downloads.

    ]]>
    Recurring Payments has the ability to send a number of emails to customers related to events such as payments made, payments failed, and subscription cancellations. This article will cover them all, as well as how to use them.

    Recurring Payments emails are setup under Downloads > Emails. Use the Sender filter and select Recurring Payments from the dropdown to only see Recurring Email.

    Click an email to edit and/or toggle the status to enable or disable each email.

    Subscription Reminder emails can be added by clicking Add New Email > Add Subscription Reminder. Multiple reminder emails can be created to remind at different periods of time. For example, 30 days before the subscription is renewed.

    None of the emails are required, each can be enabled individually.

    Note for stores using Software Licensing
    If you are using both Recurring Payments and Software Licensing, while the subscription is active, only Recurring Subscription emails are sent. See How are email notifications for license keys with subscriptions are handled? for more details.

    Email Editor

    See the email settings for details on editing emails.

    Renewal Payment Received

    This email can be sent to customers each time a recurring payment is made. The store owner can set a subject and the message body.

    Payment Failed

    This email can be sent to customers when a recurring payment fails to be processed. The store owner can set a subject and the message body.

    Subscription Cancelled

    This email can be sent to customers when their subscription is canceled. Without this email, it’s possible they may not realize it has been canceled, if it has been canceled because of payment failure, etc. The store owner can set a subject and the message body.

    Reminder Emails

    The store owner may also set up some scheduled reminder emails to go to the customer, alerting them to either impending expiration or renewals.

    Renewal Reminders can be emailed to customers as a courtesy to alert them that their renewal date is approaching.
    Expiration Reminders work exactly like Renewal Reminders but are intended to alert the customer that their subscription has expired, and include information on how they can renew.

    Emails may be scheduled with these options:

    • The day of the renewal/expiration
    • One day before renewal/expiration
    • Two days before renewal/expiration
    • Three days before renewal/expiration
    • One week before renewal/expiration
    • Two weeks before renewal/expiration
    • One month before renewal/expiration
    • Two months before renewal/expiration
    • Three months before renewal/expiration
    • One day after expiration
    • Two days after expiration
    • Three days after expiration
    • One week after expiration
    • Two weeks after the expiration
    • One month after expiration
    • Two months after the expiration
    • Three months after the expiration

    Subscription Cancelled Email for Admins

    Emails can be sent to the site owner/admin when a subscription is canceled.

    The post Recurring Payments – Subscription Emails first appeared on Easy Digital Downloads.

    ]]>
    Frontend Submissions – Shortcodes https://easydigitaldownloads.com/docs/frontend-submissions-shortcodes/ Mon, 24 Jan 2022 19:53:53 +0000 https://edd-site.lndo.site/docs/frontend-submissions-shortcodes/ Frontend Submissions includes several shortcodes for displaying the submission forms, vendor dashboard, profile form, and more. [fes_vendor_dashboard] – This will display the main Vendor dashboard. [fes_submission_form] – This will display the Vendor product submission form. [fes_profile_form] – This will display the Vendor’s profile form. [fes_login_form] – This will display a login form for Vendors [fes_registration_form] – This will display a registration

    The post Frontend Submissions – Shortcodes first appeared on Easy Digital Downloads.

    ]]>
    Frontend Submissions includes several shortcodes for displaying the submission forms, vendor dashboard, profile form, and more.

    [fes_vendor_dashboard] – This will display the main Vendor dashboard.

    [fes_submission_form] – This will display the Vendor product submission form.

    [fes_profile_form] – This will display the Vendor’s profile form.

    [fes_login_form] – This will display a login form for Vendors

    [fes_registration_form] – This will display a registration form for new Vendors.

    [fes_login_registration_form] – This will display both the vendor registration and login form together.

    [fes_vendor_contact_form] – This will display a contact form for the currently viewed vendor. A contact form for a specific vendor can be displayed with [fes_vendor_contact_form id=”32″] where 32 is the ID number of the vendor.

    The post Frontend Submissions – Shortcodes first appeared on Easy Digital Downloads.

    ]]>
    Recurring Payments – Adjusting Pricing https://easydigitaldownloads.com/docs/recurring-payments-adjusting-pricing/ Mon, 24 Jan 2022 19:53:53 +0000 https://edd-site.lndo.site/docs/recurring-payments-adjusting-pricing/ When you create a subscription, once it’s created, it’s managed by the payment gateway so EDD is limited on what changes can be made once the subscription is created. With that said, some payment gateways do allow you to make certain changes. This article covers what’s possible via Stripe and PayPal. It’s possible some of

    The post Recurring Payments – Adjusting Pricing first appeared on Easy Digital Downloads.

    ]]>
    When you create a subscription, once it’s created, it’s managed by the payment gateway so EDD is limited on what changes can be made once the subscription is created. With that said, some payment gateways do allow you to make certain changes. This article covers what’s possible via Stripe and PayPal. It’s possible some of these methods will work with other payment gateways but we can’t guarantee it nor do we have details for those payment gateways at this time.

    Note: Each of the options is different for each payment gateway. If instructions are not provided for a specific gateway, it means that option does not exist.

    Adjust the price of your subscription (for all customers):

    Subscription pricing can only be adjusted on a per customer basis, see options below.

    Decrease the price of your subscription (for a single customer):

    Stripe

    It’s possible to decrease the price of a subscription for a period of time or indefinitely, by following these steps.

    1. In Stripe, create a Coupon.
      1. For a one time discount, set the Duration to Once
      2. For a permanent price reduction, set the Duration to Forever
      3. You can also specify a specific number of months (for example 6 month price reduction).
    2. Navigate to the subscription in Stripe (Click the Profile ID in EDD’s subscription details).
    3. Click “Edit Subscription”.
    4. Click “Add coupon” to add the coupon created in Step 1.
    5. Once the price is set, click “Update Subscription”.

    The next renewal will charge at the newly adjusted rate.

    PayPal

    1. Navigate to the subscription in PayPal (Click the Profile ID in EDD’s subscription).
    2. Click “Change” at the bottom of the subscription details.
    3. Set the new price in the Amount Due option.
    4. Save when complete

    The next renewal will be charged at the newly adjusted rate.

    Increase the price of an upcoming renewal payment

    Stripe

    Stripe does allow you to alter the price of an active subscription. This is done by replacing the product added to the Stripe subscription or adding additional product(s) to the subscription to make the renewal amount the desired price. Note, the products tied to the Stripe subscription are not customer-facing, so all that matters is the final, renewal price.

    1. Navigate to the subscription in Stripe (Click the Profile ID in EDD’s subscription details).
    2. Click “Update Subscription”.
    3. Click “Add product” to add a new product. If you’ve sold your product at the new price, it will appear as an option. You could select any available product to get the desired new pricing.
    4. Remove the old product from the subscription.
    5. Deselect “Prorate charges”.
    6. Once the price is set, review the Preview Summary to confirm the next invoice amount is correct.
    7. Click “Update Subscription”.

    The next renewal charge is at the newly adjusted rate.

    PayPal

    In the event you need to increase a subscription’s price, you should be able to do so through a customer’s PayPal subscription. Please refer to PayPal support for details, but in most cases, you should be able to increase pricing by up to 20%.

    1. Navigate to the subscription in PayPal (Click the Profile ID in EDD’s subscription).
    2. Click “Change” at the bottom of the subscription details.
    3. Set the new price in the Amount Due option and/or Tax box.
    4. Save when complete.

    The next renewal will charge at the newly adjusted rate.

    Skip a renewal payment / extend a license

    Stripe

    There is not a specific option to skip a payment, however, you can add a 100% discount (duration of once or a specific number of months – see Decrease the price of your subscription above for instructions).

    Pause a subscription

    Pausing a subscription is not currently possible through EDD or directly through the payment gateway. With Stripe you can apply a coupon code for the duration that you want the pause the subscription for. Once Stripe successfully renews, the subscription and license will update. Note, this may not prevent your customer from accessing their product.


    FAQ

    Why doesn’t EDD have these features built into the plugin?

    There are a number of reasons for this. What features we can develop depends on the payment gateway’s API, and some are more limited than others. Additionally, in most cases we only include features that work for the majority of payment gateways so if a particular feature only works with one payment gateway, it will likely not get implemented. 

    The post Recurring Payments – Adjusting Pricing first appeared on Easy Digital Downloads.

    ]]>
    Frontend Submissions – Frequently Asked Questions https://easydigitaldownloads.com/docs/frontend-submissions-frequently-asked-questions/ Mon, 24 Jan 2022 19:53:52 +0000 https://edd-site.lndo.site/docs/frontend-submissions-frequently-asked-questions/ Below are questions related specifically to the Frontend Submissions extension for Easy Digital Downloads. Does Frontend Submissions work with PHP 7? Yes, starting with FES version 2.4. Why do my Vendor pages show a 404 error? Typically this can be resolved by navigating to Settings → Permalinks and click the Save Changes button. No changes

    The post Frontend Submissions – Frequently Asked Questions first appeared on Easy Digital Downloads.

    ]]>
    Below are questions related specifically to the
    Frontend Submissions extension for Easy Digital Downloads.

    Does Frontend Submissions work with PHP 7?

    Yes, starting with FES version 2.4.

    Why do my Vendor pages show a 404 error?

    Typically this can be resolved by navigating to
    Settings → Permalinks and click the Save Changes button. No changes need to be made; saving the existing settings will create the proper rewrites in most cases.

    Also, make sure that there is a Vendor page set under
    EDD FES → Settings → Forms/Pages.

    Why do I get an error while trying to upload images?

    There are a number of reasons why you may experience an error when trying to upload files through the media uploader. While not all displayed errors are detailed, we have compiled a list of possible reasons why you’ve encountered an error. Please check for the following:

    • Lack of permissions – Does the user have permission to upload files? Make sure vendor permissions have not been accidentally modified in this manner. WPBeginner has an article explaining what the necessary permissions are and how to set them.
    • Lack of memory – This is a general WordPress issue that occurs when you pass your default memory limit. To increase it, try placing define('WP_MEMORY_LIMIT', '64M'); in your wp-config.php file directly ABOVE the /* That's all, stop editing! Happy blogging. */ line.
    • Non-supported file extension – By default, WordPress only allows certain image, document, audio, and video file types. Make sure the attempted upload is of an allowed file type.
    • Upload folder permissions – Have you modified the permissions for any of your uploads directories?
    • Another plugin altering the save directory to one that isn’t supported – Check to see if you encounter the error with all other plugins deactivated except for EDD and FES.
    • Bad file name – Though rare, check your file name for abnormal characters like ' or similar.
    • PHP Version – Contact your host to see what version of PHP you’re running. You should be on at least version 5.6 for it to be compatible with WordPress.
    • Jetpack conflicts – Do you have upload errors after temporarily deactivating Jetpack? You can test by reactivating Jetpack, then toggling settings to see if an individual Jetpack module is causing the conflict.
    • Plugin that minifies the file on upload – If you have this functionality in place, try the upload process with the aforementioned functionality removed.
    • Blocking media-upload.php or admin-ajax.php – Be sure you do not have any .htaccess restrictions, caching, or security plugins/settings that block access to files necessary for the upload. Plugins, such as WP Admin No Show, that remove access to /wp-admin/ for non-administrators are frequent causes of this problem.

    Note: There is a known conflict between the “User Avatars Plugin” and FES. If you experience an image upload error, check to see if you have that plugin activated. If so, deactivate it. If you do not have it activated, temporarily deactivate all other plugins besides EDD and FES then try once more.

    Can vendors create new categories?

    Yes. By using the “Category” field type in your submission form and setting the “type” option to “Text Input”, your vendors can create categories by entering comma-separated categories upon submission. For example, they could enter “Category 1, Category 2, Category 3” into that field and categories with those names will be created upon submission.

    Can vendors access customer sales data?

    From the automatically created Vendor Dashboard, Vendors can view their products as well as sales data for their products.

    Can there be multiple submission forms?

    FES only supports one submission form at this time.

    Conditional logic for form fields?

    FES does not currently support conditional logic for form fields. This means that the state of one field cannot depend on the current state of another.

    Can I display submission form data on products page?

    FES does not currently have a template tag system for easily displaying submission form data on product pages or other pages on your site. However, this is currently being developed and will be added in a future release.

    Can I change the max upload file size limit for vendors?

    The max file size for uploads cannot be set in FES specifically. FES uses the settings that all media uploaders in your WordPress install will use, which is based on your PHP settings. You can adjust your PHP settings to create a new max file size but that means it will apply to
    all media uploaders and not just FES.

    You’d use the following code (adjust as needed) in your php.ini file:

    upload_max_filesize=128M
    

    Can I limit the number of products a vendor can submit?

    Yes, you can control the number of products a vendor can publish using Restrict Content Pro and the EDD FES Vendor Limits add-on.

    Limiting the number of products a vendor can publish

    At this time, Frontend Submissions doesn’t support this out of the box. However, you can do this using Restrict Content Pro and the free
    EDD FES Vendor Limits add-on for Restrict Content Pro.

    Google Maps Field Missing

    Google Maps was removed in FES 2.1 due to compatibility issues.

    Can I customize the Frontend Submissions templates?

    Yes, Frontend Submissions uses the same
    themeing methods that Easy Digital Downloads core uses.

    Note: There are code snippets specific to Frontend Submissions that allow for even more customizations available here.

    The post Frontend Submissions – Frequently Asked Questions first appeared on Easy Digital Downloads.

    ]]>
    All Access – Shortcodes https://easydigitaldownloads.com/docs/all-access-shortcodes/ Mon, 24 Jan 2022 19:53:51 +0000 https://edd-site.lndo.site/docs/all-access-shortcodes/ This document explains how to use the shortcodes available in the EDD All Access extension for Easy Digital Downloads. Provide All Access Pass details to customers Shortcode: [edd_aa_customer_passes] This shortcode will output a list of the customer’s All Access Passes along with all of the relevant details. We recommend putting it on their Customer account

    The post All Access – Shortcodes first appeared on Easy Digital Downloads.

    ]]>
    This document explains how to use the shortcodes available in the EDD All Access extension for Easy Digital Downloads.

    Provide All Access Pass details to customers

    Shortcode: [edd_aa_customer_passes]

    This shortcode will output a list of the customer’s All Access Passes along with all of the relevant details. We recommend putting it on their Customer account page.

    Sample output from the [edd_aa_customer_passes] shortcode:

    Once the customer clicks on “View Full Details”, they will see more details about that All Access Pass:

    Note: If the All Access Pass has a download limit, the customer will see additional information about when their download limit period expires and starts over.

    Show users how many downloads they have left

    Shortcode:  [edd_aa_download_limit]

    This shortcode will output how many downloads a pass customer has remaining and the date they expire. 

    There are three optional parameters:

    • download_id=”123,654″ allows you to specify specific All Access Downloads that you want to appear in the shortcode output. If the customer does not own the specified download, no output will appear.
    • message=”message text here”
      • %1$s is the name of the pass.
      • %2$d is the number of downloads left placeholder
      • %3$d is the total number of downloads placeholder
    • expiration=” expiration text here”
      • %1$s is the expiration date placeholder

    Shortcode example with parameters:

    [edd_aa_download_limit download_id="123" message="%1$s has %2$d of %3$d downloads remaining." expiration="Remaining downloads expire %1$s."]

    Sample output from the   [edd_aa_download_limit] shortcode:

    All Access Pass Purchase & Login buttons

    Shortcode: [edd_aa_all_access]

    This shortcode is powerful for giving your customers a great user experience. It gives you a quick and easy way to get customers to log in and/or to purchase a specific All Access Pass. It’s perfect for a page where you might be advertising an All Access Pass but also want existing All Access Pass customers to be able to log in.

    This shortcode will show one of 3 different things:

    1. Logged out: If the customer is logged out, they will see both “Login” and “Buy Now” buttons. 

    2. Logged in without access: If they are logged in but haven’t purchased the All Access Pass, they will only see the “Buy Now” button for the All Access Pass.

    3. Logged in with access: If they are logged in AND have purchased the All Access Pass, they will see a “success” message. By default that message is: 
    “You have an All Access Pass for Product X”. You can also set it up to automatically redirect them to a different page (like a “VIP Welcome” page). Alternatively, you can also have it show restricted HTML content to users who have this All Access Pass. Note: In the below example “All Access 2 Products” is the download/product name.

    This shortcode can accept the following parameters:

    • id – the ID number of the All Access download required
    • price – whether to show the product price or not. 1 to show it, 0 to hide it.
    • text – the text displayed on the Buy Now button
    • style – the style of the purchase link, either “button” or “text”
    • color– the color of the button (when using the “button” style”:
      • gray
      • blue
      • green
      • dark gray
      • yellow
    • class – one or more custom CSS classes you want applied to the All Access Buy button
    • popup_login – Whether the login form should open in a popup modal. If you want it to, use “true” here. Otherwise leave blank.
    • buy_instructions – Text Instructions above the Buy Now button. If blank this will not be shown.
    • login_instructions – Text Instructions above the Login button. If blank this will not be shown.
    • login_btn_style – the style of the login link, either “button” or “text”. Default is “text”.
    • direct – whether the purchase button should send the customer straight to PayPal or to the checkout screen.
    • preview_image – A URL to an image which will show if the user does not have access.
    • success_redirect_url – The URL the user should be directed to if they are logged in and have the All Access Pass. 
    • success_text – The message shown to a user before they are redirected when successfully logged in and purchased. By default this is “You have an All Access Pass for Product X”.

    Example usage:

    To display a log in button and a purchase button and redirect the user if they are logged in with an All Access Pass, use the shortcode like this:

    [edd_aa_all_access id="94" price_id="0" text="Add to Cart" style="button" popup_login="true" success_redirect_url="https://mywebsite.com/vip-welcome" success_text="Great! You have All Access"]

    Restricting Content using [edd_aa_all_access]

    Instead of using success_text, you can also show success content. This is perfect for single pages where you want to restrict exclusive content to All Access Pass holders. To show exclusive, restricted content to All Access Pass Holders, use the shortcode like this:

    [edd_aa_all_access id="YOUR_ALL_ACCESS_PRODUCT_ID_HERE"]
    Your restricted content goes here. It can be HTML.
    [/edd_aa_all_access]

    Restricting Content using [edd_aa_all_access] with a preview image and instructional text

    To show a preview image as well as output custom instructional messages to the user, use the shortcode like this:

    [edd_aa_all_access id="YOUR_ALL_ACCESS_PRODUCT_ID_HERE" preview_image="http://url-to-image.jpg" buy_instructions="Buy Now to unlock access" login_instructions="Already purchased? Login here to unlock access"]
    Your restricted content goes here. It can be HTML.
    [/edd_aa_all_access]

    You can also place other shortcodes into the restricted area. For example, you may wish to show a user’s purchase history in the same place they log in or buy. To do that, use something like this:

    [edd_aa_all_access id="YOUR_ALL_ACCESS_PRODUCT_ID_HERE" buy_instructions="Buy Now to unlock access" login_instructions="Already purchased? Login here to unlock access"]
    [purchase_history]
    [/edd_aa_all_access]

    Restrict Content [edd_aa_restrict_content]

    Shortcode: [edd_aa_restrict_content]

    This shortcode is very simple and can be used to output content only if the customer has a specific all access pass. It’s a simplified version of [edd_aa_all_access]. Example Usage:

    [edd_aa_restrict_content id="YOUR_ALL_ACCESS_PRODUCT_ID_HERE"]
    Restricted content goes here. It can be anything you'd like - even HTML.
    [/edd_aa_restrict_content]

    Output content for those without access to a specific pass

    Shortcode: [edd_aa_no_access_pass]

    This shortcode is very simple and can be used to output content only if the customer DOES NOT have a specific all access pass. For example, you may wish to show “sales” information only if the customer hasn’t purchased yet. Example Usage:

    [edd_aa_no_access_pass id="YOUR_ALL_ACCESS_PRODUCT_ID_HERE"]
    Sales content goes here. It can be anything you'd like - even HTML.
    [/edd_aa_no_access_pass]

    Show products included in a customer pass

    Shortcode: [downloads all_access_customer_downloads_only="yes"]

    The [downloads] shortcode (which is part of Easy Digital Downloads itself), can be modified to only show products that the customer has access to through All Access. To do so, simply add this to the shortcode: all_access_customer_downloads_only=”yes”.

    For example:

    [downloads all_access_customer_downloads_only="yes"]

    Modify [purchase_link] text for customers who own a pass

    Shortcode: [purchase_link all_access_download_now_text="Download Now"]

    The [purchase_link] shortcode (which is part of Easy Digital Downloads itself), allows you to modify the text shown to your All Access customers so that you can modify the “Download Now” text. To do so, simply add this to the shortcode: all_access_download_now_text=”Download Now”. Then, replace the “Download Now” with your own custom message.

    For example:

    [purchase_link all_access_download_now_text="YOUR CUSTOM TEXT HERE"]

    The post All Access – Shortcodes first appeared on Easy Digital Downloads.

    ]]>
    Dropbox File Store Setup Documentation https://easydigitaldownloads.com/docs/dropbox-file-store-setup-documentation/ Mon, 24 Jan 2022 19:53:49 +0000 https://edd-site.lndo.site/docs/dropbox-file-store-setup-documentation/ The EDD Dropbox File Store extension allows you to store download files in your Dropbox account. Once installed and activated, you will need to authorize the EDD Dropbox File Store app to access your Dropbox account on the Downloads → Settings → Extensions page in your WordPress dashboard. To start, click the Get Code button.

    The post Dropbox File Store Setup Documentation first appeared on Easy Digital Downloads.

    ]]>
    The
    EDD Dropbox File Store extension allows you to store download files in your Dropbox account. Once installed and activated, you will need to authorize the EDD Dropbox File Store app to access your Dropbox account on the Downloads → Settings → Extensions page in your WordPress dashboard. To start, click the Get Code button.

    A new window / tab will open on a Dropbox page that will prompt you to log in and authorize Easy Digital Downloads – File Store to access the files and folders in your Dropbox account.

    Click
    Allow and you will be provided with a code. Copy the code to your clipboard.

    Back on your WordPress site, copy the code into the text box that now appears to the right of the
    Register Code button, then click the Register Code button.

    If you would ever like to deauthorize the EDD Dropbox File Store plugin or need to reauthorize, you can do so from the same page by clicking the Remove Authorize button that will appear once you have completed the authorization process.

    Using Files in Your Dropbox Folder

    Once you have completed the setup steps above, setting up EDD to use a file in Dropbox is fairly straightforward. Go to the editor page of the Download you want to change and click the Upload a File link. You will now see two new options on the Upload Media pop-up:
    Upload to Dropbox and Dropbox Library.

    Dropbox Library

    The Dropbox Library allows you to use a file that you already saved to your Dropbox folder outside of WordPress. Clicking on the Dropbox Library option on the left of the pop-up will display the contents of your Dropbox folder starting at the root folder level.

    Navigate through your folders to find the file you want to use and click the Select button to the left of the file name.

    Upload to Dropbox

    The second option available in the Dropbox File Store extension is to upload a file from WordPress to your Dropbox account and then use that file. This option bypasses the need to put your files in your Dropbox folder outside of WordPress.

    To upload a file through WordPress, click on the Upload to Dropbox option on the Upload Media pop-up in WordPress. This will display the folder structure of your Dropbox folder along with a button to select the file you want to upload.

    Navigate to the folder you want the file saved to and click the Choose File button to select the file on your computer. Once you have selected the file, click Upload and wait while your file is uploaded to your Dropbox folder. When it is finished uploading, the pop-up will display a success message and a new Use File button.

    Click
    Use File to select the file you just uploaded as the file to use on your download.

    Please note: If there is already a file located in the folder you selected with the same name as the file you are uploading, the new file will have a number appended to it to make the filename unique. This will take the form of filename(1).ext. If you don’t wish to share the file with this name, you will need to first remove the duplicate or upload it to a different folder.

    Using Your File

    With either option, once the Upload Media pop-up closes, the details for your file will be saved as a file on your download. Click Update when you are done with your changes and your users will now download this file from your Dropbox folder.

    Downloading Dropbox Files

    The link provided to users to download their file from will expire after a period of time defined by Dropbox, currently four (4) hours. This is to prevent users from being able to share the download link with others with the intent to download the file without purchasing the download from your site first.

    Troubleshooting

    64-Bit Requirements

    The Dropbox API requires a 64-bit version of PHP running on a 64-bit server. While this requirement has been relaxed in Dropbox File Store so that you may still use the extension on a 32-bit machine, please be aware that you will receive errors if you attempt to use larger files (over 2 GB in size) if your site is not running on a 64-bit install. In addition, because of a Windows limitation, if your site is running on a Windows server, you will not be able to support file sizes over 2GB even with a 64-bit install.

    Maximum Upload Size

    WordPress and your website will have a maximum upload size, typically between 2MB and 8MB. If your files are larger than this, you will either need to change your site’s setting that controls this (typically in the php.ini file) or use the Dropbox Library option to configure your download.

    Image Upload Errors

    There are sometimes issues with uploading images to WordPress, in part due to file size constraints. Please see
    Troubleshooting Images on the WordPress Support site for further details. Saving files to your Dropbox folder outside of WordPress and using the Dropbox Library option is a workaround for issues related to image uploads.

    Registration Code Expiration

    The code provided by Dropbox during the authorization process expires after a short period of time and is only good for one authorization. If you receive an error when registering the code, you may want to try again with a new code before any further troubleshooting steps.

    Blank Screen When Getting Code

    This indicates a problem with cURL on your own server. Often cURL not installed or configured. You can test this by installing the
    Error Log Monitor plugin and looking at the log in your Dashboard after trying. Inform your system administrator or hosting provider of the problem and include the error logs you’ve saved.

    The post Dropbox File Store Setup Documentation first appeared on Easy Digital Downloads.

    ]]>
    Add To Cart Popup – Setup Documentation https://easydigitaldownloads.com/docs/add-to-cart-popup-setup-documentation/ Mon, 24 Jan 2022 19:53:48 +0000 https://edd-site.lndo.site/docs/add-to-cart-popup-setup-documentation/ The Add To Cart Popup extension adds a popup functionality to Easy Digital Downloads. When activated, after a customer clicks an ‘Add To Cart’ button, a small modal popup appears and gives them the option to go directly to the checkout page or to continue shopping. Here’s an example using the default styling of the

    The post Add To Cart Popup – Setup Documentation first appeared on Easy Digital Downloads.

    ]]>
    The
    Add To Cart Popup extension adds a popup functionality to Easy Digital Downloads. When activated, after a customer clicks an ‘Add To Cart’ button, a small modal popup appears and gives them the option to go directly to the checkout page or to continue shopping. Here’s an example using the default styling of the TwentyFifteen theme.

    Here’s how to configure the popup.

    Configuration Instructions for Add to Cart Popup

    1. Once installed, locate the settings for this extension via WordPress admin → Downloads → Settings → Extensions → Add To Cart Popup
    2. When you activate the plugin, the popup will be disabled by default. This is so you have the chance to adjust settings before activating it on your site. The popup can then be enabled by ticking the Enable Popup checkbox.

    Note: When using the “Buy Now” button feature, or the Free Downloads extension, the popup will be automatically disabled so as not to interfere with payment gateway redirections or third party popups.

    Customization

    General Appearance

    Preview Popup: This button allows you to trigger a popup while on the settings page to view your changes before you save them. You can also use the “Preview Popup” link on the Admin Bar. We added this so that you won’t have to constantly scroll back to the top of the settings page to preview the popup.

    Note that the preview might not be entirely accurate when using shortcodes since some styles might not be loaded on the WordPress Admin. It is recommended to preview on your site’s front-end when you’re done to confirm the popup’s appearance.

    Popup Text: Here you can set the text shown on the popup. If the plugin detects “%s” (without quotes) anywhere in this option’s text, it will be changed into the name of the download that the user has added to their cart. You also have the option of adding media files (such as images), embeds and even shortcodes within the popup.

    Popup Plural Text: Similar to Popup Text, this text is shown on the popup when multiple items have been added to the cart at the same time. This is typical when using variable pricing options that allow multiple options to be added simultaneously. Once again, you also have the option of adding media files (such as images), embeds and even shortcodes within the popup.

    Remember that you can expand the editor’s toolbar by clicking the right-most button on the editor!

    Font Size: This allows you to change the overall size of the font used in the popup. Various CSS formats are accepted here.

    • Pixel sizes are absolute fixed sizes. Example: 12px
    • Percentage sizes are relative to the theme’s default font size. Example: 120% (20% larger than the theme’s font size).
    • “em” values are similar to percentages, where 1em is the default font size. Example: 2em (twice as large as the default).

    Text Color: The color of the popup text. To set the color, click on the color box to reveal the color picker.

    Background Color: The color of the popup’s background. To set the color, click on the color box to reveal the color picker.

    Here’s an example with the text color set to yellow and the background color set to blue:

    Border: This option lets you style the border of the popup, which appears around the edge of the popup box. The three options are the width (or thickness), the style and the color, respectively.

    Border Radius: The radius of the border’s corners. The larger this value, the more rounded the corners will be. This also applies if you have set the border as not visible (width is zero, style is “none” or color is transparent).

    Shadow: This option lets you add a shadow to the popup by setting the shadow amount (size and thickness) and the shadow color. The example below adds a dark green shadow with a shadow amount of 15:

    Overlay Color: The term overlay refers to the color that covers the rest of page when the popup is shown. You can change its color by clicking the color box to reveal the color picker, which also includes a transparency option. The example below changes the overlay to a light semi-transparent orange:

    Popup Dimensions

    Size: Here you can control the size of the popup. Various CSS formats are accepted here, including pixels and percentages.

    • Pixel sizes are fixed sizes. Example: 500px (500 pixels on the user’s screen)
    • Percentage sizes are relative to the size of the user’s browser window. Example: 60% (60% of the user’s screen)

    If the width or height are left blank, the popup will automatically calculate them to fit the content.

    The following example demonstrates a popup with a width set to 500px and the height left blank to be automatically calculated.

    Padding: The padding refers to the spacing between the edge of the popup and its content, as shown in the following image:

    The area in green is what is referred to as the “padding”.

    Button Styles

    Button Border: The border for the buttons shown in the popup, similar to the previous Border option. You can set the thickness, style and the color of the border respectively.

    Corner Radius: The radius of the button corners. The larger this value, the more rounded the corners will be. This also applies if the button border is not visible (width set to 0, style is “none” or color is transparent).

    For example: a blue “dotted” border with a width of 5px and a corner radius of 3px:

    Button Padding: Similar to the popup Padding option, this allows you to adjust the spacing inside the button. For example, the following uses 6px top and bottom padding and 30px left and right padding.

    Button Direction: You can set the buttons to either show side-by-side horizontally, or to stack up on top of each other vertically. The default setting is horizontal.

    Button Alignment: You can choose between left, center and right alignment. Choosing either left or right will push the buttons to that respective side while choosing center will position the buttons in the center of the popup.

    Button Order: This option allows you to choose which button is displayed first. If the Button Direction is set to horizontal, then this option will determine which button is shown to the left. If the Button Direction is set to vertical, then this option will determine which button is shown on top.

    Checkout/Continue Button

    The next two sections consist of identical options that allow you to tweak the individual appearance of both buttons.

    Enabled: Choose whether to show or hide the button.

    Text: You can customize the text of each button to whatever you want.

    Text Color: The color of the text inside the button.

    Text Color on Hover: The color of the text inside the button when the mouse cursor is hovering over the button.

    Background Color: The background color of the button.

    Background Color on Hover: The background color of the button when the mouse cursor is hovering over the button.

    The following example uses white buttons with black text that change into red buttons with white text when the mouse cursor is over the button.

    The Color Picker, Explained

    The post Add To Cart Popup – Setup Documentation first appeared on Easy Digital Downloads.

    ]]>
    Software Licensing – Product Bundle Licensing https://easydigitaldownloads.com/docs/software-licensing-product-bundle-licensing/ Mon, 24 Jan 2022 19:53:48 +0000 https://edd-site.lndo.site/docs/software-licensing-product-bundle-licensing/ This document explains how to configure license key generation for bundle products with Software Licensing. For non bundle products, see the general usage documentation. All Access Consider All Access as an alternative to bundling as it allows you to activate multiple products with the same license key. When selling licensed products in a bundle, there

    The post Software Licensing – Product Bundle Licensing first appeared on Easy Digital Downloads.

    ]]>
    This document explains how to configure license key generation for bundle products with Software Licensing. For non bundle products, see the general usage documentation.

    All Access

    Consider All Access as an alternative to bundling as it allows you to activate multiple products with the same license key.

    When selling licensed products in a bundle, there are two options for how license keys can be generated:

    1. Each product in the bundle and the bundle itself receive a license key when purchased. This connects all license keys together and synchronizes the activation limit and expiration date for all license keys in the bundle. This also permits customers to renew the entire bundle at one time. Adjusting the activation limit or expiration date on the bundle updates the expiration date and activation limit on all keys in the bundle.
    2. Each product in the bundle receives a license key but the bundle does not. With this option, all activation limits and expiration dates are set separately from the individual product edit screens. Each product must be renewed separately.

    If you wish to generate license keys for bundles and keep all expiration dates and activation limits synchronized (option 1 above), continue with the instructions below. Disabling licenses on bundles will cause your bundles to behave like option 2.

    Enabling Licenses for Bundles

    To enable license key generation on bundles, which will also cause all products in the bundle to share activation limits and expiration dates, check the box in the Licensing meta box.

    Setting the activation limit and length options for the bundle will also set the limit and length for license keys generated for products in the bundle.

    If you wish to set the activation limit on a per-price option basis, you can do that by enabling Variable Pricing and configuring the Price ID’s advanced settings:

    After a bundle is purchased, license keys will show up like this:

    Clicking “View child licenses” will show this view:

    Notice how the item keys under the Bundle key are indented. This indicates that they are “child” license keys. Adjusting the activation limit or expiration date on the bundle will automatically update all child keys as well, as will renewing and disabling the license.

    NOTE: Please note that currently, Bundle (or Parent) Licenses are only useful for bulk-changing license expiration dates on the Admin/Seller side. On the customer side, they are only useful for renewals. A Bundle License can be used by the customer for renewing their Bundle purchase.

    A Bundle License cannot currently be used to activate “child” products contained in that Bundle. For activating “child” products, customers must use the license key that was generated for that specific product upon purchase.

    Renewing Bundles

    If you have license renewals enabled, bundles will also be able to be renewed at the same discount as set on the Downloads > Settings > Extensions screen.

    Bundles are renewed the same way as stand alone license keys. The customer simply adds the bundle to their cart and then enters their license key in the Renewing a License field.

    Note: if a customer attempts to renew a child license key of a bundle, the items in the cart will be automatically swapped with the appropriate bundle and the license key being renewed will be updated with the bundle’s key.

    Generating License Keys for Bundles Sold Prior to Version 3.2

    License keys for bundled products was introduced in Software Licensing version 3.2. If you have been selling bundles since before version 3.2 was released, you may wish to upgrade all past purchases to generate license keys for those bundles, making it possible for your bundle customers to easily renew their bundle purchases.

    After installing the 3.2 update, you will be presented with a notice that looks like this:

    This notice provides you with two options:

    1. Make no changes.

    If this option is selected, no changes will be made to existing bundles or past bundle purchases.

    2. After your enable licensing for bundles of your choice, generate license keys for bundles with licensing enabled.

    If this option is selected, you must first go through and configure the licensing options for each bundle product you have. This means following the directions above to enable licensing and setting the activation limit and length on all bundle products you wish to have bundle licensing.

    Once you have enabled licensing on the bundles you want, click the generate licenses for bundles with licensing enabled link.

    The post Software Licensing – Product Bundle Licensing first appeared on Easy Digital Downloads.

    ]]>
    Manually Creating Purchases https://easydigitaldownloads.com/docs/manually-creating-purchases/ Mon, 24 Jan 2022 19:53:47 +0000 https://edd-site.lndo.site/docs/manually-creating-purchases/ As of EDD 3.0, the legacy “Manual Purchases” extension is no longer needed to create orders from the admin area. This extension will be deactivated automatically upon updating to EDD 3.0+ and will not be able to be activated, as the feature is built into EDD itself going forward. Manual purchases are often used if

    The post Manually Creating Purchases first appeared on Easy Digital Downloads.

    ]]>
    As of EDD 3.0, the legacy “Manual Purchases” extension is no longer needed to create orders from the admin area. This extension will be deactivated automatically upon updating to EDD 3.0+ and will not be able to be activated, as the feature is built into EDD itself going forward.

    Manual purchases are often used if a customer pays for a product in person, or perhaps over the phone with a credit card. They can also be used to provide a complimentary copy of your product to a customer for promotional purposes or for customer support purposes. Easy Digital Downloads 3.0 allows you to easily record even these orders.

    Prior to version 3.0, it was possible to edit a payment in Easy Digital Downloads. In version 3.0, the correct way to handle this is to use the manual order creation process to create a new manual order. You can apply an adjustment or credit to offset the cost of the order you wanted to edit. This keeps accounting and reports more accurate.

    To create a new order, navigate to  Downloads > Orders and click the “Add Order” button. You can also click New > Order from the WordPress admin bar.

    Here you will see all of the options available for creating a new order.

    Add Download: Choose one or more products to include in this order. You will select the download (or download variation if the product has variable prices) and quantity. The unit price and order total will automatically be calculated for you by EDD, or you can disable the automatic total calculation when adding the download and manually set those values.

    Add Discount: If your store has registered discounts, you can select one to apply it to the order.

    Add Adjustment: Optionally add an adjustment to the order, such as a fee or a store credit.

    Customer: You may choose to associate this purchase with an existing customer or create a new customer. If taxes are enabled, you will need to select an existing address or add a new one to the order. You may be prompted to recalculate taxes after adding or changing an address.

    Order Status: Although a financial transaction is not occurring when you manually add an order, the order status for this kind of order will affect whether digital files can be delivered.

    Date: Enter the order date. If left blank, then the current date will be used.

    Gateway: Choose which payment gateway applies to the new order. The Store Gateway is ideal for free purchases, but if you are recording a transaction which was processed through a registered gateway, select it from this list.

    Key: This is a unique value identifying this order record. Usually, this will be left blank and EDD will automatically generate it.

    Transaction ID: Enter a transaction ID for the payment. If the payment was taken directly through a gateway, you could enter that transaction ID, enter a new ID for this payment, or leave it  blank.

    Send Purchase Receipt: Choose whether you’d like to send a receipt to the user once the payment is created.

    The post Manually Creating Purchases first appeared on Easy Digital Downloads.

    ]]>
    Additional Shortcodes https://easydigitaldownloads.com/docs/additional-shortcodes/ Mon, 24 Jan 2022 19:53:46 +0000 https://edd-site.lndo.site/docs/additional-shortcodes/ ‘Additional Shortcodes’ adds shortcodes to EDD that allow for showing or hiding content based on several conditions. Supported conditions: If the cart is empty If the cart contains specific products If the current user has made previous purchases If the current user has no made no previous purchases If the visitor is logged in If

    The post Additional Shortcodes first appeared on Easy Digital Downloads.

    ]]>
    ‘Additional Shortcodes’ adds shortcodes to EDD that allow for showing or hiding content based on several conditions.

    Supported conditions:

    • If the cart is empty
    • If the cart contains specific products
    • If the current user has made previous purchases
    • If the current user has no made no previous purchases
    • If the visitor is logged in
    • If the visitor is logged out
    • If the user has active licenses (Software Licensing required)
    • If the user has expired licenses (Software Licensing required)

    Basic installation and use

    Click here to download the extension. Once the extension is installed and activated you will be able to make use of the additional shortcodes (listed below).

    Note: the shortcodes need opening and closing tags. As in [shortcode]Content here[/shortcode].

    The Additional Shortcodes list

    • Show only if the cart has items in it:
      • [edd_cart_has_contents]Content Here[/edd_cart_has_contents]
    • Show only if the cart is empty
      • [edd_cart_is_empty]Content Here[/edd_cart_is_empty]
    • Show only if the cart contains any/all of the specified items
      • [edd_items_in_cart ids=”20″]Content Here[/edd_items_in_cart]
      • [edd_items_in_cart ids=”20,34,25:1″]Content Here[/edd_items_in_cart]
      • [edd_items_in_cart ids=”20,34,25:1″ match=”all”]Content Here[/edd_items_in_cart]
      • [edd_items_in_cart ids=”20,34,25:1″ match=”any”]Content Here[/edd_items_in_cart]
    • Show if the user has made previous purchases (will always be hidden if logged out)
      • [edd_user_has_purchases]Content Here[/edd_user_has_purchases]
    • Show only if the user has no purchases. Includes the ‘loggedout’ parameter to specify if logged out users should be included in seeing the content. (Default true)
      • [edd_user_has_no_purchases loggedout=true]Content Here[/edd_user_has_no_purchases]
    • Show content only if a user is logged in
      • [edd_is_user_logged_in]Content Here[/edd_is_user_logged_in]
    • Show content only if a user is logged out
      • [edd_is_user_logged_out]Content Here[/edd_is_user_logged_out]
    • Show content only if a user has purchased any of the specified download ids. Supports multiple IDs. If a download has variable pricing, you can pass just the ID for all options, or : for a specific variable pricing option.
      • [edd_user_has_purchased ids=”20,34,25:1″]Content Here[/edd_user_has_purchased]
    • Software Licensing Support:
      • Show content only if a user has active licenses
        • [edd_has_active_licenses]Content Here[/edd_has_active_licenses]
      • Show content only if user has expired licenses
        • [edd_has_expired_licenses]Content Here[/edd_has_expired_licenses]

    Ways to make use of Additional Shortcodes

    There are many ways you can make use of these additional shortcodes. You can automatically customize the content of a page for a specific user in a specific moment. This can hugely increase the chances they will convert to a customer. Here are a few examples:

    • If a visitor has a certain item in their cart, you can suggest related items to add before checkout.
    • If a visitor happens to click on their cart page, and they have not added any products, instead of just telling them ‘your cart is empty’ (which may be obvious to them) you can load products on the page. Then they can shop right from that page without having to search elsewhere or wait for another page to load.
    • If a visitor is logged in to your site, but has never purchased a product, they are demonstrating heightened intent to purchase. They are likely almost ready to purchase, they may just need a nudge. You can nudge them with a discount that is not available to the general public.

    Customizations like these can be highly effective. And they are automated, once you set them up, you don’t have to think about them again.

    The post Additional Shortcodes first appeared on Easy Digital Downloads.

    ]]>
    Software Licensing API – Example using Python https://easydigitaldownloads.com/docs/software-licensing-api-example-using-python/ Mon, 24 Jan 2022 19:53:46 +0000 https://edd-site.lndo.site/docs/software-licensing-api-example-using-python/ This document is a subset of the Software Licensing API document which lists all features available via the API. The following is example code showcasing how to implement those features with Perl. Request Python 3: import requests payload = { 'edd_action': 'activate_license', # Valid actions are activate_license, deactivate_license, get_version, check_license 'license': '', 'item_name': '', 'url':

    The post Software Licensing API – Example using Python first appeared on Easy Digital Downloads.

    ]]>
    This document is a subset of the
    Software Licensing API document which lists all features available via the API. The following is example code showcasing how to implement those features with Perl.

    Request

    Python 3:

    import requests
    
    payload = {
        'edd_action': 'activate_license',  # Valid actions are activate_license, deactivate_license, get_version, check_license
        'license': '', 
        'item_name': '',
        'url': 'domain.com' # If you have disabled URL checking in the settings, you do not need this
    }
    
    # Domain to send the request to.
    r = requests.post("https://yoursite.com/", data=payload)
    
    # Response JSON available via r.json()
    print(r.json())
    

    Python 2:

    import httplib, urllib
    
    params = urllib.urlencode({
        'edd_action' : 'activate_license', # Valid actions are activate_license, deactivate_license, get_version, check_license
        'license' : '',
        'item_name' : '',
        'url' : 'domain.com' # If you have disabled URL checking in the settings, you do not need this
        })
    
    headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
    conn = httplib.HTTPConnection("domain.com:80") # You can use 80 (http) or 443 (https)
    conn.request("POST", "/", params, headers) # /edd-sl is the Software Licensing API endpoint
    response = conn.getresponse()
    # You should check response.status for a `200` before proceeding with parsing the data for
    # a Software Licensing response
    slData = response.read()
    # slData now contains a string in JSON format, to handle with however prefer
    print slData
    conn.close()
    

    Response

    A response to the above query would be a JSON formatted string that would look something like this:

    {
    	"license": "valid",
    	"item_name": "EDD Product name",
    	"expires": "2014-10-23 00:00:00",
    	"payment_id": 54224,
    	"customer_name": "John Doe",
    	"customer_email": "john@sample.com"
    }
    

    The post Software Licensing API – Example using Python first appeared on Easy Digital Downloads.

    ]]>
    EDD Download Images https://easydigitaldownloads.com/docs/edd-download-images/ Mon, 24 Jan 2022 19:53:45 +0000 https://edd-site.lndo.site/docs/edd-download-images/ The EDD Download Images extension allows you to add additional images to your Downloads. Setup Once installed, you’ll see a new “Download Images” area when creating/editing a Download.  You can add multiple images using the Media Uploader just as you would with standard Wordpress image uploads.  Shortcode Usage You can use the following shortcode to

    The post EDD Download Images first appeared on Easy Digital Downloads.

    ]]>
    The EDD Download Images extension allows you to add additional images to your Downloads.

    Setup

    Once installed, you’ll see a new “Download Images” area when creating/editing a Download. 

    You can add multiple images using the Media Uploader just as you would with standard Wordpress image uploads. 

    Shortcode Usage

    You can use the following shortcode to display the additional images in the content area for your Download. 

    [edd_download_images]

    Custom Usage

    Second, you can output an array of the images to be used for more customized setups (custom page templates, slideshows, etc). 

    Example:

    If you are In the loop, you can use the following function to retrieve an array of images:
    edd_di_get_images() 

    This function uses the get_the_ID() function so it will only work when the WordPress loop has a post loaded.

    To retrieve the images for a specific Download ID you can use the following: 

    get_post_meta( $post_id, 'edd_download_images', true );

    Need help with customizing additional images? We recommend hiring a developer through Codeable make the custom changes you need.

    The post EDD Download Images first appeared on Easy Digital Downloads.

    ]]>
    Recently Viewed Items Documentation https://easydigitaldownloads.com/docs/recently-viewed-items-documentation/ Mon, 24 Jan 2022 19:53:44 +0000 https://edd-site.lndo.site/docs/recently-viewed-items-documentation/ The Recently Viewed Items extension allows you to show your visitors the items they’ve viewed while browsing your site, offering you an opportunity to increase your sales by showing them the items they’ve already shown interest in. Getting started is easy. Once installed and activated, the extension will display recently viewed items on single download

    The post Recently Viewed Items Documentation first appeared on Easy Digital Downloads.

    ]]>

    The Recently Viewed Items extension allows you to show your visitors the items they’ve viewed while browsing your site, offering you an opportunity to increase your sales by showing them the items they’ve already shown interest in. Getting started is easy.

    Once installed and activated, the extension will display recently viewed items on single download pages and on the checkout page by default. There’s also a widget for displaying recently viewed items in your sidebar or other widget areas that your theme supports.

    Single Download Pages

    By default, recently viewed items are displayed on single download pages. This can be changed using the extension’s settings. These settings can be found by navigating to DownloadsSettingsExtensions.

    There are two settings related to single download pages:

    Disable Display on Single Download Pages – This turns off the automatic display of recently viewed items on single product pages. This is useful if you want to do things manually, use the widget instead, or just show them only on the checkout page.

    Single Download Heading Text – Allows you to supply a custom heading above the recently viewed items.

    Checkout Page

    By default, recently viewed items are displayed on the checkout page and include an Add to Cart/Purchase button so that customers can easily add an item to the cart without leaving the checkout page. This display can be disabled in the extension’s settings.

    There are two settings related to the checkout page:

    Disable Display on Checkout – This turns off the automatic display of recently viewed items on the checkout page. This is useful if you want to minimize distractions on your checkout page, or if you’d prefer to implement an alternative display manually.

    Checkout Heading Text – Allows you to supply a custom heading above the recently viewed items.

    CSS / Styles

    The extension includes some basic styles for making sure the recently viewed items are displayed with adequate spacing, etc, but this may not look exactly the way you want on all themes. In these cases, you can disable the built-in styles and let your theme style them or provide your own custom styles. Check the Default Styles box to disable the extension’s styles.

    Widget

    The extension includes a widget for displaying recently viewed items in any widget area your theme supports. Simply add it to the desired widget area and adjust the settings to your liking.

    Customization and Developer Information

    The extension defaults to showing 3 recently viewed items on single download pages and on the checkout page which is intended to keep things clean and less distracting. If you want to change that number, or otherwise make customizations to the layout, you can override the templates used by the extension.

    Customizing Templates – To customize the templates, make a folder in your active theme called edd_templates. Copy the appropriate template from the templates folder of the extension into your edd_templates folder and make your customizations there.

    You can read more here on moving template files: https://docs.easydigitaldownloads.com/article/1216-moving-edd-templates-to-your-theme

    There are two templates included:
    edd-rvi-single.php – This is used for displaying recently viewed items on single download pages.

    edd-rvi-checkout.php – This is used for displaying recently viewed items on the checkout page.

    Customizing Image Sizes

    There are two ways to customize the size of the images shown.

    1. Customize the template using the Customizing Templates section above.

    2. Filter the size using the filters available inside the templates. Available image size filters are:

    edd_rvi_single_image_size
    edd_rvi_checkout_image_size
    edd_rvi_widget_image_size

    Example code for filtering the checkout image size:

    function custom_rvi_checkout_image_size() {
    return array( 600, 450 );
    }
    add_filter( 'edd_rvi_checkout_image_size', 'custom_rvi_checkout_image_size' );
    

    The post Recently Viewed Items Documentation first appeared on Easy Digital Downloads.

    ]]>
    All Access – Creating All Access Products https://easydigitaldownloads.com/docs/all-access-creating-all-access-products/ Mon, 24 Jan 2022 19:53:42 +0000 https://edd-site.lndo.site/docs/all-access-creating-all-access-products/ Table of Contents Creating an All Access Product All Access Downloads Page Upgrading from a Bundled Product to an All Access product This document demonstrates how to create an All Access product using the EDD All Access extension for Easy Digital Downloads. Creating an All Access product. In order to allow your customers to purchase

    The post All Access – Creating All Access Products first appeared on Easy Digital Downloads.

    ]]>
    Table of Contents

    This document demonstrates how to create an All Access product using the EDD All Access extension for Easy Digital Downloads.

    Creating an All Access product.

    In order to allow your customers to purchase an All Access Pass, you need to set one up.

    1. Create a new product by navigating to DownloadsAdd New.

    2. Enable All Access

    In the product creation screen, locate the Download Details area and select “All Access” under Product Type Options. The All Access products will appear, you may have to scroll down the page to locate the settings.

    3. Configure All Access Settings. 

    Once you’ve selected the option called “Convert this product into an “All Access” pass?” you’ll need to configure each setting.

    • All Access To: This allows you to set which products the customer can download if they purchase this All Access Pass. By leaving it blank, they will have access to all products in your store. If you choose a specific category, the customer will only have access to that category.

    Note: Adding or removing categories only applies to new sales. Passes purchased prior will not take on the updated categories. Categories can be updated for existing passes by using the Regenerate All Access Passes tool, on a per customer basis.

    • All Access Duration: This option determines how long the customer will be able to download products after purchasing this All Access Pass before it expires.

    Note: If you have the Recurring Payments extension you can set this to sync with Recurring expiration in order to expire at the end of each subscription period.

    • Download Limit: This option determines how many downloads the customer can use. By default, it is set to unlimited – which is how it works if you set the limit to 0. Once the customer uses the number of downloads you set here, they can no longer download any more products. For example, you may want to limit your customers to have 10 downloads per day/week/month/year/total.
    • Total Price Variations: This is an optional setting and does not need to be used. However, it will be useful for some stores. To understand this option, you need to understand what Price Variations are in Easy Digital Downloads. When you are creating products in Easy Digital Downloads, you can set the product to have different prices. For example, you might call them “Small”, “Medium”, and “Large”. If you want this All Access Pass to only allow the customer to download the Small and Medium price options, set this option to include the 1st and 2nd price options and leave all others unchecked. This will allow the customer to download the Small and Medium options but they will have to purchase the 3rd (Large) option.

    Note: This requires your products to all have the same price variations set up. Also, If you do not check any of the price variation checkboxes, All Access customers will have no access to any product variations. However, products without variable pricing (single price mode) will still be accessible.

    4. Configure receipt options:

    All Access products are different from a normal product in Easy Digital Downloads in that it gives access to all (or some) products on the entire store. Depending on how you’ve configured All Access, you’ll want the purchase receipt to display accordingly. You can set this up uniquely for each All Access Product. Note that receipts are shown on the Purchase Confirmation page and also in the email the customer receives after purchasing.

    • Show link to All Access?: This is where you can enable or disable the All Access link in the purchase receipt.
    • Link Message: This is the message displayed in the receipt. It defaults to “Click here to use your All Access Pass”. However, you can change it to any message you need.
    • Link URL: This is the URL the customer will be sent to when they click on the message. By default, it will direct them to log in and then automatically redirect them to the default product archive provided by Easy Digital Downloads. This way they can start using their All Access Pass. However, if you want to redirect them somewhere else for any reason, you can do so by entering that URL here.

    Creating a custom page of products the customer can download using their All Access Pass

    If you want to send your new All Access customer to a custom page which only shows them products they can download using their All Access Pass, here’s a quick and easy guide on how you can set one up.

    1. Create a new page by navigating to Pages → Add New
    2. Give the page a title like “Use your All Access Pass” or something more relevant to your store.
    3. Use the [downloads] shortcode included in Easy Digital Downloads, but include an extra attribute: all_access_customer_downloads_only=”yes”

    For example, if you simply want to show the customer all products available to them through their All Access Pass, enter this into the main text area of the page:

    [downloads all_access_customer_downloads_only="yes"]

    If you want to limit further than that, you can still use all of the normal attributes available in the [downloads] shortcode – but products will only appear if the customer actually has access to them through All Access.

    Finally, you’ll want to copy the URL (or “permalink”) of that page you’ve created and enter it under the “Link URL” option in your All Access Product.

    What do customers see if they do not have an All Access Pass?

    If the user is logged out or does not have an All Access Pass, they will be automatically prompted to purchase or log in. By default, your latest All Access enabled product will be used for the “purchase” option.


    If you wish to customize that to be a specific All Access product, this extension enables additional and optional parameters you can use with the [downloads] shortcode. These are the additional options made available by All Access:

    • all_access_download_id – the ID of the All Access product whose purchase button will be displayed to logged out users.
    • all_access_price_id – the price variation ID of the All Access product whose purchase button will be displayed to logged out users.
    • all_access_price – whether to show the product price or not. 1 to show it, 0 to hide it.
    • all_access_btn_text – the text displayed on the Purchase button
    • all_access_btn_style – the style of the purchase link, either “button” or “text”
    • all_access_btn_color – the color of the button (when using the “button” style”:
      • gray
      • blue
      • green
      • dark gray
      • yellow
    • all_access_btn_class – one or more custom CSS classes you want to be applied to the All Access Buy button
    • popup_login – Whether the login form should open in a popup modal. If you want it to, use “true” here. Otherwise, leave blank.
    • buy_instructions – Text Instructions above the Buy Now button. If blank this will not be shown.
    • login_instructions – Text Instructions above the Login button. If blank this will not be shown.
    • login_btn_style – the style of the login link, either “button” or “text”. Default is “text”.

    Example Usages:

    Here are a few examples of how you might customize the shortcode output for logged/out users (and users without a valid All Access Pass).

    Here is an example with customized buy and login instructions:

    [downloads all_access_customer_downloads_only=”yes” buy_instructions=”Purchase this to get All Access and unlock this page.” login_instructions=”If you have already purchased, simply log in!”]

    Here is an example with a specific All Access download ID used as the Purchase option for logged-out users (make sure it is an All Access enabled product ID).

    [downloads all_access_customer_downloads_only=”yes” all_access_download_id=”YOUR_PRODUCT_ID_HERE”]

    Upgrading from a Bundled Product to an All Access product

    All Access is the preferred method for bundling products as it gives more options and flexibility for the store owner. For the customer, it’s simpler due to only having a single key to manage multiple products.

    Any bundled product can be upgraded to an All Access product.

    1. Enable All Access for the bundled product and configured the All Access settings to replace the bundle.
    2. Remove the Bundled Downloads from the product.
    3. Confirm settings and test. It’s important the All Access settings are correct before the next step because they cannot be changed once applied. Either test a new purchase after saving the All Access settings and confirm a new key works as expected or configure on a staging site and test with an existing customer’s key.
    4. “Process All Access Passes” is located under Downloads → Tools. See All Access – Tools for details on using the tool.

    After running “Process All Access Passes”, the Parent License Key now works for the All Access key.

    Note: Child (or bundled) licenses will still work. Therefore, existing customers do not need to switch to the new All Access key.

    You can verify existing customers, who purchased the bundle, now have an All Access Pass by going to Customer Details, then selecting All Access Passes.

    The post All Access – Creating All Access Products first appeared on Easy Digital Downloads.

    ]]>
    Recurring Payments – Developer: EDD_Subscription https://easydigitaldownloads.com/docs/recurring-payments-developer-edd_subscription/ Mon, 24 Jan 2022 19:53:41 +0000 https://edd-site.lndo.site/docs/recurring-payments-developer-edd_subscription/ Table of Contents Properties Method Usage Object Modification Operational Methods Getting Subscription Information Subscription Conditionals Status Methods Recurring Payments comes with a new EDD class for managing subscriptions. The EDD_Subscription class allows a developer to work with subscriptions programmatically. This document will list the properties, methods, and suggested functionality of EDD_Subscription. Properties $id = 0;

    The post Recurring Payments – Developer: EDD_Subscription first appeared on Easy Digital Downloads.

    ]]>
    Table of Contents

    Recurring Payments comes with a new EDD class for managing subscriptions. The EDD_Subscription class allows a developer to work with subscriptions programmatically. This document will list the properties, methods, and suggested functionality of EDD_Subscription.

    Properties

    • $id = 0;
    • $customer_id = 0;
    • $period = ”;
    • $initial_amount = ”;
    • $recurring_amount = ”;
    • $bill_times = 0;
    • $parent_payment_id = 0;
    • $product_id = 0;
    • $created = ‘0000-00-00 00:00:00’;
    • $expiration = ‘0000-00-00 00:00:00’;
    • $status = ‘pending’;
    • $profile_id = ”;
    • $gateway = ”;
    • $customer;

    Methods

    • create( $data = array() )
    • update( $args = array() )
    • delete()
    • get_original_payment_id()
    • get_child_payments()
    • get_total_payments()
    • get_lifetime_value()
    • add_payment( $args = array() )
    • renew()
    • complete()
    • expire()
    • failing()
    • cancel()
    • can_cancel()
    • get_cancel_url()
    • can_update()
    • get_update_url()
    • is_active()
    • is_expired()
    • get_expiration()
    • get_expiration_time()
    • get_status()
    • get_status_label()
    • payment_exists( $txn_id = ” )

    Usage

    Basic Instantiation

    An “empty” EDD_Subscription object may be created with this code:

    $subscription = new EDD_Subscription();
    

    This will return an object with this structure:

    EDD_Subscription Object
    (
        [subs_db:EDD_Subscription:private] => EDD_Subscriptions_DB Object
            (
                [table_name] => wp_edd_subscriptions
                [version] => 1.0
                [primary_key] => id
            )
    
        [id] => 0
        [customer_id] => 0
        [period] => 
        [initial_amount] => 
        [recurring_amount] => 
        [bill_times] => 0
        [parent_payment_id] => 0
        [product_id] => 0
        [created] => 0000-00-00 00:00:00
        [expiration] => 0000-00-00 00:00:00
        [status] => pending
        [profile_id] => 
        [gateway] => 
        [customer] => 
    )
    
    Instantiating An Existing Subscription

    The EDD_Subscription constructor accepts 2 arguments. The first is either an integer representing a subscription ID or if the second argument is true then the first may be a subscription profile_id.

    You can find a subscription ID in the URL while viewing a subscription.

    You can find the profile ID listed when viewing a subscription.

    These two lines of code will return the same output because they refer to the same subscription:

    $subscription = new EDD_Subscription( 3 );
    
    $subscription = new EDD_Subscription( 'sub_85YmWtzABSAWN7', true );
    

    The above lines of code would each return an object like this:

    EDD_Subscription Object
    (
        [subs_db:EDD_Subscription:private] => EDD_Subscriptions_DB Object
            (
                [table_name] => wp_edd_subscriptions
                [version] => 1.0
                [primary_key] => id
            )
    
        [id] => 1
        [customer_id] => 3
        [period] => month
        [initial_amount] => 50.00
        [recurring_amount] => 50.00
        [bill_times] => 0
        [parent_payment_id] => 87
        [product_id] => 85
        [created] => 2016-03-15 15:36:30
        [expiration] => 2016-04-15 23:59:59
        [status] => pending
        [profile_id] => paypal-363e3cc178dab152bb59b958024bce75
        [gateway] => paypal
        [customer] => EDD_Customer Object
            (
                [id] => 3
                [purchase_count] => 3
                [purchase_value] => 110.000000
                [email] => user@example.com
                [name] => Bob Smith
                [date_created] => 2016-03-08 15:01:02
                [payment_ids] => 54,63,87,88,91
                [user_id] => 2
                [notes] => Array
                    (
                        [0] => March 16, 2016 14:37:22 - Subscription #3 cancelled admin
                    )
    
                [db:protected] => EDD_DB_Customers Object
                    (
                        [table_name] => wp_edd_customers
                        [version] => 1.0
                        [primary_key] => id
                    )
    
            )
    
    )
    

    Object Modification

    Using the included methods, almost anything may be done with a subscription.

    Unless otherwise stated, every method example given will use this instantiation model:

    $subscription = new EDD_Subscription();
    

    Operational Methods

    EDD_Subscription includes methods for creating, deleting, updating, and renewing subscriptions, as well as adding payments.

    $subscription->create()

    In order to properly create a subscription, you need to pass in some information. These items are required:

    $data = array(
        'customer_id'       => 0, // an integer, should be a valid customer_id
        'period'            => '', // accepts 'day', 'week', 'month', or 'year'; how often the subscription renews
        'initial_amount'    => '', // accepts a float
        'recurring_amount'  => '', // accepts a float
        'bill_times'        => 0, // accepts an integer; the number of times billing should happen, 0 means indefinite
        'parent_payment_id' => 0, // accepts an integer; the payment id returned by the initial payment
        'product_id'        => 0, // accepts an integer; the id of the product
        'created'           => '', // accepts a date string; formatted like 0000-00-00 00:00:00
        'expiration'        => '', // accepts a date string; formatted like 0000-00-00 00:00:00
        'status'            => '', // accepts 'Pending', 'Active', 'Cancelled', 'Expired', 'Failing', 'Completed'
        'profile_id'        => '', // accepts a string returned by the payment gateway as their subscription ID
    );
    

    Then you can call the create() method with that information.

    $subscription->create( $data );
    

    The create() method returns an object with the same data you would get by querying a specific subscription ID.

     
    $subscription->update()

    Updating a subscription uses the update() method any subset of the array options used for the create() method. The update() method also requires a subscription ID. Something like this would work:

    $data = array(
        'expiration' => '2019-07-17 23:59:59',
    );
    $subscription->update( $data );
    
     
    $subscription->delete()

    The delete() method accepts a subscription ID and permanently removes the subscription from the EDD store. Note that this does not affect subscriptions registered on Payment Gateways. Those should be handled individually.

    $subscription->renew()

    This method renews a subscription, extending it by one period beyond the current expiration date.

    $subscription->add_payment( $args = array() )

    This method allows you to make a payment. it accepts an array and requires these three array elements:

    • amount: the amount of money being paid
    • transaction_id: the transaction ID of the subscription from the payment gateway. Example: ‘ch_17q04L4NqFpaKRwY8ucZjW3t’
    • gateway: the payment gateway used for the subscription. Example: ‘stripe’

    Upon success add_payment() returns true.

    Getting Subscription Information

    EDD_Subscription provides a number of methods for getting information about a subscription.

    $subscription->get_original_payment_id()

    This method returns an integer that is the ID of the original payment. In the User Interface, this Payment can be found under Downloads → Payment History.

    $subscription->get_child_payments()

    The method returns an array of EDD_Payment objects where each object is a child payment. The objects will look something like this:

    Array
    (
        [0] => EDD_Payment Object
            (
                [ID] => 1111111
                [_ID:protected] => 1111111
                [new:protected] =>
                [number:protected] => 1111111
                [mode:protected] => live
                [key:protected] => 8d6f842jkf66cb6312117b9ad417dc6be
                [total:protected] => 57.4
                [subtotal:protected] => 57.4
                [tax:protected] => 0
                [discounted_amount:protected] => 0
                [tax_rate:protected] =>
                [fees:protected] => Array
                    (
                    )
    
                [fees_total:protected] => 0
                [discounts:protected] => samplediscount
                [date:protected] => 2018-05-17 06:40:29
                [completed_date:protected] =>
                [status:protected] => edd_subscription
                [post_status:protected] => edd_subscription
                [old_status:protected] =>
                [status_nicename:protected] => Renewal
                [customer_id:protected] => 111111
                [user_id:protected] => 1nan1
                [first_name:protected] => Bob Smith
                [last_name:protected] => Smith
                [email:protected] => user@example.com
                [user_info:EDD_Payment:private] => Array
                    (
                        [first_name] => Bob Smith
                        [last_name] => Smith
                        [discount] => samplediscount
                        [id] => 1nan1
                        [email] => user@example.com
                        [address] => Array
                            (
                                [line1] =>
                                [line2] =>
                                [city] =>
                                [country] =>
                                [state] =>
                                [zip] =>
                                [vat] =>
                                [notes] =>
                            )
    
                    )
    
                [payment_meta:EDD_Payment:private] => Array
                    (
                        [key] => 8d6f842jkf66cb6312117b9ad417dc6be
                        [email] => user@example.com
                        [date] => 2018-05-17 06:40:29
                        [user_info] => Array
                            (
                                [first_name] => Bob Smith
                                [discount] => samplediscount
                                [id] => 1nan1
                                [email] => user@example.com
                                [address] => Array
                                    (
                                        [line1] =>
                                        [line2] =>
                                        [city] =>
                                        [country] =>
                                        [state] =>
                                        [zip] =>
                                        [vat] =>
                                        [notes] =>
                                    )
    
                            )
    
                        [downloads] => Array
                            (
                                [0] => Array
                                    (
                                        [id] => 1234
                                        [quantity] => 1
                                        [options] => Array
                                            (
                                                [quantity] => 1
                                                [price_id] => 0
                                            )
    
                                    )
    
                            )
    
                        [cart_details] => Array
                            (
                                [0] => Array
                                    (
                                        [name] => Sample Product
                                        [id] => 1234
                                        [item_number] => Array
                                            (
                                                [id] => 1234
                                                [quantity] => 1
                                                [options] => Array
                                                    (
                                                        [quantity] => 1
                                                        [price_id] => 0
                                                    )
    
                                            )
    
                                        [item_price] => 57.4
                                        [quantity] => 1
                                        [discount] => 0
                                        [subtotal] => 57.4
                                        [tax] => 0
                                        [fees] => Array
                                            (
                                            )
    
                                        [price] => 57.4
                                    )
    
                            )
    
                        [fees] => Array
                            (
                            )
    
                        [currency] => USD
                    )
    
                [address:protected] => Array
                    (
                        [line1] =>
                        [line2] =>
                        [city] =>
                        [country] =>
                        [state] =>
                        [zip] =>
                        [vat] =>
                        [notes] =>
                    )
    
                [transaction_id:protected] => 7M999999999999999
                [downloads:protected] => Array
                    (
                        [0] => Array
                            (
                                [id] => 1234
                                [quantity] => 1
                                [options] => Array
                                    (
                                        [quantity] => 1
                                        [price_id] => 0
                                    )
    
                            )
    
                    )
    
                [ip:protected] => 192.168.1.1
                [gateway:protected] => paypalexpress
                [currency:protected] => USD
                [cart_details:protected] => Array
                    (
                        [0] => Array
                            (
                                [name] => Sample Product
                                [id] => 1234
                                [item_number] => Array
                                    (
                                        [id] => 1234
                                        [quantity] => 1
                                        [options] => Array
                                            (
                                                [quantity] => 1
                                                [price_id] => 0
                                            )
    
                                    )
    
                                [item_price] => 57.4
                                [quantity] => 1
                                [discount] => 0
                                [subtotal] => 57.4
                                [tax] => 0
                                [fees] => Array
                                    (
                                    )
    
                                [price] => 57.4
                            )
    
                    )
    
                [has_unlimited_downloads:protected] =>
                [pending:EDD_Payment:private] => Array
                    (
                    )
    
                [parent_payment:protected] => 830936
            )
    )
    
    $subscription->get_total_payments()

    This method returns an integer that is a count of the total number of payments made, including the initial payments plus all child payments.

    $subscription->get_lifetime_value()

    This method returns a float that is the monetary total of all payments ever made.

    $subscription->get_cancel_url()

    This method will return a URL for cancelling a subscription that gets processed by the gateway through which the subscription was purchased.

    $subscription->get_update_url()

    This method will return a URL for updating a subscription that gets processed by the gateway through which the subscription was purchased.

    $subscription->get_expiration()

    Returns the date and time that the subscription will expire in this format:

    2016-04-15 23:59:59
    
    $subscription->get_expiration_time()

    This method returns an integer that is a Unix timestamp of the expiration.

    $subscription->get_status()

    This method returns the current status of a subscription in format useful for code. Options are ‘pending’, ‘active’, ‘cancelled’, ‘expired’, ‘failing’, ‘completed’.

    $subscription->get_status_label()

    This method returns the current status of a subscription in format useful for presentation. Options are ‘Pending’, ‘Active’, ‘Cancelled’, ‘Expired’, ‘Failing’, ‘Completed’.

    Subscription Conditionals

    EDD_Subscription offers a number of conditional methods.

    $subscription->can_cancel()

    This method returns boolean and is filtered by payment gateways in order to return true on subscriptions that can be cancelled with a profile ID through the merchant processor.

    $subscription->can_update()

    This method returns boolean and is filtered by payment gateways in order to return true if the subscription can have its payment method updated. It is only for determining if a payment method may be updated.

    $subscription->is_active()
    This method returns boolean, and is true if the subscription is not expired
    and the status is
    either ‘active’ or ‘cancelled’.
     
    $subscription->is_expired()
    This method returns boolean, and is true if the subscription is expired.
    $subscription->payment_exists( $txn_id = ” )

    This method accepts a transaction ID that has been created by a payment gateway. Here’s an example of a subscription transaction ID from Stripe:

    ch_17q04L4NqFpaKRwY8ucZjW3t
    

    This method returns boolean, true if it finds a transaction with the provided ID.

    Status Methods

    EDD_Subscription includes several methods for changing the status of a subscription.
    $subscription->complete()

    This method changes the status of a subscription to ‘complete’.

    $subscription->expire()

    This method changes the status of a subscription to ‘expired’.

    $subscription->failing()

    This method changes the status of a subscription to ‘failing’.

    $subscription->cancel()

    This method changes the status of a subscription to ‘cancelled’.

    The post Recurring Payments – Developer: EDD_Subscription first appeared on Easy Digital Downloads.

    ]]>
    Recurring Payments – Setup & Overview https://easydigitaldownloads.com/docs/recurring-payments-setup-overview/ Mon, 24 Jan 2022 19:53:40 +0000 https://edd-site.lndo.site/docs/recurring-payments-setup-overview/ Recurring Payments make it possible for your customers to purchase subscriptions via your EDD store. A subscription product is simply a normal product with the recurring subscription setting enabled. This documentation provides instructions on how to create, sell and manage subscription products. Table of Contents Requirements Setup Download Settings Single Priced Products Variable Priced Products

    The post Recurring Payments – Setup & Overview first appeared on Easy Digital Downloads.

    ]]>
    Recurring Payments make it possible for your customers to purchase subscriptions via your EDD store. A subscription product is simply a normal product with the recurring subscription setting enabled. This documentation provides instructions on how to create, sell and manage subscription products.

    Once the extension is installed and activated, Downloads will have Recurring options in the Pricing Options.

    You may enable recurring payments for any existing product that you are selling, but it will have no impact on existing sales – the changes will apply only to future purchases. If your product requires customers to repurchase, a subscription will be created upon the next purchase.

    Requirements

    • The gateway used at checkout must support Recurring Payments. A list of supported gateways can be found here.
    • Follow the specific setup process for your gateway. Failing to do so will cause problems at the time of renewal.
      • Stripe (Standard or Pro)
      • PayPal (Standard or Pro)
      • Authorize.net
      • For 3rd Party gateways that support recurring payments, refer to the developer for specific documentation.
    • Purchases that contain a recurring product require customers to create an account at checkout or be logged in. Auto Register can be used to streamline the account creation process at checkout.

    Setup

    1. Navigate to a new or existing Download product: Download → All Downloads → Add New (or Edit)

    2. Within the Download Prices section, set Recurring to Yes. Once the product is updated, a subscription will be created upon purchase.

    Recurring Product Settings

    Price
    Amount applied to the initial and recurring payments.

    Period
    How often do renewals occur? Options are Daily, Weekly, Monthly, Quarterly, Semi-Yearly, and Yearly.

    Times
    This specifies how many payments should occur. 0 is default and allows the subscription to run indefinitely until the store or customer cancels.

    The number chosen includes the initial payment on checkout. Once the set number of payments occurs, EDD will set the subscription status to “Completed” and cancel the subscription at the payment gateway.

    This is typically used if you want to offer a payment plan.

    Note: A value of 1 is not supported.

    Signup Fee
    A one-time signup fee to be charged upon checkout.

    Negative Signup Fees
    If the signup fee is a negative number it will actually discount the initial payment. For example, let’s say you have a $10/mo subscription. Normally the first payment of $10 is due immediately. If you set a signup fee of -5, the first payment would be $5.

    Negative Signup Fees should not be set to match the recurring price of the product, which would result in an initial payment of $0.00. A cart total of $0.00 will not send the customer to a payment processor regardless of your available payment methods. EDD will treat the cart as free and upon completion of the transaction, the customer will receive access to the product with a subscription created in EDD only. The customer will not be charged for the product at all during the subscription term. A minimum subscription amount is always required. That amount depends on the payment processor. For example, Stripe will require a minimum of $0.50 for a subscription to be valid. Please refer to the knowledge base of your chosen payment processors to confirm the amounts.

    Enable free trial for subscriptions

    Check this box to include a free trial with subscriptions for this product. When signing up for a free trial, the customer’s payment details will be taken at checkout but the customer will not be charged until the free trial is completed.

    Note: This only applies when purchasing a subscription. If a price option is not set to recurring, this free trial will not be used.

    Here is an example of how purchasing a free trial appears during checkout:

    If a customer does not wish to continue using your product or service, they can cancel the subscription at any time during or after the free trial. By adding the [edd_subscriptions] shortcode to a page accessible by the customer, they will then have the option to cancel a subscription if needed.

    Single Priced Products

    When you create a new product or edit an existing one, look next to the pricing field for the recurring settings:

    Variable Priced Products

    Recurring Payments supports variable-priced products. Variable options can include recurring and/or single purchase options within the same product.

    Click “Show advanced settings” to see the Recurring Payment settings within the Price ID settings.

    Recurring Payments Settings

    Recurring Payments settings are located under Downloads → Settings → Payments → Recurring Payments:

    Limit File Downloads
    Check this if you’d like to require users have an active subscription in order to download files associated with a recurring product.

    Allow “Completed” subscriptions to download files
    Enable to allow users with “Completed” subscriptions to be able to download their files, despite their subscription technically not being “Active”. This applies to subscriptions with the “Times” options set to a non-zero value.

    Display Subscription Terms
    When selected, the billing times and frequency will be shown below the purchase link.

    Display Signup Fee
    When selected, any signup fee associated with a subscription will be shown below the purchase link.

    Signup Fee Label
    This is shown on checkout and on individual purchase options if “Display Signup Fee” above is checked.

    Cancel Subscription Text
    This text is shown to the customer when managing their subscriptions.

    One Time Discounts
    By default discount codes will apply to both the initial and recurring payments. Check this if you’d like discount codes to apply only to the initial subscription payment and not all payments.

    Note:

    • One Time Discounts are not supported with Discounts Pro. Whether settings is enabled or disabled, Discounts Pro discounts will apply to both initial and renewal payments.
    • One-time discount codes will not apply to free trials. For free trials, discount codes will always apply to all payments made for the subscription.

    One Time Trials
    Check this if you’d like customers to be prevented from purchasing a free trial multiple times.

    Email Settings
    Detailed Recurring email settings can be found here.

    Managing Subscriptions

    Subscriptions can be managed by the store owner and customers. See Managing Subscriptions for details on how this works.

    Troubleshooting / FAQs

    See Common Questions and Problems doc for more Recurring Payments FAQs.

    Why can’t I disable or change the Free Trial length in Variable Options?

    Most likely a Free Trial was enabled prior to enabling variable options. To fix this, first, disable Variable pricing on the product, then disable the “free trial” option, then re-enable Variable pricing. Example below:

    What’s the renewal date after the first payment when the trial ends?

    After the trial ends and the first payment is collected, the new renewal date will be based on the date of payment and not the date the trial started. For example, if you have a monthly subscription and a 7 day trial. Once the trial ends, the new renewal date will be one month from the date of the payment.

     

    The post Recurring Payments – Setup & Overview first appeared on Easy Digital Downloads.

    ]]>
    Software Licensing – Updater Implementation for WordPress Themes https://easydigitaldownloads.com/docs/software-licensing-updater-implementation-for-wordpress-themes/ Mon, 24 Jan 2022 19:53:39 +0000 https://edd-site.lndo.site/docs/software-licensing-updater-implementation-for-wordpress-themes/ With the Software Licensing extension for Easy Digital Downloads you can set up automatic upgrades for themes. This does not mean that your customer’s theme will update itself but rather that your customer may update their theme using the traditional WordPress update tools, as if the theme were hosted on WordPress.org. Setup In your Software

    The post Software Licensing – Updater Implementation for WordPress Themes first appeared on Easy Digital Downloads.

    ]]>
    With the Software Licensing extension for Easy Digital Downloads you can set up automatic upgrades for themes. This does not mean that your customer’s theme will update itself but rather that your customer may update their theme using the traditional WordPress update tools, as if the theme were hosted on WordPress.org.

    Setup

    In your Software Licensing extension is a directory called /samples/edd-sample-theme/updater/. This folder needs to be copied into your theme’s main folder.

    Then place the following code into your theme’s functions.php:

    /**
     * Load theme updater functions.
     * Action is used so that child themes can easily disable.
     */
    
    function prefix_theme_updater() {
        require( get_template_directory() . '/updater/theme-updater.php' );
    }
    add_action( 'after_setup_theme', 'prefix_theme_updater' );
    

    Please change the prefix to something that matches your theme. This code includes the updater code.

    Configure Updater

    Edit /updater/theme-updater.php and put in the proper values for these array elements:

    $config = array(
        'remote_api_url' => 'https://easydigitaldownloads.com', // Site where EDD is hosted
        'item_name'      => 'Theme Name', // Name of theme
        'theme_slug'     => 'theme-slug', // Theme slug
        'version'        => '1.0.0', // The current version of this theme
        'author'         => 'Easy Digital Downloads', // The author of this theme
        'download_id'    => '', // Optional, used for generating a license renewal link
        'renew_url'      => '', // Optional, allows for a custom license renewal link,
        'beta'           => false, // Optional, set to true to opt into beta versions
        'item_id'        => '', // The ID of the download on the storefront site
    ),
    

    Additionally, in the same file, change the edd-theme-updater text-domain to match that of your theme. Example:

        // Strings
        $strings = array(
            'theme-license'             => __( 'Theme License', 'edd-theme-updater' ),
    

    Packaging and Sale

    Your theme should be zipped just like any other theme, there’s no difference. Then create a new Download in Easy Digital Downloads.

    Complete everything as you would a normal product, uploading your theme and giving it a price etc.

    Then be sure to check the box to enable licensing. This is key to the update process.

    Most of the settings in the Licensing meta box can be set to whatever you like, but the version number is important. When you increment the version number it will alert your customer’s sites that there’s a new version. For your initial version pick something and then only make it larger when it’s time for a new version. Example: start at 1.0 and then only go to 1.1 when you want everyone to get a new version.

    Updating your theme

    When you choose to release a new version, replace the old file with the new one. Then enter some text into the Changelog field in the Licensing meta box. Lastly, increment the version number and save the download. Then your customer’s sites will be notified that there’s a new version, and they will be able to click Update.

    Beta versions

    As of version 3.5 of Software Licensing, it is possible to release beta versions of your theme. See the documentation on how to release beta versions.

    In order for customers to receive beta version notifications, ‘beta’ => true must be supplied in the $config array shown above. If you wish for your customers to have a way to opt into beta version, you will need to supply an interface for that. We recommend adding a checkbox to your theme settings page that allows customers to opt into beta versions. You can then set the beta flag in the config array dynamically based on the checked state of that checkbox.

    Important notes

    • The code shown on this page is purely for demonstrative purposes and is not meant to be used as is. Do not copy and paste it into your plugin and expect it to work as is.
    • All function names added to your plugin need to get a unique prefix. We have used edd_sample_ throughout this example. Do not keep edd_sample_ in your own plugin, replace it with your own unique prefix.
    • The names of the constants must be changed. Do not keep them as EDD_SL_ITEM_ID and EDD_SL_STORE_URL. Use your own unique constants.
    • If you have issues with SSL verification when requesting updates, you can use the `edd_sl_api_request_verify_ssl` filter to disable the SSL Verification flag.

    Updating Child Themes

    When using automatic updating with EDD’s Software Licensing you must have an /updater/ folder in your theme folder, and it must contain a theme-updater-class.php file.

    For child themes that theme-updater-class.php file needs a minor adjustment. On line 24 you’ll find 'theme_slug' => get_template(),

    get_template() must be changed to get_stylesheet() for Child Themes, so that it looks like this:

    Inside your child theme functions.php file you will also have to make a change:

    function prefix_theme_updater() {
        require( get_template_directory() . '/updater/theme-updater.php' );
    }
    add_action( 'after_setup_theme', 'prefix_theme_updater' );
    

    Change get_template_directory to get_stylesheet_directory

    The post Software Licensing – Updater Implementation for WordPress Themes first appeared on Easy Digital Downloads.

    ]]>
    Content Restriction Documentation https://easydigitaldownloads.com/docs/content-restriction-documentation/ Mon, 24 Jan 2022 19:53:39 +0000 https://edd-site.lndo.site/docs/content-restriction-documentation/ The Content Restriction extension for Easy Digital Downloads adds a section to the edit screen of your posts, pages, custom post types, and bbPress forums / topics called Content Restriction. This section allows you to specify the products that customers need to have purchased in order to access the content. Restricting Content Once activated, Content

    The post Content Restriction Documentation first appeared on Easy Digital Downloads.

    ]]>
    The Content Restriction extension for Easy Digital Downloads adds a section to the edit screen of your posts, pages, custom post types, and bbPress forums / topics called Content Restriction. This section allows you to specify the products that customers need to have purchased in order to access the content.

    Restricting Content

    Once activated, Content Restriction provides two ways to restrict access to content:

    1. By restricting the whole page or post using the “Content Restriction” settings within the post or page.
    2. Using the [edd_restrict] shortcode.

    Content Restriction uses an OR condition for the products, so if you select Product X and Product Y, the content will be accessible to customers that have purchased Product X or whom have purchased Product Y.

    You can also restrict content to verified customers of any product in your store by selecting the Any option. Note: This is specific to the shortcode restriction option.

    Integrating with Recurring Payments:
    You can restrict access to content if the Download is tied to a Subscription. See Recurring Payments – Content Restriction Integration for details.

    Integrating with Software Licensing:
    If the Download contains a license key, you can further restrict access to only active license keys. When enabled, this doesn’t affect access to selected downloads that don’t have Software Licensing enabled.

    Restricting the full page / post

    Restrict the full page or post using the Content Restriction settings below the content editor.

    1. Select “Restrict this page” to view options.
    2. In the Download dropdown, select a specific download or “Customers who have purchased any Download”.
    3. If the Download contains variations, you can select a specific variation or “All prices” in the “Download Variation” column.
    4. Additional Downloads can be added using the “Add New Download” button.

    Shortcode

    Also included in the plugin is a short code that will allow you to restrict portions of content. For example, to restrict a paragraph to only buyers of a specific download, you can do this:

    [edd_restrict id="#"]This content is restricted.[/edd_restrict]
    

    The # is replaced with the ID number of the Download product.

    The short code accepts three parameters:

    • id – This is a comma separated list of download ID numbers. Note that you can also put the word “any” to allow any purchase.
    • price_id – This is the ID number of the price you want to restrict content to
    • message – This is the text shown to non-buyers

    If you want to restrict content to buyers of multiple downloads, you can use the shortcode like this, which will result in the content being restricted to download ID 23 or 254:

    [edd_restrict id="23,254"]This content is restricted.[/edd_restrict]
    

    If you would like to restrict a download to a particular price ID, then use:

    [edd_restrict id="23" price_id="2"]This content is restricted.[/edd_restrict]
    

    Note: To find the price ID, go to your download and count down from the top of your price options. The first price option is ID=1, the second is ID=2, and so on.

    If you would like to restrict a download to any product purchased, do the following:

    [edd_restrict id="any"]This content is restricted.[/edd_restrict]
    

    There is also a shortcode you can use to show content to someone who has not purchased a specific product. You can use it the same way as the shortcode above. The shortcode is “edd_cr_no_access” and can be used like this:

    [edd_cr_no_access id="#"]Preview of locked content here[/edd_cr_no_access]
    

    Displaying Accessible Restricted Pages After Purchase

    When you have posts, pages, or custom post types restricted to products, a list of these pages will be automatically displayed on the purchase confirmation page in order to make it nice and simple for your customers to find the content they have just purchased access to.

    You can also add the {page_list} template tag to the email purchase receipt in order to show the list in the emailed receipt.

    You can also place the [edd_restricted_pages] short code on any page in order to display a list of the posts and pages the logged in customer has access to.

    Settings

    The global Content Restriction settings are located under Downloads → Settings → Extensions → Content Restriction.

    Hiding Menu Items: Content Restriction allows you to hide navigation menu items from customers that have not purchased the necessary products in order to view the content. With this item checked, any navigation menu item that the customer does not have access to will be automatically removed from your site’s menus when that customer is logged in.

    Include Bundled Products: In enabled, products included within a bundle will be considered purchased when determining Content Restriction access rights.

    Single, Multiple & Any Product Messages: Use these fields to edit the messaging that appears to visitors that don’t have access to restricted content.

    Frequently Asked Questions

    How does the {page_list} email template tag order the unlocked pages?

    The pages shown when using {page_list} are ordered based on the order that the items were added to the cart by the customer. If there are multiple pages that get unlocked because of a specific product being purchased, the order in which you’ve set up those restrictions is the order in which they are shown from there.

    Here’s an example to help illustrate the order:

    – You create “Page 1” and set it to be restricted to “Product A” on Jan 1, 2017.
    – You create “Page 2” and set it to be restricted to “Product A” on Jan 2, 2017.
    – You create “Page 3” and set it to be restricted to “Product B” on Jan 3, 2017.

    If the customer puts “Product b” into their cart first, and then adds “Product a” after that, and then completes purchase, the order that {page_list} will show pages in will be:

    – Page 3
    – Page 1
    – Page 2

    The post Content Restriction Documentation first appeared on Easy Digital Downloads.

    ]]>
    Software Licensing API – Example using JavaScript https://easydigitaldownloads.com/docs/software-licensing-api-example-using-javascript/ Mon, 24 Jan 2022 19:53:38 +0000 https://edd-site.lndo.site/docs/software-licensing-api-example-using-javascript/ This document is a subset of the Software Licensing API document which lists all features available via the API. The following is example code showcasing how to implement those features with JavaScript. If you’re using jQuery, see our jQuery example. Sample GET Request const url = new URL( 'https://yoursite.com/' ); // Site with Software Licensing

    The post Software Licensing API – Example using JavaScript first appeared on Easy Digital Downloads.

    ]]>
    This document is a subset of the Software Licensing API document which lists all features available via the API. The following is example code showcasing how to implement those features with JavaScript.

    If you’re using jQuery, see our jQuery example.

    Sample GET Request

    const url = new URL( 'https://yoursite.com/' ); // Site with Software Licensing activated.
    const urlParams = new URLSearchParams( {
    	edd_action: 'check_license',
    	license: '59cc77ea94a2d867069a9d96142a35b8', // License key
    	item_id: '356', // Product ID
    	url: 'domain.com' // Domain the request is coming from.
    } );
    url.search = urlParams.toString();
    fetch( url.toString() )
    	.then( response => {
    		if ( response.ok ) {
    			return response.json();
    		} else {
    			return Promise.reject( response );
    		}
    	} ).then( data => {
    		// Software Licensing has a valid response to parse
    		console.log( 'Successful response', data );
    	} ).catch( error => {
    		// Error handling.
    		console.log( 'Error', error );
    	} );
    

    Sample POST Request

    const formData = new FormData();
    formData.append( 'edd_action', 'check_license' ); // Valid actions are activate_license, deactivate_license, get_version, check_license
    formData.append( 'license', '59cc77ea94a2d867069a9d96142a35b8' ); // License key
    formData.append( 'item_id', '356' ); // Product ID
    formData.append( 'url', 'domain.com' ); // If you disable URL checking you do not need this entry.
    
    // Site with Software Licensing activated.
    fetch( 'https://yoursite.com/', {
    	method: 'POST',
    	body: formData
    } ).then( response => {
    	if ( response.ok ) {
    		return response.json();
    	} else {
    		return Promise.reject( response );
    	}
    } ).then( data => {
    	// Software Licensing has a valid response to parse
    	console.log( 'Successful response', data );
    } ).catch( error => {
    	// Error handling.
    	console.log( 'Error', error );
    } );
    

    Response

    A response to the above queries would be a JSON object that would look something like this:

    {
        "success": true,
        "license": "valid",
        "item_id": 12534,
        "item_name": "Your Product Name",
        "expires": "2022-02-26 23:59:59",
        "payment_id": 123456,
        "customer_name": "Jane Doe",
        "customer_email": "jane@sample.com",
        "price_id": 0,
    }
    

    Sample request for older browsers

    The above examples are written with modern browsers in mind. If you require IE support then you may prefer to use an XMLHttpRequest object:

    // Handling a Software licensing request without jQuery in pure JavaScript. Support for older browsers.
    var xhttp = new XMLHttpRequest();
    
    // The url to the site running Easy Digital Downloads w/Software Licensing
    var postUrl = 'http://yoursite.com/';
    
    xhttp.onreadystatechange = function() {
        if (xhttp.readyState == 4 && xhttp.status == 200) {
            var slData = JSON.parse(xhttp.responseText);
            handleSoftwareLicensingResponse( slData );
        }   
    }
    
    var data = {
    	edd_action: 'check_license', // Valid actions are activate_license, deactivate_license, get_version, check_license
    	license: '59cc77ea94a2d867069a9d96142a35b8', // License key.
    	item_id: '356', // Product ID
    	url: 'domain.com' // If you Disable URL Checking, you do not need this entry
    };
    
    xhttp.open("POST", postUrl, true);
    xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhttp.setRequestHeader("Access-Control-Allow-Origin", "http://local.dev");
    
    var values = '';
    for (var key in data){
        values += key + '=' + data[ key ] + '&';
    }
    values = values.substring(0, values.length - 1);
    
    xhttp.send(values);
    
    
    function handleSoftwareLicensingResponse( slData ) {
        if ( slData.success == true ) {
            console.log(slData);
            // Software Licensing has a valid response to parse
        } else {
            // Invalid request was made to software licensing
        }
    }

    The post Software Licensing API – Example using JavaScript first appeared on Easy Digital Downloads.

    ]]>
    Free Downloads – Basic Usage https://easydigitaldownloads.com/docs/free-downloads-basic-usage/ Mon, 24 Jan 2022 19:53:37 +0000 https://edd-site.lndo.site/docs/free-downloads-basic-usage/ The Free Downloads extension allows store owners to offer free downloads in exchange for an email address, and optionally a name. Once the Free Downloads extension is installed and activated, a new section will be added to the Downloads → Settings → Marketing tab entitled “Free Downloads”. No specific configuration is required for the extension

    The post Free Downloads – Basic Usage first appeared on Easy Digital Downloads.

    ]]>
    The Free Downloads extension allows store owners to offer free downloads in exchange for an email address, and optionally a name.

    Once the Free Downloads extension is installed and activated, a new section will be added to the Downloads → Settings → Marketing tab entitled “Free Downloads”.

    No specific configuration is required for the extension to work, though many configuration options are available. 

    General Settings

    The Button Label and Modal Button Label fields affect the button displayed in the download list and the subsequent button in the data collection modal, respectively. They default to “Download Now” but can be configured to your liking.

    Bypass if logged in immediately downloads file without a popup modal:

    Display close button (top-right corner):

    You can also opt to display a close button on the modal (without one, the modal can still be closed by clicking on the background), and to bypass the modal and auto-download if a user is already logged in.

    Additionally, you have the choice to display an area for the user to agree to your Privacy Policy before downloading the file. 

    Fields Settings

    By default, Free Downloads only collects the email address of users in order to create purchase records for downloads. Checking the Collect Name checkbox will enable the collection of first and last names of users. If a user is logged in, all three fields will be automatically pre-filled using the information in their user profile. You can also enable creating new user accounts by checking the User Registration checkbox.

    The Show Notes Field option adds two more settings fields which allow you to define a title and message to be displayed to the user in the Free Downloads modal. These can be used to add free-form text of your choosing, such as a disclaimer or personal message to your users.

    Processing Settings

    If desired, you can require email verification before a user is presented with a download. You have the ability to edit the message that’s visible to users and the email subject and body content under Downloads > Email > Free Downloads Verification.

    By default, Free Downloads will redirect the user to the Purchase Confirmation page upon submission of the modal form. It may not be ideal for all users, so we have included options for redirecting to a custom page, or simply auto-downloading the selected file and remaining on the current page. If the On-Complete Handler option is set to Custom Redirect, a new field will appear allowing you to define the page you want to redirect users to.

    The Mobile On-Complete Handler option defaults to Use Main On-Complete Handler which will follow the behavior you applied above. You can override this option by selecting Display Purchase Confirmation, Auto Download, or Custom Redirect. If you select Auto Download from the dropdown, a new option titled Apple On-Complete Handler will appear. 

    Because Apple does not allow automatic downloads, you must set the desired behavior for users on Apple devices. The default is Use Main On-Complete Handler, but from the dropdown you can also select Display Purchase Confirmation or Custom Redirect. Selecting Custom Redirect will populate an additional field where you can enter the desired URL for Apple users.

    If needed, you have the ability to disable both Purchase Confirmation and Admin Sales Notification emails. 

    Since version 2.0.0, we also have an option called Direct Download which, when checked, will add a direct download link to the modal window. Enabling this option in the backend will add a new setting to allow configuration of the download link, as well as displaying whether or not your system is able to automatically compress download files. If not, you’ll have to define specific archive files for any product which contains more than one downloadable file. The Direct Download options effectively allows users to “opt-out” of filling in the data in the download modal and immediately download the file.

    Cache Settings

    The Cache Settings allow you to define how file caching will be handled for Free Downloads. Free Downloads caches files which are stored remotely while compressing them if Direct Download or Auto Download are enabled. If you prefer not to use this feature, checking the Disable Cache box will disable it entirely and the Purge Cache option will be removed.

    Integrate Free Downloads with Email Services to grow your Email List:

    Free Downloads can integrate with several email services, and you can see more on that in the video below.

    The post Free Downloads – Basic Usage first appeared on Easy Digital Downloads.

    ]]>
    Invoices https://easydigitaldownloads.com/docs/invoices/ Mon, 24 Jan 2022 19:53:36 +0000 https://edd-site.lndo.site/docs/edd-invoices-installation/ The Invoices feature allows your customers to create HTML-based invoices, which they can then print or download to PDF and use for VAT compliance. If the store allows, the customer can input their name, address, and VAT (all optional fields) from the generated invoice.  In this guide, we’ll cover: Setting up InvoicesViewing InvoicesInvoice OptionsIncluding an

    The post Invoices first appeared on Easy Digital Downloads.

    ]]>
    The Invoices feature allows your customers to create HTML-based invoices, which they can then print or download to PDF and use for VAT compliance. If the store allows, the customer can input their name, address, and VAT (all optional fields) from the generated invoice. 

    In this guide, we’ll cover:

    Setting up Invoices
    Viewing Invoices
    Invoice Options
    Including an Invoice in your Purchase Receipts


    Setup

    In order to use Invoices, you need to have EDD(PRO) installed on your website. For a guide on how to install and activate your EDD(PRO) version, see this article.

    Once you have EDD PRO activated, go to Downloads > Settings > Payments > Invoices and configure the invoice options.

    1. Create a page for invoices

    a. Create a new page (perhaps called “Invoice”) and add [edd_invoices] to the main content. 

    b. Select your Invoice page in the Invoice Settings (Downloads > Settings > Payments > Invoices).

    2. Configure Options

    The remaining options are optional.

    Disable Address Editing?: This prevents the customer from having the ability to add and/or edit the billing address that appears on the invoice when they generate their invoice.

    Disable Invoices for Free Purchases: Enabling this option will block users from generating an invoice if the order has a total value of 0.

    Invoice Page: The page on your site used to display invoices. This page needs to contain the [edd_invoices] shortcode, otherwise, invoices will not work.

    Logo URL: URL for the logo that appears on customer generated invoices.

    Invoice Style: Select the invoice template and accent color.

    Company Name and Address: The Store / Company name and address you want to appear on customer invoices.

    Registration Number: Used if your Store / Company has a registration number you want to appear on customer invoices. This can be left blank if you don’t have a number you want to use here.

    Tax / VAT Number: Add a company tax / VAT number, if you need this to appear on customer invoices.

    Additional Text: Any additional text you want to appear at the bottom of each invoice.

    Viewing Invoices

    Customers will now be able to generate an invoice from their purchase history page.

    Admins can access invoices via the order (Downloads > Orders) by hovering just under the order number:

    Or, within the order details by going to Downloads > Orders > Open Order > Email (tab) and click View Invoice.

    Invoice Options

    The invoice contains several buttons to allow the customer to manage, print, or download their invoice.

    Update: Allows the customer to update the Name, Address, and Tax/VAT number. This button will not appear if Disable Address Editing? is checked in the invoice settings.

    Back: Returns to the previous page.

    Print: Opens your browser’s print settings.

    Download PDF: Download the invoice to a PDF file.

    Purchase Receipts

    If you would like to add a link to the invoice generator in emailed purchase receipts, go to
    Downloads Settings Emails, select the Text view and add the tag {edd_invoice} to your purchase receipt. It will contain a “View Invoice” which allows customers to open the invoice directly from the email receipt.

    The post Invoices first appeared on Easy Digital Downloads.

    ]]>
    Software Licensing API – Example using C# https://easydigitaldownloads.com/docs/software-licensing-api-example-using-c/ Mon, 24 Jan 2022 19:53:35 +0000 https://edd-site.lndo.site/docs/software-licensing-api-example-using-c/ This document is a subset of the Software Licensing API document which lists all features available via the API. The following is example code showcasing how to implement those features with C#. Request using System; using System.IO; using System.Net; using System.Text; namespace Rextester { public class Program { public static void Main(string[] args) { //

    The post Software Licensing API – Example using C# first appeared on Easy Digital Downloads.

    ]]>
    This document is a subset of the Software Licensing API document which lists all features available via the API. The following is example code showcasing how to implement those features with C#.

    Request

    using System;
    using System.IO;
    using System.Net;
    using System.Text;
    
    namespace Rextester
    {
        public class Program
        {
            public static void Main(string[] args)
            {
                // Create a request using a URL that can receive a post.
                WebRequest request = WebRequest.Create ("https://yoursite.com/");
    
    
                // Set the Method property of the request to POST.
                request.Method = "POST";
    
    
                // Create POST data and convert it to a byte array. Do not include the URL if you do URL verification in the EDD SL settings
                string postData = "edd_action=check_license&license=&item_name=&url=";
                byte[] byteArray = Encoding.UTF8.GetBytes (postData);
                request.ContentType = "application/x-www-form-urlencoded";
                request.ContentLength = byteArray.Length;
                Stream dataStream = request.GetRequestStream ();
                dataStream.Write (byteArray, 0, byteArray.Length);
                dataStream.Close ();
    
    
                // Get the response.
                WebResponse response = request.GetResponse ();
                dataStream = response.GetResponseStream ();
                StreamReader reader = new StreamReader (dataStream);
    
    
                // Read the content. This is the response from the Software Licensing API
                string responseFromServer = reader.ReadToEnd ();
    
    
                // Display the content
                Console.WriteLine (responseFromServer);
    
    
                // Clean up the streams.
                reader.Close ();
                dataStream.Close ();
                response.Close ();
            }
        }
    }
    

    Response

    A response to the above query would be a JSON formatted string that would look something like this:

    {
    	"license": "valid",
    	"item_name": "EDD Product name",
    	"expires": "2014-10-23 00:00:00",
    	"payment_id": 54224,
    	"customer_name": "John Doe",
    	"customer_email": "john@sample.com"
    }
    

    The post Software Licensing API – Example using C# first appeared on Easy Digital Downloads.

    ]]>
    Recurring Payments – Stripe Gateway Configuration https://easydigitaldownloads.com/docs/recurring-payments-stripe-gateway-configuration/ Mon, 24 Jan 2022 19:53:34 +0000 https://edd-site.lndo.site/docs/recurring-payments-stripe-gateway-configuration/ Table of Contents Canceling Subscriptions Subscription Statement Descriptors Common issues This document explains how the Recurring Payments extension works with Stripe. Configuring Stripe It’s important to follow all steps laid out in the Stripe Setup Documentation. Important Setup Note: If Webhooks are not properly configured, subscriptions will not work properly! Canceling Subscriptions When using Stripe,

    The post Recurring Payments – Stripe Gateway Configuration first appeared on Easy Digital Downloads.

    ]]>
    Table of Contents

    This document explains how the Recurring Payments extension works with Stripe.

    Configuring Stripe

    It’s important to follow all steps laid out in the Stripe Setup Documentation.

    Important Setup Note: If Webhooks are not properly configured, subscriptions will not work properly!

    Canceling Subscriptions

    When using Stripe, a cancellation may be initiated either from within EDD or from the Stripe Dashboard.

    Canceling as a Customer

    Customers can cancel their own subscriptions from your store’s account page

    Canceling as a Site Administrator

    To cancel a subscription from the EDD admin go to Downloads → Subscriptions and click “View” on the item you want to cancel.

    Then in the bottom of the next screen click on “Cancel Subscription”.

    When you set a subscription’s status to cancelled it’s cancelled immediately, but the customer will still have access to their purchased material for as much time as they’ve paid for.

    For example, if they’ve paid $10/mo, and you cancel halfway through the month they still have access to their material for the rest of the month, but they won’t be re-billed, and access will stop at the end of the month.

    From The Stripe Dashboard

    To cancel a subscription from the Stripe Dashboard, log in to Stripe and find the search bar at the top of the page.

    You may find customers by searching for:

    • the charge ID
    • the subscription profile ID
    • the EDD customer ID number
    • the customer email

    Once you’ve found and selected your Customer in Stripe you’ll see a list of subscriptions.

    If you click Cancel (X icon to the of the subscription name) you’ll be given three options; to cancel Immediately, at the end of the current period, or on a custom date. For the purposes of EDD it doesn’t matter which you choose immediately or at the end of the current period, your customer won’t experience any difference between the two. If you choose a custom date, that’s after the end of the current period, they will continue to get billed until the custom date passes.

    Canceling Summary

    It doesn’t matter if you cancel a subscription in EDD or in Stripe, the effect is exactly the same and the customer won’t notice a difference.

    Updating Credit/Debit Card Information

    Customers can update their card information for their specific subscription(s) from your store’s account page.

    Statement Descriptors

    When a product is configured as a subscription, the descriptor behavior is slightly different than non-subscription purchases. When a subscription is purchased for the first time on your site, a “Product” is created in Stripe that will be used for all subsequent purchases of that particular subscription. You can see your current list of Products by logging into your Stripe account and navigating to Products.

    When this Product is created, a statement descriptor is created based on the name of your product, regardless of the aforementioned setting in your WordPress dashboard. The descriptor will also be made lowercase and will separate words using hyphens. Understandably, this doesn’t look friendly on a bank statement. There are two ways to change this behavior that are best used together if you do not like the default behavior:

    1. Edit the Plan details

    By going to Products in your Stripe account, you can click on any Product to see its details. Once you’re on the details page, click the Edit details button. You will be presented with a modal that allows you to set the statement descriptor for that particular Product.

    What you set here will be used for all payments of that subscription plan on your site.

    2. Filter the Statement Descriptor default for Stripe plans

    The above method allows you to control the statement descriptor for a specific subscription that already exists. But if a new subscription is created from the first-time purchase of a different subscription on your site, the default behavior will apply. That means the new subscription will still have a statement descriptor based on the product name by default.

    To create a new default statement descriptor for all subscriptions created in the future (this will not affect existing subscription), use the following filter:

    function custom_edd_recurring_stripe_plan_statement_descriptor( $args, $subscription ) {
       $args['statement_descriptor'] = 'New Statement Desc';
       return $args;
    }
    add_filter( 'edd_recurring_create_stripe_plan_args', 'custom_edd_recurring_stripe_plan_statement_descriptor', 10, 2 );

    Replace New Statement Desc with your preferred default statement descriptor (remember the 22 character limit).

    In summary, use the first method to edit the statement descriptor for an existing subscription. Use the second method to set a new default statement descriptor for all future subscriptions.

    Common issues relating to webhooks

    Customers get charged too many times

    If you don’t set up your Stripe webhooks correctly prior to a customer making a purchase and you are using the “Times” option in EDD Recurring to charge the customer a set amount of times (for example, 5 times), they will get charged too many times.

    This is because, without the webhook, Stripe is not able to tell EDD that the payments went through successfully so EDD doesn’t know. Because of this, EDD thinks the customer has not yet been charged – even though they may have already been charged 5 times (or more).

    EDD sends a “cancel subscription” to Stripe automatically when the number of times has been reached. But since there is no webhook, EDD doesn’t know that the customer has been charged at all and never cancels the subscription. This results in the customer continuing to be charged even after the set amount of times has been reached. This is why it is important to set up a webhook immediately after installing the Stripe extension.

    The post Recurring Payments – Stripe Gateway Configuration first appeared on Easy Digital Downloads.

    ]]>
    Recurring Payments – Common Questions and Problems https://easydigitaldownloads.com/docs/recurring-payments-common-questions-and-problems/ Mon, 24 Jan 2022 19:53:33 +0000 https://edd-site.lndo.site/docs/recurring-payments-common-questions-and-problems/ Below are common questions related to Recurring Payments. Subscription is Pending in EDD but active at the payment gateway. The EDD subscription can be manually set to Active if the payment gateway subscription is active. Confirm that the EDD subscription’s Profile ID matches the Subscription ID at the payment gateway. If the payment was made

    The post Recurring Payments – Common Questions and Problems first appeared on Easy Digital Downloads.

    ]]>
    Below are common questions related to Recurring Payments.

    Subscription is Pending in EDD but active at the payment gateway.

    The EDD subscription can be manually set to Active if the payment gateway subscription is active. Confirm that the EDD subscription’s Profile ID matches the Subscription ID at the payment gateway.

    If the payment was made with Stripe, confirm that Webhooks are configured per our documentation. If webhooks are configured correctly, confirm there are no errors reported via Stripe. If there are errors, this could be due to a webhost issue or a plugin blocking the webhooks.

    If this doesn’t explain the issue, reach out to support for assistance.


    Can a discount only apply to the renewal payment, not the initial payment?

    No, discounts can apply to the initial payment only or all payments (initial and renewal payments). As a workaround, you can apply a fee to the purchase, which will only apply to the intial payment. The only way for a discount to apply to renewal payments, without applying to the initial payment, is with Software Licensing Renewal Discounts.


    Can a discount apply to the first payment after a trial?

    No, discounts on the initial payment or one-time discounts do not apply to trials. In EDD, the $0 trial is considered the initial payment. Only discounts that apply to all payments can be applied to a trial order.


    How do the RBI regulations on recurring payments in India affect EDD?

    Note, this only applies to customers who paid with an Indian credit / debit card for a recurring payment. One time payments are not affected.

    Updated October 13, 2021

    Support for RBI regulations on recurring payments has to come from the payment gateways (Stripe, PayPal, etc) in order for recurring payments to work. At this time, they are still developing integration for RBI. Once their API is updated, EDD will make any required updates possible to support RBI regulations. Unfortunately, it is not known when the payment gateways have this functionality ready.

    For active subscriptions paid with an Indian card, it is expected that the renewal payment will fail to renew. PayPal and Stripe have made the following recommendations:

    PayPal: Currently, PayPal is recommending using a one time payment since recurring payments will fail to process. See this PayPal FAQ for details.

    Stripe: Stripe recommends enabling Customer Emails, within Stripe’s settings, so customers can pay renewals directly via Stripe. See this Stripe guide for details.


    What happens to an existing subscription if I change the price?

    The price for existing subscriptions remains the same for as long as the subscription remains active. New subscriptions will be created using the new/current price that is set.


    Subscription renewal processed in merchant but not recorded in Easy Digital Downloads, why?

    If your subscription renewals are being processed in your merchant account (Stripe, PayPal, 2Checkout, Authorize.net, etc) but the renewals are not showing up in Easy Digital Downloads, this is typically due to an issue with the setup at the payment gateway.

    Subscription renewals are processed by your payment gateway and then the gateway communicates to Easy Digital Downloads to instruct EDD that a subscription renewal needs to be recorded. When renewals are not being recorded, it is because this communication from your gateway is not being received by EDD.

    PayPal: If your subscriptions are processed by PayPal, you need to configure the PayPal IPN. Refer to the documentation below for the version of PayPal that you use:

    Stripe: If your subscriptions are processed by Stripe, you need to configure your Stripe webhooks. See the Stripe Standard or Stripe Pro for Recurring Payments for more information.

    2Checkout: If your subscriptions are processed by 2Checkout, you need to configure your 2Checkout INS. See the for Recurring Payments for more information.

    Authorize.net: If your subscriptions are processed by Authorize.net, you need to configure your Authorize.net Silent Post. See the Authorize.net setup documentation for Recurring Payments for more information.


    How do I manually process a renewal payment in EDD?

    If the renewal was processed at the gateway but EDD didn’t record the renewal payment, this can be done manually.


    1. Navigate to the subscription details for the subscription in question: Downloads → Subscriptions → View

    2. Locate the Renewal Payments section. You can manually input the Total amount, Transaction ID (optional).


    Is it possible for a user to put a subscription on hold rather than cancel?

    This depends on the gateway. See Recurring Payments – Adjusting Pricing for possible options. If your gateway is not mentioned, you can reach out directly to the gateway to confirm.


    Can customers cancel subscriptions?

    Yes, customers can cancel their subscriptions at any time from their account management page. If the subscription includes access to content or license keys, through Content Restriction and Software Licensing, the customer will retain access until the expiration date of the subscription is reached.


    Can the customer reactivate their subscription(s) later?

    Depending on the gateway you are using, it’s possible the subscription can be reactive. If it’s possible, an option will exist for the admin and customer when managing the subscription. If the subscription is tied to a license, the license can be renewed which will reactivate the subscription.


    Can subscriptions be upgraded?

    Yes, but it requires the Software Licensing add-on to provide the upgrade paths. Full documentation on Software Licensing upgrades here.


    Does Recurring Payments support Buy Now buttons?

    Not at this time but we may consider supporting this in the future.


    Does Recurring Payments work with the Software Licensing extension?

    Yes, it does! See our documentation here for more information.


    What happens when I refund a customer’s recurring payment?

    When setting a payment (initial or renewal) to Refunded status, options to Refund and Cancel Subscription will appear. This allows you to decide if the subscription should be canceled or not, when refunding.


    Why are quantities disabled if a recurring product is in the cart?

    Currently, this is a known limitation in the EDD Recurring extension and how each payment gateway handles multiple recurring payments. If you have “Cart Item Quantities” enabled so that your customers can adjust their quantity on the checkout page, but they have a recurring-enabled product in their cart, quantities will be disabled for the entire cart. However, note that your customers can purchase more than one recurring-enabled product at one time. To do so, they simply have to add the item to their cart more than one time, so that it appears twice (on two lines) in their cart. To make this possible you could use something like the free “Keep Add To Cart” extension. Note, PayPal does not support purchasing multiple subscriptions during a single checkout process.


    If a customer’s credit card is declined, how many times will a renewal payment be re-tried before being set to “expired”?

    It depends on which payment gateway you are using. For Stripe, you can set the number of retries in your Stripe account’s settings. For Paypal, it automatically tries based on Paypal’s settings for your account. To find out for sure, you’ll need to confirm with your Payment Gateway.


    What is the EDD Subscriber WordPress User role?

    The role EDD Subscriber is a legacy role that is no longer used by EDD. Older stores may come across a user with the EDD Subscriber role, which would have been added to the user when EDD utilized the role. Since the role is no longer used, any users with the role can be left as is or the role can be removed from the user once confirmed any customizations or 3rd party integrations are not using it.


    What Does “Needs Attention” Mean for a Subscription?

    The Needs Attention status indicates a potential issue with a subscription that requires manual review. Common reasons include:

    • Gateway Communication Issues: The subscription was marked as cancelled in EDD, but cancellation at the payment gateway (e.g., Stripe, PayPal) could not be confirmed. This can happen if the cancel action fails in the admin or via customer self-service, potentially resulting in continued charges at the gateway.
    • Failed Subscription Creation: An EDD subscription was created, but the corresponding subscription could not be set up at the payment gateway.
    • Payment Method Update Failure: An attempt to update the payment method (such as with Stripe) failed, leaving the subscription in an inconsistent state. This is typically noted in the subscription notes.
    • Data Mismatch: The subscription status in EDD does not match the status at the payment gateway, often due to a failed or incomplete action.

    Recommended Actions:

    • Review the subscription notes and the original order notes for details about the issue.
    • Compare the subscription’s status and data in EDD with the information at the payment gateway.
    • Take corrective action as needed to ensure both systems are in sync.

    The post Recurring Payments – Common Questions and Problems first appeared on Easy Digital Downloads.

    ]]>
    All Access – Setup & Overview https://easydigitaldownloads.com/docs/all-access-setup-overview/ Mon, 24 Jan 2022 19:53:33 +0000 https://edd-site.lndo.site/docs/all-access-setup-overview/ This document gives a general overview of the EDD All Access extension for Easy Digital Downloads. Initial Setup: Once installed and activated, All Access will need to be configured in two places: EDD Settings: Downloads → Settings → Extensions → All Access Product Settings: Downloads → All Downloads → Edit → All Access Using All

    The post All Access – Setup & Overview first appeared on Easy Digital Downloads.

    ]]>
    This document gives a general overview of the EDD All Access extension for Easy Digital Downloads.

    Initial Setup:

    Once installed and activated, All Access will need to be configured in two places:

    EDD Settings:
    Downloads → Settings → Extensions → All Access

    Product Settings:
    Downloads → All Downloads → Edit → All Access

    Using All Access:

    1. Review the Important Concepts below. Due to the features and integrations available within All Access It’s important that you understand how the extension works so that it’s properly setup and provides the functionality you expect for you store.
    2. Configure the All Access settings.
    3. Configure the All Access product settings.
    4. (Optional) Integrate with other extensions.
    5. Setup Shortcodes for customer account pages and access to All Access products and content.
    6. If needed, you can manage customer’s All Access Pass post sale.

    Important Concepts:

    All Access Product:

    An All Access Product is a special type of product in Easy Digital Downloads that, when purchased, gives a customer access to download many different products. You can define which products the customer has access to, how long their access lasts, and how many downloads they get per day/month.

    Despite its name, an All Access Product does not need to give access to all products. For example, it can give all access to a specific category only. How you set it up depends on your needs as the store owner.

    You can set up an unlimited number of different All Access Products. For example, you could set up one to give access to a “Photos” category only. Another could be set up to give access to a “Videos” category only. Customers could then purchase both All Access Products and have access to both “Photos” and “Videos”.

    All Access Pass:

    A purchased All Access Product is called an All Access Pass and is attached to the customer profile.

    Activation:
    When an All Access Pass is purchased, it is immediately activated which allows the customer to begin downloading products. The only time an All Access Pass will be activated at a different time than the purchase time is if it is being renewed. See “Renewals” below.

    Expiration:
    At the end of an All Access period, the customer’s All Access Pass expires. Once an All Access Pass is expired, it can not be re-activated unless it is repurchased with a new payment. This is also called a “renewal”.

    Renewals:
    When an All Access Pass is purchased a second time (or more), it is considered to be a renewal. The first All Access Pass will still be active until its expiration date. When the first All Access Pass expires, a new All Access Pass will be activated using the second renewal payment. The start date of the renewed All Access Pass is the time of the previous Pass’s expiration – not the time the payment took place. Thus, All Access Passes can be renewed prior to their expiration without losing any time from the All Access period. Any downloads that take place (using this All Access Pass) after the original All Access Pass expires will be attributed to the second payment’s All Access Pass. Any payments that took place before the original Pass’s expiration will be attributed to the original payment’s All Access Pass.

    Note: If the same All Access Pass is purchased more than once by the same customer, only 1 will actually be “used” to download products. While a customer can have an unlimited number of different All Access Passes at the same time, they can only have 1 of each active at a time.

    Upgrades:
    If you want your customers to be able to upgrade from one All Access Pass to another, it’s important to consider your needs as a store. By default, if a customer purchases an All Access Pass and then buys a different one (upgrades), they will still have both valid All Access Passes. If 2 different All Access Passes give access to the same product, the most recently purchased All Access Pass will be used when the customer goes to download a product.

    If you are using EDD Commissions with EDD All Access to generate fair commissions for Vendors in your store, you will want to use the upgrade path system in EDD Software Licensing, which will enable EDD All Access to automatically track which payments were preliminary ones and calculate commissions using the total value of all upgraded payments combined – instead of just splitting the value of the final upgraded payment. Using EDD All Access, EDD Commissions, and EDD Software Licensing together in this way will prevent unfair commission splitting for upgraded All Access Passes.

    When an All Access Pass is truly/correctly upgraded through the Software Licensing upgrade path system, the start date of the upgraded All Access Pass will match the start date of the initial All Access Pass. The end date will match the settings for the upgraded All Access Pass. To keep your All Access Passes and Licenses expiring at the same time after they are upgraded, it is recommended to set the All Access Pass period to match the period for the license from Software Licensing.

    All Access Pass Status:
    An All Access Pass could have 6 possible statuses:

    • Active – This status means the All Access Pass can still be used by the customer.
    • Expired – This status means the time period for an All Access pass has come to an end. Once a Pass has expired, it can not be re-activated except if it is re-purchased.
    • Awaiting – This status means that this Pass is attached to a renewal payment and the currentl All Access Pass has not yet expired. When it does, this payment will reactive that All Access Pass and become the currently-used one by the customer.
    • Renewed – This is the same as the “Expired” status – except that the customer has renewed this All Access Pass. While the renewed-to All Access Pass may or may not be active, we know the “Renewed” one is not attached to the most recent purchase of the All Access Product.
    • Upgraded – This means the customer has upgraded to a new pass. Once a pass has been upgraded, it can no longer be re-activated unless it is repurchased.
    • Invalid – This is any other status other than the ones mentioned above. For example, if a payment for an All Access Pass is refunded, the All Access Pass status is invalid. Another case where a pass would be invalid is if you deleted something using your admin account – either a payment, a product, or a price variation attached to a previously-purchased All Access product. If you delete an All Access product from your store, any customers that had it will now have invalid All Access Passes.

    In-depth training and set-up video screencast:

    If you would like to follow along with a complete setup process for All Access, here is a screencast of the entire basic set-up process.

    The post All Access – Setup & Overview first appeared on Easy Digital Downloads.

    ]]>
    Auto Register https://easydigitaldownloads.com/docs/auto-register/ Mon, 24 Jan 2022 19:53:32 +0000 https://edd-site.lndo.site/docs/auto-register/ Note: Auto Register functionality has been merged into the core Easy Digital Downloads v3.3.0, under the Customer Registration setting. This document only applies to stores that have not updated to 3.3.0 or later. The Auto Register extension for Easy Digital Downloads streamlines the process of making new customers into WordPress users. Typically, to have customers

    The post Auto Register first appeared on Easy Digital Downloads.

    ]]>
    Note: Auto Register functionality has been merged into the core Easy Digital Downloads v3.3.0, under the Customer Registration setting. This document only applies to stores that have not updated to 3.3.0 or later.

    The Auto Register extension for Easy Digital Downloads streamlines the process of making new customers into WordPress users. Typically, to have customers also register as WordPress users you would have to include the account creation fields in the checkout form. Auto Register takes the existing data and automatically creates a user from it, removing an entire step from the checkout process.

    Setup

    After you have installed and activated the Auto Register extension, you can find the settings area by navigating to Downloads → Settings → Extensions → Auto Register. Your options are:

    • Disable the email sent to the user that contains login details
    • Disable the new user registration email sent to the admin

    Customer Experience

    The customer will not see anything on your checkout page that indicates that their information is going to be saved as a user. Auto Register uses the normal EDD checkout fields to gather its information.

    Note: With Auto Register turned on, as soon as someone makes a purchase they will be logged into the site as a subscriber. This is especially helpful when using the Recurring Payments extension, which requires the user to be logged in to purchase a subscription product.

    Common Questions

    What happens if someone already has an account and make a new purchase while logged out?

    If a user account already exists for the customer, for security reasons the customer must log in before purchasing a recurring product.

    How can I disable the email from sending to the customer?

    There’s an option under Downloads → Settings → Extensions → Auto Register.

    How can I modify some of the key aspects of the plugin?

    There are filters available to modify the behavior of the plugin. See the list below:

    • edd_auto_register_email_subject
    • edd_auto_register_headers
    • edd_auto_register_insert_user_args
    • edd_auto_register_email_body
    • edd_auto_register_error_must_login
    • edd_auto_register_login_form
    • edd_auto_register_disable

    Can you provide a filter example of how to change the email’s subject?

    Add the following to your child theme’s functions.php

        function my_child_theme_edd_auto_register_email_subject( $subject ) {
    
            // enter your new subject below
    	    $subject = 'Here are your new login details';
    
    	    return $subject;
    
        }
        add_filter( 'edd_auto_register_email_subject', 'my_child_theme_edd_auto_register_email_subject' );
    

    Can you provide a filter example of how to change the email’s body?

    Add the following to your child theme’s functions.php

    function my_child_theme_edd_auto_register_email_body( $default_email_body, $first_name, $username, $password ) {
    
    	// Modify accordingly
    	$default_email_body = __( "Dear", "edd-auto-register" ) . ' ' . $first_name . ",nn";
    	$default_email_body .= __( "Below are your login details:", "edd-auto-register" ) . "nn";
    	$default_email_body .= __( "Your Username:", "edd-auto-register" ) . ' ' . $username . "nn";
    	$default_email_body .= __( "Your Password:", "edd-auto-register" ) . ' ' . $password . "nn";
    	$default_email_body .= __( "Login:", "edd-auto-register" ) . ' ' . wp_login_url() . "rn";
    
    	return $default_email_body;
    
    }
    add_filter( 'edd_auto_register_email_body', 'my_child_theme_edd_auto_register_email_body', 10, 4 );
    

    NOTE: If you would like to adjust the login URL on the new user email that’s sent, you can use the code snippet found here.

    The post Auto Register first appeared on Easy Digital Downloads.

    ]]>
    Software Licensing – Common Issues and FAQs https://easydigitaldownloads.com/docs/software-licensing-common-issues-and-faqs/ Mon, 24 Jan 2022 19:53:30 +0000 https://edd-site.lndo.site/docs/software-licensing-common-issues-and-faqs/ The Software Licensing Extension for Easy Digital Downloads requires some setup and integration – and it is possible that you may experience some issues. A few of those are outlined here with potential solutions. Table of Contents FAQs Common Issues Troubleshooting Update Issues FAQs How do you contact customers when an update is available? It’s

    The post Software Licensing – Common Issues and FAQs first appeared on Easy Digital Downloads.

    ]]>
    The Software Licensing Extension for Easy Digital Downloads requires some setup and integration – and it is possible that you may experience some issues. A few of those are outlined here with potential solutions.

    FAQs

    How do you contact customers when an update is available?

    It’s recommended you utilize an email marketing, like Mailchimp or ConvertKit. Wordpress is not reliable at sending mass emails, so contacting users needs to be done external to EDD/WordPress.

    Is it possible to sell custom / enterprise licenses?

    While there is no built-in support for selling custom or enterprise licenses that can be activated on a larger number of sites, there are workarounds to make this work. The easiest option is to bill the customer via a Stripe or PayPal invoice. Once paid, manually create an order and update the license activation limit to the number of activations you want the customer to have available.

    Does Software Licensing work with Amazon S3?

    Yes, it’s fully compatible with no issues and no special settings.

    Do local / development environments impact activation count?

    If you choose to limit the number of license activations a customer may have, it’s still possible to allow them to activate a license on their local development environment without impacting their activation count.

    This allows your users to easily stay up to date in their testing and development environments while not getting free license activations.

    In order for this to work two things need to happen:

    1) Ignore Local Host URLs

    In your WordPress admin, under
    Downloads → Settings → Extensions → Software Licensing look for a checkbox that says Ignore Local Host URLs.  Make sure that’s checked.

    2) Educate Customers

    See this guide on how to ignore activations for development sites.

    How do you create custom license key formats?

    EDD License Keys are by default an md5 sum like this:

    e0c7ccc47b2613c82d1073a4214deecc
    

    If you wish to have something else, with
    Software Licensing it’s as easy as making a function to create consistent unique keys and hooking into a filter called edd_sl_generate_license_key.

    License key formats can really be anything you wish, as long as they’re unique and consistent. If you want keys in this format:

    username_timestamp_licensekey
    
    sdavis2702_20151015120022_e0c7ccc47b2613c82d1073a4214deecc
    

    You can use this function:

    // Example shown how to base the MD5 off of the user's email and purchase date
    function pw_edd_license_md5_user_and_date( $key, $license_id, $download_id, $payment_id, $cart_index ) {
    
        $name      = get_user_by( 'email', edd_get_payment_user_email( $payment_id ) );
        $date      = get_post_field( 'post_date', $payment_id );
        $timestamp = strtotime($date);
        $nice_date = date( 'Yndhis', $timestamp );
        $license   = md5( $license_id );
        $key       = $name->user_nicename . '_' . $nice_date . '_' . $license;
    
        return $key;
    }
    add_filter( 'edd_sl_generate_license_key', 'pw_edd_license_md5_user_and_date', 10, 5 );
    

    A simpler function uses only username and license key:

    // prepend user's username to license key
    function sd_edd_license_username_md5( $key, $license_id, $download_id, $payment_id, $cart_index ) {
        $name      = get_user_by( 'email', edd_get_payment_user_email( $payment_id ) );
        $license   = md5( $license_id );
        $key       = $name->user_nicename . '_' . $license;
    
        return $key;
    }
    add_filter( 'edd_sl_generate_license_key', 'sd_edd_license_username_md5', 10, 5 );
    

    The most important thing to take from this document is that you can use any code that produces consistent unique strings and use those strings as license keys.

    Plugin Option

    There’s also a free plugin which provides a meta box on each Download, allowing you to set a custom format for each Download without having to write code. It’s called
    EDD License Key Template.  Here’s a screenshot of the meta box in the admin area.

    Showing a list of Customer’s license keys

    The following code will allow you to retrieve and display a list of license keys for a specific Customer.

    Note: The “$customer->id” should be replaced with the actual Customer ID.

    $licenses = edd_software_licensing()->licenses_db->get_licenses( array(
    		'number'      => -1,
    		'customer_id' => $customer->id,
    		'orderby'     => 'id',
    		'order'       => 'ASC',
    	) );
    

    What happens if the domain of my store goes down?

    Software Licensing includes which has a class named EDD_SL_Plugin_Updater. If you are including the latest version of this class it has a built in ‘health check’, so that if your site is not responding to the API requests made by your software, plugin, or theme it will not try again for a few hours later. If you intend to change domains or shut down a domain name, it would be best to release an update that uses the new domain or removes the calls to the API all together.

    Common Issues

    Customize Sample Code

    The sample code that comes with Software Licensing has function prefixes like edd_ and edd_sl_. These should be changed to match your own plugin, and search-and-replace is an excellent way to do it, but you need to be careful of your search string.

    There are functions with prefixes like edd_action_ that should not be changed. Make sure you’re only changing your own function name prefixes, and not EDD core prefixes.

    Icons not showing on the Plugin Update screen

    In version 3.6.5 of Software Licensing, we bundled a new version of the EDD_SL_Plugin_Updater that contained support for plugin icons in WordPress 4.9 or greater. The main reasons these icons would not show are:

    1. The latest version of the Updater class has not been included in your distributed software. Learn more on integrating the updater with your plugin.
    2. The product does not have a featured image.
    3. The product has not had the proper thumbnail sizes created. This would happen if the featured image was uploaded prior to Software Licensing supporting plugin icons. To fix this you can use WPCLI or the Regenerate Thumbnails plugin, which will contain the proper sizes for the icon.

    Troubleshooting Update Issues

    If you are seeing errors when attempting to update plugins and themes from your Software Licensing store here are a few things you can check, depending on what error is being reported.

    Customize your Updater

    As more and more plugin developers use the Software Licensing extension to deliver updates to their products, there is a risk of a “conflict” if another plugin includes a different version of the EDD_SL_Plugin_Updater class than you are packaging with your plugin. You can rename this class to something unique to your plugin, so that it avoids conflicts. For instance, if my plugin name is “My Custom Ads”, I could rename `EDD_SL_Plugin_Updater` to `MCA_Plugin_Updater` and change any references to it.

    SSL Errors

    There are many errors that can be caused by SSL connectivity issues, the following are commonly seen with Software Licensing.

    SSL: certificate subject name does not match

    This error means that the SSL certificate installed on your site does not match your primary domain name. This can typically happen in shared hosting environments and the most commonly solution is to request a dedicated IP address from your hosting provider. If your hosting provider does not support dedicated IP addresses, then you will need to work with your hosting provider to configure a proper SSL chain that matches your primary domain, instead of a shared wildcard SSL certificate.

    SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

    This SSL Handshake error occurs when the OpenSSL version on the server of the site requesting the update is outdated and does not support the SSL Protocols that the store delivering the update requires. There are two ways to resolve this issue. The ideal solution is to have the site requesting the update verify that their OpenSSL software us up to date for their platform. OpenSSL is a server software that facilitates the communication over the HTTPS protocol. If this is not a possible solution, you can work with your hosting provider or server administrator to configure your web-server to accept these outdated SSL versions, but this is not ideal as it allows less secure connections to your server.

    cURL error 35: SSL connect error

    This specific error with Software Licensing delivering updates is usually seen when using Cloudflare’s Flexible SSL option. This option causes a chain issue with some cURL versions that exist on the client server requesting the update. There are a couple ways to fix this from the server side (without having to request the client to update their cURL version). The first is to upgrade to a paid Cloudflare SSL. The paid tier SSL Certificates from Cloudflare typically do not pose this problem. The other solut§ion is to purchase an SSL Certificate from a 3rd party and install it directly on your server.

    Download failed. SSL: no alternative certificate subject name matches target host name
    An error occurred while updating Resurrect: Download failed. SSL: certificate subject name '*.example.com' does not match target host name 'anotherexample.com'
    

    This occurs when the customer’s site has an old version of either OpenSSL or cURL. The two sites then can’t communicate securely and the update fails.

    The only fix is for the site with the older version of the software on their server to update to the latest versions.

    Download failed. SSL peer certificate or SSH remote key was not OK

    If your customers are seeing this error when updating their products, you will need to contact your web host to let them know that your SSL certificate is improperly configured:

    Download failed. Service Unavailable

    You’ll see this error when you are attempting to update a plugin or theme on a site that also hosts this plugin or theme. Due to the way that Software Licensing integrates with the WordPress Update API, it is not currently possible to update your own themes or plugins from the site that sells them. When WordPress installs an update, it temporarily puts your site into maintenance mode, and during that process your site cannot install its own update. To update a plugin or theme from a site that also sells it, you’ll need to manually install the update.

    Download failed. Unauthorized / Too many redirects

    This error occurs when updating your plugin or theme to a new version. When uploading your new version, if you add a new file with your new version and then delete the previous file row, as opposed to replacing the current version, it’s possible for this error to occur. Currently we are aware of this bug and are working to resolve it, however the simple solution in the meantime is to click the ‘Update’ button a 2nd time, to rewrite the file keys, or always replace the current file instead of adding your new files on a second file row.

    Update Package Unavailable

    When this error comes up, it typically means:

    1. There is an issue with the license activation on the customer’s site. There are few things to check if a customer reports this error. The first is that the domain they are trying to update has been activated for the license. You can determine this by going to Downloads → Licenses. You can then search for the license key the user is trying to update and click on ‘Manage Sites’ to be sure that the domain they are on is in the list. If it’s not, you can either add it yourself from the admin, or have the customer visit their License management page and activate it themselves.
    2. The other result is that a license is either expired or disabled. If this is the case the customer needs to either renew their license, or a site admin has disabled it manually.

    Weird, long folder name after updater

    This happens when the .zip file is created improperly. When creating the final .zip archive, it is important to zip the folder and its contents rather than just the contents of the folder.

    The zip file structure should look something like this:

    filename.zip

    – product-name/

    — file here

    — another file here

    In other words, the files must be in a folder and not at the top of the zip file. Repackage your file to include the folder name inside and that will fix it.

    CloudFlare Integration

    If you are using CloudFlare as a CDN, Caching Layer, or SSL provider, we recommend you configure CloudFlare to bypass cache for all URLs that contain the following string:

    /edd-sl
    

    This is the API endpoint for checking the license status and delivering update packages. If these endpoint URLs are cached it can cause issues with properly delivering updates to your customers.

    PCLZIP_ERR_BAD_FORMAT

    This error isn’t unique to the EDD Software Licensing platform but has a couple solutions that you might check. The first is that there is an adequate amount of disk space for the file to be downloaded and unpacked (assume you’ll need 2x the size of the .zip file in order to process the update). If your .zip file is 1MB you will need just over 2MB available to properly process an update. These numbers are not exactly 2x but it’s a good measure to start with.

    The other thing to verify is that the .zip file is not corrupt. You can test this by transferring the .zip file to another computer (attached in an email, or via USB) and attempting to unpack it there as well. If it does not unpack on a different computer there is likely an issue with the creation of the .zip file on the original computer.

    This error can also be caused by a plugin or a script that is throwing an error. When the Software Licensing API tries to create the zip package, the error is added to the zip file, breaking its structure. Normally this means your website has WP_DEBUG set to TRUE in the wp-config.php file. While it’s a good way to check for any errors, it’s best to have it set to FALSE on a live website. Alternatively, you can keep it enabled but log the errors to a file on your server, in the wp-contents/debug.log file. Do this by adding the following lines to the wp-config.php file:

    define( 'WP_DEBUG_LOG', true );
    define( 'WP_DEBUG_display', false );
    

    The post Software Licensing – Common Issues and FAQs first appeared on Easy Digital Downloads.

    ]]>
    Amazon S3 https://easydigitaldownloads.com/docs/amazon-s3/ Mon, 24 Jan 2022 19:53:29 +0000 https://edd-site.lndo.site/docs/amazon-s3-overview/ The Amazon S3 extension for Easy Digital Downloads allows you to host download files in your Amazon S3 account. This is secure and more reliable than storing the files on your own hosting account. In This Article Creating an IAM accountIAM access keysSetupUsing Amazon S3 With EDDForcing Files to DownloadCommon Issues and Questions Creating an

    The post Amazon S3 first appeared on Easy Digital Downloads.

    ]]>
    The Amazon S3 extension for Easy Digital Downloads allows you to host download files in your Amazon S3 account. This is secure and more reliable than storing the files on your own hosting account.

    In This Article

    Creating an IAM account
    IAM access keys
    Setup
    Using Amazon S3 With EDD
    Forcing Files to Download
    Common Issues and Questions

    Creating an IAM account

    In order for Easy Digital Downloads to connect to your Amazon S3 account, you will need to create an IAM user and attach a permissions policy to the user. You can click Show User Security Credentials to view the access key and secret key. These are the values you need to enter in your WordPress site at Downloads → Settings → Extensions → Amazon S3.

    1. Log into your Amazon S3 account

    Log into your Amazon S3 account and navigate to the Users page. This page can be found by clicking on your account name in the top right corner and clicking on Security Credentials > Users (Under Access management on the left side of the page).

    2. Setup IAM User

    A. Add User

    If you have an existing IAM user you wish to use, click on that user. If you need to create a new user, click the blue Create User button and follow the prompts. You now need to obtain security credentials and also attach a permissions policy to the user.

    B. Set user details:

    User name: Create User name of your choice and click Next.

    C. Set permissions

    1. Select “Attach policies directly” box.
    2. Then, in the Filter box, enter “S3full”. That will filter the results down to those that are relevant for Amazon S3.
    3. Check the box for AmazonS3FullAccess.
    4. Ignore “Set permissions boundary – optional” section.
    5. Click Next.
    D. Review and create

    Confirm your permissions match the instructions above. Otherwise, there is nothing to configure here, click Create user.

    3. Get Access Keys

    You will need an IAM account using the permissions in the above steps. If you’ve created an IAM account in the past with the AmazonS3FullAccess permissions, you can use the existing account.

    A. Click IAM user name created above, listed in your AWS Users page.

    B. Click on the Security Credentials tab and click Create Access Key.

    C. Select Third-party service and Check Confirm.

    D. Click Create access key. Not description tag is required.

    E. Save Access key & Secret access key.

    Note: You will not be able to access the secret key ever again for this user, so make sure that you save the file. If you lose the credentials, you will need to create a new access key.

    Your IAM user should now have full permission to access and upload files to the S3 bucket. This provides your EDD store with access to your files and the ability to create secure download links for customers.

    F. Add Access key & Secret access key to your EDD store’s Amazon S3 settings under Downloads → Settings → Extensions → Amazon S3.

    If you need more assistance creating IAM users or attaching policies, see Amazon’s guide on creating IAM users for more information.

    Limit Access to Specific Buckets

    If your S3 account is used for other purposes and you want to limit your IAM account (EDD Store) to specific buckets, you can create a custom policy in place of AmazonS3FullAccess. This is done in place of Step 3 of the Set Permissions section.

    Click “Attach existing policies directly”, then select “Create Policy”:

    Add the policy details below via the JSON editor. Update bucket-name-here with the name(s) of the buckets you want accessible via your EDD store.

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "s3:PutObject",
                    "s3:GetObjectAcl",
                    "s3:GetObject",
                    "s3:ListBucketMultipartUploads",
                    "s3:AbortMultipartUpload",
                    "s3:ListBucket",
                    "s3:ListMultipartUploadParts"
                ],
                "Resource": [
                    "arn:aws:s3:::bucket-name-here",
                    "arn:aws:s3:::bucket-name-here/*"
                ]
            },
            {
                "Sid": "VisualEditor1",
                "Effect": "Allow",
                "Action": "s3:ListAllMyBuckets",
                "Resource": "*"
            }
        ]
    }
    

    When using this policy, all Bucket names will be viewable but only the ones you place in the Resources section are accessible. If a bucket that is not included in the Resource list is accessed via EDD, a PHP error will occur. We hope to improve this in a future release.

    Setup

    Once the extension is installed and activated you can navigate to Downloads → Settings → Extensions → Amazon S3 and enter your Amazon S3 account info.

    1. Enter the Access Key ID and Secret Key

    The Access Key ID and Secret Key are obtained by creating an IAM user in your S3 account. See
    our guide above for information on how to create an IAM user with the proper permissions.

    2. Enter a default Bucket

    This is the default bucket that you want files to be uploaded to. In order to create new buckets or get a listing of your current buckets, go to your S3 Console (you must be logged in to access the console). Enter the name of the bucket you would like to use as the default here. When uploading files to Amazon S3, you will have the option to select the bucket you wish the file to be uploaded to.

    Bucket Permissions

    Your bucket should have Block all public access ON, in order to restrict unauthorized access to files. EDD will provide temporary access to files to customers.

    3. Enter an Amazon S3 Host (Optional)

    This is the S3 host that your bucket is using. Most of the time this field can be left blank. However, if your site has issues accessing your bucket, try changing this to the Endpoint for your bucket’s region, for you default bucket.

    You can find your bucket’s region by logging into your AmazonS3 account, clicking on S3, and then taking a look at the region column listed beside each bucket. It will say what the region is. Once you know that, find the right corresponding host listed on the Amazon S3 Region Documentation. Copy and paste that host and hit save in your WordPress.

    4. Link Expiry Time (Optional)

    This is the number of minutes that the dynamically generated URL is valid for. When a customer clicks on a download link delivered by Easy Digital Downloads, a new URL for the file on Amazon S3 is generated on the fly. This is the number of minutes the new, secret URL is valid for.

    This completes setup of Amazon S3.

    Using Amazon S3 With EDD

    You will upload files to a downloadable product in exactly the same way as before but you will have two new tabs in the media uploader called Upload to Amazon S3 and Amazon S3 Library.

    When you upload a file from this tab, it will be automatically uploaded to your Amazon S3 account. Any file that you upload to S3 will be accessible from your WordPress Media Library, just like any other media file.

    Uploading to Amazon S3 via EDD

    When you upload a file from this tab, it will be automatically uploaded to your Amazon S3 account.

    Adding files already on Amazon S3 to EDD

    Any file that you upload to S3 will be accessible from your WordPress Media Library, just like any other media file, via Amazon S3 Library in the media uploader.

    Alternatively, you can add files to the File URL manually:

    Important Notes:

    • Do not copy and paste the URL directly from your Amazon S3 library into the File URL field. Doing so will result in an Access Denied error message when attempting to download the file.
    • All bucket and folder names in your Amazon S3 account must be all lowercase and not contain any special characters. See Amazon’s documentation on bucket naming restrictions.
    • Not all versions of S3 are available in all Regions. This chart will show which are available in your region.
    • Files delivered through AmazonS3 will deliver as “redirect” even if your store is set to “forced”. Learn More.

    Forcing Files to Download

    Sometimes your web browser will try to display or play whatever file you’re downloading, and you might end up playing music or video inside your browser, instead of saving it. There are a variety of things that can be done to prevent this, and force the save option, but if you’re storing your files on Amazon S3 then any settings on your web server are ignored.

    Instead of relying on the settings of your web server you must configure options properly in S3. Here’s how they should be set.

    Note: This setting is applied to a file and/or folder but not the whole bucket

    Opening Properties

    1. In your S3 Bucket find the file you wish to work with and select it.
    2. Click Actions >  Change metadata
    3. Click Add Metadata and set the Type to System Defined, Key to Content-Disposition and set the Value to attachment and Save changes.

    This will force it to be downloaded instead of played or displayed in your browser.

    Common Issues and Questions:

    Files open in browser instead of downloading

    This can be resolved by Forcing Files to Download.

    Will customers be able to see the actual URL of the file and simply download it directly?

    No, the customer will see a URL going to your own store, where EDD will translate the location so the download works without the customer seeing the original Amazon source URL.

    Error: SSL certificate problem: unable to get local issuer certificate

    This error means that the SSL certificate on your website’s server is invalid or installed improperly. To resolve this, contact your hosting company and request that they verify the certificate is installed properly and valid.

    Error: Access Denied

    This error means that the user of access key ID and secret key you are using does not have the necessary permissions to access S3 buckets and resources.

    To resolve this, you will need to attach a new permissions policy to the IAM user. See our
    guide on creating an IAM user with the proper permissions to resolve this error.

    You may also see this error message if you copied the URL from Amazon S3 and pasted it into the File URL field of your Download. Please see the note above regarding the proper steps that need to be taken to link your files to your Downloads.

    Error: RequestTimeTooSkewed

    This error happens due to a misconfiguration of your web server’s timezone settings. To resolve it, contact your hosting company and ask them to reconfigure the timezone settings properly.

    Error: SignatureDoesNotMatch

    If you receive this error, followed by an error message that says
    The request signature we calculated does not match the signature you provided, it likely means that your bucket name contains capital letters or spaces. To resolve the issue, rename your bucket so that it does not contain any capital letters. You may also create a new bucket without any capital letters in the name to resolve it.

    Error: NoSuchKey The specified key does not exist

    This error occurs when there’s an issue with the way the file, or even the bucket, is named. All punctuation and special characters should be removed.

    For example: If you have a file named test-file-one.mp4.zip change it to testfileone.zip

    Other errors or problems uploading files to Amazon S3

    If you have issues uploading files to Amazon S3 or accessing existing files in Amazon S3, consult the steps below to resolve the issue.

    1. Check your Amazon S3 Host settings in Downloads → Settings → Extensions → Amazon S3. Ensure that your host is set up correctly, including checking you have set up the correct region (read the point on Amazon S3 Host above to see how to do this).
    2. Ensure the filename of your file is within the maximum limit of 1024 characters. You can find more information in Amazon’s documentation on how to correctly format your filenames.
    3. If you have recently switched to a new Amazon S3 account, and are having trouble uploading files to your bucket(s), this is typically a temporary issue that can happen soon after creating new buckets or accounts. It should resolve itself automatically after a few hours. See Amazon’s documentation for more information on this.
    4. Still no luck? Contact support and include the exact error message or behavior you’re experiencing.

    Software License updates failing due to Download failed. cURL error 8: Invalid Content-Length: value

    It’s possible the Amazon S3 extension is not forcing redirect for downloads. If you see this error try
    setting the Download Method to Forced.

    Customer sees Update Failed: Download failed. Internal Server Error when attempting to update a plugin

    Confirm that the source file to be used for automatic updates is selected in the Download’s licensing settings.

    You will likely see the following PHP Fatal error in the store’s PHP error log file:

    PHP Fatal error:  Uncaught InvalidArgumentException: Found 2 errors while validating the input provided for the GetObject operation:
    [Key] is missing and is a required parameter
    [Key] expected string length to be >= 1, but found string length of 0 in /home/ph198/public_html/wp-content/plugins/edd-amazon-s3/vendor/aws/aws-sdk-php/src/Api/Validator.php:65
    

    The post Amazon S3 first appeared on Easy Digital Downloads.

    ]]>
    Frontend Submissions – Basic Setup https://easydigitaldownloads.com/docs/frontend-submissions-basic-setup/ Mon, 24 Jan 2022 19:53:27 +0000 https://edd-site.lndo.site/docs/frontend-submissions-basic-setup/ Table of Contents Main Settings Forms/Pages Permissions Emails Integrations Frontend Submissions (FES) is an extension for Easy Digital Downloads that allows you to create your own storefront for selling third party products. Once FES is configured, you may allow anyone you wish to sell digital products through your store. You can also: moderate vendors moderate uploads optionally

    The post Frontend Submissions – Basic Setup first appeared on Easy Digital Downloads.

    ]]>
    Table of Contents

    Frontend Submissions (FES) is an extension for Easy Digital Downloads that allows you to create your own storefront for selling third party products.

    Once FES is configured, you may allow anyone you wish to sell digital products through your store. You can also:

    • moderate vendors
    • moderate uploads
    • optionally track commissions (with an extension)
    • allow vendors to view orders
    • allow vendors to create/edit/delete products
    • give vendors access to their own product dashboard
    • and much more

    Frontend Submissions Overview

    After you have installed and activated the Frontend Submissions extension, you can find the settings area by navigating to EDD FES → Settings.

    Main Settings

    Rename Vendor: Add new text here if you’d like to change all references of “Vendor” to something else (ex: Shop Owner).

    Rename Product: Add new text here if you’d to change all references of “Product” to something else (ex: Files).

    Vendor Announcement: You can add text here specific to Vendors which will show on the Vendor Dashboard page.

    Use FES’s CSS: You can disable styles added by Frontend Submissions if needed. Typically this would be done if there are styles already in place from your theme or if there are issues being caused by the FES CSS.

    Forms/Pages

    Vendor Dashboard Page – This is the page that acts as the central frontend dashboard for vendors. This page was automatically created when you activated Frontend Submissions. If you choose to change this page, please ensure that you update the select page here as well. This page must contain the [fes_vendor_dashboard] shortcode.

    Vendor Page – This page is used as the base page for vendor stores. This page was created when you activated Frontend Submissions and will usually be left as is. This page must contain the [downloads] shortcode.

    Enable Multiple Purchase Mode for all vendor products: Enable this option to allow customers to purchase multiple variations of a Vendor product simultaneously.

    Show custom fields on the download: Enable this option if you want to select which fields to show on the product page using the radio buttons on the top of each field on the submission form builder.

    Permissions

    Registration: Enable this option to allow guests to apply to become a Vendor.

    Applications: This option allows existing WordPress users to apply to become a Vendor.

    Show the Admin Bar: This option allows the admin bar to be shown to logged in Vendors

    Automatically Approve Vendors: This allows the Vendors to be automatically approved, opposed to being in moderation until the site owner approves them.

    Automatically Approve Submissions: This allows Vendors to add products freely without having to wait on the site owner to approve submissions.

    Automatically Approve Vendor Edits: This allows Vendors to edit their products without having to wait on the site owner to approve the change.

    Allow Vendors to Create Products: This allows Vendors to create products.

    Allow Vendors to Edit Products: This allows Vendors to edit products they’ve created.

    Allow Vendors to Delete Products: This allows Vendors to delete products they’ve created.

    Allow Vendors to View Orders: This allows Vendors to view the orders that have been made for their products.

    Emails

    Under the Emails section, you can configure each of the emails sent out for various events. Click here for a list of template tags available and sample emails.

    Integrations

    This area allows the integration with reCAPTCHA to allow it to be added to the login and contact forms for Vendors. You can read more here on how to configure reCATPCHA.

    The next steps of the setup process include the Submission, Profile, and Registration forms for Vendors. You can read more about each form through the links below.

    The post Frontend Submissions – Basic Setup first appeared on Easy Digital Downloads.

    ]]>
    Recurring Payments – Managing Subscriptions https://easydigitaldownloads.com/docs/recurring-payments-managing-subscriptions/ Mon, 24 Jan 2022 19:53:25 +0000 https://edd-site.lndo.site/docs/recurring-payments-managing-subscriptions/ Recurring Payments has a complete interface for viewing and managing subscriptions, their payments, and the customer information for those payments. Shortcodes are also available for customers to self-manage their subscriptions. Table of Contents Admin Management Subscription Status Manually Renew Customer Management Update Payment Method Revenue Report FAQs Subscription Management for Administrators The management panel can

    The post Recurring Payments – Managing Subscriptions first appeared on Easy Digital Downloads.

    ]]>
    Recurring Payments has a complete interface for viewing and managing subscriptions, their payments, and the customer information for those payments. Shortcodes are also available for customers to self-manage their subscriptions.

    Subscription Management for Administrators

    The management panel can be found by navigating to Downloads → Subscriptions in the WordPress admin area, and looks like this:

    • The Customer column lists the customer’s name, with a link to the customer details page.
    • The Status column lists the subscription status, see option below under “Usage.”
    • The Billing Cycle column contains the billing cycle. Options are Daily, Weekly, Monthly, Yearly.
    • The Initial Amount column lists the initial amount paid.
    • The Times Billed column lists how many times the customer has been billed.
    • The Renewal Date lists the renewal date or the date the subscription will complete.
    • The Payment column lists the Payment ID number and links to the original payment record; the one that created the subscription(s).
    • The Download column lists the download that was purchased with a link directly to the product admin page.
    • The Actions column lists a link to the details page for this particular subscription.

    Single Subscription Management

    When you click View on the list of subscriptions you’ll be taken to a page that looks like this:

    Usage

    This page provides methods to accomplish three key tasks:

    1. You may change the Expiration Date of the subscription, effectively adjusting the term of the subscription. This does not update the payment gateway, so this should always match the payment gateway’s renewal date.
    2. Cancel the subscription. When a subscription is canceled, it updates the subscription status within EDD as well as stopping the payment process at the payment gateway (Stripe, PayPal, etc).
      NOTE: Changing the status back to Active in EDD will not turn recurring billing back on. If the payment gateway supports Reactivating a subscription, a Reactivate button will exist in place of the Cancel Subscription button. Otherwise, the customer must purchase a new subscription.
    3. You may change the status of the subscription.  Your options for status are:
      • Pending: This status means the subscription is awaiting successful payment verification
      • Active: This status is reserved for subscriptions with payments being actively collected.
      • Completed: The subscription has run its course and is now marked as complete. Some gateways, such as PayPal, refer to completed subscriptions as “expired”. However, in EDD we refer to them as “Completed” for better clarity.
      • Failed: The subscription has missed multiple payments, most likely due to payment failures. This can happen when a card expires or a customer changes payment information.
      • Canceled: The subscription has been canceled and is no longer processing payments. Subscriptions may be canceled by a user or site owner. When a subscription is canceled by the site owner via the Payment Gateway, it will update in EDD if the proper webhook is set according to that gateway’s documentation. In the event that access is granted with a subscription, a “Cancelled” subscription will still have access and will only be denied once the subscription is past the expiration date.

    Information

    In addition to the above tasks, this page gives us this information:

    • Initial Purchase ID: links to the payment record under Payments
    • Billing Period: options are Daily, Weekly, Monthly, Yearly
    • Times Billed: the number of times the customer has been billed
    • Product: the title of the product linked to the Download editing page
    • Profile ID: the id of the transaction provided by the merchant processor
    • Date Created
    • Expiration Date
    • Subscription Status: see status options above

    Renewal Payments

    Each payment made is listed with a Payment ID, Amount, Date, Status, and an Actions link. The “View Details” link in the “Actions” column takes you to the Payment page for that record.

    Manually Record Payments

    Renewal payments may be manually entered using the form below the Renewal Payments table. This may sometimes be necessary if a renewal has been processed manually or there was a technical error that resulted in the renewal not getting processed by the payment gateway.

    Total: Total amount of the renewal payment

    Transaction ID: Renewal payment transaction ID. This field is optional and can be left blank.

    Record Payment Only: This option added the renewal payment to EDD’s Purchase History and records to the Subscription’s Renewal Payments list.

    Record Payment and Renew Subscription: In addition to recording the renewal payment (described above), it updates the Subscription’s Expiration Date. This can also update a connected license and/or All Access pass expiration date if either extension is used.

    Note: If a subscription is manually renewed late, then the expiration date for the subscription and/or license may need to be manually updated to match the actual renewal date.

    Subscription Management for Customers

    Recurring Payments includes a Subscriber Account Dashboard which allows customers to view and manage their subscriptions. To make this dashboard you can create a page with the [edd_subscriptions] shortcode on it.

    This will render a listing of subscriptions with details and several actions:

    Actions:

    View Invoice

    The View Invoice action shows the invoice for the initial subscription purchase with details about the subscription and product purchased.

    Update Payment Method

    The Update Payment Method allows the customer to change their credit card information (if they used one) and their billing address information. This option is typically used if a customer wants to change their card or if their payment fails and the card needs to be updated. This does not apply to purchases made via PayPal, as the customer manages the payment source via their PayPal account.

    To update the payment method, click Update Payment Method:

    The customer will see a form where they can update their credit card information. If the setting “Show Previously Used Cards” is enabled within the Stripe gateway settings (Downloads → Settings → Payments → Stripe) then the customer will be able to see the credit card that is linked to the membership and they can choose to add another one if they would like to change it.

    Revenue Reports

    When the Recurring Payments extension is activated, it adds a new option to the Reports page under Downloads → Reports. Once on that page, make sure you’re on the Reports tab at the top, and then select Subscription Renewals from the report drop-down menu.

    Report Data

    This report renders Renewals and Earnings for subscription payments only. This means initial payments are not included. For example, if someone subscribes and the initial payment is $40, with $10/mo after that, the $40 will not be included in this report.

    The Renewals and Earnings report allows for tax exclusion, and offers these time filters:

    • Today
    • Yesterday
    • This Week
    • Last Week
    • This Month
    • Last Month
    • This Quarter
    • Last Quarter
    • This Year
    • Last Year
    • Custom

    FAQs

    See the Common Questions and Problems doc for more Recurring Payments FAQs.

    What happens when a subscription payment fails?

    When a recurring payment fails, it will automatically retry over a couple days or weeks depending on your payment gateway. By default, customers should get an email from your EDD store that the payment failed and they should update their payment method. No action is required as the store owner, as the payment will automatically retry. With PayPal, it will retry the renewal payment 2 times, every 5 days. Stripe depends on your account settings. If all retry attempts fail, the subscription with be in a Failed state and the customer will have to re-purchase if they want to re-subscribe.

    Can customers switch payment methods? For example, from PayPal to credit card?

    A customer cannot change their subscription from one payment gateway to another. However, a customer could cancel their existing subscription and then complete a new purchase, choosing a different payment gateway at checkout. This will create a new subscription for them using the newly selected gateway.

    For example, if a customer is using Stripe and they want to switch to PayPal, they would cancel their current subscription set up through Stripe, then complete a new purchase, this time selecting PayPal at checkout. This may happen if a customer opened a new PayPal account and wants to disconnect their current credit card, or vice versa to switch from PayPal to a credit card.

    The post Recurring Payments – Managing Subscriptions first appeared on Easy Digital Downloads.

    ]]>
    Recurring Payments – PayPal Gateway Configuration https://easydigitaldownloads.com/docs/recurring-payments-paypal-gateway-configuration/ Mon, 24 Jan 2022 19:53:22 +0000 https://edd-site.lndo.site/docs/recurring-payments-paypal-gateway-configuration/ Table of Contents Set up PayPal Cancelling Subscription as a Customer Cancelling Subscriptions as an Admin Updating Credit/Debit Card Information PayPal Commerce Pro (Onsite Credit Card Forms) Support Multiple Subscription Support Legacy PayPal Setup PayPal is included with Easy Digital Downloads, so no installation is necessary. If you wish to use it with Recurring Payments

    The post Recurring Payments – PayPal Gateway Configuration first appeared on Easy Digital Downloads.

    ]]>
    Table of Contents

    PayPal is included with Easy Digital Downloads, so no installation is necessary. If you wish to use it with Recurring Payments follow the instructions below.

    Legacy PayPal integrations including PayPal Standard, PayPal Express, PayPal Pro, or PayPal Payments Advanced are being deprecated and will no longer receive updates. If you are not able to upgrade to EDD 2.11 or later, you can refer to the legacy setup steps.

    Set up PayPal Integration

    It’s important to follow all steps laid out in the PayPal Gateway you are using.

    PayPal Documentation (new in EDD 2.11)

    Important Setup Note: If using the new PayPal integration in EDD 2.11, you must make sure your webhook is valid. Subscriptions will not work properly otherwise.

    If you’re using the new PayPal integration included with EDD 2.11, then the first thing you should do is double-check that your webhook is fully configured. Navigate to Downloads → Settings → Payments → PayPal and wait for your account information to load. Your webhook might be missing events, like this:

    Just click the “Sync Webhook” button to update it with the new events required by Recurring. It should now look like this:

    You should only have to do this once.

    Canceling Subscriptions

    Canceling subscriptions is done in a variety of ways depending on your site setup and situation.

    Canceling as a Customer

    There are two ways a customer can cancel a subscription.

    1. From your store’s account page.

    2. From a customer’s PayPal account. Click here for PayPal’s instructions.

    Canceling as a Site Administrator

    There are two ways to cancel PayPal subscriptions as a store administrator.

    1. Within Easy Digital Downloads

    Navigate to the subscription in question.

    • Go to Downloads → Subscriptions.
    • Locate the correct subscription and click View.

    Click Cancel Subscription button on subscription pages within Easy Digital Downloads.

    2. Within PayPal

    The page for managing subscriptions in PayPal is here: https://www.sandbox.paypal.com/billing/subscriptions

    Or, from your PayPal Dashboard, go to Pay & Get Paid → Subscriptions.

    Then click “Subscriptions” to see your PayPal Subscriptions.

    Click the Subscription ID to view the subscription details, then click Update. Update options will appear with Cancel being one of the options.

    Updating Credit/Debit Card Information

    The payment information needs to be updated via the customer’s PayPal account. Click here for instructions.

    PayPal Commerce Pro (Onsite Credit Card Forms) Support

    When an item that is a recurring payment is in the cart, the Credit Card / Debit Card button will open a PayPal window to complete the purchase, instead of showing card fields on your checkout page. Subscription payments are required to be completed on PayPal’s site instead of on your store’s website.

    Multiple Subscription Support

    Only one subscription may be purchased per transaction with all PayPal products. The customer may have as many subscriptions as they wish, but each must be purchased in a separate transaction.

    If the customer attempts to put more than one subscription into the cart and check out, they’ll see a notice explaining that this does not work.

    Important Note: As of November 1, 2019, PayPal no longer supports creating multiple subscriptions in a single purchase. See our blog post for more information.

    PayPal (Legacy)

    Note: This section is only intended for stores that cannot run Easy Digital Downloads version 2.11 or later.

    PayPal should be configured per the documentation for your specific gateway.

    PayPal Standard Documentation or PayPal Pro / Express Documentation

    Note: If using PayPal Standard/Express/Website Payments Pro, your IPN and API credentials must be configured. Subscriptions will not work properly otherwise.

    Website Payments Pro Account Requirements:

    Using PayPal Website Payments Pro (Legacy) with Recurring Payments requires some specific configurations in your PayPal account.

    1. Make Sure You Have PayPal Pro: Installing the PayPal Pro extension for Easy Digital Downloads does not mean you’re automatically using PayPal Pro. PayPal Pro costs $30/month; you can set it up by calling them.
    2. PayPal Legacy Account: In order to use PayPal Pro with Recurring Payments your PayPal account must be a “legacy” account. There isn’t a perfect way to determine if your account is Legacy, but one clue is to look for a menu item in PayPal called “PayPal Manager”. If you have this, then you are NOT a Legacy account. If unsure contact PayPal’s support team by phone.
    3. Enable Direct Payment Recurring Payments (DPRP): This is required and you must call PayPal’s support team to enable it for your account. DPRP costs an additional $30/month.

    Common issues with legacy integrations:

    • For the cancel button to work, IPN and API have to be properly configured and working. Most often with PayPal Standard, the cancel button will not appear if your API Username, Password and Signature are missing or incorrect. Review all steps laid out in our PayPal Standard documentation to confirm API and all other settings are properly configured.
    • Renewals not updating due to having an older PayPal Account: Check the Profile ID field on a subscription’s details screen, if it’s starts with an “S” (ie S-nnnnnnnnnnnnnn ) you will need to contact PayPal Merchant Technical Services and notify them that your account is still using out of date subscription IDs and request they update your account.
    • Pending or Failed payments from PayPal Express In-Context purchases: Mostly like the customer navigated to a new tab while the pop-up was loading. The customer must not navigate to a new browser tab while the payment is loading. Unfortunately, this is a limitation in the way Paypal Express In-Context works.

    The post Recurring Payments – PayPal Gateway Configuration first appeared on Easy Digital Downloads.

    ]]>
    Software Licensing – Updater Implementation for WordPress Plugins https://easydigitaldownloads.com/docs/software-licensing-updater-implementation-for-wordpress-plugins/ Mon, 24 Jan 2022 19:53:21 +0000 https://edd-site.lndo.site/docs/software-licensing-updater-implementation-for-wordpress-plugins/ Included with your Software Licensing extension purchase is a sample plugin, which is found in the samples directory inside the Software Licensing zip file. Download the extension from your Account page on our website. It is highly recommended that you open this up and look at it in its entirety. There are two components to

    The post Software Licensing – Updater Implementation for WordPress Plugins first appeared on Easy Digital Downloads.

    ]]>
    Included with your Software Licensing extension purchase is a sample plugin, which is found in the samples directory inside the Software Licensing zip file. Download the extension from your Account page on our website. It is highly recommended that you open this up and look at it in its entirety.

    There are two components to the updater:

    1. The EDD_SL_Plugin_Updater.php file. This contains the class that makes the magic happen.
    2. The code snippet that you place somewhere in your plugin that loads the updater provided by the EDD_SL_PLugin_Updater.php class file. This code is in the edd-sample-plugin.php file.

    Step 1 – Define the updater constants

    In your main plugin file, preferably near the top, or where you have other constants defined, add the following code:

    // this is the URL our updater / license checker pings. This should be the URL of the site with EDD installed
    define( 'EDD_SAMPLE_STORE_URL', 'https://yoursite.com' ); // IMPORTANT: change the name of this constant to something unique to prevent conflicts with other plugins using this system
    // the download ID. This is the ID of your product in EDD and should match the download ID visible in your Downloads list (see example below)
    define( 'EDD_SAMPLE_ITEM_ID', 123 ); // IMPORTANT: change the name of this constant to something unique to prevent conflicts with other plugins using this system
    

    EDD_SAMPLE_STORE_URL must be set to the URL of your site that has Easy Digital Downloads installed.

    EDD_SAMPLE_ITEM_ID must be set to the ID of your product in EDD. Every product has a unique number ID in your admin area. You can find this in your WordPress dashboard when editing products:

    Step 2 – Include the updater class

    Recommended: As more and more plugin developers use the Software Licensing extension to deliver updates to their products, there is a risk of a “conflict” if another plugin includes a different version of the EDD_SL_Plugin_Updater class than you are packaging with your plugin. You can rename this class to something unique to your plugin so that it avoids conflicts. For instance, if my plugin name is “My Custom Ads”, I could rename `EDD_SL_Plugin_Updater` to `MCA_Plugin_Updater` and change any references to it.

    The update system itself is contained within the file called “EDD_SL_Plugin_Updater.php”. This file can be found in the Software Licensing plugin folder inside samples/edd-sample-plugin/. You need to copy this file into your own plugin’s folder. It can be in the same main folder as your plugin file, or in a sub-directory like /includes/. Either way, you need to refer to it properly in the code, like so:

    if ( ! class_exists( 'EDD_SL_Plugin_Updater' ) ) {
    	// load our custom updater if it doesn't already exist 
    	include dirname( __FILE__ ) . '/EDD_SL_Plugin_Updater.php';
    }
    

    You may need to adjust the file path, depending on where you have decided to place the file within your plugin’s folder structure.

    Step 3 – Instantiate the updater class

    We now instantiate our updater class like this:

    // retrieve our license key from the DB
    $license_key = trim( get_option( 'edd_sample_license_key' ) ); 
    // setup the updater
    $edd_updater = new EDD_SL_Plugin_Updater( EDD_SAMPLE_STORE_URL, __FILE__, array(
    	'version' 	=> '1.0',		// current version number
    	'license' 	=> $license_key,	// license key (used get_option above to retrieve from DB)
    	'item_id'       => EDD_SAMPLE_ITEM_ID,	// id of this plugin
    	'author' 	=> 'Author Name',	// author of this plugin
            'beta'          => false                // set to true if you wish customers to receive update notifications of beta releases
    ) );
    

    The license key in this example is stored in an option called “edd_sample_license_key”. You will need to adjust this to retrieve the license key from the option you have set up for your plugin. If you need help setting up an option to store the license key, take a look at the sample plugin, as it includes a fully functional settings page.

    There are several parameters we pass to the EDD_SL_Plugin_Updater class:

    • $api_url – this is the URL of your site that is running Easy Digital Downloads (and the Software Licensing add-on). Pass the EDD_SAMPLE_STORE_URL constant we defined earlier here.
    • $plugin_file – this is the main plugin file. We suggest you use the __FILE__ magic constant provided by PHP. Note, that to do this, you must have this snippet placed in your main plugin file.
    • $api_args – this is an array of options to pass to the updater:
      • version – this is the current version of the plugin that is installed. It is not the latest available version.
      • license – this is the license key retrieved from the database.
      • item_id – this is the ID of our product in Easy Digital Downloads. Just pass the EDD_SAMPLE_ITEM_ID constant we defined earlier here.
      • author – this is the name of the person or company that wrote the plugin (you!)
      • beta – this allows you to indicate if customers should receive update notifications for beta version. See Releasing beta versions for more information.

    Note: beginning with Software Licensing version 3.6.12, the plugin updater class is at version 1.8, and includes documented support for auto updates, which WordPress added in version 5.5. To support auto updating, you will need to make sure your updater call is loaded on the `init` hook. Previously, the sample code recommended using `admin_init`.

    The sample plugin/theme within the Software Licensing extension should be considered the authoritative source for sample code.

    Step 4 – Create a settings page

    For a plugin to receive updates, the license key needs to be activated. To activate a license key, the customer will need to enter the key in a field within your plugin settings; then that key needs to be sent to the Software Licensing API on your store’s site.

    The sample plugin included with Software Licensing uses a settings page with a single input field. This can work quite well but is meant primarily for demonstrative purposes. It is recommended that you integrate the license key field on your existing settings pages.

    This code sets up a submenu page called “Plugin License” under the Plugins menu.

    There are two lines at the top of the edd_sample_license_page function:

    $license = get_option( 'edd_sample_license_key' );
    $status  = get_option( 'edd_sample_license_status' );
    

    The first is the license itself and the second is the status of the license. Once we have activated our license, we will change the status (on our local site) to “active”. This is so that we can show an “Activate License” button if the license has not yet been activated, and hide the button if it has. See the screenshot below:

    The idea here is that we first enter a license key and click “Save Changes”, which causes the license key to be stored in our plugin/theme options. Once the option is stored, we click the “Activate License” button to trigger the API call.

    The activate button is just a simple input field with a type of “submit” and a name attribute that is different than our save button. The names must be different so that we can know when the activate license button was clicked.

    Step 5 – Activate the license key

    To activate a license key, we “listen” for the Activate License button to be clicked then grab the value entered in the license key field and send an activation request to the API.

    If everything runs correctly after clicking the “Activate License” button, the activate button will be replaced with the word “active”, and the license status will reflect the newly activated state in your EDD store’s dashboard. If there is an error when activating the license key, the page will be reloaded and an error and message parameter will be added to the URL. We can then use the admin_notices hook (or any other applicable method) to display the error to the customer.

    For example, if a customer enters an invalid license key, an error message will be displayed:

    That’s it!

    Important notes

    • The code shown on this page is purely for demonstrative purposes and is not meant to be used as is. Do not copy and paste it into your plugin and expect it to work as is.
    • All function names added to your plugin need to get a unique prefix. We have used edd_sample_ throughout this example. Do not keep edd_sample_ in your own plugin, replace it with your own unique prefix.
    • The names of the constants must be changed. Do not keep them as EDD_SAMPLE_ITEM_ID and EDD_SAMPLE_STORE_URL. Use your own unique constants.
    • If you are extending the updater class from a file other than the main plugin file, add a define( ‘YOUR_PREFIX_PLUGIN_FILE’, __FILE__ ); to the main plugin file, and then instead of calling __FILE__ as the second parameter of the new EDD_SL_Plugin_Updater class, call YOUR_PREFIX_PLUGIN_FILE there.
    • If you have issues with SSL verification when requesting updates, you can use the `edd_sl_api_request_verify_ssl` filter to disable the SSL Verification flag.
    • WordPress 5.5 introduced auto-updates for themes and plugins. If you would like to prevent your users from enabling auto-updates for your theme or plugin, you can add a snippet to your distributed code to disable auto-updates:
    add_filter( 'auto_update_plugin', 'edd_sample_disable_plugin_autoupdates', 10, 2 );
    function edd_sample_disable_plugin_autoupdates( $update, $plugin ) {
    	if ( 'my-plugin/my-plugin.php' === $plugin->plugin ) {
    		return false;
    	}
    
    	return $update;
    }
    
    add_filter( 'auto_update_theme', 'edd_sample_disable_theme_autoupdates', 10, 2 );
    function edd_sample_disable_theme_autoupdates( $update, $theme ) {
    	if ( 'my-theme' === $theme->theme ) {
    		return false;
    	}
    
    	return $update;
    }

    The post Software Licensing – Updater Implementation for WordPress Plugins first appeared on Easy Digital Downloads.

    ]]>
    Software Licensing – License Renewal & Expiration Reminder Emails https://easydigitaldownloads.com/docs/software-licensing-license-renewal-expiration-reminder-emails/ Mon, 24 Jan 2022 19:53:20 +0000 https://edd-site.lndo.site/docs/software-licensing-license-renewal-expiration-reminder-emails/ A key aspect of running a site with the Software Licensing extension is the ability to inform your customers when their licenses are coming up for renewal or are expired. This can help increase renewal rates. The Software Licensing extension for Easy Digital Downloads has a full-featured system for configuring and customizing these emails. Recurring

    The post Software Licensing – License Renewal & Expiration Reminder Emails first appeared on Easy Digital Downloads.

    ]]>
    A key aspect of running a site with the Software Licensing extension is the ability to inform your customers when their licenses are coming up for renewal or are expired. This can help increase renewal rates. The Software Licensing extension for Easy Digital Downloads has a full-featured system for configuring and customizing these emails.

    Recurring Payment Emails: When a license is associated with a Recurring Payments Subscription, the Recurring Payments emails will be used in lieu of the Software Licensing renewal emails.

    To set up renewal/expiration reminders, go to Downloads > Emails > Add New Email > Add License Renewal Notice.

    Email Editor

    See the email settings for details on editing emails.

    Email Send Periods

    Software Licensing comes with a standard set of send periods to allow a very customizable set of emails to be sent to customers. You can send emails with any of the following send periods:

    • One Day Before/After Expiration
    • Two Days Before/After Expiration
    • Three Days Before/After Expiration
    • One Week Before/After Expiration
    • Two Weeks Before/After Expiration
    • One Month Before/After Expiration
    • Two Months Before/After Expiration
    • Three Months Before/After Expiration
    • At the time of Expiration

    The License renewal email unsubscribe Feature

    From time to time a customer may not want to renew their license. The {unsubscribe_url} email tag gives you the ability to provide a link in the reminder emails that allows the customer to easily unsubscribe from receiving any further emails related to that specific license. They will still receive renewal notices for any other licenses. As an administrator, you can view an unsubscribe URL for a specific license by viewing the License Details card.

    The post Software Licensing – License Renewal & Expiration Reminder Emails first appeared on Easy Digital Downloads.

    ]]>
    Software Licensing – Usage Instructions https://easydigitaldownloads.com/docs/software-licensing-usage-instructions/ Mon, 24 Jan 2022 19:53:20 +0000 https://edd-site.lndo.site/docs/software-licensing-usage-instructions/ This document will walk you through the setup instructions for the Software Licensing add-on. Supported Software While this add-on has been built specifically for WordPress plugin and theme authors, due to the included API, most software can take advantage of the features it provides. Table of Contents Software Licensing Extension Settings Configuring the Product Options

    The post Software Licensing – Usage Instructions first appeared on Easy Digital Downloads.

    ]]>
    This document will walk you through the setup instructions for the Software Licensing add-on.

    Supported Software

    While this add-on has been built specifically for WordPress plugin and theme authors, due to the included API, most software can take advantage of the features it provides.

    Once installed & activated, settings will exist in:

    1. EDD Settings: Downloads → Settings → Extensions → Software Licensing

    2. Product Settings: Downloads → All Downloads → Edit

    Software Licensing Extension Settings

    Disable Unique Activations: Check this setting if you do not require a unique identifier when activating a license key. When enabled, each activation counts against your limit and deactivating does not increase your activation limit. When disabled, customers can deactivate on a site (or system ID) and activate on a new site (or system ID), which would count as a single activation. This will remove the Manage Sites options from your Order History page.

    Ignore Local Host URLs?: Allow local development domains and IPs to be activated without counting towards the activation limit totals. The URL will still be logged. See How can I ignore Local Host URLs for Activation? for details.

    Selling WordPress Plugins?: Check this box if you are selling WordPress plugins and wish to enable advanced ReadMe.txt file parsing. Checking this will add a metabox to each download which allows for plugin data to be auto filled based on the included ReadMe.txt file in your plugin. Note that this is optional even if you are selling WordPress plugins.

    Display Inline Upgrade Links: Check this box if you want to display inline upgrade links for customers who have upgradable purchases.

    Proration Method: Specify if you want to use Cost-Based or Time-Based to calculate proration for license upgrades. See more about proration below.

    Allow Renewals: Check this box if you want customers to be able to renew their license keys. They’ll also get renewal reminders to their email, and can also renew from their account page (if that page uses the [edd_license_keys] shortcode). NOTE: If the product is a Recurring product and the customer’s subscription is still active, it will automatically renew even if this option is disabled.

    Enforce Email Matching: Check this box if you want to enforce email matching on license renewals. Email matching restricts renewal of licenses to the email address used to originally purchase the license. This prevents license keys from being renewed by a different customer than purchased it.

    Renewal Discount: Enter a discount amount as a percentage, such as 10. Or enter 0 (or blank) for no discount. When the user is on the checkout page renewing their license, this discount will be automatically applied to their renewal purchase. NOTE: If the product is a Recurring product and the customer’s subscription is still active, it will automatically renew with this discount applied.

    Disable Discount Codes on Renewals: Check this box if you want to prevent customers from using non-renewal discounts in conjunction with renewals. This will disable the option to redeem discount codes when the cart contains a license renewal.

    Configuring the Product Options

    License key generation is set up on a product-by-product basis, so not all products sold through your store are required to have license key generation. To set up a product to generate license keys when purchased, go to your Downloads page, then click Edit on the download you wish to configure.

    Below is a screenshot of part of the user interface inside a single download for setting up software licensing for that product.

    On the Download product edit screen, there will be a new “Licenses” meta box added. All setup for the license specific to the current product will be done in this box.

    Note: Bundled products have slightly different options. For details on bundle product configuration, see here.

    1. Check to enable license creation

    Checking this box will cause license keys to be generated anytime someone purchases this product. When a license key is generated, you will be able to see it on the Downloads → Licenses page.

    2. Enter the Activation Limit

    This is the maximum number of times each license key can be activated. If you’d like to limit a license key to 10 uses per customer, enter 10. If you do not want to impose any limit restrictions, leave this blank or enter 0.

    3. Enter the current version number

    This corresponds to the current version number of your software that is available. If you are selling version 1.0, then enter 1.0 here. If the current version available is 1.5, then enter 1.5 here. This version number is used specifically for WordPress plugins and themes that have implemented the automatic upgrade system, but can also be used by any other kind of software by utilizing the included API.

    4. Choose the source file to be used for automatic upgrades

    This lets you set the .zip file (or perhaps other format) that is sent to users when performing an automatic upgrade. This option is used specifically for WordPress plugins and themes that have implemented the automatic upgrade system, but can also be used by any other kind of software by utilizing the included API.

    If you are selling a WordPress plugin or theme, this option should be set to a .zip that contains only the necessary plugin or theme files. This .zip file is set up through the main Download Files configuration section.

    5. Changelog

    This is a documentation of the changes that have been made with each version of the software. Anytime a new version is released, you should add notes about what changed here. These notes will be displayed in the “What’s New” upgrade notices that users can view when upgrading their WordPress plugins or themes. If you are not selling a WordPress plugin or theme, this changelog can still be utilized via the included API.

    See Software Licensing – Changelogs for more details on using the changelog.

    6. License Keys

    By default, Software Licensing will generate a unique 32-digit license key for the completed purchase of a licensed product. There is no limit to the number of keys that can be created.

    Providing your own preset license keys

    The Preset License Keys textarea will allow you to list your own available license keys, one per line.

    You can enter your own keys that each purchase will pull from. Each key will be pulled from the top of the list and will no longer be available to purchasers once issued. Your list could look something like this:

    customkey1
    customkey2
    customkey3
    customkey4
    customkey5

    It is important to note that once your custom license keys have been exhausted, Software Licensing will automatically begin generating its own license keys again. There are only two ways to prevent this from happening:

    1. Keep adding custom keys to the list so that they do not run out.
    2. Use our Purchase Limit extension to ensure that the number of keys you have remaining always matches the number of remaining purchases allowed.

    With the information covered in this article, you can use Software Licensing just for distributing custom license keys at the time of purchase.

    Managing Sold License Keys

    The Downloads → Licenses page provides an overview of all the license keys you have sold. Clicking the key will open the License Details. Several pieces of information are listed with each key:

    • Key – This is the actual license key sent to the user.
      • You can generate a replacement key by clicking the reload icon next to the key in the manage details.
    • Customer – This shows the product the key was purchased for and contains a link
    • Status – This indicates one of these possible license statuses:
      • Active: An active status means the key has been activated by a customer, and is valid. A key is set to active only by being activated by a customer.
      • Inactive: Inactive is the default status for keys. These are keys that either have never been used or have been made available and reset to inactive manually.
      • Expired: Each key is given an expiration date when it is generated. When that date passes, the key is marked as Expired.
      • Disabled: A key will be set as Disabled when a purchase is Revoked or Refunded, or may be set so manually.
    • Activation Limit – This is the number of sites (or times) the license can be activated on.
    • Expiration Date – This is the date that the license expires. All license keys are (by default) valid for 1 year.
    • Purchase Date – This is the date the license was purchased.
    • Term – Length of time the license is available to the customer
    • Related Payments – List of all payments (initial and renewal) for the license
    • Upgrade Path – This shows the available upgrades, upgrade price and direct link to add to cart
    • Renewal URL – This is a direct link to add the download / license to cart to renew
    • Unsubscribe URL – This URL will unsubscribe the customer from renewal notices for the license
    NOTE: Newly created licenses are always set as inactive. They’re not set as active until the customer activates them.

    There are four filters at the top of the page, just below the page title, that let you view license keys by status.

    You can Manage, Extend (renew), Disable, or Delete a license at anytime by hovering over the license and clicking the appropriate link.

    Note: Deleting a license key is irreversible.
    License Logs

    You can also view the activation log for any license by clicking “Logs” tab in the Manage License Details. This log will show you the URL, IP, and date each time this license has been activated.

    Activated Site URLs

    Activated site URLs can be managed by both the store admin and/or customer via the account page.

    Admins can manually manage the Site URLs on a per-license basis from the Manage License Details screen. If you wish to add or remove a site URL from the license, you can do it on this page:

    Customers can also manage active sites via the account page.

    License Renewals

    License renewals must be enabled from Downloads → Settings → Extensions → Software Licensing.

    Customers can renew licenses via Email Renewal Notices, the Checkout page or entering a license in the Renewal Form:

    Sending Email License Renewal Notices

    Software Licensing can automatically send renewal notice emails when license keys are within the specified expiration period set in the renewal notice options. See License Renewal & Expiration Reminder Emails for instructions on how to configure.

    License key renewal notices can be manually resent on a key-by-key basis, or via a bulk action ( Downloads → Licenses). To send renewal notices for multiple keys at once, select the licenses to send a renewal for, then select “Send Renewal Notice” from the dropdown menu at the top left.

    Checkout Page

    If renewals are enabled, there will be a section added to your checkout screen that allows customers to enter an existing license key in order to renew it:

    Screen Shot 2013-06-07 at 4.16.40 PM
    Renewal Form

    You can add the shortcode [edd_renewal_form] to any page on your site to allow customers to input a license key that they wish to renew. Submitting the key will add the product/key to cart.

    License Key History

    Customers’ license keys can be shown in their account page using the [edd_license_keys] shortcode. This will display all license keys that belong to a customer (requires that they are logged in) along with relevant information about the license, such as expiration date, status, renewal options, upgrade options, and a link to view the purchase record for the license.

    License Upgrades

    If desired, upgrade paths can be configured for products that permit customers to upgrade their license keys.

    Upgrade paths are configured on the product edit screen and look like this:

    To create an upgrade path, first select the Download product that customers can upgrade to. This can be the same product or another product in your store’s catalog that has licensing enabled. If the Download you have chosen has variable prices enabled, a Price Option drop down field will appear that lets you select the price option the upgrade is for.

    After selecting the product and the price option (if any), you can choose whether to prorate the license upgrade and whether to offer an additional discount.

    Proration

    Site admins can configure the Proration settings in DownloadsSettingsExtensionsSoftware Licensing. Two options are available for the Proration Method – Cost-Based Calculations and Time-Based Calculations.

    Cost-Based Proration

    Cost-Based Proration will charge customers the difference between the Download they currently have a subscription for, and the price of the Download they wish to upgrade to.

    Example: A customer purchased a Single Site license for Product A for $89 on October 1, 2017. On March 1, 2018 the customer upgrades their license to 2-5 Sites which is $129. The customer will pay $40 to upgrade. On October 1, 2018, the subscription will renew and the customer will pay $129 for Product A (2-5 Sites) and have an active license key until October 1, 2019.

    Time-Based Proration

    When a customer chooses to upgrade and you’ve selected Time-Based Proration, the amount the customer will be charged to upgrade is based on the price difference between the two options, and the time left in their current subscription before it renews.

    Example: A customer purchased a Single Site license for Product A for $89 on October 1, 2017. On March 1, 2018 the customer upgrades their license to 2-5 Sites which is $129. The price difference is $40 and there are 6 months left in their current subscription. The customer will pay $20 to upgrade. On October 1, 2018, the subscription will renew and the customer will pay $129 for Product A (2-5 Sites) and have an active license key until October 1, 2019.

    Upgrading to a Lifetime License

    For lifetime licenses, proration applies a discount to the cost of the lifetime license. Cost-Based Proration will discount the full cost of the original license form the lifetime license cost. Time-Based will calculate a pro-rated discount based on the amount of time left in the license’s term.

    The expiration date of the license will not change; an upgraded license will still expire on the original expiration date whether prorated or not. An exception is if the upgrade is for a different term, in that case, the expiration date will change.

    How a customer upgrades their license

    When a customer wishes to upgrade their license key, they can log into their account (user accounts are required to upgrade a license) and go to their purchase history. From there, they will click on View Licenses and then on View Upgrades. Once an upgrade has been chosen, the customer will click Upgrade License to proceed to the checkout screen where they can complete their purchase.

    Expiration Date

    Software Licensing upgrades will not affect/change the original expiration date of the license unless the term is different.

    Upgrade Revenue

    Site admins can view revenue generated by license upgrades in Downloads → Reports → License Upgrades.

    Adding License Keys to the Emailed Purchase Receipt

    The Software Licensing add-on will make a new template tag available for the purchase receipts: {license_keys}

    In order to send the license key to the buyer, this template tag must be included with the purchase receipt.

    Generating License Keys on Past Purchases

    If you have been selling for some time before activating Software Licensing and you wish to go back and generate license keys for those orders, you can do that by going to Downloads → Tools and using the Retroactive Licensing Processor.

    You can also generate licenses on a per order basis in the Order Details:

    Reports & Exports

    Software Licensing provides reporting for License Renewals & License Upgrades. As well as the ability to export licenses to a csv file.

    Reports

    Software Licensing reports are located under Downloads > Reports > License Renewals or License Upgrades.

    Export Licenses

    Licenses are exported under Downloads > Tools > Import / Export instead of being located under the reports export, in order to limit what roles can access licenses. You can export all licenses or export licenses by status. The file includes license key, status, customer information, product name, dates and activation information.

    Implementing With Your Software

    Software Licensing can be implemented with:

    • WordPress Plugins
    • WordPress Themes
    • Most software languages (Web and Desktop software).
    Adding Automatic Upgrades to Your WordPress Product

    See our documentation about how to integrate automatic upgrades for your WordPress plugins.

    See our documentation about how to integrate automatic upgrades for your WordPress themes.

    Steps to release a new version
    1. Replace the download file with the new one by clicking “Upload a File”.
    2. Then enter appropriate text into the Changelog field in the Licensing meta box.
    3. Increment the version number and save the download.
    4. Click Update to save changes.
    5. Select the filename in the “Update File” dropdown, if the correct file is not already selected.
    6. Your customer’s sites will be notified that there’s a new version, and they will be able to click Update.
    ReadMe.txt Configuration for WordPress Plugins

    ReadMe.txt files can be parsed to appear in the plugin update information. See Parsing ReadMe.txt files in WordPress Plugins for more information on these settings.

    Working with the API for Other Kinds of Software

    This add-on provides a complete API that you can use for activating and validating license keys. You can also use the API for checking if new versions of the software are available, and for downloading install files for the latest version.

    For documentation for working with the API, click here.

    The post Software Licensing – Usage Instructions first appeared on Easy Digital Downloads.

    ]]>
    Software Licensing API https://easydigitaldownloads.com/docs/software-licensing-api/ Mon, 24 Jan 2022 19:53:17 +0000 https://edd-site.lndo.site/docs/software-licensing-api/ The API included with the Software Licensing extension allows you to remotely activate license keys, check if keys are valid (and not expired), and also retrieve information about the latest versions of software. This API can be implemented with most software, not just WordPress Plugins and Themes. In This Article Available API Requests & ParametersWordPress

    The post Software Licensing API first appeared on Easy Digital Downloads.

    ]]>
    The API included with the Software Licensing extension allows you to remotely activate license keys, check if keys are valid (and not expired), and also retrieve information about the latest versions of software. This API can be implemented with most software, not just WordPress Plugins and Themes.

    In This Article

    Available API Requests & Parameters
    WordPress Plugin & Theme Intregration
    Activate a License Key
    Check if a License is Valid / Active
    Getting version information
    Retrieving versions for multiple products at once
    API examples in other languages
    FAQ / Troubleshooting


    There are four API request types available:

    • activate_license – Used to remotely activate a license key
    • deactivate_license – Used to remotely deactivate a license key
    • check_license – Used to remotely check if a license key is activated, valid, and not expired
    • get_version – Used to remotely retrieve the latest version information for a product

    Each of the methods below works in the same way. The website URL that you have Easy Digital Download + Software Licensing installed on will act as the API endpoint. All requests to the API are done as either GET or POST requests and follow this form:

    https://YOURSITE.com/?edd_action={request type}&item_id={download ID here}&license=cc22c1ec86304b36883440e2e84cddff&url={url of the site being licensed}

    The request requires three parameters and has one optional parameter:

    • edd_action – This is the type of request (see below)
    • item_id – Use the Download ID of your download product. This is more accurate than using item_name.
      • Instead of item_id you can also use item_name, which is the name of the download instead of the ID. Passing item_id is preferred, as that’s less likely to change. If the item_name changes, your software need to be update and past referencing the old name will no longer work.
    • license – This is the license key you are performing an action for
    • url – (optional) This is the site URL that the API request is coming from

    URL Tip Desktop Software:
    The url parameter is not limited to URLs. For example desktop software could use the url parameter for a System ID or any unique text.

    License Keys:

    • The license key API only supports the following characters [a-z, A-Z, 0-9, -, _].
    • License keys can have a maximum length of 256 characters.

    WordPress Plugins & Theme Intrigration:
    Refer to the following documents on integrating Software Licensing API with WordPress Plugins & Themes:
    See our documentation about how to integrate automatic upgrades for your WordPress plugins.
    See our documentation about how to integrate automatic upgrades for your WordPress themes

    Activate a License Key

    To activate a license remotely, the URL you will use is:

    https://YOURSITE.com/?edd_action=activate_license&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=http://licensedsite.com

    The item_id parameter (item_id=8) will be replaced with the actual ID of your product. You can find this in your dashboard beside the product:

    The license parameter is set to the license key you wish to activate.

    The response for this request will be a JSON object. If the license has been successfully activated, the response will be:

    {
        "success": true,
        "license": "valid",
        "item_id": false (or Item ID if passed)
        "item_name": "EDD Product Name",
        "license_limit": 0,
        "site_count": 2,
        "expires": "2020-06-30 23:59:59",
        "activations_left": "unlimited",
        "checksum": "<md5 checksum>",
        "payment_id": 12345,
        "customer_name": "John Doe",
        "customer_email": "john@sample.org",
        "price_id": "2"
    }

    If the license is invalid and failed to activate, the response will be:

    {
        "success": false,
        "license": "invalid",
        "item_id": false (or Item ID if passed)
        "item_name": "EDD Product Name",
        "error": "expired",
        "expires": "2020-04-28 23:59:59",
        "license_limit": 0,
        "site_count": 1,
        "activations_left": "unlimited",
        "checksum": "<md5 checksum>",
        "payment_id": 12345,
        "customer_name": "John Doe",
        "customer_email": "john@sample.com",
        "price_id": "2" 
      } 
      

    Possible errors:

    "missing" - License doesn't exist
    "missing_url" - URL not provided
    "license_not_activable" - Attempting to activate a bundle's parent license
    "disabled" - License key revoked
    "no_activations_left" - No activations left
    "expired" - License has expired
    "key_mismatch" - License is not valid for this product
    "invalid_item_id" - Invalid Item ID
    "item_name_mismatch" - License is not valid for this product
    "site_inactive" - Site is not active for this license
    "invalid" - License key does not match
    "valid" - License is valid
    

    Check if a License is Valid / Active

    Checking if a license is valid and not expired is very similar to activating. This request is usually done if you need to confirm that a license is still valid after it has been activated. Licenses expire after one year (by default), so this is what you will use to check if the license has expired.

    To check a license remotely, the URL you will use is:

    https://YOURSITE.com/?edd_action=check_license&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=http://licensedsite.com

    The item_id parameter (item_id=8) will be replaced with the actual ID of your product. You can find this in your dashboard beside the product:

    The license parameter is set to the license key you wish to check.

    The response for this request will be a JSON object. If the license is active and still valid, the response will be:

    {
        "success": true,
        "license": "valid",
        "item_id": false, (or Item ID if passed)
        "item_name": "EDD Product Name",
        "checksum": "",
        "expires": "2020-06-30 23:59:59",
        "payment_id": 12345,
        "customer_name": "John Doe",
        "customer_email": "john@example.org",
        "license_limit": 0,
        "site_count": 2,
        "activations_left": "unlimited",
        "price_id": "2"
    }
    

    If the license is invalid the response will be:

    {
        "success": false,
        "license": "invalid",
        "item_id": false, (or Item ID if passed)
        "item_name": "EDD Product Name",
        "expires": "2014-10-23 00:00:00",
        "license_limit": 0,
        "site_count": 1,
        "activations_left": "unlimited",
        "checksum": "checksum",
        "payment_id": 54224,
        "customer_name": "John Doe",
        "customer_email": "john@sample.com",
        "price_id": "2"
    }
    

    Possible license statuses:

    "disabled" - License key revoked
    "expired" - License has expired
    "key_mismatch" - License is not valid for this product
    "invalid_item_id" - Invalid Item ID
    "item_name_mismatch" - License is not valid for this product
    

    Getting version information

    Retrieving the version information allows you to remotely retrieve data about the latest version number, including changelogs and download links for update files.

    To get version information for a license key:

    https://YOURSITE.com/?edd_action=get_version&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=http://licensedsite.com
    

    The item_id parameter (item_id=8) will be replaced with the actual ID of your product. You can find this in your dashboard beside the product:

    Notes regarding the request:

    • If using item_name instead of item_id, enter the title of the product in Easy Digital Downloads exactly. Using item_id is more accurate.
    • The license and url parameters are optional. If they are omitted, the latest version information will be retrieved but no download link will be included.
    • As of Software Licensing 3.8, you can include platform versions in the request. If the platform version does not meet the minimum requirements set for the product in Easy Digital Downloads, the new_version in the response will be false instead of the new version number. php_version and wp_version are supported by default.

    The response will be a JSON object that looks something like this:

    {
      "new_version": "2.0",
      "stable_version": "2.0",
      "name": "Restrict Content Pro",
      "slug": "restrict-content-pro",
      "url": "https://edd.com/downloads/restrict-content-pro/?changelog=1",
      "last_updated": "2017-01-03 11:59:46",
      "homepage": "https://edd.com/downloads/restrict-content-pro/",
      "package": "",
      "download_link": "",
      "sections": "a:2:{s:11:"description";s:793:"<p>Placerat porta in enim, urna cras, adipiscing augue dis lorem, pulvinar, natoque phasellus eu tincidunt, dictumst nunc ut dignissim turpis ac, pulvinar! Massa! Sed, enim, eu ac augue placerat scelerisque! Eu cursus, ridiculus cum nec lorem, natoque lorem dictumst amet! Nunc placerat dapibus enim dignissim, nunc mattis vel? Dolor nascetur placerat ridiculus augue massa porttitor turpis auctor, etiam et nisi pid ridiculus nisi duis ac. Turpis et non, dapibus diam! Placerat vel? Et, velit turpis mus sociis arcu, vel magna. Habitasse elementum elit cum nec est, eu, montes egestas est mattis lacus, turpis urna parturient, egestas, integer augue, penatibus natoque elit, rhoncus mid elementum, integer vut turpis. Et? Nisi pid. Nec, placerat ut tristique lorem a nunc velit nunc est.</p>n";s:9:"changelog";s:0:"";}",
      "banners": "a:2:{s:4:"high";s:0:"";s:3:"low";s:0:"";}"
    }
    

    Notes regarding the response:

    • If no license key is provided in the get_version request, the version information is still returned; however, the package and download values will be empty. Conversely, if a license key is provided but it does not belong to the item_id or item_name in the request, an error response will be returned with a reason as the msg value.
    • A download_link will be included if a file exists regardless of the state of the license. However, the download will not work unless the license is active. This allows sites that have an expired license, to renew it, but not have to wait for the update caching to clear before getting the update.
    • The sections property is a serialized array that includes the full product description and changelog. If using ReadMe.txt parsing for WordPress plugins, it will also include additional information provided through the readme file.

    If you wish to retrieve information about a beta version, append &beta=1 to your API request URL, like so:

    https://YOURSITE.com/?edd_action=get_version&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=http://licensedsite.com&beta=1

    Retrieving versions for multiple products at once

    Retrieve versions for multiple products in one request, using the products argument. This argument accepts an array of items. Each item should contain the same arguments sent in a single request.

    Here’s an example using cURL:

    curl -d edd_action=get_version -d products[0][item_id]=356 -d products[0][license]=59cc77ea94a2d867069a9d96142a35b8 -d products[0][url]="https://licensedsite.com" -d products[1][item_id]=46 -d products[1][license]=5cdd12a966c498fc6e423e261fe05303 -d products[1][url]="https://licensedsite.com" https://YOURSITE.com

    And here’s an example using the WordPress
    wp_remote_post() function:

    $response = wp_remote_post( 'https://YOURSITE.com', array(
    	'body' => array(
    		'edd_action' => 'get_version',
    		'products'   => array(
    			'my-first-plugin' => array(
    				'item_id' => 356,
    				'license' => '59cc77ea94a2d867069a9d96142a35b8',
    				'url'     => 'https://licensedsite.com'
    			),
    			'my-second-plugin' => array(
    				'item_id' => 46,
    				'license' => '5cdd12a966c498fc6e423e261fe05303',
    				'url'     => 'https://licensedsite.com'
    			)
    		)
    	)
    ) );

    The response will be a JSON object containing results for each of the provided products. The product keys you provided in the request will be retained in the response. Here’s an example:

    {
      "my-first-plugin": {
        "new_version": "2.0",
        "stable_version": "2.0",
        "name": "My First Plugin",
        "slug": "my-first-plugin",
        "url": "https://edd.com/downloads/my-first-plugin/?changelog=1",
        "last_updated": "2021-01-03 11:59:46",
        "homepage": "https://edd.com/downloads/my-first-plugin/",
        "package": "",
        "download_link": "",
        "sections": "a:2:{s:11:"description";s:793:"<p>Placerat porta in enim, urna cras, adipiscing augue dis lorem, pulvinar, natoque phasellus eu tincidunt, dictumst nunc ut dignissim turpis ac, pulvinar! Massa! Sed, enim, eu ac augue placerat scelerisque! Eu cursus, ridiculus cum nec lorem, natoque lorem dictumst amet! Nunc placerat dapibus enim dignissim, nunc mattis vel? Dolor nascetur placerat ridiculus augue massa porttitor turpis auctor, etiam et nisi pid ridiculus nisi duis ac. Turpis et non, dapibus diam! Placerat vel? Et, velit turpis mus sociis arcu, vel magna. Habitasse elementum elit cum nec est, eu, montes egestas est mattis lacus, turpis urna parturient, egestas, integer augue, penatibus natoque elit, rhoncus mid elementum, integer vut turpis. Et? Nisi pid. Nec, placerat ut tristique lorem a nunc velit nunc est.</p>n";s:9:"changelog";s:0:"";}",
        "banners": "a:2:{s:4:"high";s:0:"";s:3:"low";s:0:"";}"
      },
      "my-second-plugin": {
        "new_version": "1.3",
        "stable_version": "1.3",
        "name": "My Second Plugin",
        "slug": "my-second-plugin",
        "url": "https://edd.com/downloads/my-second-plugin/?changelog=1",
        "last_updated": "2021-03-08 11:59:46",
        "homepage": "https://edd.com/downloads/my-second-plugin/",
        "package": "",
        "download_link": "",
        "sections": "a:2:{s:11:"description";s:793:"<p>Placerat porta in enim, urna cras, adipiscing augue dis lorem, pulvinar, natoque phasellus eu tincidunt, dictumst nunc ut dignissim turpis ac, pulvinar! Massa! Sed, enim, eu ac augue placerat scelerisque! Eu cursus, ridiculus cum nec lorem, natoque lorem dictumst amet! Nunc placerat dapibus enim dignissim, nunc mattis vel? Dolor nascetur placerat ridiculus augue massa porttitor turpis auctor, etiam et nisi pid ridiculus nisi duis ac. Turpis et non, dapibus diam! Placerat vel? Et, velit turpis mus sociis arcu, vel magna. Habitasse elementum elit cum nec est, eu, montes egestas est mattis lacus, turpis urna parturient, egestas, integer augue, penatibus natoque elit, rhoncus mid elementum, integer vut turpis. Et? Nisi pid. Nec, placerat ut tristique lorem a nunc velit nunc est.</p>n";s:9:"changelog";s:0:"";}",
        "banners": "a:2:{s:4:"high";s:0:"";s:3:"low";s:0:"";}"
      }
    }

    Accessing the API in other languages

    Because the API uses simple HTTP POST requests, it can be accessed in just about any language. Here are some examples.

    FAQ / Troubleshooting

    Can I create Custom Formatted Keys?

    The default key format is a simple md5 sum.
    You may change that format to just about anything you want.

    How do I prevent access to my software, plugin, or theme if the license is expired or disabled?

    This license’s status does not affect the software, it merely indicates the status of the key. It’s up to the developer to read that status to do something. For example, if a key is Expired the software could choose to stop working or could choose to pop up a warning.

    One exception to this is that when EDD sees an expired or disabled key attached to a download, download links, including the get_version link, will not work. Therefore, updates will no longer work via the get_version response.

    If you are having trouble getting license keys to activate in your implementation of
    Software Licensing, here are some tips to help resolve common issues.

    Requests blocked by a security plugin

    Security plugins for WordPress often have features that interfere with the license key API requests. These features tend to make the activation (and other API requests) return an unexpected response, causing the activation routine to fail.

    For example, you might get a response like this from the server if you have a security plugin that is interfering:

    [response] => Array
    	(
    		[code] => 403
    		[message] => Forbidden
    )

    The iThemes Security plugin is known to have a setting that can cause this issue. The setting is called
    Filter Suspicious Query Strings in the URL

    To resolve the issue, simply disable the
    Filter Suspicious Query Strings in the URL setting. If you’re not using iThemes Security, it will be named something different, though similar.

    Requests blocked by special .htaccess rules

    Some sites will add special rules to the .htaccess file in order to block certain IP addresses or add additional protection to the site.

    If you have any special .htaccess rules in place and license keys are not activated, try removing the rules and then activating license keys. If the license keys activate properly now, you will need to adjust the rules to allow the licensing API routines to function.

    Requests blocked by a coming soon or maintenance plugin

    If you are using a coming soon or maintenance mode plugin, it’s likely that license keys will not be able to be activated, since the coming soon / maintenance mode plugin will block the requests. To resolve the issue, simply deactivate the maintenance mode or the coming soon plugin. If you need to leave it active, deactivate it temporarily to test the license key activation process and then reactivate the plugin.

    The post Software Licensing API first appeared on Easy Digital Downloads.

    ]]>
    Software Licensing – Activating, Checking and Deactivating License Keys in WordPress Plugins https://easydigitaldownloads.com/docs/software-licensing-activating-checking-and-deactivating-license-keys-in-wordpress-plugins/ Mon, 24 Jan 2022 19:53:16 +0000 https://edd-site.lndo.site/docs/software-licensing-activating-checking-and-deactivating-license-keys-in-wordpress-plugins/ Important Note This documentation is not needed if using the Software Licensing API Updater. Only refer to this document if you are not using the updater or if this is for reference: See our documentation about how to integrate automatic upgrades for your WordPress  plugins.See our documentation about how to integrate automatic upgrades for your

    The post Software Licensing – Activating, Checking and Deactivating License Keys in WordPress Plugins first appeared on Easy Digital Downloads.

    ]]>

    Important Note

    This documentation is not needed if using the Software Licensing API Updater. Only refer to this document if you are not using the updater or if this is for reference:
    See our documentation about how to integrate automatic upgrades for your WordPress  plugins.
    See our documentation about how to integrate automatic upgrades for your WordPress themes.

    Table of Contents

    Activating

    With Software Licensing, in order for a license key to be fully utilized, it must be activated. This can happen in one of two ways:

    1. A site admin can manually click the “Activate” link for the license from the Downloads → Licenses page
    2. The buyer can remotely activate the license via a system in your plugin/theme/software that uses the API to trigger the activation

    Note: the sample plugin and the implementation shown in this document are purely samples. The best implementations of Software Licensing take these samples and integrate them seamlessly into the existing settings page of your plugin.

    In this documentation, we’re going to show you how to activate a license remotely via a system added to your WordPress plugin. The sample code we’re showing you in this example is the same exact code that is included with the sample plugin and themes, available for download after purchasing the extension.

    There are two main components to activating a license remotely:

    1. Saving the license key in the data (a theme or plugin option)
    2. Sending the stored license key through the API to the store website for verification and activation

    When a license is remotely activated, the status of the license in your site’s dashboard will be updated from “inactive” (the default state) to “active”.

    Let’s first look at creating a simple options page to store our license.

    This code sets up a sub-menu item in the Plugins menu called “Plugin License”. We’re using a plugins page in this example, but the code is identical for themes.

    There are two lines at the top of the code:

    The first is the license itself and the second is the status of the license. Once we have activated our license, we will change the status (on our local site) to “active”. This is so that we can show an “Activate License” button if the license has not yet been activated, and hide the button if it has. See the screenshot below:

    The idea here is that we first enter a license key and click “Save Changes”, which causes the license key to be stored in our plugin/theme options. Once the option is stored, we click the “Activate License” button to trigger the API call.

    The activate button is just a simple input field with a type of “submit” and a name attribute that is different than our save button. The names must be different so that we can know when the activate license button was clicked.

    In order to activate the license, we just need to “watch” for when the activate button is clicked. The way that we do this is by setting up a function that is hooked to the “admin_init” hook, like so:

    If everything runs okay after clicking the “Activate License” button, the activate button will be replaced with the word “active”, and the license status will reflect the newly activated state in your EDD store’s dashboard. If there is an error when activating the license key, the page will be reloaded and an error and message parameter will be added to the URL. We can then use the admin_notices hook (or any other applicable method) to display the error to the customer:

    For example, if a customer enters an invalid license key, an error message will be displayed:

    Checking

    With Software Licensing you can easily check if a license key is valid at any time. You may want to do this in order to limit certain functionality in the theme or plugin to only users with a valid license key.

    Checking a license key’s validity is quite simple; all it requires is that we perform a remote request to our store website with a couple of specific parameters. See the function below:

    function edd_sample_theme_check_license() {
    $store_url = 'http://yoursite.com';
    $item_name = 'Your Item Name';
    $license = '834bbb2d27c02eb1ac11f4ce6ffa20bb';
    $api_params = array(
    'edd_action' => 'check_license',
    'license' => $license,
    'item_name' => urlencode( $item_name ),
    'url' => home_url(),
    'environment' => function_exists( 'wp_get_environment_type' ) ? wp_get_environment_type() : 'production',

    );
    $response = wp_remote_post( $store_url, array( 'body' => $api_params, 'timeout' => 15, 'sslverify' => true ) );
    if ( is_wp_error( $response ) ) {
    return false;
    }

    $license_data = json_decode( wp_remote_retrieve_body( $response ) );

    if( $license_data->license == 'valid' ) {
    echo 'valid';
    exit;
    // this license is still valid
    } else {
    echo 'invalid';
    exit;
    // this license is no longer valid
    }
    }

    Note: if you are consistently checking the validity of a license key, perhaps to block usage of the plugin or theme when the license expires, you MUST cache the results of the check so that the request is not performed with every page load. The Transients API is a great way to cache API responses.

    Deactivating

    With Software Licensing, after a license has been activated, it can also be deactivated remotely (since v1.3). Usually, the reason to deactivate a license is to permit a license to be activated on an additional site once the activation limit has been reached.

    The deactivation process is nearly identical to the activation process. We perform a remote request and send the details of the license key we are deactivating. The remote request is done like so:

    // data to send in our API request
    $api_params = array(
    'edd_action' => 'deactivate_license',
    'license' => '2ec66bae356be570236531ccba06a45b',
    'item_name' => 'Sample Plugin', // the name of our product in EDD
    'url' => home_url(),
    'environment' => function_exists( 'wp_get_environment_type' ) ? wp_get_environment_type() : 'production',
    );
    // Send the remote request
    $response = wp_remote_post( 'http://yoursite.com', array( 'body' => $api_params, 'timeout' => 15, 'sslverify' => true ) );

    The $response var will be a json object that tells us whether the deactivation request was successful or not. If it is successful, the response will be:

    Note: The date/time is a timestamp unlike other json responses which will be date time.

    {
    	"success": true,
    	"license": "deactivated",
    	"item_name": "Sample Plugin",
    	"expires": 1556150399,
    	"payment_id": 2444,
    	"customer_name": "John Doe",
    	"customer_email": "john@sample.com"
    }
    

    If the license fails to be deactivated, the response will be:

    {
    	"success": false,
    	"license": "failed",
    	"item_name": "Sample Plugin",
    	"expires": 1556150399,
    	"payment_id": 2444,
    	"customer_name": "John Doe",
    	"customer_email": "john@sample.com"
    }
    

    Once a license has been successfully deactivated, the Site Count column in Downloads → Licenses will be decremented and an entry will be recorded in the log so that admins can see where a license was deactivated from.

    The post Software Licensing – Activating, Checking and Deactivating License Keys in WordPress Plugins first appeared on Easy Digital Downloads.

    ]]>
    Limiting When Downloads Can Be Purchased https://easydigitaldownloads.com/docs/limiting-when-downloads-can-be-purchased/ Mon, 24 Jan 2022 19:53:06 +0000 https://edd-site.lndo.site/docs/limiting-when-downloads-can-be-purchased/ In certain scenarios you may wish to limit when a product is available for purchase, such as when selling event tickets or other limited-availability items. The Purchase Limit extension lets you do exactly that and this tutorial will walk you through how to set it up. First, you will need to purchase and install the Purchase

    The post Limiting When Downloads Can Be Purchased first appeared on Easy Digital Downloads.

    ]]>
    In certain scenarios you may wish to limit when a product is available for purchase, such as when selling event tickets or other limited-availability items. The Purchase Limit extension lets you do exactly that and this tutorial will walk you through how to set it up.

    First, you will need to purchase and install the Purchase Limit extension.

    Once the extension is installed and activated, go to Downloads > Settings > Extensions and configure the following settings:

    In order to limit when Downloads can be purchased, you will need to make sure that the Enable Date Restriction option is enabled.

    Once you have configured the settings to your liking, go to the Edit screen for the product you wish to limit the purchase availability for. You will have a new section added to the screen that looks like this:

    To limit when the product can be purchased, simply set the Start Date and End Date options to the dates you want the Download to be available for purchase.

    Customers will now only be allowed to purchase the product inside of the specified date range. When viewed outside of the date range, the purchase buttons will look something like this:

    The post Limiting When Downloads Can Be Purchased first appeared on Easy Digital Downloads.

    ]]>
    How can Frontend Submissions vendors manage their own support? https://easydigitaldownloads.com/docs/how-can-frontend-submissions-vendors-manage-their-own-support/ Mon, 24 Jan 2022 19:52:21 +0000 https://edd-site.lndo.site/docs/how-can-frontend-submissions-vendors-manage-their-own-support/ If you’re a site owner you don’t want to answer support requests for all of your vendors.  This document will show you how to make it so customers contact vendors directly. Step 1: Adding Comments Support to Downloads Adding comments support to downloads will make it so that customers can post questions directly on a

    The post How can Frontend Submissions vendors manage their own support? first appeared on Easy Digital Downloads.

    ]]>
    If you’re a site owner you don’t want to answer support requests for all of your vendors.  This document will show you how to make it so customers contact vendors directly.

    Step 1: Adding Comments Support to Downloads

    Adding comments support to downloads will make it so that customers can post questions directly on a product page. To learn how to do this,
    read our documentation on adding comments support to downloads.

    Step 2: Communicate With Your Vendors

    Technologically Step 1 is all you need to do. Once comments are on however, you need to communicate with your vendors that they’re now responsible for paying attention to those comments and responding to them.

    The post How can Frontend Submissions vendors manage their own support? first appeared on Easy Digital Downloads.

    ]]>
    Mad Mimi Documentation https://easydigitaldownloads.com/docs/mad-mimi-documentation/ Mon, 24 Jan 2022 19:50:55 +0000 https://edd-site.lndo.site/docs/mad-mimi-documentation/ It’s quick and easy to get the Mad Mimi add-on up and running. Enter your Mad Mimi email address and API key, choose the email list to subscribe users to, and define the checkout field label – all within the Misc section of the Easy Digital Downloads Settings (Downloads → Settings → Misc) : Once activated,

    The post Mad Mimi Documentation first appeared on Easy Digital Downloads.

    ]]>
    It’s quick and easy to get the Mad Mimi add-on up and running. Enter your Mad Mimi email address and API key, choose the email list to subscribe users to, and define the checkout field label – all within the Misc section of the Easy Digital Downloads Settings (Downloads → Settings → Misc) :

    Once activated, the checkbox can be added to your checkout screen, like this:

    The post Mad Mimi Documentation first appeared on Easy Digital Downloads.

    ]]>