Archive

Category Archives for "DAP"
22

Internationalization & Custom Messages

Last Updated: March 9, 2015

The article below applies to both of the following groups…

A) Customizing DAP’s Default Messages

Those who wish to replace DAP’s default error and success messages (like … “Sorry, No User found with the email address…” when someone is trying to use the “Forgot Password” feature, or the message “Sorry, either you have entered an invalid username/password, or you may not have activated your account yet.” which is shown when someone uses the wrong email/password when logging in to your membership site – with English text of their own choice, and

B) Internationalization

Those who wish to replace those messages with text in a completely different non-English, international language (like Spanish, Danish, French, etc).

Non-English Content

All of your content is really going to be within WordPress, which is already international-friendly, and all of your regular site content – including your sales pages, squeeze pages, member content, etc – can all be presented in any language that WordPress already supports.

DAP is also international-friendly.

DAP really has only 4 member-facing pages: Login Form, “My Content“, “My Profile” and “My Affiliate Info (everything else is within WordPress).

And all of these member pages in DAP can be customized in any non-English language of your choice. We tested with many languages like Spanish, Dutch, French, and even Chinese! Others will/should work too as long the character set is UTF-8 based.

So we’re excited to be able to help you create membership sites in multiple languages.

Non-English Emails

And what’s really cool, is that with DAP, you can also send Autoresponder & Broadcast emails in your language.

This is a very powerful feature for those who are often restricted by 3rd-party email services in sending out non-english emails.

In fact, the last time we checked, even the big-boys like Aweber don’t let you do that!

Customizing Language Files

1) Language File Setup for PHP

Open the file…

/dap/inc/language/english.php

and save the file as…

/dap/inc/language/custom.php

in the same folder.

Then you can change the english text within custom.php (last section that is not in caps – like “Sorry, no data found” in the example below) in your language, and upload it back to the same folder ( /dap/inc/content/language ) back on your site. For example…

define(“MSG_SORRY_NO_DATA_FOUND”,”Sorry, no data found.“);

becomes…

define(“MSG_SORRY_NO_DATA_FOUND”,”Désolé, aucune donnée trouvée.“);

(That’s the French translation, according to Google – blame them if it’s not right 🙂

2) Language File Setup for JavaScript

DAP also allows you to customize the JavaScript alerts and messages that pop-up for client-side validations of form fields.

Open the file…

/dap/inc/language/jsenglish.js

and save the file as…

/dap/inc/language/jscustom.js

…on your desktop. Then change the text inside this jscustom.js file and upload it back to /dap/inc/language/ folder on your web site.

That’s it!

 

Contents of english.php

//———- Added in v4.4 ———//
define(“AFFILIATE_INFO_PERFSUMM_SUBHEADING”,”Affiliate Performance Summary”); //used only in dap/index.php
define(“AFFILIATE_INFO_HEADING”,”Affiliate Details”); //used only in dap/index.php
define(“MSG_NO_COMM”,”Sorry, no commissions earned yet.”);
define(“USER_PROFILE_SUCCESS_MESSAGE_USER”,”SUCCESS! Your profile has been updated.”);
define(“MSG_ERROR_EMAILEXISTSVB”, “Sorry, this email id is already in use in our vBulletin Forum. Please try using a different email id.”);
define(“MSG_SUCCESS_USERUPDATE_NOVB”, “SUCCESS! Your profile has been updated, but could not register this username in our vBulletin Forum. Please contact the site admin for help.”);
define(“AUTOMATED_AUTORESPONDER_EMAIL_SUBJECT”, “New Content Available:\n%%CONTENT_NAME%%”);
define(“MSG_INVALID_PASS”,”Sorry, the password you have chosen contains special characters. Only Alphabets and Numbers allowed. Please go ‘back’ and choose a different password.”);
define(“COLNAME_EARNINGTYPE_TEXT”,”Cash/Credit”);
define(“USER_PROFILE_NEW_PASSWORD_LABEL_DAPUSERPROFILE”,”Password<br/>(only if changing)”);
//———- Added in v4.3 ———//
define(“USER_LINKS_COMINGSOON_TEXT”,”Coming Soon…”);
define(“USER_LINKS_COMINGSOON_PREFIX_TEXT”,”[In XXX day(s)]”); //do not change/remove the text “XXX”
define(“MSG_UNSUBSCRIBE”,”[In XXX days]”); //do not change/remove the text “XXX”
define(“MSG_MANDATORY”,”Sorry, all fields are mandatory. Please go ‘back’ and fill up the missing information.”);
define(“MSG_INVALID_EMAIL”,”Sorry, the email address you entered is invalid. Please go ‘back’ and enter a valid email address.”);
define(“MSG_INVALID_COUPON”,”Sorry, the coupon code you entered is invalid. Please go ‘back’ and enter a valid coupon code.”);
define(“MSG_INVALID_PRODUCT”,”Sorry, the product you are trying to sign up for is either invalid, or not authorized for free signup. Please email the web site owner and let them know about this error.”);
define(“MSG_MISSING_COUPON”,”Sorry, coupon code is a required field. Please go ‘back’ and enter a valid coupon code.”);
define(“MSG_PAYMENT_FAILED”,”Payment failed. Please contact the site admin. “);
define(“MSG_THANKYOU_SIGNUP”,”SUCCESS! Thank you for signing up. Please check your email for further details.”);
define(“BUTTON_UPDATE”,”Update”);
define(“SUCCESS_CREATION”,”SUCCESS! Your account has been successfully created! Please check your inbox for login information…”);
define(“NO_AUTH”,”Sorry, you are either not logged in, or not authorized to perform this operation.”);
define(“MSG_ALREADY_SIGNEDUP”,”It appears that you have already signed up for this. No further action is required at this time.”);

