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.

About: Fred Riley

Website administrator, EUROCALL


My Latest Replies (From Various Topics)

Viewing 11 replies - 1 through 11 (of 11 total)
Author Replies
Author Replies
Posted: Monday May 13th, 2013 at 1:05 pm #49822
Fred Riley
Username: fredriley

Sorry, do please ignore this question – I should RTFM properly before posting. The ? link by the “Automatic EOT time” field in s2Member Configuration & Profile Fields describes the Auto-EOT and what it does. In my defence, there is an awful lot of fine manual to read through. I never realised that setting up payments and subs with Paypal etc was so complicated :(

Cheers

Fred

Posted: Monday Apr 1st, 2013 at 2:22 pm #46288
Fred Riley
Username: fredriley

As a follow-up query, our organisation’s current members will need to be imported into s2member, with their organisation ID, membership end date, and various custom fields.

1. Is there a way to import new users and specify the ID number? For instance:

1234,"harryhamster",,"Harry","Hamster","Harry Hamster","harry.hamster@rodents.com","http://www.rodents.com/hamster","subscriber",,"04/01/2013",,,,,,,"1000 Rodent Road","Rodentsville","Rodent City","Elbonia",,10002,"IND","bc2 3de"

where the first value 1234 is the organisational membership ID. I think that the answer to this is no, going by the s2member import documentation, in that either you have to have an automatically-generated user ID in WordPress, or an existing record with that user ID. Which would be a minor pain as then we’d have two IDs per user – one for the WP database, one their organisational ID – so I might have to manually edit the ID numbers in WP.

2. When I import these users, WP will set the registration date to the date of import, but of course each will have paid their annual fee before this time. I will need to store the membership expiry dates such that the user/member will be prompted to renew a month before expiry. Do I need to set the “Automatic EOT Time:” for this, and if so how can I set up automatic renewal prompts with links to Paypal?

3. Are there examples in the Codex or Forum of other web administrators who’ve had to import existing members and how they’ve gone about it?

I hope the above makes sense, and doesn’t tax your patience. If I were starting up a membership site from scratch then there’d not be these complications, but I need to ensure a trouble-free transition for our members to the new membership site and that could be tricky.

Cheers

Fred

Posted: Monday Apr 1st, 2013 at 1:13 pm #46284
Fred Riley
Username: fredriley

D’OH!! Of course that’s the problem, and I should have seen it – sorry. I’m using Libre Office Calc and the default CSV export uses ; for delimiters and doesn’t quote values. When I changed the export options to use commas as delimiters and quote all values, the CSV imported ok into s2member.

So, what I need to remember is:

  • use a correctly-formatted CSV
  • put the s2member fields (username, email etc) and the custom fields in the correct order in the spreadsheet

Thanks for the help, which has got me there in the end, I hope :)

Fred

Posted: Sunday Mar 31st, 2013 at 1:06 pm #46204
Fred Riley
Username: fredriley

Thanks for the replies, Cristián. After a few days break in the hills, I’ve come back to this problem and it’s still a problem. I decided to go ‘back to basics’ and simply export a CSV from s2member and try to reimport it, following the tip on the Import (or Mass Update) Users page:

Do not fear. If you have any trouble, please perform an export first using s2Member® Pro. s2Member’s export files are already formatted for easy re-importation. In other words, you can use them as a guideline for building your own import files.

I created a test user ‘harryhamster’ using s2member => Add a Member, to add to the existing admin user. So the exported CSV looks like:

ID;Username;Password;First Name;Last Name;Display Name;Email;Website;Role;Custom Capabilities;Registration Date;First Payment Date;Last Payment Date;Auto-EOT Date;Custom Value;Paid Subscr. ID;Paid Subscr. Gateway;address_1;address_2;city;country;county;eurocall_id;id_type;postcode
1;admin;;Fred;Riley;admin;fred.riley@gmail.com;http://www.fredriley.org.uk/;administrator;;03/24/2013;"a:2:{s:5:""level"";i:1364154108;s:6:""level4"";i:1364154108;}";;;;;paypal;12 My Road;My district;My city;UK;My county;1000;IND;ab1 2cd
231;harryhamster;;Harry;Hamster;Harry Hamster;harry.hamster@rodents.com;http://www.harryhamster.org;subscriber;;03/31/2013;;;;;;;1 Rodent Road;Hamstertown;Rodentsville;Albania;Notts;1001;IND;AB1 2CD

