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.

Jason (Lead Developer)

Staff Member

My Latest Replies (From Various Topics)

Viewing 25 replies - 1,701 through 1,725 (of 1,909 total)
Author Replies
Author Replies
Posted: Sunday Feb 26th, 2012 at 5:12 pm #6471
Staff Member

Hi there. Thanks for your inquiry.
We’ve had account information emailed to the client in this case. Please contact “jen” for account access. If you have any further trouble, please let us know :-)

Posted: Friday Feb 24th, 2012 at 2:46 am #6238
Staff Member

Thanks for the heads up on this thread.
Oh, I’m so sorry. That page is no longer available.

I’m attaching a file for you with the CSS utility styles though. Inside this file you’ll find a list of all the utility classes that were documented in that section. I’m pasting that below for you as well.
http://d1v41qemfjie0l.cloudfront.net/s2member/uploads/utilities.css

/*
Copyright: © 2009 WebSharks, Inc. ( coded in the USA )
<mailto:support@websharks-inc.com> <http://www.websharks-inc.com/>

Released under the terms of the GNU General Public License.
You should have received a copy of the GNU General Public License,
along with this software. In the main directory, see: /licensing/
If not, see: <http://www.gnu.org/licenses/>.
*/
/*
These CSS selectors are for: utility classes.
*/
/*
External links.
*/
a[rel ~= "external"]
	{
		padding-right: 18px;
		background: url('<?php echo $i; ?>/xlink-icon.png') no-repeat center right;
	}
li.recentcomments > a[rel ~= "external"]
	{
		padding-right: 18px !important;
	}
/*
Text styles & special coloration.
*/
.with-hilite
	{
		color: #000000;
		background-color: #FFFFCC;
	}
.with-fancy-type,
.with-fancy-type *
	{
		font-family: 'Mistral', 'Brush Script MT', 'Monotype Corsiva', 'Zapfino', 'Lucida Handwriting', 'Apple Chancery', 'URW Chancery L', cursive;
	}
.with-title-type,
.with-title-type *
	{
		font-family: 'e-Titles-Bold', 'Trebuchet MS', 'Arial', 'Helvetica', sans-serif;
	}
.with-sans-type,
.with-sans-type *
	{
		font-family: 'Trebuchet MS', 'Arial', 'Helvetica', sans-serif;
	}
.with-comic-type,
.with-comic-type *
	{
		font-family: 'Comic Sans MS', cursive;
	}
.with-mono-type,
.with-mono-type *
	{
		font-family: 'Courier New', monospace;
	}
.with-serif-type,
.with-serif-type *
	{
		font-family: 'Georgia', serif;
	}
.with-text-shadow
	{
		text-shadow: 0 2px 2px #DDDDDD;
	}
/*
Backgrounds.
*/
.with-bg,
.with-round-bg
	{
		background: #EEEEEE;
	}
.with-round-bg
	{
		-moz-border-radius: 3px;
		-webkit-border-radius: 3px;
		border-radius: 3px;
	}
/*
Border styles.
*/
.with-borders,
.with-round-borders
	{
		border: 1px solid #666666;
	}
.with-round-borders
	{
		-moz-border-radius: 3px;
		-webkit-border-radius: 3px;
		border-radius: 3px;
	}
img.with-borders,
img.with-round-borders
	{
		padding: 5px;
		background: #EEEEEE;
	}
img.with-borders.alignleft,
img.with-borders.alignright,
img.with-round-borders.alignleft,
img.with-round-borders.alignright
	{
		margin-bottom: 15px;
	}
/*
Shadow styles.
*/
.with-box-shadow
	{
		-moz-box-shadow: 1px 1px 1px #999999;
		-webkit-box-shadow: 1px 1px 1px #999999;
		box-shadow: 1px 1px 1px #999999;
	}
.with-box-shadows
	{
		-moz-box-shadow: 1px 1px 1px #999999, -1px -1px 1px #999999;
		-webkit-box-shadow: 1px 1px 1px #999999, -1px -1px 1px #999999;
		box-shadow: 1px 1px 0 #999999, -1px -1px 1px #999999;
	}