//———- Added 03/22/2011 ———//
define(“MSG_ALREADY_LOGGEDIN_1″,”You are already logged in.”);
define(“MSG_ALREADY_LOGGEDIN_2″,”Click here to continue…”);
define(“MSG_PLS_LOGIN”,”Sorry, you must log in before you can view this content.”);
define(“MSG_CLICK_HERE_TO_LOGIN”,”Click here to log in”);
define(“MSG_SORRY_EMAIL_NOT_FOUND”,”Sorry, No User found with the email address “);
define(“MSG_PASSWORD_SENT”,”Please check your email. Your Password has been sent to “);

//———- GENERAL TEXT ———//
define (“ACTIVATION_EMAIL_SUBJECT”, “%%FIRST_NAME%%, Welcome to %%SITE_NAME%% (Activation)”);
define (“AFF_PAYMENT_EMAIL_SUBJECT”, “%%FIRST_NAME%%, You’ve Got An Affiliate Payment”);
define (“FORGOT_PASSWORD_EMAIL_SUBJECT”, “Lost Password”);
define (“LOCKED_EMAIL_SUBJECT”, “Your account has been locked”);
define (“UNLOCKED_EMAIL_SUBJECT”, “Your account has been Unlocked”);
define (“INVALID_PASSWORD_MSG”,”Sorry, either you have entered an invalid username/password, or you may not have activated your account yet.”);
define(“SUCCESS_ACTIVATION”,”SUCCESS! Your account has been successfully activated! We have now sent you an email with your login details that you can use to log in below…”);

define(“MSG_SORRY_NO_DATA_FOUND”,”Sorry, no data found.”);
define(“COLNAME_AFFID_TEXT”,”Aff Id”);
define(“COLNAME_NAME_TEXT”,”Name”);
define(“COLNAME_FIRSTNAME_TEXT”,”First Name”);
define(“COLNAME_LASTNAME_TEXT”,”Last Name”);
define(“COLNAME_EMAIL_TEXT”,”Email”);
define(“COLNAME_AMTEARNED_TEXT”,”Amount Earned”);
define(“COLNAME_DATETIME_TEXT”,”Date/Time”);
define(“COLNAME_AMTPAID_TEXT”,”Amount Paid”);
define(“COLNAME_HTTPREFERER_TEXT”,”HTTP Referer”);
define(“COLNAME_DESTINATION_TEXT”,”Destination”);

