latest stable versions: v150827 (changelog)

Old Forums (READ-ONLY): The community now lives at WP Sharks™. If you have an s2Member® Pro question, please use our new Support System.

Home Forums Bruce

Bruce

Staff Member

My Latest Replies (From Various Topics)

Viewing 25 replies - 1,976 through 2,000 (of 2,703 total)
Author Replies
Author Replies
Posted: Wednesday Feb 6th, 2013 at 5:39 pm #40934
Bruce
Username: Bruce
Staff Member

If I were to OMIT the part about set_user_role IN this line of code, would that stop it from sending when the new members sign up and only send it when the role is updated?

No, this would not achieve what you’re looking to do. I took a quick look at the processes within /wp-includes/capabilities.php, where this hook is established. It looks like the functionality that you’re looking to set up here would not be possible with this hook. WordPress does not pass the previous role that the User had, so there’s no way to tell if the User was upgraded or not.

Instead of using this hook, I would recommend using s2Member’s API Notifications (specifically Modification Notifications). s2Member only sends Modification Notifications when a User was previously signed up, so this should work perfectly for you.

See: Dashboard -› s2Member® -› API / Notifications -› Modification Notifications
See Also: Knowledge Base » Building An API Notification Handler

Posted: Wednesday Feb 6th, 2013 at 4:51 pm #40930
Bruce
Username: Bruce
Staff Member

Thank you very much for your purchase! :-)

How do I transfer the wordpress non multisite installation (http://comcentre.moretonbay.biz/) to the wordpress multisite installation (http://macleay.moretonbay.biz/)?
Do I have to delete the single installation and rebuild it?

This article from from WordPress.org may help you with this. You will need to delete the site that you have currently, but WordPress does have functionality to help you transition your current site to your WordPress Multisite installation.

http://codex.wordpress.org/Migrating_Multiple_Blogs_into_WordPress_3.0_Multisite

How do I upgrade s2member to Multisite Network License when I do the transfer?

With s2Member’s Blog Farm License + Unlimited Site License, you have access to documentation regarding setting up s2Member with your Multisite Installation in your My Account Page. Please follow the instructions in the Multisite Blog Farm Documentation file you now have available.

See: http://www.s2member.com/account/

Please let us know if you have any further questions/concerns. :-)

Posted: Wednesday Feb 6th, 2013 at 4:26 pm #40928
Bruce
Username: Bruce
Staff Member

I am using firebug, but i cant figure out which css code I need to move those.

On your page, the CSS Classes for the two input that you’d like move are the following:

s2member-pro-paypal-coupon-apply
s2member-pro-paypal-submit

You should be able to use these classes to move your buttons around.

That’s about as far as we can go with custom code. If you need further assistance, we recommend http://jobs.wordpress.net, or another freelance web site where WordPress® experts are offering their expertise through a bid on your project.

Please let us know if problems persist. :-)

Posted: Tuesday Feb 5th, 2013 at 4:49 pm #40875
Bruce
Username: Bruce
Staff Member

Thank you for the information.

Awarded Benjamin Gill Helpful Badge.
Posted: Tuesday Feb 5th, 2013 at 4:34 pm #40872
Bruce
Username: Bruce
Staff Member

Thank you for your inquiry.

But the link provided by you says that you guys don’t provide any support for PAYMILL.
Can I make it by customizing the s2members code by some developer?

Yes, you could integrate s2Member with Paymill with custom code. However, as per our Support Policy, we do NOT offer professional installation service, customizations, or services involving custom coding. If you need assistance in this regard, we recommend http://jobs.wordpress.net, or another freelance web site where WordPress® experts are offering their expertise through a bid on your project.

See: s2Member® » Support Policy

s2Member does provide some tools for making integration with another payment gateway a bit easier. To get started, I would recommend checking out the information on s2Member’s PayPal IPN with Proxy Key.

See: Dashboard -› s2Member® -› PayPal® Options -› PayPal® IPN Integration -› IPN w/ Proxy Key ( optional, for 3rd-party integrations )

The IPN w/ Proxy Key functionality allows a developer familiar with Paymill and s2Member use the information provided from Paymill, and send it to s2Member to process as though it were sent directly from PayPal.

As of s2Member® Pro v130203

s2Member® Pro v130203 was updated to support some additional Remote Operations (create_user, modify_user, delete_user). So aside from s2Member’s PayPal IPN Proxy (which is still the best way to integrate a custom payment gateway), the s2Member® Pro Remote Operations API is now a viable alternative.