/*
Margins & padding.
*/
.with-margins,
ol.with-margins li,
ul.with-margins li,
dl.with-margins li,
dir.with-margins li,
menu.with-margins li
	{
		margin-top: 15px;
		margin-bottom: 15px;
	}
.with-padding,
table.with-padding th,
table.with-padding td
	{
		padding: 10px;
	}
.with-extra-padding,
table.with-extra-padding th,
table.with-extra-padding td
	{
		padding: 20px;
	}
table.with-padding,
table.with-extra-padding
	{
		padding: 0;
	}
/*
Indentations.
*/
.with-indentation
	{
		margin-left: 15px;
	}
.with-line-indentation
	{
		margin-left: 15px;
		padding-left: 15px;
		border-style: dashed;
		border-width: 0 0 0 1px;
	}
.with-paragraph-indentation
	{
		text-indent: 15px;
	}
.with-paragraph-reverse-indentation
	{
		text-indent: -15px;
		padding-left: 15px;
	}
.with-large-first-line
	{
		text-align: left;
	}
.with-large-first-line:first-line
	{
		font-size: 200%;
		line-height: 1.0;
	}
.with-large-first-letter:first-letter
	{
		float: left;
		display: block;
		font-size: 300%;
		line-height: 0.7;
		margin: 0 5px 0 0;
		vertical-align: top;
		text-transform: uppercase;
	}
.with-paragraph-indentation.with-large-first-letter,
.with-paragraph-reverse-indentation.with-large-first-letter
	{
		text-indent: 0;
	}
.with-paragraph-reverse-indentation.with-large-first-letter:first-letter
	{
		margin-left: -15px;
	}
.with-paragraph-indentation.with-large-first-letter:first-letter
	{
		margin-left: 15px;
	}
/*
Easy 1-3rd column widths/margins/padding.
The margin must always be a multiple of 3.
Padding can be any pixel width, does not matter.
The parent container width must be divisible by 2,3,4.
The split widths are calculated by: jquery.easycols.js.
If margins change, set $.easyCols({margin3rds}).
*/
div.with-1-3rd-column-width
	{
		width: 0;
		float: left;
		display: block;
		margin-left: 0;
		margin-right: 15px;
		border: 0 !important;
	}
div.with-1-3rd-column-width.alignright
	{
		float: right;
		margin-right: 0;
		margin-left: 15px;
	}
div.with-1-3rd-column-width.with-bg,
div.with-1-3rd-column-width.with-round-bg,
div.with-1-3rd-column-width.with-padding,
div.with-1-3rd-column-width.with-extra-padding
	{
		padding: 10px;
	}
div.with-1-3rd-column-width.last
	{
		margin-left: 0;
		margin-right: 0;
	}
div.with-1-3rd-column-width > *:first-child,
div.with-1-3rd-column-width > *.alignleft:first-child + *,
div.with-1-3rd-column-width > *.alignright:first-child + *
	{
		margin-top: 0;
	}
/*
Easy 2-3rds column widths/margins/padding.
The margin must always be a multiple of 3.
Padding can be any pixel width, does not matter.
The parent container width must be divisible by 2,3,4.
The split widths are calculated by: jquery.easycols.js.
If margins change, set $.easyCols({margin3rds}).
*/
div.with-2-3rds-column-width
	{
		width: 0;
		float: left;
		display: block;
		margin-left: 0;
		margin-right: 15px;
		border: 0 !important;
	}
div.with-2-3rds-column-width.alignright
	{
		float: right;
		margin-right: 0;
		margin-left: 15px;
	}
div.with-2-3rds-column-width.with-bg,
div.with-2-3rds-column-width.with-round-bg,
div.with-2-3rds-column-width.with-padding,
div.with-2-3rds-column-width.with-extra-padding
	{
		padding: 10px;
	}
div.with-2-3rds-column-width.last
	{
		margin-left: 0;
		margin-right: 0;
	}
div.with-2-3rds-column-width > *:first-child,
div.with-2-3rds-column-width > *.alignleft:first-child + *,
div.with-2-3rds-column-width > *.alignright:first-child + *
	{
		margin-top: 0;
	}