//———- USER PROFILE TEXT ———//
define(“USER_PROFILE_HEADING_TEXT”,”Profile Information”);
define(“USER_PROFILE_FIRST_NAME_LABEL”,”First Name”);
define(“USER_PROFILE_LAST_NAME_LABEL”,”Last Name”);
define(“USER_PROFILE_EMAIL_LABEL”,”Email”);
define(“USER_PROFILE_USER_NAME_LABEL”,”Username”);
define(“USER_PROFILE_NEW_PASSWORD_LABEL”,”Password”);
define(“USER_PROFILE_REPEAT_PASSWORD_LABEL”,”Repeat Password”);
define(“USER_PROFILE_PAYPAL_EMAIL_LABEL”,”Paypal Email”);
define(“USER_PROFILE_PAYPAL_EMAIL_EXTRA_LABEL”,”For Affiliates Only”);
define(“USER_PROFILE_COMPANY_LABEL”,”Company”);
define(“USER_PROFILE_TITLE_LABEL”,”Title”);
define(“USER_PROFILE_ADDRESS1_LABEL”,”Address 1″);
define(“USER_PROFILE_ADDRESS2_LABEL”,”Address 2″);
define(“USER_PROFILE_CITY_LABEL”,”City”);
define(“USER_PROFILE_STATE_LABEL”,”State”);
define(“USER_PROFILE_ZIP_LABEL”,”Zip”);
define(“USER_PROFILE_COUNTRY_LABEL”,”Country”);
define(“USER_PROFILE_PHONE_LABEL”,”Phone”);
define(“USER_PROFILE_FAX_LABEL”,”Fax”);
define(“USER_PROFILE_UNSUBSCRIBE_LABEL”,”You are currently receiving product and <br/>account related emails. Uncheck to stop<br/>receiving all emails (not recommended)”);
define(“USER_PROFILE_SUCCESS_MESSAGE”,”SUCCESS! User has been successfully updated.”);

//———- AFFILIATE PAGE LABELS ———//
define(“AFFILIATE_INFO_TOTALEARNINGS_SUBHEADING”,”Total Earnings”);
define(“AFFILIATE_INFO_AFFLINK_SUBHEADING”,”Affiliate Link”);
define(“AFFILIATE_INFO_YOURAFFLINKHOME_LABEL”,”Your Affiliate Link – redirects to home page:”);
define(“AFFILIATE_INFO_AFFLINKSPECIFIC_LABEL”,”Affiliate Link To Specific Page:”);
define(“AFFILIATE_INFO_AFFLINKSPECIFIC_EXTRA_TEXT”,”To link to a specific page, just add the text &quot;&amp;p=&lt;insert_url_here&gt;&quot; to the end of your affiliate link, like this: (no &quot;http://&quot; in the 2nd link at the end – should start with &quot;www&quot;)”);
define(“AFFILIATE_INFO_TEST_TEXT”,”test”);
define(“AFFILIATE_INFO_PAYMENT_DETAILS_SUBHEADING”,”Payment Details”);
define(“AFFILIATE_INFO_EARNINGS_DETAILS_SUBHEADING”,”Earnings Details”);
define(“AFFILIATE_INFO_TRAFFIC_STATISTICS_SUBHEADING”,”Traffic Statistics”);

//———- USER LINKS PAGE TEXT ———//
define(“USER_LINKS_YOUCURRENTLYHAVEACCESSTO_TEXT”,”You currently have access to “);
define(“USER_LINKS_PRODUCTS_TEXT”,” product(s).”);
define(“USER_LINKS_ACCESS_START_DATE_TEXT”,”Access Start Date”);
define(“USER_LINKS_ACCESS_END_DATE_TEXT”,”Access End Date”);
define(“USER_LINKS_DESCRIPTION_TEXT”,”Description”);
define(“USER_LINKS_LINKS_TEXT”,”Links”);
define(“USER_LINKS_NOLINKSFOUND_TEXT”,”No links found.”);

 

Contents Of jsenglish.php

//New entry MSG_EMAIL_INVALID added on 07/14/2011
var MSG_EMAIL_INVALID = “Sorry, email id must of a valid format, may not be blank or contain any special characters”;

var MSG_MISSING_INFO = “Please enter missing information…”;

var MSG_ENTER_EMAIL = “Please enter your email address before we can email you the password”;

var MSG_ENTER_PASSWORD = “Sorry, the password field may not be empty”;

var MSG_PASSWORDS_MISMATCH = “The two Passwords don’t match. Please try again…”;

var MSG_PASSWORD_INVALID = “Sorry, password contains invalid characters. Please choose from numbers and alphabets only.”;

var MSG_UPDATING_PROFILE = “Please wait… Updating User Profile …”;

var MSG_OPTOUT_WARNING = “WARNING: If you uncheck this box, you may not receive emails relevant to the product you have purchased. Are you sure you still want to Unsubscribe?”;

var MSG_NO_SPECIAL = “Sorry, no special characters allowed”;

Other links….

To customize the DAP Stand-alone Login form, click here.

To customize the DAP Login/Logout widget, click here.

To customize the DAP default Error Message with the ‘Lock’ image, click here.

Aweber Integration Summary

The Aweber integration options depend on whether the product is Free Product OR Paid Product.

1) Paid Product

If it’s a paid product, then the integration is always from Payment Processor => DAP => Aweber. And Aweber requires the list to be double-opt-in for this type of integration (3rd party email subscription from DAP => Aweber).

Refer this documentation on how to integrate DAP -> Aweber.

While Aweber list needs to be double-opt-in, the DAP product can be defined as single-opt-in, so this way the subscribers will only receive 2 emails :

– Aweber confirmation email
– DAP thankyou email with id/password

For paid products, currently there’s no way to make sure the AWeber confirmation email goes out before DAP thank-you message.

You can use these workarounds:

a) You can configure DAP to generate a default password (for all users)… that way you do not have to send out any thank-you message from DAP. Just configure a followup via aweber with their default DAP password and instructions to update password upon login.

