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 - 2,576 through 2,600 (of 2,703 total)
Author Replies
Author Replies
Posted: Wednesday Oct 10th, 2012 at 8:34 pm #28047
Bruce
Username: Bruce
Staff Member

Hi Jim,

You may also want to make sure your server’s settings are set up correctly. If you could run this Server Check Tool that would be great. Also, if you are contacting your web host, please verify that there is nothing special going on with your server’s file_put_contents() function, as that is what s2Member is using to store logs.

On another note, it’s possible that your server’s configuration are not set up to allow PHP to edit files. If nothing else seems to help, you may want to check that.

Let us know how that goes. :-)

Posted: Wednesday Oct 10th, 2012 at 8:12 pm #28040
Bruce
Username: Bruce
Staff Member

Hi Jim,

Thanks for the heads up on this thread, Eduan

OK, so was having some problems backing up my site with Backupbuddy. The size was ballooning quite a lot. I look thru the Backupbuddy folder tool and see that
wp-content/plugins/s2member-logs/
is about 11GB! The whole site is maybe 1GB itself. Does it make sense to periodically clear this log out? Should I save a copy?

It appears that your server may be archiving changes to your PayPal logs every time there is a change. It sounds that this may have something to do with your backup processes on your server. Whatever service you’re using (Backupbuddy?) is creating a new archived file every time the paypal-api.log file is changed (paypal-api-ARCHIVED-09-10-2012-1347265009.log). The s2Member log is constantly changing, but should not create any number of files (s2Member will archive log files if they reach a certain length, but you should not have too many of these).

I would suggest turning off backups for this directory, if possible, and deleting all files within the s2member-logs file, assuming you are not having any problems with your s2Member setup currently. This should fix your problem :-).

Posted: Tuesday Oct 9th, 2012 at 5:23 pm #27931
Bruce
Username: Bruce
Staff Member

Hi there,

In the meantime, you can use the hack I posted to do this as well through PHP:

Knowledge Base » Automatic Login Based on IP

Moved to: http://www.s2member.com/forums/topic/automatic-login-based-on-ip/

  • This reply was modified 4 years, 2 months ago by  Bruce.
Posted: Sunday Oct 7th, 2012 at 5:01 pm #27749
Bruce
Username: Bruce
Staff Member

Hi Vik,

Sorry about this confusion. I had originally had a different code sample there and updated it and it caused an error. I updated this Knowledge Base Article today with all new code samples that should work for you. :-)

Posted: Sunday Oct 7th, 2012 at 3:40 pm #27743
Bruce
Username: Bruce
Staff Member

Hi Bill,

Sorry about the confusion.

This is a pretty advanced hack so I had only put up the basics originally to keep it simple. However, I now believe that it does make more sense to just list out everything that should be done.

KB Updated: http://www.s2member.com/kb/setting-up-eot-notifications/

Opening comments for technical advice on this post.

Posted: Thursday Oct 4th, 2012 at 11:54 pm #27524
Bruce
Username: Bruce
Staff Member

Hi Michael,

It looks like you’re trying to run PayPal Payflow in Sandbox/Developer Testing mode. Currently PayPal Payflow doesn’t have the capability to do this yet (which is rather bothersome). Jason added a post here outlining how you can test transactions with PayPal Payflow for now.

Let us know if you have any further problems! :)

Posted: Thursday Oct 4th, 2012 at 11:41 pm #27523
Bruce
Username: Bruce
Staff Member

Hi Bob,

My very shallow PHP experience gets me ~almost~ where I want to be. I need a little help getting the rest of the way.

Goal: issue an email to a user when an EOT demotion occurs.

I’ve gotten as far as seeing the action occur and extracting all the variables available. Yet, I haven’t been successful in correctly addressing the ones I want. I’ve been doing this by trial and error, grabbing a little bit as people let memberships lapse. In between the infrequency of such activity and the inadequacy of my own PHP skill, progress is very slow. A little help please?

I would strongly recommend setting up a local server for development while you’re working with hacking s2Member (or any WordPress plugin or portion of the WordPress framework). I myself have seen first-hand what working on a live site can bring on, and (trust me) it’s not pretty. I would recommend checking into EasyPHP and setting up a WordPress site with just s2Member installed.


I’m using the following code to collect available variables:

<?php
add_action("ws_plugin__s2member_during_auto_eot_system_during_demote", "my_eot_hook_function");
function my_eot_hook_function($vars = array())
	{
		extract($vars);
		$headers = "---intentionally obscure---";
		$subject = "---intentionally obscure---";
		$to = '---intentionally obscure---';
		$message = "Demotion role: $demotion_role\n";
		$message .= '<pre>' . print_r($vars, true) . '</pre>';
		wp_mail($to, $subject, $message, $headers);
	}
?>

From that, I get a very long response (920 lines) in which I see a lot that interests me. In particular, I would like to use “display_name” and “user_email” but don’t know exactly how to address them.

For example, how would I correctly code the functional equivalent of: $to = $user_email;

Essentially what $vars is giving you is everything s2Member has access to at the point that you are hooking into in array format because s2Member sends get_defined_vars(). Therefore, when you extract() this array, you’re then getting back all of the variables as they were within s2Member.

So essentially what you’re looking to do is something like this (I recommend just creating a new user with $user_id):

<?php
add_action("ws_plugin__s2member_during_auto_eot_system_during_demote", "my_eot_hook_function");
function my_eot_hook_function($vars)
	{
		extract($vars);
		
		$user = new WP_User($user_id); # Get the user's data again
		
		$headers = ''; # You decide the appropriate headers
		$subject = 'Demoted from '.get_bloginfo('name');
		$to = '"'.$user->user_firstname.' '.$user->last_name.'" <'.$user->user_email.'>';
		$message = 'Uh-oh! You ran out of time! You were demoted from '.$existing_role.' to '.$demotion_role.'.';
		wp_mail($to, $subject, $message, $headers);
	}

Let me know if that helps you out.

Posted: Thursday Oct 4th, 2012 at 11:15 pm #27522
Bruce
Username: Bruce
Staff Member

Hi Angie,

You can stop this from happening by putting the edited version of the class into a Must Use Plugin. s2Member has a check to see if the class is already created both within the class autoloader, and within each class file itself for this purpose. You can create the /wp-content/mu-plugins/ directory if you do not and create a file called s2hack_email-configs_overwrite.php to house this.

Keep an eye out for changes to the email-configs.inc.php file in future versions however. If this file does change you’ll want to adapt this file to the new setup. :)

Posted: Wednesday Sep 26th, 2012 at 9:10 pm #26635
Bruce
Username: Bruce
Staff Member

Hi Danny,

Try using this:

<?php get_header(); ?>

<section id="title">

	<article>
		<h2>Become A Member</h2>
	</article>

</section><!--end of title-->