/*
Easy 1-4th column widths/margins/padding.
The margin must always be a multiple of 4.
Padding can be any pixel width, does not matter.
The parent container width must be divisible by 2,3,4.
The split widths are calculated by: jquery.easycols.js.
If margins change, set $.easyCols({margin4ths}).
*/
div.with-1-4th-column-width
	{
		width: 0;
		float: left;
		display: block;
		margin-left: 0;
		margin-right: 16px;
		border: 0 !important;
	}
div.with-1-4th-column-width.alignright
	{
		float: right;
		margin-right: 0;
		margin-left: 16px;
	}
div.with-1-4th-column-width.with-bg,
div.with-1-4th-column-width.with-round-bg,
div.with-1-4th-column-width.with-padding,
div.with-1-4th-column-width.with-extra-padding
	{
		padding: 10px;
	}
div.with-1-4th-column-width.last
	{
		margin-left: 0;
		margin-right: 0;
	}
div.with-1-4th-column-width > *:first-child,
div.with-1-4th-column-width > *.alignleft:first-child + *,
div.with-1-4th-column-width > *.alignright:first-child + *
	{
		margin-top: 0;
	}
/*
Easy 2-4ths column widths/margins/padding.
The margin must always be a multiple of 4.
Padding can be any pixel width, does not matter.
The parent container width must be divisible by 2,3,4.
The split widths are calculated by: jquery.easycols.js.
If margins change, set $.easyCols({margin4ths}).
*/
div.with-2-4ths-column-width
	{
		width: 0;
		float: left;
		display: block;
		margin-left: 0;
		margin-right: 16px;
		border: 0 !important;
	}
div.with-2-4ths-column-width.alignright
	{
		float: right;
		margin-right: 0;
		margin-left: 16px;
	}
div.with-2-4ths-column-width.with-bg,
div.with-2-4ths-column-width.with-round-bg,
div.with-2-4ths-column-width.with-padding,
div.with-2-4ths-column-width.with-extra-padding
	{
		padding: 10px;
	}
div.with-2-4ths-column-width.last
	{
		margin-left: 0;
		margin-right: 0;
	}
div.with-2-4ths-column-width > *:first-child,
div.with-2-4ths-column-width > *.alignleft:first-child + *,
div.with-2-4ths-column-width > *.alignright:first-child + *
	{
		margin-top: 0;
	}
/*
Easy 3-4ths column widths/margins/padding.
The margin must always be a multiple of 4.
Padding can be any pixel width, does not matter.
The parent container width must be divisible by 2,3,4.
The split widths are calculated by: jquery.easycols.js.
If margins change, set $.easyCols({margin4ths}).
*/
div.with-3-4ths-column-width
	{
		width: 0;
		float: left;
		display: block;
		margin-left: 0;
		margin-right: 16px;
		border: 0 !important;
	}
div.with-3-4ths-column-width.alignright
	{
		float: right;
		margin-right: 0;
		margin-left: 16px;
	}
div.with-3-4ths-column-width.with-bg,
div.with-3-4ths-column-width.with-round-bg,
div.with-3-4ths-column-width.with-padding,
div.with-3-4ths-column-width.with-extra-padding
	{
		padding: 10px;
	}
div.with-3-4ths-column-width.last
	{
		margin-left: 0;
		margin-right: 0;
	}
div.with-3-4ths-column-width > *:first-child,
div.with-3-4ths-column-width > *.alignleft:first-child + *,
div.with-3-4ths-column-width > *.alignright:first-child + *
	{
		margin-top: 0;
	}
/*
List styles/icons.
*/
ol.with-bullet-icons,
ul.with-bullet-icons
	{
		list-style: none;
		padding-left: 7px;
	}
ol.with-bullet-icons li,
ul.with-bullet-icons li
	{
		padding-left: 25px;
		background: url('<?php echo $i; ?>/bullet-16.png') no-repeat 0 2px;
	}
ol.with-folder-icons,
ul.with-folder-icons
	{
		list-style: none;
		padding-left: 7px;
	}