b) But if you have security concerns with the default password approach, then you can configure a autoresponder via DAP to send out user’s dap id/password. Do not configure any thankyou message because the thankyou message gets sent instantly and might go out before the users receive aweber confirmation. But if you configure an autoresponder message to say drip day 1 with their membership id/password, then the message will get sent at the top of the hour when the dap cron runs. It does not get sent instantly. So there’s a better chance of users receiving and completing aweber confirmation before dap thankyou arrives.

2) Free Product

If its a free product, then there are  2 options.

2.1 ) You can use Aweber sign-up form (webform) instead of DAP Direct Signup form.

The Aweber list can be double-opt-in or single-opt-in.

If you want the aweber list to be single opt-in, then there’s no way to make sure the AWeber confirmation email goes out before the DAP thank-you message because of limited config options in Aweber.

But if you are ok with making the Aweber list as double-opt-in (recommended setting for free products), then the integration will work great.

2.1.1) AWeber webform ( single opt-in list )  => DAP product

–  User will be first added to Aweber
–  Aweber will automatically notify dap
–  DAP will then add user to the free product

– Aweber confirmation will go out

– DAP welcome/thankyou email will go out

No way to make sure dap thankyou goes out after Aweber confirmation ( You can use the workaround described above for paid products).

Click here for Aweber single-opt-in list => DAP integration steps

2.1.2) AWeber webform ( double opt-in list )  => DAP product – RECOMMENDED

–  User will be first added to Aweber
–  Aweber will automatically notify dap
–  DAP will then add user to the free product

– Aweber confirmation will go out first

After user completes the aweber confirmation, only then the  DAP welcome/thankyou email will go out.

For this, use Aweber list level settings (Under My Lists -> List Settings ->Confirmed Opt-in tab). Set the list level confirmation URL to point to the dap-aweber-productId.php script that you can create using the documentation here :

Click here for Aweber double-opt-in list => DAP integration steps

2.2) You can have the user signup via dap signup form and have dap notify aweber and then the user will be added to aweber list.

Use the same integration method as Paid products decribed above (DAP => Aweber).

Click here to find out more about how to create dap direct signup form.

Click here to find out more about how to DAP=>Aweber integration.

Content Protection – Big Picture

Here’s the big picture as far as content protection is concerned.

  • DAP CAN ONLY protect files, pages and posts on the same “domain” where it is installed.
  • If DAP is installed on a domain (www.yoursite.com), then it CANNOT protect a blog or files installed on a sub-domain (like blog.subdomain.com) even if your file structure on your web host makes it appear like blog is a sub-folder in your root folder. The opposite is true too: If DAP is installed on a sub-domain, it CANNOT protect files, pages or posts on the main domain
  • DAP installed on a domain (www.yoursite.com) CAN protect a blog in a “sub-folder” (like domain.com/blog)
  • You can have one DAP installation in the root, and then multiple blogs in “sub-folders” (not sub-domains), and one installation of DAP can protect all of these blogs in sub-folders. Just activate the DAP-WP-LiveLinks plugin in each blog separately. There will still be only one “dap” folder at the root, that will be shared by all of these blogs.
  • DAP can protect a page or post from un-authorized viewers. But once somebody is a member, does get access to that page or post, if you have a video inside that is a Youtube video, DAP obviously can’t protect that video.
20

Making Affiliate Payments

DAP’s affiliate program works the same regardless of which DAP-supported payment processor or shopping cart you’re using.

DAP does not directly make any affiliate payments. Instead, at the beginning of each month (or however often you wish to pay your affiliates), with one click on the Affiliates > Run Reports page, DAP will give you a list of all affiliates to whom payment is due, and the actual amount due to each one of them.

The format of the payment list that DAP provides you with, is already “Paypal Mass-Pay Ready” – which means, you could simply upload the file that DAP gives you, upload it to your Paypal account, and then pay all affiliates in one click (details further below).

