Jason (Lead Developer)

My Latest Replies (From Various Topics)
Author | Replies |
---|---|
Author | Replies |
Posted: Thursday Jun 7th, 2012 at 7:55 pm #15862 | |
![]() |
|
Very welcome. I agree, the “wp_loaded” hook is better here.
~ Code sample updated to use “wp_loaded” hook instead. |
|
Posted: Thursday Jun 7th, 2012 at 7:46 pm #15857 | |
![]() |
|
Hi Benny. Thanks for your patience. I’ve just finished a preliminary review of your installation. I was unable to run all diagnostics, because the FTP access that we have on file from your last form submission is now outdated it appears. While I ‘ve been unable to reproduce the issues depicted in your screenshots thus far, I was able to reproduce a strang issue on your installation, whereby direct download links are failing, and simply leading me to an “about:blank” page. Given the seemingly random behavior you’ve described, and our inability to reproduce the full set of issues thus far, I have a suspicion that your hosting provider is running the mod_security extension, which might be triggering 403/503 errors randomly, which can produce a different set of problems, for each specific user, based on heuristic rule sets that look at things like cookie values, IP addresses, query strings, (and other data that changes from one user to another). You can learn more about this possible issue here (including some possible solutions): However, before we say “it’s gotta be mod_security”, let me first run full diagnostics on your installation. Please submit up-to-date FTP login credentials privately for me. See: s2Member® » Private Contact Form Also, please add a comment when you submit the form, telling me who your hosting company is. |
|
Posted: Thursday Jun 7th, 2012 at 6:59 pm #15854 | |
![]() |
|
Details received. Running diagnostics on this installation.
|
|
Posted: Thursday Jun 7th, 2012 at 6:52 pm #15853 | |
![]() |
|
Thanks for the heads up on this request for support.
~ I’m reviewing this thread now.
|
|
Posted: Thursday Jun 7th, 2012 at 6:50 pm #15852 | |
![]() |
|
Thanks for the heads up on this request for support.
~ I’m reviewing this thread now, and I’ll be with you shortly.
|
|
Posted: Thursday Jun 7th, 2012 at 6:46 pm #15851 | |
![]() |
|
Thanks for the heads up on this request for support.
Yes, this is true. However, this is not by design, it’s only because of the order in which log entries enter this array. So while it’s fine to assume this, it wouldn’t hurt to scan the array, and sort these based on the “time” for each of them, just to ensure your own sanity, before your custom routine does something further :-)
Not completely reliable, given the nature of this array. s2Member does not update this array in real-time, for every user. The array is only updated (with older entries moved into an archive), during the actual download of a file. Therefore, relying on this array (without any additional filtering first), could perhaps return inaccurate results at certain times, for certain users. Particularly those which have not downloaded anything recently.
Files that were downloaded prior to the current period, roll off this list automatically. However, this ONLY occurs during the actual download of a file. Therefore, you will need to scan this array, and make calculations of your own, based on the “time” for each of the files listed, and also based on the configuration of the site, at a specific Level of membership, for the current user. I know… it get’s hairy. Here is a possible solution for you, which considers all of these things…
Reference article:See s2Member® Codex regarding: s2member_user_downloads() |
|
Posted: Thursday Jun 7th, 2012 at 6:21 pm #15849 | |
![]() |
|
Thanks for the heads up on this request for support.
Regarding the text “— Oops, you missed something: —”.
This text, like all front-end aspects of s2Member, can either be changed by translating s2Member in it’s entirety, into a different language, or on a one-off basis using the gettext_with_context filter built into WordPress®. Translating s2Member’s POT file:See: Pre Sale FAQs » Can s2Member® be translated into other languages? Translating this particular message, without translating the entire plugin:Create this directory and file:
Regarding CSS styles…
s2Member applies only basic structural CSS. It does NOT make any attempt to set font sizes, families, etc. I think what you’re referring to are JavaScript alerts, which browsers do NOT style via CSS. The fonts used in a JavaScript alert message, are dictated by the browser that is being used. See also: Pre Sale FAQs » How can I prevent s2Member® Pro from loading it’s default CSS?
|
|
Posted: Thursday Jun 7th, 2012 at 5:32 pm #15845 | |
![]() |
|
Thanks for the heads up on this request for support.Since the user is NOT logged in during the generation of the PayPal Button, it makes this very difficult to accomplish with any reliability, because the Button is generated with detection of the current User’s ID, and also with the IP address of the current user. So really, we need them to be logged into the site. There is another way, which might help you accomplish this however.My suggestion is to place a simple link in the email, which leads a customer to a dynamic redirection on the site. In other words, instead of generating the button, and putting it into the email; generate a link which leads to a script that generates the button and redirects the user (all in one shot). I posted an example of this for ClickBank, which should work just fine with a PayPal Button as well: You will NEED the user to be logged-in first though. So whatever you come up with, be sure to force the user to be logged in prior to generating the Shortcode. This can be accomplished by routing your customer through a login link, which includes a redirect_to value. I’ll go ahead and write this up here as a quick example:Create this directory and file:
With this MU plugin in place. Now create this link.
The redirect_to value, really should be URL-encoded, so the link should actually come out like this:
You could shorten this link up a bit further, using something like tinyURL.
In Summary…The customer gets an email with this link: They are asked to log in. After logging in, they are immediately redirected to:
|
|
Posted: Thursday Jun 7th, 2012 at 4:35 pm #15838 | |
![]() |
|
Thanks for the heads up on this request for support.@ Sacha GreifI believe the issue here, is related to PayPal’s IPN processor. Whenever PayPal processes a subscription, is associates each subscription with a URL which will be notified via the PayPal IPN service, whenever changes and/or payments are processed for that subscription. Actually, PayPal offers two different ways to set this up.# 1. You can have a single/central IPN URL, which is notified for all subscriptions, regardless of where they originated from (i.e. s2Member, or another site that you operate). The same IPN URL would be contacted for all of them. This is how s2Member Pro integrates with PayPal Pro, via s2Member Pro Forms. # 2. Or, you can have each transaction automatically submit an IPN URL, so it can handle transactions and/or subscriptions associated with a particular software installation, on a particular domain. This is the method that s2Member prefers (if at all possible), because it allows for multiple installations to be operated under a single PayPal account, and in harmony with any other software that you might be using. This is how s2Member integrates with PayPal Standard Buttons. As noted previously though, this is not possible with PayPal Pro.
With PayPal® Pro integration you absolutely MUST set an IPN URL inside your PayPal® account. PayPal® Pro integration does NOT allow the IPN location to be overridden on a per-transaction basis. If you’re using a single PayPal® Pro account for multiple cross-domain installations, and you need to receive IPN notifications for each of your domains; you’ll want to create a central IPN processing script that scans variables in each IPN response, forking itself out to each of your individual domains. In rare cases when this is necessary, you’ll find two variables in all IPN responses for s2Member. The originating domain name will always be included somewhere within, either: custom and/or rp_invoice_id; depending on the type of transaction. These variables can be used to test incoming IPNs, and fork to the proper installation. For your convenience, an example script has been provided inside: /s2m-pro-extras/paypal-central-ipn.php. You can download all Extras here: s2m-pro-extras.zip.
The issue that you’re having…So the issue here, is that you have customers with subscriptions that were created by PayPal prior to you moving the site (i.e. you changed the originating domain name, and thus, you changed the IPN URL). PayPal is still sending IPN notifications to the original domain, which may not exist any longer, if you moved it. As far as I know, there is no way to change the original IPN URL that was given to PayPal. This has been a known limitation for quite awhile now. To my knowledge, PayPal has still not made this possible yet. Possible solutions for you…Re-establish the original domain (and thus, the original IPN URL that was given to PayPal). Sometimes it is enough just to setup a forwarding script on the old domain, and have that forward IPNs to your new domain, so that s2Member receives them. Or, you might contact PayPal and ask them to update the IPN URL for any old subscriptions, so that it points to your new s2Member installation, on the new domain that you’re using now. You may need to do some explaining for them, so they are aware that you simply changed the domain name. Reference articles:https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_admin_IPNSetup |
|
Posted: Thursday Jun 7th, 2012 at 3:44 pm #15829 | |
![]() |
|
Hi there. Thanks for the heads up on this request for support. @Sara YoungThis TODO item was moved over into the development cycle for the next major release of s2Member. Since it requires some fundamental changes in the way s2Member communicates with payment gateways (i.e. in order to keep a standard and remain accurate), we’re addressing this in the next generation of s2Member, which is scheduled for a beta release this summer. It’s been in development for quite awhile now, and we’re hoping to release it into the wild as soon as possible. |
|
Posted: Thursday Jun 7th, 2012 at 3:31 pm #15828 | |
![]() |
|
@Bob Mane
s2Member Profile updated with improved rank/icons.
Right. I don’t see why not. While it’s not something that s2Member has built-in (i.e. s2Member does not perform any type of User-Agent detection), you could certainly apply some of this, and combine that with the code samples provided by s2Member, as they exist now. For instance, you might use an RTMP stream for most cases, but make exceptions for iOS (perhaps lowering security just a bit), whereby you change the way the file is served, or from what source it is served from. I believe the Shortcodes and code samples provided by s2Member will make this possible for you (with a little customization on your part). Please let us know if you run into any issues, or have questions related to s2Member’s Shortcodes and/or API functionality. |
|
Posted: Thursday Jun 7th, 2012 at 3:19 pm #15826 | |
![]() |
|
Thanks for the heads up on this thread.s2Member Pro is not currently designed to sell tangible items that would be shipped to a customer (i.e. where a shipping address would be collected). However, you are correct… it IS possible to send these fields through the PayPal Pro API, if you like. If problems persist, please be sure that you’ve included a SHIPTONAME: Regarding these files:These files handle almost all transaction types. You only need to edit paypal-checkout-rdp-in.inc.php, if you’ve configured s2Member’s Recurring Profile Behavior to “Real-Time Direct Pay”, under: Dashboard -› s2Member® -› PayPal® Options -› Account Details. Conversely, you only need to edit paypal-checkout-in.inc.php, if you’ve configured s2Member’s Recurring Profile Behavior to “Consolidate w/ Recurring Profile”, under: Dashboard -› s2Member® -› PayPal® Options -› Account Details. You only need to edit paypal-checkout-pf-in.inc.php if you’re running s2Member with a PayPal Payflow API integration, as configured here: Dashboard -› s2Member® -› PayPal® Options -› Payflow® Account Details. 4. paypal-sp-checkout-in.inc.php |
|
Posted: Thursday Jun 7th, 2012 at 2:14 pm #15817 | |
![]() |
|
Hi there. Thanks for the heads up on this request for support.A Recurring Profile (i.e. for billing on the PayPal side), can be suspended manually, and this serves as your way to pause billing for a specific customer. On the s2Member side of things, nothing happens in this scenario, unless you make it happen manually. That is, if you suspend billing, the customer continues to have access, and all that stops is future billing for that access, until such time as the Recurring Profile on the PayPal side of things is placed back into a active status. Other considerations…A Recurring Profile that is in a “suspended” state, cannot therefore be cancelled by a customer. The PayPal Pro API does not allow this. So, if you have an s2Member Pro Cancellation Form being introduced to a customer whose Recurring Profile is in a suspended state, s2Member Pro will tell the customer that it’s not possible to cancel at this time, because their account is pending other changes, and they are asked to contact support should they need any clarification. Max failed payments…There is an additional scenario where the PayPal system itself will place a Recurring Profile into a suspended state automatically. This occurs whenever a customer’s payment fails over and over again. In this scenario, if the customer’s payment fails repeatedly, and PayPal suspends future billing automatically, s2Member will force an EOT (End Of Term), and access to the site will be denied. This is the only scenario (with respect to suspended profiles), where s2Member takes action automatically. You have some control over this, from your Dashboard. See: Dashboard -› s2Member® -› PayPal® Options -› Automatic EOT Behavior You can also control the number of failed payments that you will allow. Defaults to a value of 2. |
|
Posted: Thursday Jun 7th, 2012 at 1:49 pm #15816 | |
![]() |
|
Hi there. Thanks for the heads up on this request for support. You are both correct. PayPal’s sandbox system is NOT capable of running test transactions through the sandbox, where the language being spoken, is that of the Payflow API. I find this to be extremely annoying :-) While it seems that PayPal is making strides in their attempt to merge Payflow into other PayPal services, Payflow still feels more like a sub-division of the PayPal company. Most likely because Payflow I believe, was once owned by Verisign, and purchased by PayPal. It all makes for a VERY confusing developer experience in my opinion. Anyway… it’s NOT possible (at this time), to run test transactions through the PayPal Sandbox, where those test transactions are speaking the Payflow language. The PayPal sandbox is not capable of this. It is possible however, to setup a Payflow trial account, running in test mode. Instructions:1. Setup a test/trial account here: 2. Configure s2Member to use the Payflow API Credentials from this test/trial account. 3. Put s2Member into Sandbox mode. 4. Run your test transactions.
Is this the same as running Sandbox test transactions. No, not exactly.
Is this the same as running a PayPal Pro account with Payflow edition. No, it’s not. ~ Unfortunately, it’s the only way I’ve found to run test transactions against Payflow. |
|
Posted: Thursday Jun 7th, 2012 at 12:43 pm #15802 | |
![]() |
|
Hi Terry. Thanks for your patience.
So you’re collecting cash, and the process for upgrading a paid member, is one that’s completely manual. In cases where you’re handling the upgrade manually, you will also need to send an email manually, or perhaps create a custom plugin that does this for you. Normally, upon receiving payment, s2Member would send a Signup Confirmation Email, with payment details, and some additional information, which you can customize from the Dashboard. However, when the process occurs manually, emails must also be sent manually I’m afraid. This is a good point however, and we’ll certainly try to improve upon this in a future release. |
|
Posted: Friday Jun 1st, 2012 at 2:47 pm #15193 | |
![]() |
|
This was left out of the latest maintenance release.
Very sorry. We’ll hit this next time. |
|
Posted: Friday Jun 1st, 2012 at 11:52 am #15177 | |
![]() |
|
This has been corrected in the release of s2Member v120601.
Thanks again for reporting this! |
|
Posted: Friday Jun 1st, 2012 at 11:48 am #15176 | |
![]() |
|
Thanks for bringing this request for support to my attention.@Bran / Thanks for reporting this important issue.Maintenance release of s2Member Pro v120601 addresses this concern.
(s2Member Pro) Payflow® Daily Recurrence (Limitation). PayPal® Pro accounts with the Payflow® Edition API, are NOT capable of charging on a daily recurring basis. Previous releases of s2Member® Pro mistakenly documented this as being possible. Resolved in the release of s2Member Pro v120601.
PayPal® Pro accounts operating with the Payflow® Edition (and integrated with s2Member®), are only capable of charging recurring fees on the following schedules: weekly, bi-weekly, monthly, quarterly, or yearly. This is in large part, a limitation in the Payflow® API, which we hope will be resolved by PayPal® in a future version. Please feel free to contact PayPal® if you’d like to vote for this feature! This limitation does NOT affect existing PayPal® Pro accounts operating exclusively under the PayPal® Pro API (e.g. without Payflow®).
I am very sorry for any confusion this may have caused.
Please let us know if we can be of assistance in this matter. |
|
Posted: Friday Jun 1st, 2012 at 9:57 am #15166 | |
![]() |
|
Investigation completed.
I found that your ClickBank® Button Shortcode, contains the following character:
The `+` Sign Is Causing A Problem
[s2Member-Pro-ClickBank-Button … desc=”… Power Rankings, + More)”
While s2Member® handles this character properly, it appears that ClickBank® has made some changes on their end, which are causing this character to be returned back to s2Member® (i.e. in the return response from ClickBank®), with the character interpreted as a [[space]], instead of as the URL-encoded %2B value. Thanks for reporting this important issue. We’ve applied a patch to the development copy of s2Member Pro, so that + signs sent to ClickBank® are automatically transformed into the word “plus”. Not ideal, but since the `+` character is getting corrupted on the ClickBank® side of things, we’ll have to prevent that character from being sent to ClickBank at all. Your installation has been patched. This file was modified on your server: The next maintenance release of s2Member Pro will include this patch as well. In addition, we’re notifying ClickBank® of this issue, in hopes they’ll have it corrected on their end. Suggestion (at least for now), please remove the `+` sign from your ClickBank® Button Shortcode, and perhaps re-word your description just a bit, to accommodate this bug. This is optional of course, because the patch file will now convert the `+` character into the word `plus`, but I suspect that you’ll want to have a say in this, so re-wording things a bit might be the way to go. Please let us know if you continue to have trouble. |
|
Posted: Friday Jun 1st, 2012 at 9:06 am #15158 | |
![]() |
|
Thanks for the heads up on this request for support.
~ This is being investigated now. |
|
Posted: Friday Jun 1st, 2012 at 8:54 am #15157 | |
![]() |
|
We’re running diagnostics now, thanks for your patience. You should have a reply shortly. |
|
Posted: Wednesday May 30th, 2012 at 10:46 am #14944 | |
![]() |
|
Thanks for the heads up on this request for support.Your details were received, and I’m investigating this now.
I can tell this is failing, because the following array in your log file is completely empty:
s2Member will fail to parse this string (intentionally), when it encounters an invalid checksum in the URL (i.e. to prevent fraudulent transactions and hacking attempts). I’m investigating this on your server now, to determine why this particular failure occurred, and that will shed light on the underlying issue.
|
|
Posted: Wednesday May 30th, 2012 at 10:32 am #14940 | |
![]() |
|
@Alissa GlennThanks for the follow-ups here.The HTTP test file that I installed for you, is rather easy to reproduce. Please ask FatCow to attempt the following test… Open a connection to port 80 (i.e. any HTTP URL), from a PHP script that resides on the server itself. That is, test the connection to port 80, from a PHP script that actually resides on the server. The issue that I found in my tests, was NOT that port 80 was closed completely. Instead, it seems there is a problem when the server itself (i.e. via a PHP script), attempts to connect to itself via an HTTP connection.
Here is an example script that will reproduce the issue.
|
|
Posted: Wednesday May 30th, 2012 at 10:18 am #14939 | |
![]() |
|
Thanks for the heads up on this request for support.
This thread was resumed via email. If there are further questions regarding the items that were addressed in the email, please feel free to continue this conversation here.
Open Registration |
|
Posted: Wednesday May 30th, 2012 at 9:57 am #14937 | |
![]() |
|
Hi there. Thanks for the heads up on this request for support.Newer PayPal Pro accounts come with the Payflow Edition. Meaning, you will have both a PayPal Pro account, and also a Payflow API Username/Password. If you have a new PayPal Pro account, you should have the ability to generate your Payflow API Credentials, from your PayPal Profile page. See: Your PayPal Account -> Profile -> API Access (or Request API Credentials) -> Payflow® API Access In newer PayPal Pro accounts, the Payflow API is required to utilize PayPal’s Recurring Billing Service. In all other PayPal Pro accounts (i.e. older and/or existing PayPal Pro accounts), the Recurring Billing service is tied directly to the standardized PayPal Pro API, while in newer PayPal Pro accounts, it requires the Payflow API. I know, weird! To simplify this as best we can, from our end of things…With s2Member Pro Forms, you will ONLY need the Payflow API, if you have a PayPal Pro account sold to you by PayPal, under the Payflow edition … and even then, ONLY if you intend to charge customers on a Recurring basis, or implement something else that requires the use of PayPal’s Recurring Billing service, such as initial/trial periods. To clarify further… when you generate an s2Member Pro Form, you will choose the type of billing that needs to occur. If you choose ANY of the items in the drop-down menu, which are marked “(Subscriptions)”, you will need PayPal’s Recurring Billing service. If your PayPal Pro account was sold to you by PayPal, under the Payflow edition, s2Member will need your Payflow API Credentials so it can speak with your edition of PayPal’s Recurring Billing service. This is only time s2Member Pro needs the Payflow API (i.e. to speak the Recurring Billing language that exists in newer PayPal Pro accounts, which are sold under the Payflow edition). In Summary…Here’s a checklist you might follow: Once your Payflow API Credentials are obtained, please enter them here. Other Notes…PayPal’s current Sandbox does NOT allow test transactions through the Payflow API. That is, the PayPal Sandbox does NOT support test transactions implemented by the Payflow API, and therefore, you will need to run any test transactions in live mode, with low dollar amounts. Coming Soon…Work is still underway for the next major release of s2Member Pro, to help simplify all of this just a bit further, as best we can. Additional services offered by PayPal are currently being integrated with s2Member Pro, and further details will made available on our website as we work to catch up with the large list of PayPal’s latest changes/improvements. |