ol.with-folder-icons li,
ul.with-folder-icons li
	{
		padding-left: 25px;
		background: url('<?php echo $i; ?>/folder-16.png') no-repeat 0 2px;
	}
ol.with-text-file-icons,
ul.with-text-file-icons
	{
		list-style: none;
		padding-left: 7px;
	}
ol.with-text-file-icons li,
ul.with-text-file-icons li
	{
		padding-left: 25px;
		background: url('<?php echo $i; ?>/text-file-16.png') no-repeat 0 2px;
	}
ol.with-img-file-icons,
ul.with-img-file-icons
	{
		list-style: none;
		padding-left: 7px;
	}
ol.with-img-file-icons li,
ul.with-img-file-icons li
	{
		padding-left: 25px;
		background: url('<?php echo $i; ?>/img-file-16.png') no-repeat 0 2px;
	}
ol.with-check-mark-icons,
ul.with-check-mark-icons
	{
		list-style: none;
		padding-left: 7px;
	}
ol.with-check-mark-icons li,
ul.with-check-mark-icons li
	{
		padding-left: 25px;
		background: url('<?php echo $i; ?>/check-mark-16.png') no-repeat 0 2px;
	}
/*
Table styling.
*/
table.with-tabulation-colors
	{
		background-color: #CCCCCC;
	}
table.with-tabulation-colors tr,
table.with-tabulation-colors tr.odd
	{
		background-color: #EEEEEE;
	}
table.with-tabulation-colors tr.even
	{
		background-color: #FFFFFF;
	}
table.with-tabulation-colors th
	{
		color: #000000;
		background-color: #CCCCCC;
	}
This file is also available in your s2Clean distribution ZIP file.
If you’d like to tweak it, that’s certainly possible. You’ll find this under:
/wp-content/themes/s2clean/colors/default/utilities.css
Posted: Friday Feb 24th, 2012 at 1:13 am #6233
Staff Member

Hi there. Thanks for the heads up on this topic.

Interesting. What does the error state exactly? Is it coming from a JavaScript prompt, or after the form is submitted? To my knowledge, there is nothing in s2Member Pro Form validation to prevent a customer from submitting a 3 character state abbreviation or a 4 digit zip code.

Posted: Friday Feb 24th, 2012 at 12:29 am #6232
Staff Member

Hi Bella. Yes, that would confuse me as well. Generally speaking, a `200` status code indicates success. In fact, the status of `200` is what ccBill should expect to see upon contacting a valid IPN handler. Who is it, and why, do you think, this was reported to you as an error?

See also: http://www.w3.org/Protocols/HTTP/HTRESP.html

Posted: Friday Feb 24th, 2012 at 12:25 am #6231
Staff Member

Hi Scott. Thanks for your inquiry.

b) problem needs to be thought of differently

s2Member also supports the concept of Custom Capabilities. We are currently working to extend this concept further, but even now they are available for you to use in creative ways.

Video » s2Member (Custom Capabilities)

<Embed Playlist>
Posted: Thursday Feb 23rd, 2012 at 4:08 pm #6171
Staff Member
Requesting tech-support. Not a Pre-Sale question.
Moving to Community Forum so you’ll have a chance to receive assistance.
If you are a Customer, please post this in our Customer Support Forums.
Posted: Thursday Feb 23rd, 2012 at 3:39 pm #6163
Staff Member

Hi Adam. Thanks for your inquiry.

I have created a custom wordpress template under my theme root and identified it as a WP page template option. I used the s2Member ClickBank Button Code Generator to create the code snippet for my buy now button.

If you create a WordPress template file, that template file should be loaded by WordPress, and any plugins that are active on the installation will be available also. Please make sure that you’re pulling the content for the Page using the <?php the_content(); ?>

See also: http://codex.wordpress.org/Template_Tags
See also: http://codex.wordpress.org/Function_Reference/do_shortcode

Posted: Thursday Feb 23rd, 2012 at 4:02 am #6099
Staff Member

Hi Brendan. Thanks for your inquiry.