Or if you don’t wish to pay by Paypal, and wish to use any other form of offline payment (like sending them a physical “check” in the mail, doing wire-transfers, etc), you’re free to use any external means for paying your affiliates. Once you have paid (by Paypal, or other external means), you just come back to DAP and mark all those affiliates as “Paid” – which is when DAP actually reports to all of those affiliates that a payment has been sent to them. Until the actual payment is made, they only see that they are owed a certain amount.

How To Pay Your Affiliates In DAP

1) Go to “Affiliates > Reports
2) Click on “Pay Affiliates as of mm-dd-yyyy” on the right/top part of the page (in older versions of DAP, this would be called “View Due Payments as of mm-dd-yyyy“)
3) DAP will bring up a list of affiliates to be paid. Click on “Export affiliates for payment
4) DAP will create an export of only those affiliates. Only those affiliates can be paid now, as per DAP.
5) You take the exported list that DAP gives you. Pay them via Paypal MassPay (details in the next section below).
6) Once you’ve actually sent them the payment via Paypal, come back to “Affiliates > Reports“, pick the previously exported list from “Mark affiliates from ……. as Paid” drop down (your last un-paid export will be shown in the drop-down list).
7) Mark that export as “Paid”.

That’s it!

Making Payments Via Paypal Mass-Pay

1. Copy all of the text from export field that DAP provides you with, and save it as a text file on your desktop, with a file name like, say, “February 2012 Commissions.txt

2. Log in to your Paypal account

3. Click on “Send Money

4. Click on”Make a Mass Payment

5. Upload previously saved text file on this next screen.

You may also enter a custom subject and body for the email that Paypal will send to all those receiving a payment.

6. Follow the rest of the on-screen instructions and hit “Send”, and you will see a confirmation from Paypal that your payment has been scheduled.

At this point, the money would have already been debited from your Paypal account.

Soon thereafter (usually within 10 minutes), Paypal would’ve actually deposited your payments in to the affiliates’ Paypal accounts.

 

Content Protection, Security and DRM

We frequently get asked questions like…

“Can DAP protect my Videos/PDF’s/Audio files from being copied? Is there some kind of tracking that I can build into my videos that will let me track the video on torrent sites?”

“Can DAP prevent people from downloading my videos/audio/pdf and uploading it to a torrent or third-party site?”

“Can DAP force people to only watch my videos online? I don’t want my members to download any of my content to their hard disk – I want to force them to see/read/hear/watch everything online.”

Short Answer: No.

Long Answer: Keep reading…

The Nitty-Gritty

There are so many ways to steal your content from your web site – no matter what technology you use.

Let us explain what that means…

1) Let’s say you implement a technology where only paying members can even get to your videos. Like you can already do with DAP. So then a paying member can download your video because they are already a paying member, and they actually have access to the videos. And once your video has been downloaded to their hard disk, you have lost all control over it – no matter what anyone tells you, that’s the truth. Because they can upload it to any illegal warez sharing site, and there’s nothing you can do about it.

Of course, you could spend all your time, money and efforts monitoring the thousands of illegal sharing sites whether your video or ebook is found anywhere – assuming you can even find it in the first place, which would be like finding a needle in a hay stack – no, make that “hay factory” – wait, make that “finding a needle in New York City” – and then write to those site owners and ask them to take it down.

Or you could focus on the 99% of legitimate members of your site, and create great content for them, and keep them paying month after month, and sell more products to them, and keep them happy.

2) Let’s say you use a plugin that only allows true-streaming – like one based on Amazon CloudFront technology, that will not allow the users to directly download your videos, but force them to watch online only. Then there’s any number of “screen-capture” tools – even free ones – that your members can use to capture another video of your video, and then share it with their friends, or upload to illegal sharing sites.

The list goes on and on. No matter how hard you make it, there’s always going to be a way around.

So, unless you’re a NASA, NetFlix, or Amazon or Apple who has a real reason to protect their content that is worth real millions of dollars, there is *no technology* available today that will let you track a video or pdf *after* it has been downloaded. If someone is saying they can do this, then they’re outright lying to you, and playing on your fears.

DAP already has a built-in password-sharing prevention security built in. If someone tries to share their account info with others, DAP will lock their account the moment their account gets log-ins from multiple IP’s (you can configure this setting) and deny further access to any of their content, until you investigate the user and “un-lock” their account.

DAP already protects all of your media from illegal access.

