Entries Tagged 'Plugins' ↓
August 1st, 2011 — 3rd Party Integration, Access Control, Admin, Database, Performance, Plugins, Setup, Strategy, Troubleshooting, Web Hosting
Using a “cache” plugin for speeding up your site is like putting band-aid on a gaping wound. It’s only a temporary fix, and not a real long-term solution.
Plus a cache plugin has its place, but it’s certainly not for a membership site, where DAP will need to make calls to the database to figure out who’s viewing the content, are they a member, what products have they purchased, what content do they have access to, etc.
If you want to speed up your web site, you must address the core issue, which is — your web site is getting more traffic than your web server (web hosting account) can handle.
So here are a couple of ways in which you can speed up your web site:
- The easiest thing you can do is to revisit all of your plugins that you have enabled and see if you still need all of them. Remember that every single additional plugin running on your site, adds some overhead to (basically, “slows down”) your web site or blog. So use only as few plugins as you absolutely must. With so many cool plugins freely available for WordPress, it is very easy to get carried away, and install tens of plugins, most of them adding very little value, but sometimes causing the most overhead in terms of server resources. So keep only a bare minimum of other plugins (some social plugins are a real pain – making calls to third-party web sites to get their information from).
- Make sure you are always using the latest version of WordPress, or at worst, one version behind the very latest and greatest (you definitely want to be sure first that there are no conflicts with other critical plugins that you’re using on your site, like DAP).
- Make sure you update all of the plugins you’re using to their individual latest versions.
- If you are hosting on a shared (a.k.a “cheap”) web host paying just a few dollars a month for hosting, then your web site is basically competing for server resources (like memory and bandwidth and database access) with possibly tens (or even hundreds) of other web sites on that same server (many may not belong to you, but to others with whom you are sharing the server – and hence the name “shared hosting”).Search for the keywords “digg effect” or “slashdot effect” on Google, and you’ll see how many WordPress sites crash when a link to the site appears among the top results in popular social sites like Digg.com, Reddit.com or Slashdot.com.If your traffic levels have outgrown your server, then the best thing you can do is to upgrade to a bigger server, or get a Virtual Private Server, or even get a dedicated host, depending on your budget. See our recommended web hosts list.
July 3rd, 2011 — 1-Click Upsells, 3rd Party Integration, Announcements, Authorize.net, FAQ, Integration with Shopping Carts, Payment Integration, Payment Setup and Integration FAQ, Paypal, Paypal Website Payments Pro, Plugins, Setup, Updates, Upsell Tree, Upsells & Downsells
This plugin replaces ALL files from both the “Paypal Payments Pro” Upsell-Tree plugin as well as the “Authorize.net” Upsell-Tree Plugin
Starting DAP v4.2, we have consolidated both the Authorize.net & Paypal Payments Pro Upsell-Tree Plugins into one simple set of files, and it has been named the DAP Shopping Cart, which will allow you to both accept one time and recurring payments, as well as do 1-Click Upsells.
This consolidated set of files is named DAPShoppingCart.zip , and is available for download from the members’ area at http://DigitalAccessPass.com/dap/ .
Upgrading from DAP v4.2
If you are upgrading to DAP v4.2 from a previous DAP version, and you’ve been using Authorize.net or Paypal Payments Pro to accept payments, then you must also upgrade to the new DAP Shopping Cart.
So all you need to is…
1) Download the DAPShoppingCart.zip file from the members area
2) Unzip it to your desktop
3) Upload all files inside directly to your main “dap” folder on your site. (do not upload the folder named DAPShoppingCart – upload only the files inside this folder)
May 19th, 2011 — 3rd Party Integration, Access Control, Database, Errors, Fail, Performance, Plugins, Protecting Content, Protection FAQ, Setup, Troubleshooting, WordPress Plugins
If you’re having weird issues – like members logging in and seeing other people’s profile information, or logging in as a valid user and being told “Sorry, you don’t have access to this content” – then the culprit almost always is some kind of a “cache” plugin.
Do not use cache plugins on your membership site. If you wish to know why, then skip the section below and go to “Why Doesn’t It Work?”
To fix the issue, keep reading…
Solution To Caching Issues
First, let’s address how to fix your issue if you did have a cache plugin – like WP Super Cache – turned on, and are now having a bunch of login issues with logins and users and access and all sorts of things getting mixed up.
- De-activate the plugin
- Open your wp-config.php file. If there are lines in there that look like this…
define(‘WP_CACHE’, true); //Added by WP-Cache Manager
define( ‘WPCACHEHOME’, ‘/home/xyz/public_html/yoursite.com/wp-content/plugins/wp-super-cache/’ ); //Added by WP-Cache ManagerThen comment out both lines, by adding a “//” at the beginning of each line, like this.
//define(‘WP_CACHE’, true); //Added by WP-Cache Manager
//define( ‘WPCACHEHOME’, ‘/home/xyz/public_html/yoursite.com/wp-content/plugins/wp-super-cache/’ ); //Added by WP-Cache Manager
- Go to your wp-content/plugins/ folder. See if there’s a folder in there called “cache”. If yes, then rename it to “_cache”.
That should do the trick. Now re-test whatever the issue was before, and it would have probably been resolved now.
Why Doesn’t It Work?
Cache plugins are built on the premise that they will “cache” (save and store the contents of) WordPress pages and posts – which usually don’t change for “non-membership” type regular blogs – in a easy to retrieve, static file, so that WordPress doesn’t have to go to the database to load the contents of the page or post each and every time, which will improve the performance and loading time of your WordPress blog in general.
But the fact that such plugins are actually designed to “skip” interactions with the database as much as possible, and will make a “static copy” of your page or post and serve the same static copy to all visitors regardless of who they are, completely goes against the concept of a membership site.
The idea behind using a membership plugin like DAP, it to make sure that different visitors see different content: For ex.,
1) Casual visitors (Non-Members) who have NOT yet signed up for your products, should see content differently than …
2) Members who may have purchased one of your products, but not the product that gives them access to a specific page or post, who should see content differently than…
3) Members who actually have purchased the right product and DO have access to the content, who should see content differently than…
4) Ex-Members who signed up for your subscription-based content in the past, but have since canceled or allowed their access to expire
So, DAP tries to figure out who the visitor is first, and then packages the very same content differently to each category of visitors.
And installing a “cache” plugin kind of makes the whole point of a membership plugin meaningless. Both plugins basically contradict each other in what they’re trying to do.
One (your cache plugin) is trying to speed things up by not going to the database every time, while the other wants to make sure all of the right settings are loaded from the database to make sure your content stays secure from un-authorized access.
So, while cache plugins may work for the average, non-membership, static blog where a single post or page is not really meant to be shown differently to different people, it’s not a good idea to use it on a membership-site.
March 18th, 2011 — Access Control, DAP, Database, Plugins, Setup, WordPress
The problem: DAP users are not being “sync”ed to WordPress.
Here’s how to troubleshoot.
What are your sync options in DAP Admin -> Setup -> Config -> WordPress Related Section?
Do you allow all users to be sync’d or just paid users?
Do you allow users to be synced only when they pick a username?
If you allow all users to be sync’d and do not want to force your users to pick a username before dap syncs to WP, then use these settings:
Sync DAP User Data to WordPress “Y”
Sync Paid Users Only “N”
Sync Only if Username Exists in DAP “N”
To test:
1) Add a user manually to DAP via dap admin panel
2) Note down the user’s dap login id/password
3) Open a new browser where you are not logged in to DAP as admin
4) Now login to DAP again but this time as the user you created in step 1.
5) Now visit any part of your blog. DAP will now sync user to WP.
6) Login to WP admin panel. Click on Users in the left sidebar and see if the new user was created.
March 16th, 2011 — 3rd Party Integration, 3rd Party List Integration, Code, Customization, DAP, Integration with Shopping Carts, Plugins, Setup
How To Setup Notifications/Triggers From DAP to 3rd Party APIs
We have now created a plugin framework that will allow DAP to trigger calls to 3rd party services when a user is added to a product (subscription/registration event) or when a user loses access to product (unsubscribe/unregister event).
In fact, we used the same framework to develop DAP -> Mailchimp integration in DAP 4.1.
Here’s the steps :
1) If you want DAP to trigger calls to the APIs/methods you wrote upon an addUserToProduct event or removeUserFromProduct event in DAP, then in the DAP products page – > notify plugin field, use the following format to integrate the APIs/class files. You can integrate multiple systems with DAP using this framework.