Yea, that’s s2Member’s weakest area right now, which we are working very hard to improve. s2Member does currently support Content Dripping by date, but it takes a little work on your part to setup. You can learn more about s2Member’s Content Dripping features from your Dashboard here.

Dashboard -› s2Member® -› API / Scripting -› Content Dripping

Posted: Thursday Feb 23rd, 2012 at 4:00 am #6098
Staff Member

Hi there. Thanks for the follow-up.

No, I’m very sorry. We’re not doing any custom coding right now. Our focus is on improving s2Member’s feature set overall right now. You might take a look at http://jobs.wordpress.net though. There are many site owners there, who are familar with s2Member®.

See also: s2Member® » Support Policy » Fine Lines

Posted: Thursday Feb 23rd, 2012 at 3:59 am #6097
Staff Member
~ Yes, Brendan, your posts have been deleted.
Please start a new topic of your own. Thanks!
Posted: Thursday Feb 23rd, 2012 at 3:56 am #6094
Staff Member

I hear ya. This company looks very promising.

Posted: Thursday Feb 23rd, 2012 at 3:55 am #6093
Staff Member

Hi Matt. Thanks for your inquiry.

Yes, this can be accomplished by adding this onto the end of your download links.

&s2member_skip_confirmation=yes

* Further details on this in your Dashboard here:
Dashboard -› s2Member® -› Download Options -› Basic Download Restrictions

Or, you can add this global JavaScript variable into the <head></head> section of your site.

<script type="text/javascript">
	var ws_plugin__s2member_skip_all_file_confirmations = true;
</script>
Posted: Thursday Feb 23rd, 2012 at 3:52 am #6091
Staff Member

Hi there. Thanks for the follow-up.

Well, you could do this a number of ways.

1. Manually through the Dashboard, via the Users menu. Change the Role from Subscriber to s2Member Level #1.
2. Generate either a Modification Checkout Button, or a Modification Checkout Form. This takes care of things automatically, where the Free Subscriber is upgraded to whatever Level they purchase access to.
3. It can also be done via PHP. Please see this KB article.
Knowledge Base » Changing Roles/Capabilities via PHP

Posted: Thursday Feb 23rd, 2012 at 3:48 am #6090
Staff Member

Hi Rich. Thanks for the follow-up.

Well, I can’t really offer you support for Payment Buttons that you configure manually and remove parts of the code from. That being said, what you’ve described sounds like it should do just fine.

Posted: Thursday Feb 23rd, 2012 at 3:46 am #6089
Staff Member

Thanks for the follow-up!

Sorry Debbie. That’s all I can offer for now.
Please see our policy regarding custom coding.
s2Member® » Support Policy » Fine Lines

Posted: Thursday Feb 23rd, 2012 at 3:44 am #6088
Staff Member

Hi there. Thanks for your inquiry.

What you’ve described certainly sounds doable, using s2Member as a framework on which to build this type of site. However, we do NOT currently support Administrative Users within WordPress. s2Member is designed for end-users of a site, and not for Users/Members that actually gain access to your Dashboard in some way.

Again, I’m certain it can be accomplished (i.e. we’ve had several site owners do this with s2Member), we just aren’t supporting this officially yet. Any custom code required for this is not covered by our Support Policy.

Posted: Thursday Feb 23rd, 2012 at 3:41 am #6087
Staff Member
Excellent! Thank you very much for the feedback on this.
~ Please keep us posted.
Posted: Thursday Feb 23rd, 2012 at 3:40 am #6086
Staff Member

Hi there. Thanks for the follow-up.

Could you share or mail your server configuration?

Sorry. I’m not sure what you mean. Can you please elaborate just a bit further?

Posted: Thursday Feb 23rd, 2012 at 3:37 am #6084
Staff Member

No, it doesn’t have to be at all. In fact, all of s2Member’s routines, including all of the core WordPress routines are designed so this is absolutely NOT a requirement. The primary reason that s2Member introduces this, is simply for the benefit of the customer. If the customer logs back in, they go back into the Login Welcome Page, where they normally will see the status of their account change, or that they now have access to something more.

Could they have done this without logging back in? Absolutely!