<section id="container">

	<article id="content">

		<aside id="left">

			<?php get_sidebar(); ?>

		</aside><!--end of left-->

		<aside id="right">

			<article>

			    <?php
			    	$thisauthor = get_userdata(intval($author));
			    ?>

			    <h2><?php echo $thisauthor->display_name; ?>, <?php echo get_user_field('profile_certifications', $thisauthor->ID);  ?></h2>

			    <?php if (have_posts()) : ?>

			    <?php endif; ?>

			    <article class="profile-details">

				    <aside class="picture">

				    	<? if(function_exists('get_avatar')) { echo get_avatar($thisauthor->user_email, 96, "" ); } ?>

				    </aside><!--end of .picture-->

				    <ul class="profile-info">
				    	<li><strong><?php echo get_user_field('profile_company', $thisauthor->ID);  ?></strong></li>
				    	<li><?php echo get_user_field('profile_address1', $thisauthor->ID);  ?></li>
				    	<li><?php echo get_user_field('profile_address2', $thisauthor->ID);  ?></li>
				    	<li><?php echo get_user_field('profile_city', $thisauthor->ID);  ?>, <?php echo get_user_field('profile_state', $thisauthor->ID);  ?> <?php echo get_user_field('profile_zip_code', $thisauthor->ID);  ?></li>
				    </ul>

				    <ul class="profile-info">
				    	<li><strong>Phone:</strong> <?php echo get_user_field('profile_phone', $thisauthor->ID);  ?></li>
				    	<li><strong>Fax:</strong> <?php echo get_user_field('profile_fax', $thisauthor->ID);  ?></li>
				    	<li><strong>Email:</strong> <a href="mailto:<? echo $thisauthor->user_email; ?>"><? echo $thisauthor->user_email; ?></a></li>
				    	<li><a href="<?php echo $thisauthor->user_url; ?>" target="_blank"><?php echo $thisauthor->user_url; ?></a></li>
				    </ul>

			    </article><!--end of .profile-details-->

			    <h3>Disciplines/Expertise/Services</h3>

				<?php
					function s2hack_get_user_checkboxes($field_ids, $id = null)
						{
							global $wpdb;
							global $current_user;
							/**/
							$field_ids = (array)$field_ids;
							/**/
							if($id === NULL)
								$id = $current_user->ID;
							/**/
							$values = array();
							/**/
							$sel_fields = get_user_meta($id, $wpdb->prefix.'s2member_custom_fields', true);
							$all_fields = get_s2member_custom_fields();
							/**/
							foreach($field_ids as $f):
								$pos = $all_fields[$f]['config']['options'];
								$sel = $sel_fields[$f];
								$values[$f] = array();
								/**/
								$pos = explode("\n", $pos);
								foreach($pos as $key => $str)
									{
										$str = explode('|', $str);
										$pos[$str[0]] = $str[1];
										unset($pos[$key]);
									}
								/**/
								foreach($sel as $sf)
									{
										if($pos[$sf] !== NULL)
											$values[$f][$sf] = $pos[$sf];
									}
							endforeach;
							/**/
							return $values;
						}
							$fields = s2hack_get_user_checkboxes('profile_disciplines', $thisauthor->ID);
							var_dump($fields['profile_disciplines']);
			    ?>

			    <h3>Industries/Environments</h3>

			    <ul>
			    	<li><?php echo get_user_field('profile_industries', $thisauthor->ID); ?></li>
			    </ul>

			    <h3>Experience</h3>

			    <p><?php echo get_user_field('profile_experience', $thisauthor->ID); ?></p>

			    <h3>Speaking Topics</h3>

			    <p><?php echo get_user_field('profile_speaking_topics', $thisauthor->ID); ?></p>

			    <h3>Prior Speaking Experience/Engagements</h3>

			    <p><?php echo get_user_field('profile_engagements', $thisauthor->ID); ?></p>

			    <h3>Publications</h3>

			    <p><?php echo get_user_field('profile_publications', $thisauthor->ID); ?></p>

			    <h3><a href="<?php echo get_permalink('72'); ?>">Disclosure</a></h3>

			</article>

		</aside><!--end of right-->

	</article><!--end of content-->

</section><!--end of container-->

<?php get_footer(); ?>

I created the function s2hack_get_user_checkboxes() that accepts an array of fields you’d like returned, and returns an associative array of these fields. It’s a quick and dirty solution but it should work just fine.

As it is set up currently, it is only var_dump()ing the data into your page, you can use the array with a <ul> or something similar to finish this up.

Let me know how it goes.

Posted: Wednesday Sep 26th, 2012 at 8:53 pm #26634
Bruce
Username: Bruce
Staff Member

Thanks Bruce – that adjustments works perfectly now! :)
(I have thousands of users with EOTs no there was no way it would be a blank result.)

Great! Glad to hear it! :)

Posted: Wednesday Sep 26th, 2012 at 8:00 pm #26631
Bruce
Username: Bruce
Staff Member

Hi Danny,

I’m going to run some tests quickly and create a function for you to do this with.

I believe the fastest way to do this would be just to json_decode() the get_usermeta() value [wp->prefix]s2member_custom_fields and get the user field you’re looking for.

I’ll get back to you shortly.

Posted: Wednesday Sep 26th, 2012 at 7:49 pm #26630
Bruce
Username: Bruce
Staff Member

Hi Grace,

Have implemented it and it displays perfectly – * but is not sortable. When clicking the EOT sort shows no results at all.

Sorry about the confusion. I believe this is being caused by the way I handled the WordPress database prefix within the hack. You have a database prefix other than ‘wp_’ correct?

Try the updated code at http://www.s2member.com/kb/adding-a-sortable-eot-user-column/


Hi Mary,

Like Grace, I wondered if something were wrong when I sorted the column and saw nothing. However, most of our members have monthly subscriptions, which have no EOT dates. The one-time-purchases for specific periods DO have EOT dates and those entries get sorted correctly … with most showing up on the last page.

Unfortunately it’s not possible to change this functionality, as WordPress does not have any specific filters for this, and I was forced to actually edit the mySQL query itself using ‘pre_user_query’. If we find a better way to do this, I’ll update the KB on it. :)

It suggests to me that all the vars mentioned in the normal EOT API Notification email are available.
i.e. eot_del_type, subscr_id, user_first_name, user_last_name, user_full_name, user_email, etc.

Yes that’s correct, as long as you extract($vars); within your filter/hook.