DAP also prevents your Amazon S3 videos and audio and other content from being accessed by anyone directly. Using a script like http://S3MediaVault.com , you can make it such that your videos and audio and other media can only be downloaded from approved sites (where the plugin is installed), and then on top of that, there’s DAP already sitting like a monster watch-dog, making sure only authorized users can even get into the site in the first place.

So hope that helps if you’ve gotten too worried about protecting your content – so worried that you’re missing the big picture.

Don’t Forget What Is Important (Hint: It starts with “Mem” and ends with “bers”)

The best membership sites allow people to consume the content they’ve paid for in multiple ways – view the video, download the video, download mp3 audio version of the video, download the presentation as a powerpoint, download the transcripts as a PDF, and so on.

Instead of making it easy for your members to download the content, if you’re going to spend your limited resources trying to figure out how to prevent people from downloading content that they’ve actually paid for, and force people to only view your content online and not be able to view it offline (like in their spare time or when going for a jog in the park), you run the risk of upsetting 99% of your legitimate paying members, in order to secure your content from the 1% of pirates, who will steal and share your content no matter what.

So forget about the 1%, and focus on the 99%. DAP already has enough security in place to stop the 1%. So don’t worry about that. Your content is very secure with DAP.

Anything else is just a total waste of your time. So don’t get distracted by the noise, and just get on with the real important tasks on hand: Building a long-term recurring income stream by building a large community of highly satisfied, loyal fans who are thrilled about what you have to offer, and will continue to pay month after month because whatever it is that you’re selling, is making their life better in some way.

The hardest thing to do online, with a membership site is still this: Creating great content, Attracting buyers, and then getting your members to keep paying month after month.

And that, is the big picture.

31

Mailchimp Integration

Subscriber Flow

The flow of subscriber is “FROM DAP TO Mailchimp“. User signs up at DAP first, then DAP automatically adds the user to Mailchimp list.. Admin removes the user’s access to a product, and DAP automatically removes the user from Mailchimp list. This feature is available starting DAP v4.1.

How it works

[s3mv]mailchimp.mp4,640,378,false,false[/s3mv]

1. Login to your account at http://admin.mailchimp.com/account/api/ and note down the API Key.

Image 1:

2. Go to http://admin.mailchimp.com/lists/ and grab your List’s Unique Id. Click the “settings” link for the list – the Unique Id is at the bottom of that page.

Image 2:

3. Log in to your DAP Admin Dashboard -> Products Page and select the product (whose members you wish to add automatically to your Mailchimp list.

4. If the list Id of the mailchimp list that you want to integrate with a DAP product/membership is say “ffffffffff”, and say your Mailchimp API Key is ‘ffffffffffffffffffffffffffffff-us2’ then add the following to the “Notify Plugin upon User -> Product Activation (Add)” in DAP products page and HIT Save/Update Product.

mailchimp:ffffffffffffffffffffffffffffff-us2:ffffffffff

Image 3:

That’s it!

Save the product and this completes the DAP->Mailchimp integration.

How This Works

So let’s say you picked the list “ffffffffff” in your Mailchimp account, and the DAP Product “Example Subscription Product” (as shown in the screenshots above).

So once you add “mailchimp:ffffffffffffffffffffffffffffff-us2:ffffffffff” to the product’s “Notify plugin upon user->product activation” and “Notify plugin upon user->product de-activation” field and save it, every time someone gets access to the “Example Subscription Product” product (regardless of whether they buy it, or you give them access on the backend), DAP will  automatically  add them to the list – ffffffffff. And everytime you remove the user’s access to product (click on ‘Remove’ in DAP manage users page), DAP will automatically remove the user from the list.

df11c84ab4
20

DAP IPN Script Generator – 3rd party Shopping Cart integration

While DAP already supports a large number of shopping cart systems and payment providers, if you wish to integrate DAP with one that we don’t support yet, then you can custom create DAP integration for any 3rd party shopping cart providers that support Instant Payment Notification (IPN) via HTTP POST to 3rd party scripts.

NOTE: While you’re welcome to use the documentation below and develop your own custom integration with any payment processor that supports IPN, during development if you need our support, then we charge an hourly fee if you want help with your code.

Instant Payment Notification (IPN)

Instant Payment Notification (IPN) is basically a message service provided by a shopping cart service or payment processor, that enables them to notify third-party systems like DAP about events related to Payment transactions. You can use it to automate membership sign-ups and cancellations, and extend membership access (for recurring products).

Paypal pioneered the concept of IPN, and different systems may have a different name for it (for eg., ClickBank calls it “INS – Instant Notification Service”). But they all essentially mean the same.

So, using IPN, the cart/processor notifies DAP when a payment-related event occurs. Typically, these events represent various kinds of payments. The notification includes info about the buyer’s email id, product name purchased, product price, payment status etc.

And you can use the DAP IPN Generator script below to generate a PHP script that can receive (and understand) the IPN notification from your cart/processor.

DAP – IPN Script Generator

DAP provides the ability to generate an IPN Script/handler for any 3rd party shopping cart that support IPN.  Once the script is generated, upload it to the dap folder on your site and update the shopping cart IPN URL settings with the URL to this script.

1) Go to DAP Admin > Setup > Generate IPN Script