I then try to reimport this file, unedited, and get the results:

Line #1. User ID# ID;Username;Password;First Name;Last Name;Display Name;Email;Website;Role;Custom Capabilities;Registration Date;First Payment Date;Last Payment Date;Auto-EOT Date;Custom Value;Paid Subscr. ID;Paid Subscr. Gateway;address_1;address_2;city;country;county;eurocall_id;id_type;postcode does NOT belong to an existing User.
Line #2. User ID# 1;admin;;Fred;Riley;admin;fred.riley@gmail.com;http://www.fredriley.org.uk/;administrator;;03/24/2013;"a:2:{s:5:""level"";i:1364154108;s:6:""level4"";i:1364154108;}";;;;;paypal;12 My Road;My district;My city;UK;My county;1000;IND;ab1 2cd does NOT belong to an existing User.
Line #3. User ID# 231;harryhamster;;Harry;Hamster;Harry Hamster;harry.hamster@rodents.com;http://www.harryhamster.org;subscriber;;03/31/2013;;;;;;;1 Rodent Road;Hamstertown;Rodentsville;Albania;Notts;1001;IND;AB1 2CD does NOT belong to an existing User.

When exporting, I chose the default CSV file preference for “easy re-importation”. Could you please advise as to why s2member is throwing these errors? This is now 6 hours on this particular problem on a test localhost server, so if it’s not possible to import CSV then I’ll cut my losses and enter all 300 or so users manually on the live online server.

Thanks for the pointers to the scripts, which I’ll try to look through carefully. If you get the time, could you please give me SQL examples of the UPDATE and INSERT queries that the import script generates? If not, I’ll throw some ‘echo’ statements in the code to see what comes out.

Fred

Posted: Tuesday Mar 26th, 2013 at 3:06 pm #45810
Fred Riley
Username: fredriley

Ok, thanks for the reply – I’ll give it a go when I get back to work on Friday and post back here. Could you please point me towards the script that generates the SQL query as that would help me understand s2member’s requirements?

Cheers

Fred

Posted: Friday Sep 21st, 2012 at 4:30 pm #26080
Fred Riley
Username: fredriley

Thanks again, Raam. For the custom fields, I did set them to apply to all levels, but my error was to test the page with the shortcode whilst logged in as administrator. When I looked at the page in another browser where I wasn’t logged in, the custom fields displayed fine.

On the trial period thing, I think we’ll likely default to our current situation, which is that a subscriber pays a one-off annual fee and is prompted to renew before it expires, which currently our secretary does manually. Which brings me to a supplementary issue, that of reminding the member that their membership is due to expire and prompting her/him to renew. This is an important issue for our organisation. We don’t want to lock members into a recurring sub for various reasons, not least that it might put a good few people off joining, but we do want to encourage them to renew.

Looking at the thread “EOT event triggering” on the support forum, it appears that current s2member behaviour on a subscription expiring (EOT) is to just demote the member without notice, and that there’s no current facility for the member to receive an email a month, say, beforehand and encourage her to renew unless we write custom code for EOT hooks. Is that the case? I’m asking because I know that my colleagues will ask me the question, so I want to be prepared.

As an aside, I had a look at the PayPal API documentation on the developer site, and it’s pretty damned complex. I can really begin to appreciate the amount of work that’s gone into integrating s2member with PP – it’s not something I’d fancy doing myself even as an experienced coder. So, kudos to the s2member techs :)

Cheers

Fred

Posted: Wednesday Sep 19th, 2012 at 1:33 pm #25825
Fred Riley
Username: fredriley

Hi again Raam