Say you want to integrate classname1 (that has the necessary APIs to register/unregister users to 3rd party service like Mailchimp ) and classname 2 (that has the necessary APIs to register/unregister users to another 3rd party service like GetResponse), then use this format in the notify plugins field above.
classname1:VALUE 1 you want to pass to the api: VALUE 2 you want to pass to the api: VALUE 3 you want to pass to the api
If you want DAP to call multiple APIs/ Classes, then just create a comma seperated list of classes that DAP should notify.
classname1:VALUE 1 you want to pass to the api: VALUE 2 you want to pass to the api: VALUE 3 you want to pass to the api,
classname2:VALUE 1 you want to pass to the api: VALUE 2 you want to pass to the api,
classname3:VALUE 1 you want to pass to the api
Whatever values (VALUE1, VALUE2.. ) you put next to the class name (all values should be “:” separated), DAP will forward those params/values to your APIs when a user is added to product or user is removed from product.
To integrate say classname1 which consists of the methods/apis to talk to your 3rd party services, create a folder called classname1 under /dap/plugins folder. Then under the classname1 folder, create a php script called classname1.class.php (just the way you notice a folder called mailchimp and under mailchimp a class file called mailchimp.class.php).
So you will have something like this:
/dap/plugins/classname1/classname1.class.php
Here’s what you need to have in classname1.class.php ( skleton class implementation ) :
< ?php
class classname1 {
function classname1() // constructor
{ }
//======== USER REGISTRATION===========
// this function is called by dap when a user is added to a product
function register($userId, $productId, $params) {
logToFile(“classname1.class.php: register(): “, LOG_INFO_DAP);
$dapuser = Dap_User::loadUserById($userId);
$email = trim($dapuser->getEmail());
$username = trim($dapuser->getUser_name());
$firstname = trim($dapuser->getFirst_name());
$lastname = trim($dapuser->getLast_name());
$data = explode(“:”,$params);
}
function unregister($userId, $productId, $params)
{
logToFile(“classname1.class.php: register(): “, LOG_INFO_DAP);
$dapuser = Dap_User::loadUserById($userId);
$email = trim($dapuser->getEmail());
$data = explode(“:”,$params);
}
}
?>
NOTE:
You MUST have same name methods (called register() and unregister() ) and the exact method signature as you see above.
You can call other methods/functions from register/unregister and/or
You can call 3rd party APIs from register/unregister methods and/or
You can include other class files.
Whatever values you pass (VALUE1, VALUE2 etc) via notify plugin, you can access those values in these methods. The values are available in the $params array.
That’s it.
You can add a test user to a product in DAP (via dap admin -> add users) and see if things work as expected.
February 27th, 2011 — 3rd Party Integration, 3rd Party List Integration, Adding Users, DAP, Email, MailChimp, Plugins, Products, Setup, Users, Video
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
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
January 23rd, 2011 — 1-Click Upsells, 3rd Party Integration, DAP, Integration with Shopping Carts, Payment Integration, Payment Setup and Integration FAQ, Paypal, Paypal Website Payments Pro, Plugins, Setup, Upsell Tree
DAP supports 3 different types of Paypal Integration.
1) Paypal Hosted Buttons
2) DAP Generated Buttons For Paypal
3) DAP Shopping Cart with Upsells
Let’s get into more details about each one of them.
1) Paypal Hosted Buttons
You generate the button within your Paypal account.
Click Here to find instructions to integrate DAP and Paypal Hosted Buttons.
If the integration is not working, Click Here to find troubleshooting instructions.
Note: you only need to set the following config items for Paypal hosted buttons.
a) If you want to use Paypal Sandbox for testing, then set the following to “Y”.
DAP Setup -> Config -> Paypal -> Use Paypal Sandbox: For initial testing only
If you want to connect to your Paypal live account, then set it to “No”.
b) If your site has trouble connecting to Paypal via CURL and you see this error in DAP orders page => Check Product and Price(Reprocessible), then update the config below to FOPEN.
DAP Setup -> Config -> Paypal -> 4) Paypal Communication Protocol: How DAP connects to and communicates with Paypal on the back-end.
That’s it.
The following config items are NOT needed if you use the Paypal hosted buttons.
Paypal API Username - Only needed if you use the DAP upsell tree plugins for Paypal Payments Pro or Paypal Standard.
Paypal API Password - Only needed if you use the DAP upsell tree plugins for Paypal Payments Pro or Paypal Standard.
Paypal API Signature – Only needed if you use the DAP upsell tree plugins for Paypal Payments Pro or Paypal Standard.
Paypal API Endpoint - Only needed if you use the DAP upsell tree plugins for Paypal Payments Pro or Paypal Standard.
Paypal Business Email ID - Only needed if you use the DAP generated button for Paypal (DAP Payments/Coupons -> Generate paypal button)
Merchant Payment Gateway API Login ID: Only needed if you use e-junkie or the DAP upsell tree plugin for Authorize.net
Merchant Payment Gateway Transaction Key: Only needed if you use e-junkie or the DAP upsell tree plugin for Authorize.net
The following fields in the DAP Products page ONLY need to be set if you use DAP upsell tree plugin or the DAP generated button for Paypal.
Recurring Count, Trial Amount and Product Price
If you are using regular paypal button, you can leave these empty. Even if these are not-empty, DAP will not use it for regular paypal hosted buttons.
2) DAP Generated Buttons For Paypal
With DAP 4.0, we have added support for DAP generated buttons for Paypal. You no longer have to generate buttons within Paypal.
You can generate the button for Paypal from within your DAP Admin Panel -> Payment Processing -> Generate Paypal Button page.