2. Fill in the boxes with the exact TAG NAME / FIELD NAME that your shopping cart sends for each of the fields listed there.

Say that in the IPN notification, your shopping cart sends the product name in the tag/field called item_name. Then you need to enter item_name in the product name text box.

The transaction type indicator tells DAP what type of transaction it is… whether it’s an add-to-cart or buy now or subscription type of transaction. The tag name itself goes into the Transaction Type text box but the actual value for each type (buynow, cart, subscription) goes into the text boxes that say BUY NOW, Subscription, AddToCart.

In the text box in the picture above, the value of  ‘Sale’ is an example value that a shopping cart might send to identify a ‘buy now’ transaction/button. Check your shopping cart’s IPN documentation and make sure you fill in the right values in each of the text boxes in the dap generate ipn page.

3.  After filling up all the text boxes, hit the ‘Generate IPN’ button. It will open a small window with the actual dap IPN script.

Copy the whole script and put it in a file and lets say you call this file – dap-IPN-script.php.

Upload this file to the dap folder on your site.

4. Go back to Generate IPN Page in your DAP admin panel.

Now click on the ‘Test IPN Script’ button at the bottom. It will bring up a form where you can fill in actual values (you can give this form to your shopping cart provider so they know what fieldnames/tags to send to dap ipn handler/script). In the IPN URL text box, put in the full URL of the IPN Script you generated in step 3 (for ex – http://yoursite.com/dap/dap-IPN-script.php).

Run the test. It will simulate a real purchase transaction by a buyer and show you how DAP automatically manages the creation of membership account upon successful purchase.

46

Login And Login Redirect Issues

1) If you click on  Digital Access Pass’ link in the left sidebar of your WP admin dashboard but get a ‘Page Not Found’ error, then do this :

Login to your dap admin dashboard here:

http://yoursite.com/dap/login.php   (replace yoursite.com with the name of your site)

Then after you login, go to dap setup -> config -> advanced -> URL of your login page and make sure the ‘URL of login page’ points to a VALID working url.

When you click on the dap link in the WP admin dashbaord, dap takes you to whatever you set as the login page in ‘URL of login page’.

You can also login to dap admin dashboard outsite of WP here:
http://yoursite.com/dap/login.php

2)  If upon login, DAP is not redirecting users to the configured/desired page, then please read on…

There are 2 logged-in redirect settings:
1) Product-level login-redirect URL which is Logged-In URL field on the dap Products/Levels page
2) Global login redirect under DAP Setup -> Config -> Advanced -> ‘URL to which the user is redirected to upon login’

If the user has access to only 1 product and product level Logged-In URL is set, then DAP uses the product level settings.

If the user has access to multiple products OR if the product level Logged-In URL is NOT set, dap uses the global login redirect.

Make sure these settings are setup correctly when you have login redirect issues.

3) If your users complain that when they login, they are told :

Sorry! You do not have access to this content
Sorry You cannot access this page.

[You are already logged in. Please click here to continue…]

BUT when they click on the link.. it says… the same thing again.

Then here’s the solution:

It can happen when the users are being redirected to a page upon login to which they do not have access.

So check your product level / global level login redirect settings.

Then check the user and make sure the user has access to the content to which you are redirecting the user upon login.

So… if you say redirect user to a protected page upon login and say the protected page is marked as ‘available only to paid users’, then make sure your users are marked as paid in manage users page.

Or make the content (to which you redirect user upon login) be available to all registered users (free / paid). Just mark the content as ‘available to free users’ in the content protection area in dap products page.

4) Endless Redirect – or “Too Many Redirects”

If upon login, you receive an error message that there’s an endless redirection, and the browser eventually times out,  then the possible reason could be that you created a custom error page and protected the error page itself. So when a non-member or user that does not have access to content, tries to access it, DAP will try to redirect to the error page, but if the error page itself is protected, then that will result in another redirect to error page… resulting in endless redirects.