See: Dashboard -› s2Member® -› API / Scripting -› Remote Operations API
See Also: Dashboard -› s2Member® -› PayPal Options -› IPN Integration -› More Information -› IPN Proxy Key
See Also: s2Member -› Changelog v130203

Keep in mind that this API is designed to perform these specific tasks. It is NOT designed to handle post-processing of transactions and trigger API Notifications, emails, etc. If you integrate a custom payment gateway and you want to maximize compatility with everything that s2Member® offers, use the PayPal IPN Proxy provided by s2Member.

If you want to set things up in a truly custom way (handle your own events, emails, etc.), and perhaps simplify the integration a bit, go with the Remote Operations API instead.

Let us know if you have any further questions/concerns. :-)

Posted: Sunday Feb 3rd, 2013 at 3:01 pm #40569
Bruce
Username: Bruce
Staff Member

This seemed to have started after S2Member pro install but not sure. How do I reset all s2member settings to default?

To reset s2Member to default, turn OFF Deactivation Safeguards, then deactivate and then activate the s2Member plugin through your Dashboard.

See: Dashboard -› s2Member® -› General Options -› Deactivation Safeguards

This will wipe ALL settings associated with s2Member; these settings include your PayPal Account Options.
Posted: Sunday Feb 3rd, 2013 at 6:26 am #40545
Bruce
Username: Bruce
Staff Member

Thank you for your inquiry.

I know I cannot combine the Specific Post/Page feature with Level 1 Access – as it would create a conflict. But I was hoping to achieve this with custom capabilities.

To help clarify the way that conflicts, let me explain the way that s2Member decides whether or not a User has access to a specific Post or Page.

You can think of s2Member’s different Restriction Options (i.e. by Membership Level, Custom Capabilities, and Specific Post/Page) as different filters that a User’s Capabilities must fit through. If you set up both Specific Post/Page Access Restrictions for a Post, AND set up Member Level Access Restrictions, a User must meet both requirements put forth here. This means that each Member would need to both have access to the Level that is set up for the specific Post, AND have bought access for the Specific Post/Page through a Specific Post/Page Access Pro Form or Payment Button to view the Post.

This works the same way with Custom Capabilities. If you set up a Post/Page to be Restricted at s2Member Level 1, and restricted with Custom Capability ccap_1, your Users will need to be both s2Member Level 1, and have Custom Capability ccap_1 to access the Post/Page.


I have a post that is protected by Level 1 access. Can I also add a custom capability ‘ccap_1′ to that post and then create a Capability Buy Now button that includes ‘ccap_1′.

That way free members can upgrade to Level 1 and get access to all posts or they can choose to only buy the ccap_1 post. Will that create a conflict?

This is certainly possible. However, setting up a Post/Page requires s2Member Level 1, and a Custom Capability requires that a User to meet both your Level Access Restrictions, and your Custom Capability Access Restrictions. Instead, I would recommend removing your Level Access Restrictions on this Post, and use only Custom Capabilities to restrict access.

Keep in mind that Custom Capabilities are completely separate from Membership Levels, meaning that a User can have access to ccap_1 at s2Member Level 0, but another User might be s2Member Level 1, but not have access to this Custom Capability.

To get around this, you will need to add all of the Custom Capabilities that your User will need to access all of your Posts to the Pro Form / Payment Button that you are using to sign members up at s2Member Level 1. However, Users that signed up before you edited this Pro Form / Button would not have access to these Custom Capabilities, which means that they will either need to buy access to the new Custom Capabilities, or you will need to manually give these Users the new Custom Capabilities for these new Posts.

Please let us know if you have any further questions/concerns. :-)

Posted: Sunday Feb 3rd, 2013 at 5:52 am #40544
Bruce
Username: Bruce
Staff Member

Thank-you for your inquiry.

When we ban a user from our community – we change them to Banned level, set their account status to 3 in WP, and remove their Authnet payment ID from their fields – and move that to the info field for reference.

s2Member’s integrations with Authorize.Net, and all of s2Member’s supported payment gateways, are one-way integrations, meaning that changes that are made from the Payment Gateway are reported to s2Member, and s2Member uses this information. However, changes made manually to users on your site are not reflected to your Payment Gateway.

This means that if a user is paying for a subscription to your site and you remove their Paid Subscription ID from their profile, the user will still be billed unless you cancel the subscription through PayPal (or whatever PayPal Gateway you’re using).

Recently the problem we are having: Authnet continues to charge monthly fees even AFTER the banned user’s info has been removed from the appropriate fields. HOW do we stop Authnet from pulling those recurring payments for our banned users???

To stop an Authorize.net subscription from recurring, you will need to stop the subscription manually after deactivating the user’s account using the details here:

http://support.authorize.net/authkb/index?page=content&id=A656&actp=LIST


(For about a year we had been using Paypal – and never had this problem._

I am unsure how this could be the case. s2Member does not integrate this way with any of it’s supported payment gateways. Removing the user’s Paid Subscription ID will never stop recurring billing. Perhaps you simply never banned a user that signed up through recurring billing? You mentioned that you had multiple plans available on your site. Buy Now transactions would not require a cancellation of a Recurring Billing Profile, because a Recurring Billing Profile is not created for Buy Now transactions.

Please let us know if problems persist. :-)

Posted: Sunday Feb 3rd, 2013 at 5:39 am #40543
Bruce
Username: Bruce
Staff Member

Thank-you for your inquiry.

s2Member currently does not store payment details on your site for security reasons. This information is stored securely by your payment gateway (i.e. PayPal, Authorize.net, etc.). However, if you’d like to store this information, s2Member does grant access to this information through API Notifications.

s2Member’s API Notifications are routines that will send data to specific URLs whenever certain events happen in your site. For this functionality you will only need to use Payment Notifications.

See: Dashboard -› s2Member® -› API / Notifications -› Payment Notifications

To use the information provided through s2Member’s API Notifications, you will need to set up an API Notification handler. This requires a bit of code to set up.

See: Knowledge Base » Building An API Notification Handler

To collect the payment amount for a user, you will need the user’s ID, as well as the amount that user paid. Both of these portions of data are available within s2Member’s Replacement Codes for Payment Notifications.

Your API Notification URL might look like this:

http://example.com?s2_payment_notification=yes&s2_amt=%%amount%%&s2_id=%%user_id%%

The above URL passes the amount that the user paid, and their ID as s2_amt, and s2_id, respectively. Now you can set up your API Notification handler. Using the code sample from Building An API Notification Handler as a guide, your handler might do something like the following:

Please create this directory and file:
/wp-content/mu-plugins/s2-payment-notification.php
(NOTE: these are MUST USE plugins, see: http://codex.wordpress.org/Must_Use_Plugins)
(See also: http://www.s2member.com/kb/hacking-s2member/)
<?php
add_action('init', 's2_payment_notification'); 
function s2_payment_notification()
	{
		if(!empty($_GET&#91;'s2_payment_notification'&#93;)) // In my URL, I have `?s2_payment_notification=yes`, that's what I'm looking for here.
			{
				if(!empty($_GET&#91;'s2_id'&#93;) && !empty($_GET&#91;'s2_amt'&#93;)) // In my URL, I have `&s2_id=%%user_id%%&s2_amt=%%amount%%`, that's what I'm looking for here.
					{
						$user_id = (integer)$_GET&#91;'s2_id'&#93;; // I'm expecting an integer in this value.
						$amount = (integer)$_GET&#91;'s2_amt'&#93;; // I'm expecting an integer in this value
						
						// Here I might perform any number of tasks related to this user. Such as creating a user option value in WordPress.
						update_user_option($user_id, 's2member_last_amount_paid', $amount);
					}
				exit; // We can exit here. There's no reason to continue loading WordPress® or my theme during an API Notification.
			}
	}
&#91;/hilite&#93;

The above uses the WordPress function <a href="http://codex.wordpress.org/Function_Reference/update_user_option">update_user_option()</a> to save the amount that this user paid as a User Meta value in your database. This information is saved into the meta field s2member_last_amount_paid

.

To access this information, you can use any of the methods outlined in s2Member’s Shortcode Conditionals with s2Get examples, or with get_user_option().

Example with shortcodes:

[s2Get user_option="s2member_last_amount_paid"]

Example in PHP with get_user_option():

<?php echo get_user_option('s2member_last_amount_paid'); ?>

See: Dashboard -› s2Member® -› API / Scripting -› Simple/Shortcode Conditionals

Please let us know if you have any further questions/concerns. :-)

Posted: Sunday Feb 3rd, 2013 at 4:22 am #40540
Bruce
Username: Bruce
Staff Member

The “You do not have sufficient permissions to access this page.” is a message thrown by WordPress whenever one of the following things happens:

1) You are attempting to access an admin page that does not exist, or is not created for your level

OR if

2) Your current user level does not have the capability manage_options


To find the issue here, please make sure that the following is all set up correctly:

Make sure that the user that you’re attempting to log in on is an admin on the specific site that you’re attempting to log in on. For instance, if you’re logging in at http://example.com/wp-login.php, your user should be an admin on your main site.

When you’re logging in, you’re being redirected to http://yourdomain.com/wp-admin/, and NOT http://yourdomain.com/wp-admin/network/. You should be getting this error as a regular admin user if you are trying to access your Network Administration panel.

If you still cannot access your WordPress Dashboard with a regular admin account after you test the above, you may have an issue with the capabilities associated with your Administrator role on your specific installation. If that’s the case, I would recommend installing a plugin such as Capability Manager, and ensure that your Admin role has the correct capabilities.

See: http://codex.wordpress.org/Roles_and_Capabilities

Please let us know if problems persist. :-)

Posted: Sunday Feb 3rd, 2013 at 3:53 am #40535
Bruce
Username: Bruce
Staff Member

Thank-you for reporting this important issue.

I am reviewing this thread now.

Posted: Saturday Feb 2nd, 2013 at 6:21 am #40378
Bruce
Username: Bruce
Staff Member

Thank-you for reporting this important issue.

I’m sorry to hear that you’ve had a problem with upgrading. It sounds like your Deactivation Safeguards were turned off. Could you please check what you have set up under Dashboard -› s2Member® -› General Options -› Deactivation Safeguards?

If s2Member’s Deactivation Safeguards are disabled, any time s2Member is disabled on your WordPress site, s2Member will delete all settings that were set up. This is to help keep your database and user roles table clean if for any reason you decide to stop using s2Member.

Posted: Saturday Feb 2nd, 2013 at 6:14 am #40375
Bruce
Username: Bruce
Staff Member

Thank-you for your inquiry.

s2Member currently provides support only through the Customer Support Forums, as per our Support Policy. If you’d like to find info on the differences between the different packages for s2Member, please see our Prices/Licensing page.

Let us know if you have any further questions/concerns. :-)

Posted: Saturday Feb 2nd, 2013 at 6:09 am #40374
Bruce
Username: Bruce
Staff Member

One thing to note is that we are using the same paypal account for our testings so is it possible that this is happenng because of repeated purchases from the same paypal accoun

This, in conjunction with one other thing is what is causing this issue. To fix your issue, please set up another PayPal account for testing.

PayPal will not allow payment to go through from a PayPal account, to the same PayPal account. So because the payment is failing for this reason, s2Member demotes the user right after they are granted access. However, s2Member is only upgrading the member to level 1 for that limited amount of time because of your shortcode’s rra attribute value.

[s2Member-Pro-PayPal-For... rra="2" ...  /]

The rra value controls how many times PayPal is allowed to retry billing the user. By default this is set to 2, which should be fine. However, when this is set up, you will then be giving access to a specific level / set of capabilities to your member (depending on your Shortcode’s values) for as long as it takes PayPal to try to process the payment as many times as you specify here.

This is why you see “Demoted by s2Member: Thu Jan 31, 2013 2:03 am UTC” in your Administrative notes.

See: Dashboard -› s2Member® -› Download Options -› Shortcode Attributes & API Functions

Posted: Saturday Feb 2nd, 2013 at 6:00 am #40370
Bruce
Username: Bruce
Staff Member

Thank-you for your inquiry.

I am reviewing this thread now.

Posted: Saturday Feb 2nd, 2013 at 5:56 am #40365
Bruce
Username: Bruce
Staff Member

Hello friends… I have followed all the instructions to configure the plugin, everything seems to work well for charging paypal subscription and returns perfectly to the site, but I could not get me back Auto EOT Time ($s2member_auto_eot_time) always returns empty.

This is the expected behavior. With PayPal, s2Member does not store and EOT date for live subscriptions. End of Term (EOT) dates are only set when the subscription is cancelled. This is because before this point, the subscription is not set to end at any point, and therefore there is no EOT date to set.

However, if you were using Buy Now transactions for membership, an EOT date would be set after each transaction. However, you should note that this type of transaction is non-recurring, so users would need to manually renew their accounts to continue having access to your protected content.

Posted: Saturday Feb 2nd, 2013 at 5:51 am #40363
Bruce
Username: Bruce
Staff Member

Thank-you for your inquiry.

I am reviewing this thread now.

Posted: Saturday Feb 2nd, 2013 at 5:49 am #40362
Bruce
Username: Bruce
Staff Member

We have used WordPress SEO by Yoast for all of our public web pages. However, we are unsure if the private member content pages should have SEO. Should they be blocked from all search engines because they are password protected areas?

For protected areas of your site, s2Member will block access to your posts/pages from search engines such as Google, just as a regular logged-out member would be. These crawlers are instead redirected to your Membership Options Page. So SEO for these pages is not required or used.

Posted: Saturday Feb 2nd, 2013 at 5:45 am #40360
Bruce
Username: Bruce
Staff Member

Thank-you for your inquiry.

I’m reviewing this thread now.

Posted: Saturday Feb 2nd, 2013 at 5:44 am #40359
Bruce
Username: Bruce
Staff Member

Based on Philly’s post, the correct way to set this up would be to replace this line:

wp_nav_menu( array( 'depth' => 6, 'sort_column' => 'menu_order', 'container' => 'ul', 'menu_id' => 'main-nav', 'menu_class' => 'nav fl', 'theme_location' => 'primary-menu' ) );

With:

if ( is_user_logged_in() ) {
    wp_nav_menu( array( 'depth' => 6, 'sort_column' => 'menu_order', 'container' => 'ul', 'menu_id' => 'main-nav', 'menu_class' => 'nav fl', 'theme_location' => 'logged-in-menu' ) );
} else {
    wp_nav_menu( array( 'depth' => 6, 'sort_column' => 'menu_order', 'container' => 'ul', 'menu_id' => 'main-nav', 'menu_class' => 'nav fl', 'theme_location' => 'logged-out-menu ) );
}

Note that the above has not been tested, and maybe require tweaking to get it to work correctly.

That’s about as far as we can go with custom code, as per our Support Policy. If you need any further help, we recommend posting a job listing on http://jobs.wordpress.net/, or http://elance.com/.

Posted: Saturday Feb 2nd, 2013 at 5:37 am #40355
Bruce
Username: Bruce
Staff Member

Thank you for your inquiry.

I’m reviewing this thread now.

Posted: Saturday Feb 2nd, 2013 at 5:27 am #40351
Bruce
Username: Bruce
Staff Member

Looking for some advice about the best way to exclude a specific URL from S2 protection. Here is the scenario: We’ve installed a chat program which interfaces with WP but is installed outside of the WP installs on the server. This works perfectly. People who visit our site, who are not logged in, cannot access the chat program. S2 is functioning perfectly. However, it is locking out admins from the admin log in. The URL which is set up to administrate the new chat software is:

When you say that your chat program “interfaces with WP”, what do you mean exactly? Is this something that is being pulled into a WordPress Post/Page? Are you only loading WordPress’s functionality here through PHP?

Hm…actually, I just tried to add /admin/ to our highest level of membership and when I enter the correct URL (logged into S2 as an admin) it says “page not found” and if I am logged out and try to enter the URL S2 redirects me to the login/registration page.

This is likely an issue with an invalid setup here. You should set up your URI restriction with /chatprogram/admin/. If you use /admin/, s2Member will block access to any URI on your server that contains /admin/ in the URL, which is not what you need here.

See: Dashboard -› s2Member® -› Restriction Options -› URI Access Restrictions

Posted: Saturday Feb 2nd, 2013 at 5:08 am #40343
Bruce
Username: Bruce
Staff Member

Thank-you for your inquiry.

I’m reviewing this thread now.

Posted: Friday Feb 1st, 2013 at 9:28 pm #40324
Bruce
Username: Bruce
Staff Member

this is my current code that doesn’t work, i’m not sure it gets triggered at all. getting the signup email hook working gave me the impression that it is sitting at the right place in my s2-hacks.php file.

That code looks correct to me. I would suggest instead using update_option() to store the information.

See: WordPress -> update_option()

Unfortunately, as stated in our Support Policy, we cannot debug custom code. If you’re having issues, we recommend posting a job listing in a site such as http://elance.com/ or http://jobs.wordpress.net/.

i’d like to be able to put a condition for one of my Custom Registration/Profile Fields.
it’s a select dropdown.

This is not something s2Member currently supports natively. If this feature is something that you need, I’d recommend using custom JavaScript code to do this. s2Member assigns IDs to each of your Custom Profile/Registration Fields when it generates them so that something like this is possible. You can find the IDs for your Custom Profile/Registration Fields by examining the source code of the page in which your signup form is on with something like Firebug for Firefox.

Posted: Friday Feb 1st, 2013 at 4:42 pm #40310
Bruce
Username: Bruce
Staff Member

Thank-you for your inquiry.

s2Member makes translation available with WordPress I18n.

Using multiple languages in one WordPress installation is possible with the help of WPML, which I would recommend for you.

See: Pre Sale FAQs » Can s2Member® be translated into other languages?
See Also: http://www.s2member.com/forums/forum/community/translations/

Viewing 25 replies - 1,976 through 2,000 (of 2,703 total)

Old Forums (READ-ONLY): The community now lives at WP Sharks™. If you have an s2Member® Pro question, please use our new Support System.

Contacting s2Member: Please use our Support Center for bug reports, pre-sale questions & technical assistance.