Click Here to find instructions to integrate the DAP generated button with Paypal.
3) DAP Shopping Cart / DAP Upsell Tree Plugins
1) Paypal Standard Upsell Tree Plugin
2) Paypal Payments Pro Upsell Tree Plugin / DAP shopping cart
Click Here for details.
August 16th, 2010 — Access Control, Amazon S3, Performance, Plugins, S3MediaVault.com, Setup, Video, Web Hosting, WordPress Plugins
Q: Can DAP protect content stored on an external site, like Amazon S3?
A: Not directly, not by itself. By default, DAP can only protect files (and any other content) that is on the same web site where DAP is also installed. For large files, we do recommend that you store files on a fast, scalable file server like Amazon S3. Now, the page or post itself (in which you post that Amazon S3 link) can be protected by DAP, and no un-authorized user can even see the content of the page (or the link within that page).
However, once a user has authorized access to a page because they’re a member, now they can see the page where you have that Amazon S3 link.
It’s similar to posting a public YouTube video on a protected DAP page on your web site. Sure, DAP can protect the page from un-authorized users, but authorized users can actually see the page, and see that it’s a YouTube video, and clicking on that video will directly take them to a page on YouTube.com, which DAP has no control over, and cannot protect once they leave your web site.
Similarly, DAP cannot directly protect that external link to your file stored on Amazon S3. And that’s where our Amazon S3 plugin S3MediaVault.com (S3MV) comes into the picture.
S3MV can make sure that your files on Amazon S3 cannot be accessed directly by anyone, even if the link were shared with others via email or on a forum, and can ONLY be accessed through a page or post on your web site (web site where you have installed the S3MV WordPress plugin).
NOTE: The S3MV plugin is included for free with your purchase of any DAP license, starting with the Unlimited-site license and above.
Q: What’s the difference between storing files on Amazon S3 (and serving it using the S3MediaVault.com plugin), compared to storing the files right on your own web site and having DAP serve them directly to your members?
A: If all files are stored right on your web site, and you have a large amount of video, audio and other files, then a lot of people viewing and downloading them from your site will use up a lot of resources on your server – like site loading time, server memory, server bandwidth, etc – and your site could slow down considerably. Plus, on top of that, there are also bandwidth charges that your host will charge you with for all of those downloads, which are usually not very cheap.
And don’t put too much faith in your web host’s “Unlimited Bandwidth” clause, because if you read the fine-print carefully, you’ll see that as per their TOS, if you consume large amounts of bandwidth and use too much of the server resources, this could cause other web sites (belonging to others) on the same server to slow down and have a degrade in performance. And they could consider this abuse of their TOS, and could either slap you with huge bandwidth or server utilization fees, or may even ask you to take your web site elsewhere because you’re causing issues for other site owners on the same server.
Instead, if the files are stored on Amazon S3, then you don’t have to worry about your site slowing down, or you using up too much bandwidth and getting slapped with huge bandwidth fees, because the files are being served from Amazon’s huge S3 servers which have tons more resources and speed compared to your web host.
Plus in the long run, bandwidth is cheaper on S3 compared to your web host.
May 24th, 2010 — 3rd Party Integration, Access Control, FAQ, File Resources, Plugins, Protecting Content, Protection FAQ, Video, WordPress Plugins
There are many ways in which you can protect videos.
Case 1: The video file is stored on your web site
By default, DAP can only protect files that are stored on the same web site where DAP is installed.
So if you install DAP on YourSite.com , then your files must also be located on YourSite.com. DAP installed on YourSite.com cannot protect files (.mp4, .mp3, .html, .pdf, .doc) that are stored on AnotherSite.com.
So assuming the files are stored on the same site as DAP, you can (and should) protect both the actual video file, as well as the blog post or page in which the embed-code for your video is published, by adding both to a Product.
This gives you 2 levels of protection for your videos:
Level 1: The blog post or page containing the video player code, itself is accessible only by authorized members.
Level 2: When an authorized user gets legitimate access to the page where the video is published (because they’re a paying member, say), even if they try to do a view source and figure out the location of the video (eg., http://yoursite.com/videos/howtovideo1.mp4) , and pass it around by email to their friends (or post the link in an online forum), their friends still can’t view the video, because the video link itself is protected by DAP.
If you have some text that you want the casual visitor (and Google) to read, but wish to protect only the video, then you could turn Sneak-Peek on (in Setup > Config > Advanced), insert a WordPress more tag (<!–more–>) into your post just where you want the content to start being protected, and put the video player’s embed code after the more tag.
Case 2: Video file is stored on Amazon S3
The only 3rd-party-stored video files that DAP can protect at this time are videos (and other files) that are stored on Amazon S3. DAP cannot do this by itself, but uses a special WordPress plugin called S3MediaVault.com , which is a plugin we developed specifically to make Amazon S3 videos play in your WordPress blog posts/pages. So again you get 2 levels of protection for your videos…
Level 1: DAP protects the post/page where the special S3MV video player code is embedded
Level 2: The S3MediaVault plugin makes sure that even if someone tried to do a view source and figure out the actual link to your Amazon S3 video, they still won’t be able to view the video.
WARNING: Video stored on other 3rd party video sites
DAP cannot protect, say, videos that are embedded from other 3rd party web sites like YouTube or Hulu. Of course, DAP can always protect the blog post or page itself that contains the video, but once an authorized user gets valid access to that blog page, they can see that it is a YouTube video (say), and then pass that YouTube video link to their friends, in which case DAP cannot protect that external YouTube video link.
May 21st, 2010 — Customization, Plugins, Widgets, WordPress, WordPress Plugins
Here’s how you can customize the HTML, look & feel of the DAP Sidebar Login Widget.
There is a file in the following folder…
/wp-content/plugins/DAP-WP-LiveLinks/
by name…
DAP-WP-LoginForm-LoginLogout.html
Make a copy of that file on your desktop, rename it to…
customDAP-WP-LoginForm-LoginLogout.html
(just added the text “custom” at the front of the original file’s name).
You can then modify this new file however you want, including altering spacing, and that’s what will be displayed.
Just be careful what you change – do not modify the field names or the submit URL. Feel free to change other visual elements.