Posted: Thursday Feb 23rd, 2012 at 3:33 am #6083
Staff Member

Hi Dan. Thanks for the follow-up.

Yes, we are currently working to improve s2Member in a variety of ways. For now, we have that Shortcode available, or you could also pull details using the API Function itself, which is documented here
( including LOTS of examples :)

Posted: Thursday Feb 23rd, 2012 at 3:26 am #6082
Staff Member

Thanks for the follow-up.

– if i go with express checkout to use pro-form, does it mean that everything will go through Paypal express (including the Paypal buttons)?

Right. If you integrate Pro Forms with PayPal, but without having a PayPal Pro account, then everything goes through PayPal Express Checkout instead. Everything, all credit card options, and even the PayPal option itself – via Express Checkout.

– since i have a zencart that is totally separate from my s2M site, will the Paypal Express checkout affect that too since it is the same paypal account or it is “activated” only in certain conditions, like the use of pro-forms (which is not the case in the zencart)?

I don’t see any reason why you couldn’t do that. If you have a PayPal account with Express Checkout enabled, then the API is available for any software application to connect with. If you have another site that is using it, that’s fine, but if not, that’s also fine :-) The only thing to be careful about are IPNs. You’ll want to setup a central IPN processing script so that multiple software installations can receive IPNs from a single PayPal account.

We distribute a central IPN processing script example inside the /s2m-pro-extras.zip file. This is available for download inside your account here at s2Member.com.
Posted: Thursday Feb 23rd, 2012 at 3:19 am #6079
Staff Member

Hi there. Thanks for following up with us.
I’m sorry to hear that.

Upgrading to vBaleted! resolved my issue.

Sorry, what is vBaleted!?

For the benefit of other readers, please understand that Apache v2.0+ has been available since 2004. s2Member is not designed to run with older versions of Apache v1.x. The latest release of s2Member v120219 does make attempts to deal with older versions of Apache, but we still recommend that s2Member is run under Apache v2.0 or higher, or with another Apache-compatible web server, like LiteSpeed for instance.
Posted: Thursday Feb 23rd, 2012 at 3:13 am #6077
Staff Member

Hi Bendix. Thanks for your follow-ups.
I’ve just read back through your thread here. It sounds like the issue has to do specifically with iOS. If you place the file into an insecure location, it works though, is that correct?

So it sounds like the underlying issue could be one of two things.

1. The iOS user is not being recognized as having logged into the site during video playback.
2. The web server is configured to deliver files served via PHP scripts in a different way, to iOS perhaps?

The difference between s2Member serving the file, and the file being downloaded from an insecure location, is that s2Member is delivering the file via a PHP script. If you’re running the latest release of s2Member v120219 and this is still occuring, I would suggest that you create this directory and file please.

/wp-content/mu-plugins/s2-hacks.php
( these are MUST USE plugins, see: http://codex.wordpress.org/Must_Use_Plugins )

<?php
	add_filter("ws_plugin__s2member_chunk_file_downloads", "__return_false");
	add_filter("ws_plugin__s2member_flush_file_downloads", "__return_false");
?>

If no dice, I would then recommend that you integrate s2Member with Amazon S3/CloudFront. That’s where you’ll want to end up anyway. If you’re going to serve protected videos, I strongly suggest that you take advantage of the CloudFront CDN for this, and that will likely resolve any server compatibility issues that you’re seeing now.
Video » s2Member® File Downloads (Amazon S3/CloudFront/JW Player)

Posted: Thursday Feb 23rd, 2012 at 3:02 am #6075
Staff Member
Posted: Thursday Feb 23rd, 2012 at 2:57 am #6073
Staff Member

Sure. You’ll want to grab the CRON URL from your own Dashboard though. You can find that in your EOT Behavior options. Just choose that option from the list and a message will appear just above that field with the URL that’s required. Yours will look something like this:

http://www.example.com/?s2member_auto_eot_system_via_cron=1

Schedule the CRON job to run at least once each day please.

Dashboard -› s2Member® -› ccBill® Options -› Automatic EOT Behavior

Viewing 25 replies - 1,701 through 1,725 (of 1,909 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.