I’ve tried to create a Pro Form based on your reply above, and am running into some snags. I’ve a few more Qs, I’m afraid:

1. Does PayPal Express Checkout need to be enabled? I’ve had a look on the PP site where there’s a section on Express Checkout (getting started, integration guide) which has no instructions to enable checkout, and implies that it’s a default feature of a business account. I’ve got PP API credentials from a sandbox buyer account as a standard (non-Pro) business account.

2. I created a Pro form for level 1 access, specifying a €90 initial and recurring annual sub, and got shortcode which I copied to a page and edited the “accept” field as suggested, to get:

[s2Member-Pro-PayPal-Form level="1" ccaps="" desc="1 Year @ $90 / then $90 EUR / Yearly ( recurring charge, for ongoing access )" ps="paypal" lc="" cc="EUR" dg="0" ns="1" custom="www.eurocall-languages.org" ta="90" tp="1" tt="Y" ra="90" rp="1" rt="Y" rr="1" rrt="" rra="2" accept="paypal" accept_via_paypal="paypal" coupon="" accept_coupons="0" default_country_code="" captcha="0" /]

When displayed, this gave the error:

Invalid form configuration. Invalid “ta, tp, tt” attributes. Trial Period. When provided, these cannot be exactly the same as your “ra, rp, rt” attributes.

Do I need to manually edit the shortcode, or is there something else I need to tweak? I’ve not specified any trial periods anywhere.

3. Can I make Euros the default currency, or does it have to be USD for Paypal purposes?

4. I added a custom registration form field in Dashboard -› s2Member® -› General Options -› Registration/Profile Fields but this doesn’t appear in the Pro form. Is that because of the error above?

5. Is there one of Jason’s helpful videos on the form generation process?

I’m sure I’ll get the hang of this eventually….

Fred

Posted: Tuesday Sep 18th, 2012 at 12:30 pm #25705
Fred Riley
Username: fredriley

Thanks, Cristián, I thought that would be the case, hence my postings to the WP Codex, but I thought I’d best check just in case s2member had some hidden capabilities that would save me hunting through wp-plugins. I’ve already spent a few hours trying out various plugins and it’s been frog-kissing all the way :(

Cheers

Fred

Posted: Tuesday Sep 18th, 2012 at 12:27 pm #25704
Fred Riley
Username: fredriley

Thank you, Raam, that’s very helpful indeed. It is very useful for me to have the steps I need to take spelled out in detail. I did see that text that you quoted when I was getting acquainted with s2member, but there’s so much to take in that it must have migrated to many of the ‘bad sectors’ that currently infest my ageing memory :(

Cheers

Fred

Posted: Tuesday Aug 14th, 2012 at 11:06 am #22005
Fred Riley
Username: fredriley

Thanks again, Eduan. I’ll download the freebie and run it in a localhost WP installation to see what it does to the database, and of course I’ll watch the videos. I suppose my alarm comes from my database theory education, where I was told that it was very bad form indeed to have a multi-valued single field which is asking for update problems, and ever since all my DBs have only single-value fields. OTOH, if s2member has to work within the constraints of the WP database design then that might be an acceptable kludge.

Cheers

Fred

Posted: Tuesday Aug 14th, 2012 at 6:10 am #21952
Fred Riley
Username: fredriley

Thanks for the reply, Eduan. I was intrigued by one of your answers:

Is there documentation online on the structure of the tables and relations that s2member sets up in WP? An entity-relationship diagram, perhaps.

Not that I know of, not an official one at least, since s2Member saves it’s options and information serialized arrays within WordPress’ own tables in the database.

Do you mean that s2member stores arrays in single fields/attributes?? That would go against a fundamental database design principle. Or did you mean something else? I am very keen that our data is stored in an open and portable format. I know that I shouldn’t have to worry about proprietary lockin with an Open Source CMS, but if s2member uses strange methods to store user data in the database that’d make me nervous.

I’ll likely give the single domain Pro version a punt as it’s only $69 and could save us a lot of effort.

Cheers

Fred

Viewing 11 replies - 1 through 11 (of 11 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.