The functionality of get_defined_vars(); really is exceptional. You can check out some documentation on it here:

http://php.net/manual/en/function.get-defined-vars.php

Posted: Wednesday Sep 26th, 2012 at 1:16 am #26512
Bruce
Username: Bruce
Staff Member

Hi Danny,

If you have the function called anywhere (like in a mu-plugin) in your WordPress setup, this error will come up. Because this function already exists within the standard s2Member setup (the post you found was for editing the file directly, which is not recommended) you are getting that error. Try just changing your file to this:

<?php get_header(); ?>

<section id="title">

	<article>
		<h2>Become A Member</h2>
	</article>

</section><!--end of title-->

<section id="container">

	<article id="content">

		<aside id="left">

			<?php get_sidebar(); ?>

		</aside><!--end of left-->

		<aside id="right">

			<article>

			    <?php
			    	$thisauthor = get_userdata(intval($author));
			    ?>

			    <h2><?php echo $thisauthor->display_name; ?>, <?php echo get_user_field('profile_certifications', $thisauthor->ID);  ?></h2>

			    <?php if (have_posts()) : ?>

			    <?php endif; ?>

			    <article class="profile-details">

				    <aside class="picture">

				    	<? if(function_exists('get_avatar')) { echo get_avatar($thisauthor->user_email, 96, "" ); } ?>

				    </aside><!--end of .picture-->

				    <ul class="profile-info">
				    	<li><strong><?php echo get_user_field('profile_company', $thisauthor->ID);  ?></strong></li>
				    	<li><?php echo get_user_field('profile_address1', $thisauthor->ID);  ?></li>
				    	<li><?php echo get_user_field('profile_address2', $thisauthor->ID);  ?></li>
				    	<li><?php echo get_user_field('profile_city', $thisauthor->ID);  ?>, <?php echo get_user_field('profile_state', $thisauthor->ID);  ?> <?php echo get_user_field('profile_zip_code', $thisauthor->ID);  ?></li>
				    </ul>

				    <ul class="profile-info">
				    	<li><strong>Phone:</strong> <?php echo get_user_field('profile_phone', $thisauthor->ID);  ?></li>
				    	<li><strong>Fax:</strong> <?php echo get_user_field('profile_fax', $thisauthor->ID);  ?></li>
				    	<li><strong>Email:</strong> <a href="mailto:<? echo $thisauthor->user_email; ?>"><? echo $thisauthor->user_email; ?></a></li>
				    	<li><a href="<?php echo $thisauthor->user_url; ?>" target="_blank"><?php echo $thisauthor->user_url; ?></a></li>
				    </ul>

			    </article><!--end of .profile-details-->

			    <h3>Disciplines/Expertise/Services</h3>

			    <?php
				    function get_s2member_custom_fields_by_id($user_id) {
					    if($user_id === NULL)
						    $user_id = $theUserID;
						    $return = array();
						    $user = get_user_option('s2member_custom_fields', $user_id);
				    foreach ((array)json_decode($GLOBALS&#91;'WS_PLUGIN__'&#93;&#91;'s2member'&#93;&#91;'o'&#93;&#91;'custom_reg_fields'&#93;, true) as $field) {
					    if (isset($user&#91;$field&#91;'id'&#93;&#93;)) {
					    $return&#91;$field&#91;'id'&#93;&#93;&#91;'label'&#93; = $field&#91;'label'&#93;;
				    if (empty($field&#91;'options'&#93;))
				    	$return&#91;$field&#91;'id'&#93;&#93;&#91;'value'&#93; = $user&#91;$field&#91;'id'&#93;&#93;;
				    else {
				    	$field&#91;'options'&#93; = strpos($field&#91;'options'&#93;, "\n") ? explode("\n", $field&#91;'options'&#93;) : (array)$field&#91;'options'&#93;;
				    foreach ($field&#91;'options'&#93; as $option) {
				   	 $option = explode('|', $option);
				   	 $options&#91;$option&#91;0&#93;&#93; = $option&#91;1&#93;;
				    }
				    foreach ((array)$user&#91;$field&#91;'id'&#93;&#93; as $choice)
				    	$return&#91;$field&#91;'id'&#93;&#93;&#91;'options'&#93;&#91;$choice&#93; = $options&#91;$choice&#93;;
				    }
				    	}
				    }
				    return $return;
				    	}
				    $s2_custom_fields = get_s2member_custom_fields_by_id($theUserID);
				    echo $var&#91;'profile_disciplines'&#93;&#91;'options'&#93;&#91;0&#93;&#91;'label'&#93;;
			    ?>

			    <h3>Industries/Environments</h3>

			    <ul>
			    	<li><?php echo get_user_field('profile_industries', $thisauthor->ID); ?></li>
			    </ul>

			    <h3>Experience</h3>

			    <p><?php echo get_user_field('profile_experience', $thisauthor->ID); ?></p>

			    <h3>Speaking Topics</h3>

			    <p><?php echo get_user_field('profile_speaking_topics', $thisauthor->ID); ?></p>

			    <h3>Prior Speaking Experience/Engagements</h3>

			    <p><?php echo get_user_field('profile_engagements', $thisauthor->ID); ?></p>

			    <h3>Publications</h3>

			    <p><?php echo get_user_field('profile_publications', $thisauthor->ID); ?></p>

			    <h3><a href="<?php echo get_permalink('72'); ?>">Disclosure</a></h3>

			</article>

		</aside><!--end of right-->

	</article><!--end of content-->

</section><!--end of container-->

<?php get_footer(); ?>
Posted: Tuesday Sep 25th, 2012 at 7:46 pm #26494
Bruce
Username: Bruce
Staff Member

KB Articles Finished

A post on adding the sortable EOT column to your WordPress Users list has been posted here:

http://www.s2member.com/kb/adding-a-sortable-eot-user-column/


I have not been able to find a specific set of information. Maybe I haven’t looked in the right place? Other than a trial and error approach (waiting for someone to fall into EOT, then iterate…), where can I find out exactly what is passed in the $vars array? Is it associative or indexed? What keys might it have? etc.? I can eventually understand through stepwise revelation, but would prefer accurate documentation.

Due to the way s2Member handles its Filters and Hooks, there is no specific documentation regarding all of the filters.

The Codex documents where these filters and hooks are. s2Member generally passes all of the variables it is using (with get_defined_vars()) within the function these hooks and filters are called. Therefore if you can find where s2Member declares do_action() for ws_plugin__s2member_during_auto_eot_system_during_demote either within the Codex, or within a copy of s2Member, you can find the variables that are passed.

In this case, s2Member does your action at line 248 in s2member/includes/classes/auto-eots.inc.php which means you should have a LOT of variables at your disposal, including $user_id, $existing_role and $demotion_role, which are (most likely) what you’re searching for.


To use these variables, you’ll want to do something like this:

add_action('ws_plugin__s2member_during_auto_eot_system_during_demote', 'my_eot_hook_function');
/**/
function my_eot_hook_function($vars)
	{
		extract($vars); # This allows the variables to be used as they were within s2member/includes/classes/auto-eots.inc.php
		/**/
		if($demotion_role === 's2member_level0')
			echo 'It\'s level 0!'; # Keep in mind you'll most likely never see something that's echoed out (especially on a live site) here, because it's being processed through WP_Cron, which means that a robot, such as Google may be the one to trigger this demotion, or another user
	}

If you have any further issues with this, please create a new thread for the fastest response.

Thanks!

Posted: Tuesday Sep 25th, 2012 at 12:12 pm #26445
Bruce
Username: Bruce
Staff Member

Hi Danny,

When PHP gives you that error, it means you have already made that function somewhere else. You can’t have 2 functions with the same name. Either rename the function, or find where you have that function declared somewhere else and delete it. :)

Posted: Monday Sep 24th, 2012 at 8:45 pm #26378
Bruce
Username: Bruce
Staff Member

Hi Cheryl,

If you’d like to put a login form within your Membership Options Page, you can use the Membership Options Page variables that s2Member passes when a post is protected.

I wrote a Knowledge Base article on using the Membership Options Page Variables not too long ago. You can check that out here:

http://www.s2member.com/kb/using-the-membership-options-page-variables/

You can then change the way your login form works by sending the user to the login form at wp-login.php/?redirect_to= and change the redirect_to variable to match the URL the user should be redirected to.

Note that s2Member Pro’s Login Widget will automatically use the Membership Options Page variables if you select the Previous Page option within setup under Redirection After Login.
  • This reply was modified 3 years, 11 months ago by  Bruce. Reason: Note Added
Posted: Monday Sep 24th, 2012 at 8:20 pm #26374
Bruce
Username: Bruce
Staff Member

Hi Danny,

With the last code snippet you posted, PHP doesn’t allow you to set the default value of parameters with another variable. Do this instead:

  • This reply was modified 4 years, 3 months ago by  Bruce.
Posted: Monday Sep 24th, 2012 at 8:03 pm #26371
Bruce
Username: Bruce
Staff Member

Hi Bruce,

Glad to hear you’ve got it fixed.

p.s. this looks like the successor to Block Bad Queries but I suspect it won’t work with s2 and paypal right?

http://perishablepress.com/5g-blacklist-2012/

I would suspect that this would cause similar errors as it exists now. If you can add a whitelist within the plugin then it may be okay. Just whitelist requests from PayPal.

Otherwise, you may want to find the add_action() hooks for the plugin and add a conditional such as:

if($_GET['s2member_paypal_notify'] !== NULL) { # If s2member_paypal_notify is not set / is not the PayPal IPN response URL
	# Hooks and filters
}

Doing that would allow the plugin only to function when s2Member is not getting directly queried from PayPal.


Closing thread. If you have any further issues please create a new thread.

  • This reply was modified 4 years, 3 months ago by  Bruce.
Posted: Sunday Sep 23rd, 2012 at 4:10 pm #26224
Bruce
Username: Bruce
Staff Member

Hi Michael,

Sorry for the confusion. I believe that Authorize.net is technically available in all countries, but requires US currency and a US Bank Account to use it.

I’m pretty sure Google Checkout and Clickbank do support European countries though. I’m not experienced with European payment gateways as s2Member is a US-based software.

If Google Checkout and Clickbank don’t work out, you may want to add an additional payment gateway to your WordPress setup. You can get a Freelance developer to do this for you using the information within Dashboard -› s2Member® -› PayPal® Options -› PayPal® IPN Integration under IPN w/ Proxy Key ( optional, for 3rd-party integrations ).

You can also check out the s2Member Codex, and this section from the FAQs for more information.

Posted: Sunday Sep 23rd, 2012 at 3:55 pm #26220
Bruce
Username: Bruce
Staff Member

Hi Charles,

You can find info on Shortcode Conditionals that will help you with this within Dashboard -› s2Member® -› API / Scripting -› Simple/Shortcode Conditionals. Just put the shortcode for Pro Forms within the correct conditional and the other Pro for within another. :)

Posted: Sunday Sep 23rd, 2012 at 3:32 pm #26214
Bruce
Username: Bruce
Staff Member

Glad to hear you got it fixed. :)

Posted: Sunday Sep 23rd, 2012 at 3:31 pm #26212
Bruce
Username: Bruce
Staff Member

Hi Jeff,

Thanks for this great question.

s2Member does not currently support this as a feature, as it is based around the idea of WordPress Roles and Capabilities.

It could be possible through some custom code, however. If you’d like to see about how to set this up through some code, you can check out the Codex, and more specifically the PayPal IPN and PDT/RTN functionality.

It may be possible to create a new version (within an Must Use plugin, s2Member allows its classes to be overridden) of the files s2member/includes/classes/paypal-return-in.inc.php and s2member/includes/classes/paypal-notify-in.inc.php, and create a new class to handle this functionality.

I’m adding PayPal IPN/PDT methods to the list of things to go over within the Knowledge Base, as well as putting in a feature request with the lead developer for a future version of s2Member.

Posted: Sunday Sep 23rd, 2012 at 3:13 pm #26207
Bruce
Username: Bruce
Staff Member

Hi Michael,

BuddyPress takes over on the pages that you have set up within BuddyPress. You can protect these pages within Dashboard -› s2Member® -› Restriction Options -› URI Access Restrictions by user role.

Keep in mind that changing the slugs of these pages will nullify the restrictions you set up until you update your URI Access Restrictions.

Posted: Sunday Sep 23rd, 2012 at 3:06 pm #26205
Bruce
Username: Bruce
Staff Member

Hi Charles,

Thank you Bruce. As the site is still under development, I will privately message you with the link. Thank you.

Got it. Thanks.


Just put this in your style.css file:

form {
	color: white;
}

That should do it, and keep it from happening from any other forms (whether they be from s2Member or not).

Posted: Sunday Sep 23rd, 2012 at 2:22 pm #26200
Bruce
Username: Bruce
Staff Member

Hi Charles,

Your theme should handle this by itself, as s2Member doesn’t set its own color attributes.

If you’d like to post a link to your Pro Form, I’d be happy to send you some CSS you can put within your theme’s style.css file. :)

Viewing 25 replies - 2,576 through 2,600 (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.