Another possibility: Your “Error Page URL” has %%LOGIN_FORM%% code.

In that case, when you log in as a member, member does not have access to post-login URL (check if you have added that to the product), DAP redirects to error page, error page has login form code which redirects to post-login URL, member does not have access to it, DAP redirects to error page…. and on and on. That’s how it ends up in too many redirects.

So, the main highlights…

  1. Do not protect the error page as part of ANY DAP product
  2. Do not put the %%LOGIN_FORM%% code in your error page
  3. Do not protect the login page as part of ANY DAP product
  4. Add the “Post-Login URL” page to the product in question, so anyone who has access to that product will also have access to that page.

If you protect content under 1 product, then it automatically gets protected from all non-members. A casual visitor can not access content that is protected under any of the dap products. Only members that have access to the product, can access content dripped under the product.  If a member says that they are not able to access content, it could be because:

1) their access has expired (check dap manager users page for user->product access start and access end date)

2) their access is still valid, but the user has been a member for just say 2 days and the content they are trying to access, is set to drip on say day 3.

3) the user is marked as a free user (in dap manage users page) but the content they are trying to access is marked as ‘available to paid users only’ in dap products -> content protection area.

4) their product status is unconfirmed (check Product Status in DAP manage users page). If it’s a double-opt-in product, the user is going to receive a confirmation email upon signup. The user needs to complete confirmation to get access to the product. DAP admins can manually change user’s product status by clicking on ‘Modify’ under ‘Product Access’ in dap manage users page and updating the product status to Active.

5) The user has access to multiple membership levels and the some of the same content is being dripped under multiple membership levels.

Generally you should use Product Chaining rules to automatically remove user’s access to lower level product/ membership level upon upgrade to higher level product / membership level to prevent some of the  same content being dripped on the same user with different drip settings. This way a user will not have access to same / duplicate content under 2-3 different products that he/she owns.

5) Auto-Redirection to previous page after logging in

Starting DAP v4.1, here’s how the log-in redirects work….

1) If they’re logging in from a stand-alone login page or from the widget on your home page, then DAP treats that just as a “Member just trying to log in to their member’s area” and it will use the global or product-level login-redirect URL for that user.

2) However, if they tried to visit a  protected URL, and DAP challenged them because they weren’t logged in, and presented them with a login form on that same protected page, and if they log in from that form on the protected page, then DAP treats that as someone was trying to get to a protected URL, they couldn’t because they weren’t logged in, now that they’ve logged in, let’s take them back to that same page that they were on before the logged in.

IMAP/POP connection errors

This error can happen if you have the dap emailorder cron setup in your webhost control panel to process 1shpppingcart order/payment emails to grant automatic membership access to users that purchase products via 1sc.

1) If you are not using 1SC and are getting this error, you can turn off the cron job in your webhost control panel -> Under cron settings -> look for a cron command that has dap-emailorder.php set to run once every 10 minutes or so and remove that cron job.

2) if you are using 1SC and are getting this error, then that indicates an issue with your DAP config setup.

See step 3 in this document – http://digitalaccesspass.com/doc/troubleshooting-1shoppingcart-clickbank-integration/
If you use IMAP, then set port to 143, if you use pop3, set port to 110 (in dap setup -> config ->payment processing section)

3) If you still get that error, then it could be that your webhost preventing pop/imap connection to external email server.
Make sure you use an order email account/id that’s hosted on your host. Do not use say a gmail.com or yahoo.com account
under dap setup – config -> payment processing section. Also make sure that you update your 1sc settings so all the notifications get sent to this email address. Refer this troubleshooting guide step by step for any 1sc -> dap integration issues.
http://digitalaccesspass.com/doc/troubleshooting-1shoppingcart-clickbank-integration/

Types of Users

There are 3 types of users:

1) Casual visitors / public
If you want a post / page to be accessible by all non-members, just leave it open. Do not protect it in dap products page at all.

2) Free users
Users that register via direct sign up form are marked as ‘FREE’ in manage users page. The users marked as ‘free’ only have access to content that are marked as available to ‘free users’ in content protection area.

See – http://digitalaccesspass.com/doc/adding-users-via-dap-signup-form/

3) Paid users
Users that purchase a product and have a transaction id/number in the dap manage users page that links to their order Or the users that are marked as ‘PAID’ by admin manually. These users have access to both free and paid content that are dripped under that product. The content becomes available to these users based on the drip settings. If the user has been a member of a product for 10 days, the user will have access to all content under that product that is set for day 1 – day 10 dripping.