Thanks to all the people who have helped so far (see this old thread http://drupal.org/node/73727 for previous discussions). That thread became a little too long and unweildy so I've started this one as a replacement.

The new release is out and please people, I need feedback. Only a few people have provided any so far. To them I send thanks!

Here are the highlights of the changes:

  • Added options to email subscribers on joining, near end, end
  • Option to email admin on new subscribers and subscribers leaving
  • Added trial period support
  • Improved admin support - better ways to view subscriptions, subscribers..

You can find the new release here:

http://lmmrtech.com/lm_paypal_module_for_drupal

Comments

csc4’s picture

Happy to provide feedback but not quite sure where you'd like it to be sent? Is here the right place?

If so! just downloaded and installed, creating first subscription:
user warning: Data too long for column 'type' at row 1 query: INSERT INTO watchdog (uid, type, message, severity, link, location, referer, hostname, timestamp) VALUES (1, 'LM_PayPal_Subscriptions', 'sql:INSERT INTO {lm_paypal_subscriptions} ...

LeeMcL’s picture

First thanks for the feed back and posting here is fine.

I'll make sure that watchdog is passed a suitable short 'type', maximum 16 chars. I was surprised that I've not been hit by this myself. But a quick search on Drupal.org shows it is MySQL 5 in "strict" mode and I am running MySql 4.1. I just hope that there are no other oversized strings, nothing obviously stands out!

I was about to post a new version I'll make sure it is fixed for that.

Lee

--
Lee McLoughlin
lmmrtech.com

LeeMcL’s picture

New version out with support for paid adverts.

You can find out more and download it from:

http://lmmrtech.com/lm_paypal_module_for_drupal
--
Lee McLoughlin
lmmrtech.com

csc4’s picture

Thanks so much for the speedy fix - it's working beautifully now. The paid adverts sound very interesting so I've put 1.17 in and the type problem is definitely gone but the ad bit is eluding me ATM!

LeeMcL’s picture

Once you've enabled the lm_paypal and lm_paypal_paid_adverts modules you will need to configure both (admin/settings/lm_paypal and admin/settings/lm_paypal_paid_adverts). You will probably want to change the access control so that only certain roles can create adverts. Then users can create adverts using the new link under 'create content'. Once they have created an advert they can make it publically readable by paying for it.

Hope this helps

Lee
--
Lee McLoughlin
lmmrtech.com

mwu’s picture

Lee,
thank you very much. I'll try to test it in the next 2 days.

Others please help test!

mwu’s picture

bad news. this is on the old version, not the new version.

the blank website problem is back.

all pages are completely blank.

right now I can produce this problem with complete reliability
rename lm_paypal.module to something else
site works
restore lm_paypal.module (by renaming)
everything blank.

although the problem was been intermitten in the past, right now it occurs with complete reliability.

however, this is on the old website, not a clean install.

i've made no changes in the meantime.

others, please test and see if you get this also.

LeeMcL’s picture

The lm_paypal module is pretty large so it might be causing you to run out of memory. It runs on my standard setup without change but you could try increasing the memory available to PHP. I usually do this by adding the following to my settings.php file:

ini_set('memory_limit', '12M');

That or there is something weird in the your old website that is still causing it problems.

Lee
--
Lee McLoughlin
lmmrtech.com

stretchwickster’s picture

I currently have a 4.6 install running and need to get paypal subscriptions working on it. So, will this module work on 4.6?

LeeMcL’s picture

Sorry but this module will not work with 4.6.

Lee

--
Lee McLoughlin
lmmrtech.com

mwu’s picture

.module was missing ?> at end.
after I put that in, I can get to /user.
however, front page is still blank.

mwu’s picture

it is possible I've found the problem.
locale module must be enabled.

i looked in cpanel error logs
said t is undefined function
in api docs it looks like t requires locale function
locale function is in locale module

i enabled locale module and so far everything looks right (this is the old version).

i'll try the new version now.

mwu’s picture

I have the new version on a clean site.
i've tested the ad module.
everything is working great.

locale is NOT enabled.
no error messages in admin
no error messages in cpanel

right now my ads don't show up in my account, but i assume that's just because you had to leave before it was done.

below i'll add some comments about features.

lee, thank you! you are really very productive. thank you for producing 4 modules so quickly.

after a break, I'll test subs, but since donations and subs were working well before I assume they will be fine.

LeeMcL’s picture

I'm glad to hear that everything is working OK. Paid Adverts should be working OK - albeit in a limited fashion. I just posted some more notes about them, let me know if they help.

Lee
--
Lee McLoughlin
lmmrtech.com

mwu’s picture

it's working correctly as far i've tested. so thank you!

what I hope it can do
1) recurring.
I am producing something more like an on-going ad in a magazine, and less like a used car ad. so I'm expecting my ads to be recurring every month.

2) types. i plan to have multiple types. right now all postings appear under one category in "create content"

say (not the actual case)

day care listing
vacation rental

so I need to have different node types that have different fields

3) cck. I was hoping this can integrate with cck. so that each node type can have more than 2 fields.

lee, I know you are on vacation, and I hope you are having a good one. if you can write back and just say whether these features are possible (tho you can't do them right now) that would be much appreciated.

thank you. thank you.

LeeMcL’s picture

Glad to hear that its all working for you.

1) I'll ad recurring ad's on my return.

2) Multiple ad types will take quite a bit of work. (Thats why I did the very simple version currently available.)

I guess I could so something clever with cck. Currently I based things on a story node and even that was a bit tricky!

3) cck: I've never used it. I've used flexinode - but never looked at either at the programming level. Last time I looked which was ages ago, cck was still experimental - is this still the case?

So I'll have a look, on my return, at changing the paid advert node to being based on cck, supporting multiple types and also adding a recurring payments option.

Vacation is good thanks!

Lee

budda’s picture

I'm in the process of completeing a paypernode.module which works with Drupals ecommerce package. You create your advert node types using CCK, then create a product of type 'paypernode' - in which you can specify the content-type and price.

The only problem I have left is making the workflow nice for the user after they have paid for the advert, I want to redirect them to the node/add/xxxx page. Problems occur when payment gateways do not return instantly with a payment complete status (PayPal is one that sends back the result via the /ipn url).

--
Ixis (UK) providing Drupal consultancy and Drupal theme design.

mwu’s picture

lee,
so nice to hear from you. thanks for the quick reply. I just remembered you are in la from london, not sf, so it's a big vacation. glad you are having a good time. definitely enjoy your vacation.

*. yes, cck seems quite stable now.
*. i realized the workflow is complex. we could either have user pick
a) run this once
b) run this until i cancel it.
or
not give the user a choice.

for myself, i am actually thinking of only having one option for a specific node type.
eg. vacation rental gets "run til cancel"
eg. advertisement for concert gets "run once"

i think i'd rather the user not get "run once" for vacation rental, but I'll have to think about it.

probably one choice per node type is easier for you.

*. I applied for a paypal account. I think i'll just hold off on testing until the account comes thru and i can test live. the sandbox is a lot of trouble

*. the only other thing i'll need in the next few months is file downloads (for selling pdfs) but given how fast you are producing everything it sounds like it'll be easy for you.

*. you are terrific! I'll definitely send you some money if I end up using this, which looks like a very strong possibility right now.

thank you.

LeeMcL’s picture

I'll read up on cck on my return and see how best to implement it.

I was going to use/modify the lm_paypal_subscriptions system to provide recurring payments for adverts. So it will have a similar layout for administrator with the ability to define different kinds of paid adverts with a similar range of payment options. But until I've worked with cck I'm not sure how this will all hang together.

I've not really thought about file downloads but I'm hoping it won't be too difficult.

Lee

mwu’s picture

yes I agree. thank you!

mwu’s picture

Lee,
thank you very much for being willing to think about file downloads!

the ecommerce suite has this functionality. i believe it's in a module called generic (but could be another name). (poorly named. generic originally meant anything that does not require shipping.) the functionality works great. you pay for the file. then a link in your menu shows up called "my files". the file is there. you have x days (configurable I think) to view it and/or download it.

it's the one part of ecommerce that works great. i've never seen any modifications to it, as opposed to the other modules that require sub-features, shipping, taxes, etc.

so hopefully, given what a great job you've done in getting out recurring memberships so quickly (and fixing the many major problems it had), file downloads will be a piece of cake!

Christoph C. Cemper’s picture

Hi Lee!

I just found your new module by chance and it sounds like this will be the future replacement of the existing two PayPal modules...

I've read thru both long posts but could not find out

a) Did you inherit some code from the old modules means: can they be left aside or do I need them?

b) Is there a way to import existing client subscriptions into the ad system ?
My requirement here is
1) different durations and prices (hence different roles/values)
2) different subscription trigger points
so practically everythings different

I'm thinking about creating a sql script for that purpose, feeding all the "paypal history" into it by hand,
so there's not necessarly a need for a full automated subscription sync

c) do you have a way to modify existing subscriptions, e.g. change the amounts or trigger dates? I read in the API spec that there seems to be something like that, but it's not available via the PP UI

Thanks & best regards,
Christoph C. Cemper

--- http://www.cemper.com
--- http://weblog.cemper.com
--- http://www.marketingfan.com

LeeMcL’s picture

Hi Christop.

Are there really two existing PayPal modules? I know the old PayPal_Framework and its subscription and tipjar module buts that the only once I know of.

a) My module is writen from scratch and is not based on nor requires any other modules. Apart from, of course, the standard Drupal modules.

b) Currently there is no way to import subscriptions from other systems. At some stage I do plan to have some way to compare PayPal's history with the details inside my module. This is mainly to deal with system recovery after crashes. But this isn't something I will be working on in the near future.

So if you do program this I'd be very interested in it!

c) yes you can modify existing subscriptions. But I hid it away because it is problematic. PayPal has a record of all the subscriptipn details for a subscriber and they cannot be modified once a subscription is taken out. So if you edit the subscription details inside Drupal you will only effect new subscribers. Then you will have new and old subscribers apparantly with the same subscription but with different rates/amounts/whatever... so its problematic.

Lee

PS: To edit a subscription go to admin/lm_paypal/subscriptions click on the subid and then you'll find an edit link near the bottom of the page.

--
Lee McLoughlin
lmmrtech.com

Christoph C. Cemper’s picture

Lee,

thanks for your reply...

I actually didn't mean to edit the subscription data INSIDE the drupal db, which would be obvious, but change the subscription cycle INSIDE PAYPAL

the PayPal IPN API has the function subscr_modify specified
and according to the specs from May2005 you could change things even using an "subsrc_effective" date!

according to p61 you can change

- periiod 1..3
- amount 1..3
- mc_amount1 and amount2
- recurring

so that would allow for changes to the future billing, increase in rates etc - all features that are not available using the normal PP interface

best,christoph

LeeMcL’s picture

I am using the May 2006 documentation and although it mentions subscr_modify is doesn't give much in the way of details. It doesn't even say which fields can be modified or how you specify the subscription to change.

After Googling it seems you can use it to change the details for a single subscriber. For example by having an "extend" button that would give them extra time on their subscription.

Sounds like a useful feature to have in the long run. I'll add it to my TODO list.

Thanks for pointing it out.

Lee

--
Lee McLoughlin
lmmrtech.com

paddywwoof’s picture

Lee

I have installed your module and it seems ok. I am looking at various options for people to subscribe to a (wwoof.org) web site either as hosts (providing information on pages, part of which is not viewable to anon browsers) or members (seeing hidden information for host pages in different countries, depending on the flavour of membership). We are VAT registered so need to know the country of the payee in reports. At some stage we may want to add VAT to the price where people are from EU countries (as per ec_tax module). Not all member of the orgainsation use the web (or do use the web but pay for membership with cash etc) but we would like to be able to keep the definitive records in the drupal database so we will need to able to add records to user_roles in such a way that they lapse after a year. Manually adding records to lm_paypal_subscribers would seem to be a way of doing this. (poss with other fields to enable accounting)

Paddy

mwu’s picture

paddy and lee,
would you mind looking in your cpanel error logs (might be the same as apache error logs) to see if you get the same errors I'm getting?

dozens of these
[Mon Aug 21 14:08:19 2006] [error] PHP Fatal error: Call to undefined function: l() in /home/ /public_html /modules/lm_paypal/lm_paypal.module on line 61
http://drupal.org/node/78002#comment-147105

thank you

LeeMcL’s picture

I've never seen this error and since the function l is in one of the core Drupal modules, common.inc, I find cant think how it would occur.

Is there anything unusual about your Drupal installation?

Lee
--
Lee McLoughlin
lmmrtech.com

mwu’s picture

I've just set up some new sandboxes. This is a completely install with no contrib except for lmpaypal.
I just process a donation. It appeared to work correctly. But I did find this (seeming) error message in admin.
empty item_number - being converted to web_accept

LeeMcL’s picture

All donations have an empty item_number so that is really just a reminder. It is only printed when debugging is enabled so it wont appear when the code goes live.

Lee
--
Lee McLoughlin
lmmrtech.com

mwu’s picture

everything else looks right
1. deducted from user account in paypal
2. added to biz account in paypal
3. shows up in admin -- lm
4. no errors in cpanel

mwu’s picture

I have noticed that lm paypal is not removed from the navigation menu when the modules are removed.

I believe this is not expected behavior

LeeMcL’s picture

Did you disable the modules under admin/modules first? I just did that here and the lm_paypal references are removed from the menus.
--
Lee McLoughlin
lmmrtech.com

mwu’s picture

you are right that this is happening correctly now with the new version. I guess I forgot to disable them before removing them. thanks.

mwu’s picture

my subscription button is not working. I don't know why.

UPDATE: I just checked the old site. The button on the old site works if I go to it via the navigation menu. On the new site, the button does not work, even if I go via the navigation menu. so problem is not button. I've enabled access control. both sites use version 1.17. I'll have to think about what else needs to be configured.

RESOLVED. It turns out that I had inadvertently skipped the price when setting up the subscription because of the way the screen paged down. The default price is zero. I realized this finally when using the navigation menu to get to the button and the description said that the price is zero.

I'm leaving this here for others who may run into the same issue. The Paypal error message was too vague.

<?php
$subid = 1;
if (lm_paypal_can_subscribe ($subid)) {
  print 'Why not subscribe now? ' . lm_paypal_subscribe($subid,8);
}
?>

it's taken directly from the readme

This is the error i get
http://www.sandbox.paypal.com/cgi-bin/webscr
Error Detected
The link you have used to enter the PayPal system is invalid. Please review the link and try again.
_account
The link you have used to enter the PayPal system is invalid. Please review the link and try again.

LeeMcL’s picture

PayPal can be a little cryptic when it encounters an error in the subscription details. I've added a form validation function to look for potential errors in the subscription and I'll check for the problem you encountered too.
--
Lee McLoughlin
lmmrtech.com

mwu’s picture

just tested sub
everything working great.
user promoted correctly and instantly. (so nice to see that working smoothly without the old timezone and cron problems.) Lee, thank you!!)

2 paypal accounts correctly adjusted

no error messages in admin or cpanel.

hurray!

after a break I'll test the ads and the notification messages. Lee, thank you for putting in the very flexible 3 kinds of notification emails.

mwu’s picture

the ad module is working right as it was before.

a few comments
1) for webmasters: the easiest way for the buyer to view their ad after purchase is probably to enable the module tracker, which puts "recents posts" in navigation menu, and direct user to look in recent posts via the postpurchase page.
2) for Lee: I imagine 80% of buyers will think the ad has been published before it's paid for, because the buy can see it. I know you tell them others can't see it, but I don't think they will understand that. Perhaps one way to help address this is to change the name of the paypal tab to "pay to publish ad". if possible, changing the "view" tab to "view draft" tab will also help.

I think the confusion will cause a lot of angry users who will demand to know why their friends cannot view the ad, even though they can. they might even do a chargeback on their credit card, which will be expensive.

i know it is a misunderstanding on the buyer's part, but the process is so counterintuitive that I think we'll have to make a lot of effort to make it as clear as possible. the customer service costs and chargebacks (plus the costs of being possibly frozen by paypal for complaints about fraud) can easily add up to more than the revenues from the ad.

i do understand that the way drupal is set up we may have to live with this workflow. it is the same workflow suggested by gordon, the maintainer of ecommerce.

Lee, thank you for doing a great as well as fast job of implementing this. it's really exciting to see this almost ready.

LeeMcL’s picture

I'll add a big warning at the start of the Create/edit page to remind the user that the advert will be visible only to them until it is paid for. If I can I'll add more reminders into other places too.

I'll change the PayPal tab - but I cannot see how to change the view tab.

--
Lee McLoughlin
lmmrtech.com

mwu’s picture

will the buyer be able to view "my ads"?

will there be a place where we can view a log of the ads transactions?

since the other 2 modules have this, I guess those 2 are planned features.

will we be able to download spreadsheets of the transactions? is this straightforward, or quite hard? clearly if there are a lot of buyers, this feature will become very important. my sense is that we can't sort the transactions, right? we can't sort the user list that comes in drupal by default, so i guess we have the same limitations here. my plan is to download and sort in spreadsheet software.

I know the feature requests are coming fast, and you've already said you'll take a look at multiple types of ads, as well as cck. thank you!

mwu’s picture

oops. the error messages have returned. this is on a completely new sandbox 4.7.3 with only lm contrib modules. I wouldn't think it's any problem with the website.

can other testers please check to see if you have these error messages?
i found them in cpanel under "error logs".
as far as i know, they are "apace error logs" but i'm just guessing. maybe it's php error logs

any info on all the possible places to look for error logs would be appreciated

[Mon Aug 21 14:08:19 2006] [error] PHP Fatal error: Call to undefined function: l() in /home/ /public_html /modules/lm_paypal/lm_paypal.module on line 61
[Mon Aug 21 14:05:15 2006] [error] PHP Fatal error: Call to undefined function: l() in /home/ /public_html /modules/lm_paypal/lm_paypal.module on line 61
[Mon Aug 21 14:05:15 2006] [error] PHP Fatal error: Call to undefined function: l() in /home/ /public_html /modules/lm_paypal/lm_paypal.module on line 61
[Mon Aug 21 14:05:15 2006] [error] PHP Fatal error: Call to undefined function: l() in /home/ /public_html /modules/lm_paypal/lm_paypal.module on line 61
[Mon Aug 21 14:05:13 2006] [error] PHP Fatal error: Call to undefined function: l() in /home/ /public_html /modules/lm_paypal/lm_paypal.module on line 61
[Mon Aug 21 14:05:11 2006] [error] PHP Fatal error: Call to undefined function: l() in /home/ /public_html /modules/lm_paypal/lm_paypal.module on line 61
[Mon Aug 21 14:03:40 2006] [error] PHP Fatal error: Call to undefined function: l() in /home/ /public_html /modules/lm_paypal/lm_paypal.module on line 61
[Mon Aug 21 14:03:40 2006] [error] PHP Fatal error: Call to undefined function: l() in /home/ /public_html /modules/lm_paypal/lm_paypal.module on line 61
[Mon Aug 21 14:00:20 2006] [error] PHP Fatal error: Call to undefined function: l() in /home/ /public_html /modules/lm_paypal/lm_paypal.module on line 61
[Mon

This function is being called about 60 times an hour. Why is it being called so often when no one is buying anything?

LeeMcL’s picture

This is a very puzzling problem which I just cannot duplicate here.

But hook_init() functions seems to be handled specially inside Drupal. I wonder if there is some circumstance under which it exectures my lm_paypal_init() before loading common.inc?

If this is the case I'll recode to avoid hook_init() functions alltogether.

--
Lee McLoughlin
lmmrtech.com

LeeMcL’s picture

There is a new version avoiding hook_init() available at:

http://lmmrtech.com/lm_paypal_module_for_drupal
--
Lee McLoughlin
lmmrtech.com

paddywwoof’s picture

I am running the module on a shared host under IIS and there is one log in the control panel which is more equivalent to apache access log rather than the error log. The only thing to go on is the time for the page to be generated. I will put the module on my machine here and see if I get any errors.

mwu’s picture

Hi Lee,
thank you for your six comments!

I'm interested to hear that you don't see the error messages. these are not from admin. these are from cpanel (my host verified they are apache errors). Based on the answer below, I would think the errors would show up in any environment. I guess you have Apache error logs enabled and you've checked the Apache error logs, right?

--The quote below is an answer I got from a Drupal developer
--I realize now you are calling t before t is loaded.
--Perhaps this problem would simply go away if we call t after hook init

[begin quote]
In line with what KarenS wrote: lm_paypal does some things in hook_init it
shouldn't do (and can't do):

for example:

$link = l('LMMR Tech', 'http://lmmrtech.com');
$_lm_paypal_welcome = '<p>'. t('Welcome to the %lm PayPal modules for  
Drupal.', array('%lm' => $link)) .'</p>';
$_lm_paypal_welcome .= '<p><b>'. t('These modules are still undergoing  
development so it is strongly advised that you to test them out against  
the PayPal Sandbox first.') .'</b></p>';

Drupal has multiple so called bootstrap phases; depending on the stage and
cache settings, not all functions are loaded.
[end quote]

mwu’s picture

here are comments from KarenS
http://drupal.org/node/79867#comment-147180

When you submit the bug report, suggest the developer look at hook_init(). The functions are not loaded until after hook_init() runs and I have seen this error on other modules that tried to use various drupal functions in hook_init(). Also, hook_init() runs even for cached pages, and in those cases the functions are not loaded at all.
You pretty much have to assume that no functions are available in that hook, so hook_init() either needs to be rewritten not to use functions or the functions must be moved to some other place that runs later in the startup process.

mwu’s picture

Hi Lee,
thank you very much for posting the new version so quickly.
i'll test it
would not calling hook init create problems like not being able to use locale module (which uses t)?

LeeMcL’s picture

None of my modules now use hook_init() so it is no longer an issue.
--
Lee McLoughlin
lmmrtech.com

mwu’s picture

Lee and others,
I've installed today's 1.18.

UPDATE: I saw some errors (the same ones), but I realized they are on an old install 1.17 that I reenabled to check something. I haven't seen any errors on the new one yet.

now I was going to test the notification emails.

Lee, you write "be very careful about editing subscription details." is it possible to lay out a list of variables (no rush) that can be changed (which I presume the email variables are) and variables that cannot be changed? I believe the price and subid but I am not sure about some of the others. i can certainly imagine myself wanting to change some of the others, such as trial unit days.

by the way, today the user was correctly billed another cycle and correctly remains in the promoted role. way to go!

LeeMcL’s picture

The notes about being careful editing subscriptions are out of date. I'll correct them. You can edit whatever fields you like as the details are only checked on subscription signup.

The problem with editing subscriptions is it will have no effect on any existing subscriptions as PayPal has recorded all those details. The changes will only effect new subscriptions. So you could end up with subscribers possibly paying different amounts over different periods. The code will cope with it but it might upset users.

--
Lee McLoughlin
lmmrtech.com

mwu’s picture

working great.

1. another subscriber was just correctly processed. (promoted, shows up in my account, shows up in admin lm sub). did 2 users with multiple roles.

2. haven't had any error messages with 1.18. it's been an hour. I've done about 10 transactions, so it seems to be fixed. hurray.

3. notification email was sent out correctly. I'll play around with it to see if it can handle long messages. (yes, okay so far)

-. this is a minor thing. in the admin -- settings navigation menu, the lm modules runs past its column. in some themes this could possibly break, but the admin could simply revert back to a base theme when administering lm modules. it may not be fixable.

4. multiple roles implemented. everything working correctly.

5. cancellation email worked correctly. the one counter-intuitive things is that subscribers are viewed as live or dead. to find out when they cancelled, admin would have to wade through emails or paypal.com logs. paypal logs on paypal.com do not pull out cancellations, so it would be wading through all sub logs. paypal offers a "file"(archive) option but I didn't see where to download the file or whether it's viewable as a spreadsheet.

if others are familiar with the paypal.com interface, pointers about the above issue would be appreciated.

Lee,
it's such a wonderful experience to watch everything work as it should, after seeing the other modules have so many bugs.

three cheers for Lee!

mwu’s picture

p.s. right now I'm planning an english only site, but just so I know what I'm getting into,
with hook_init removed, will this module work with the translation functions, locale module, etc.?

LeeMcL’s picture

I've followed all the developers guidelines so every piece of English that I print is wrapped in a call to the translate function t(). So in theory it could all be translated.

Lee

--
Lee McLoughlin
lmmrtech.com

nekstrom’s picture

Thanks for the module. I wrote my own but I think I will switch to yours. Anyway people may not know you can tell Paypal on every request what url to post ipns to. So if you want to do this you can add

$link = url('lm_paypal/ipn', null, null, TRUE);
$link = str_replace('http:','https:',$link);
$form .= "<input type=\"hidden\" name=\"notify_url\" value=\"$link\"/>";

to the modules in the form generation functions. I don't know about the other two modules but in the subscription module a good place to put it would be between lines 449 and 450.

Nathan

nekstrom’s picture

Thought I'd add a note saying that yes I have tested this and I know that it works with this module.

Nathan

mwu’s picture

thank you Nathan!

LeeMcL’s picture

Hi Nathan,

I also received this idea in an email from Klaus Brune and have now implemented it.

Of course you still have to enable IPN in your PayPal business account but the notify url there doesn't have to point back to lm_paypal/ipn. So lm_paypal could co-exist with other PayPal based modules, such as ecommerce. I'll add some notes about this to the online help.

The only difference is that I dont have your str_replace line. I'm guessing you need this because your site is secure (using https). If that is the case I really should think about a way to allow for this (preferably auto-detecting https)!

Lee
--
Lee McLoughlin
lmmrtech.com

mwu’s picture

donations gave this error about an hour or 2 after my last post (about having received no error message).
i don't know why . I am not testing donations and have not been on the test site.
the lm paypal donate module is enabled.

Call to undefined function:  lm_paypal_donate() in /home/public_html/includes/common.inc(1175) : eval()'d code on line 5
LeeMcL’s picture

That function is only used to generate your own donation buttons. So you must have a page with some PHP in it calling this function.

It would only be undefined if the donations module wasn't loaded and enabled. Can you double check that you have donations module enabled.
--
Lee McLoughlin
lmmrtech.com

mwu’s picture

lee,
thank you. with your pointer I think i figured it out. an old test site had this page, but lm modules were disabled. because the page was poorly named, I forgot about it. I'm beginning to see that testing requires a systematic approach and can get pretty complicated! I now have 5 test sites running testing different modules so that I don't have to worry about interaction. sorry for my mistake

mwu’s picture

today, this error was in my watchdog log
error LM_PayPal_Subs 2006-08-23 10:28 Attempt to end unknown subscription, ignored Anonymous view

I have done nothing, so the attempt to end subscription was auto-generated by paypal i think.

If I recall what I did correctly, yesterday I cancelled the subscription via Paypal and everything appeared correctly cancelled.

Going back through the logs, I am a bit confused about what I did yesterday since I'm only using 1 customer to test. What I'll do is add more customers so that I can test different processes for cancellation.

I'll leave this error message here in case you have any clues. i've changed identifying info.

id 16
timestamp Wed, 2006-08-23 10:28
processed 0
test_ipn 1
verify_sign AF7hOPN5A4VXGE5deS2I
payer_email fname@fname.com
first_name f
last_name n
payer_business_name fname
payer_id 6WDYY8X24X8BQ
payer_status 0
residence_country US
item_name make2
quantity 0
item_number 2
receiver_email a@aaa.com
custom 4
mc_currency USD
txn_type subscr_eot
recur_times 2
subscr_id S-57575350665144028

LeeMcL’s picture

If you look at the txn_type it is subscr_eot this means that end-of-term was reached. I'm guessing that this is some old test subscription that just completed. While testing on PayPal Sandbox I had some surprises with very old subscriptions resurfacing from when I was testing out other subscription software earlier in the year!

Lee
--
Lee McLoughlin
lmmrtech.com

mwu’s picture

ok. i've implemented a system for testing subscriptions. everything is working right. after a few days I can check for expiring, cancellations, etc.

lee, I just wanted to say that as I work with the email notification system I am impressed by how flexible it is. It has 4 different kinds of emails I can choose from. Usually when I test a module it's missing various features, but when I use this I find that you've put in more options than I've even thought of. thank you.

by the way lee, you may want to restart this thread as a new thread and add "classified ads" in addition to subscriptions and donations to the title to get others to help test the classified ads.

paddywwoof’s picture

Lee

the lm_paypal_subscription.module TODO sounds to be exactly what I need - I had actually opened the script in an editor to start investigations-prior-to-hacking when I saw your comment. I am happy to carry on but I don't want to waste effort if you (or anyone else) is already doing it or will do it soon and probably better than me.

LeeMcL’s picture

Which of the TODO comments are you refering to?

Lee

--
Lee McLoughlin
lmmrtech.com

paddywwoof’s picture

Lee

// Admin option to add a user to a sub with an auto unsub at end of period
// probably best to do this with an option under edit user otherwise hard to
// find the user to add

a significant number of our members join by post and pay with used notes so these are the ones we need to enter by hand but still account for and unsubscribe at the end of a year. It might seem old fashioned (and unnecessary) but one of our 'selling points' is that we verify something about our members by getting them to print out and post a form and have a membership card sent back to them. I am far from convinced but apparently this reassures the hosts!

w.r.t the other TODOs: exporting from PayPal isn't urgen as the missing subscriptions will be due to non PayPal joiners rather then ipns going astray. However to use the paypal subscription system to keep track of and account for all subscriptions including the non paypal, manually entered ones I think records will have to be put into lm_paypal_ipns table. It might be possible to use one of the existing fields to differentiate these records (payment_type). I have put some extra columns into the lm_paypal_ipns() as per (different applications will certainly need different info and if manually entered records go in this table the fields to tell these apart will need to be on the report):

  $header = array(
    array('data' => t('Id'), 'field' => 'id'),
 // PBG added following lines
    array('data' => t('Country'), 'field' => 'residence_country', 'sort' => 'asc'),
    array('data' => t('currency'), 'field' => 'mc_currency'),
    array('data' => t('Gross'), 'field' => 'mc_gross'),
    array('data' => t('Fee'), 'field' => 'mc_fee'),
    array('data' => t('Sub Type'), 'field' => 'item_name'),

    array('data' => t('Date'), 'field' => 'timestamp', 'sort' => 'desc'),
    array('data' => t('Txn Type'), 'field' => 'txn_type'),
    array('data' => t('User'), 'field' => 'custom'),
  );

 // PBG changed following line
  $sql = "SELECT id, timestamp, txn_type, custom, residence_country, mc_currency, mc_gross, mc_fee, item_name FROM {lm_paypal_ipns}";
  $tablesort = tablesort_sql($header);
...

    $rows[] = array('data' =>
      array(
// PBG changed following block
        l($ipn->id, "admin/lm_paypal/id/$ipn->id"),
	$ipn->residence_country,
	$ipn->mc_currency,
    	$ipn->mc_gross,
    	$ipn->mc_fee,
    	$ipn->item_name,
        format_date($ipn->timestamp, 'small'),
        check_plain($ipn->txn_type),
        $uid . ($other == '' ? '' : " ($other)"), 

The cancelling subscriptions is also less urgent for us as we will almost certainly not use the standing order facility - most members only sign up for one year.

LeeMcL’s picture

First my apologies for not replying to your earlier post.

Probably best not to store extra information in the ipns table. That is automatically cleared out by a cron job on a regular basis. An IPN is a big record and that table could get large quickly on a busy system.

I want to avoid trying to implement all of PayPal's subscription functionaly inside my module. I'll have a think about what is reasonable given my limited time. But if you want to be able to record basic address information and when any payments have arrived at least two more tables would be needed (manually added subscriber details + payment amounts+times) and, of course, extra code to allow these to be viewed and edited. This is a lot more work than the simple "user is added for X days" option I was planning! Perhaps in the short term you could use my option and track the other details elsewhere?

--
Lee McLoughlin
lmmrtech.com

paddywwoof’s picture

At the moment I am using the ec_address and cck modules to store member and host information. It all seems to work OK.

Point taken about the ipn table becoming large. I suppose the cron could delete only *real* PayPal records but the information for accounting needs to be kept for the same time for either type. i.e. probably just long enough for someone in the admin office to cut and paste the info into a monthly VAT analysis spreadsheet. (From this point of view it might be sensible to have an manual "clear ipn table" button.)

I think the simple option you were planning will do fine. I will think about whether it's best or not to put non PayPal generated records into the ipn table, I can think of pros and cons.

Paddy

mwu’s picture

thanks both lee and the other programmer for your input.

I'm realizing I need a way for admin to cancel a membership/subscription. If a person gets kicked out for bad behavior, I'll need to cancel their membership. I didn't see a way in lm paypal, but I haven't looked in detail at paypal.com.

also, do you know if 30 days means 30 times 24 hours? I know before with cron the time can become an issue.

LeeMcL’s picture

Well I was working on this but it is unfinished. You will be able to edit a subscriber and set their status to blocked and they will loose access.

Based on comments on various forums/newsgroups PayPal has a slightly idiosyncratic idea of time. 30 days sort of means 30 times 24 hours - except that the subscribe takes place immediately but all subsequent messages are "batched up" to be most effecient for PayPal. This may result in messages being sent out later than 24 hours after the subscribe, sometimes several hours later. As far as I know users never loose because of this, they always gain subscription time.

Lee

--
Lee McLoughlin
lmmrtech.com

mwu’s picture

lee,
thank you. my concern is that the account won't be cancelled on paypal, which will keep doing the ipn and generate error messages and charge the user. if the user does not cancel in paypal, is there a way for us to make sure their paypal account does not keep charging them?

LeeMcL’s picture

On PayPal you can login to your business account, find the particular subscription and cancel it.

I've not found a way to do this programatically from inside Drupal. I'm hoping there is someway that I've missed.

Lee
--
Lee McLoughlin
lmmrtech.com

mwu’s picture

I believe the donate button needs to check if the module is enabled

if (module_exist('name of module')) {
// print the button
}

I had a problem with the page disappearing leaving only a "we'd really like $10" line if module is disabled. (no theme elements appear)

this may be true for the subscription button

LeeMcL’s picture

Yes that a good idea. I'll ammend the examples.

--
Lee McLoughlin
lmmrtech.com

mwu’s picture

Lee,
I realized one good way to address the confusion about whether the ad is published is via email notification. in addition to everything else, we can tell the buyer "as the author, you can view your ad before it's published. After your payment is processed and your ad is published and is viewable by other people, you will receive an email notification."

the drupal system is very confusing because i think a regular user cannot tell whether their post is viewable by others. if they do not have edit permission, they cannot view the edit tab.

mwu’s picture

Months ago when various developers were trying to code this module,
the question arose of whether posts by an author whose membership has expired should be unpublished.

one developer was going to code them to be unpublished.

I said I'll have both kinds of needs.
in some cases, I want the posts to be unpublished (e.g. member profile.)
In other cases, I want the posts to remain published. (e.g. hotel reviews.)

Lee, I was wondering how you've set it up (stay published, I assume) and what kind of flexibility we can build in.

LeeMcL’s picture

I must confess I hadn't thought about it.

Currently the ad will stop being viewable when the money runs out! If an ad is paid up for 30 days it will continue to be visible even if the author stop's being a member of a particular role.

Tying in node viewabilty to the state of its author is possible but could be expensive if it requires a check on every node access.

--
Lee McLoughlin
lmmrtech.com

mwu’s picture

I agree that in general for my system I've thought that the pay per posting will run the duration of the period paid for. (i think under contract it would have to.)

i was actually taking about the paid membership module when I made my comments.
one developer was going to have the posts removed (these were "pay per role" rather than "pay per post" posts) when the membership expired.

i agree that it'd be good to think through both scenarios.

i further agree that something very expensive performance wise would not be good.

off the top of my head I guess this is what I recommend if feasible:
1) pay per posting ads expire at the end of the period
2) pay (per membership) posts be configurable by node type.

if not configurable, they remain either all permanently
(a) published
(b) unpublished but not deleted
It's fine if that's hard-coded into the code if you just specify where we change it.

i'll think through the uses cases and post back after further reflection

manuj_78’s picture

Hi,
Can anyone please elaborate on the features of this module.
Also why is this module not available in the modules page of drupal?

Manuj

mwu’s picture

it's not listed on the modules list because it has not been released.

these modules do pretty much what you'd expect them to. there are bunches of spec floating around. it does it pretty much. (but does not work with ecommerce suite)

manuj_78’s picture

Marium
The reason I got interested in this module was becasue it had a mention of classifieds somewhere. I want to implement a classified system on my website, but I dont intend to charge my users for them. Basically they will be free to post ads etc on the site. can this module add that functionality to my website? If not can you recommend some other module which can do something similar

Manuj

LeeMcL’s picture

Hi Manuj

This module is really for things paid for with PayPal (subscriptions, donations, adverts). You would be much better off with something like CCK that allows you to define your own kinds of nodes that users could then fill in to create the classified ad.

Lee
--
Lee McLoughlin
lmmrtech.com

manuj_78’s picture

Thanks for your suggestion Lee,
I was already looking into CCK and had made some test nodes with it. I just thought maybe if this module had the classified feature, then it would save me the hassle of defining custom fields etc.

Manuj

mwu’s picture

after 2 days, 1 user was correctly expired.
it was 10 minutes shy of 48 hours. but that's probably just an email timing issue. I don't think any of my customers will have a problem with that. I'll probably set it for 31days and describe it as 30 days any way.

how is eot different from dead when I filter?

is there any page on drupal where I see how much money I've made? or only on paypal

thank you.

enjoy the rest of your vacation!

mwu’s picture

Lee,
how much modification would it take for anonymous to be able to buy a paid membership?

on my site, i'll let anonymous buy a membership to get access.

LeeMcL’s picture

Well thats an interesting one!

Presuming you have a "buy membership" form that you ask them for their basic details. You then have to do two things with it. Create a Drupal user and get the user to pay for their account at PayPal.

It would be easiest if the user saw this as two pages. First page to create a the login (with the user in a special role) and then present a Subscribe page. When the PayPal subscr_signup arrives move them out of the special role. Anyone still in that special role after a few days failed to complete and you could look into why.

This would need some code that does what the 'create a login' which could be based on the code in user.module and then some hooks into lm_paypal_subscribe and the subscr_signup handler.

Not sure how much work this would be until I have a chance to look into user.module (and the modules that extend it like LoginToboggan) but it is probably not too difficult.

Lee
--
Lee McLoughlin
lmmrtech.com

paddywwoof’s picture

Is this worth it. Why not just make it clear that anonymous people have to register before subscribing? If anyone actually subscribed as anonymous then all other anonymous users would have access to their roles.

LeeMcL’s picture

I think the reason for it is that the easier it is for people to signup to a site the more likely they are to do it.

I've worked with large groups of the general public before and things I thought only added a trivial extra bit of work for them they still avoided even if it meant loosing out on a useful service.

Having a simple single register+subscribe page make it easier for people. So I will add it to my TODO list.

Lee
--
Lee McLoughlin
lmmrtech.com

drupalninja99’s picture

Lee, I added in a thing on the subscribe page (on my install) where it says if the $user->uid == 0 in a couple places to show links to login instead of the subscribe or unsubscribe text. I think you'll have to add something like that in there bc that's a feature every one needs and it appears to be pretty simple. I can post the code snippet from that function if you want but it's pretty straight forward.

mwu’s picture

jaykali,
please do post the code

Lee,
thank you very much for being willing to do the anonymous thing. I talked to someone who said it should be pretty easy. Matt westgate, or jjeff or jeff eaton I think committed a patch to let ecommerce work with anonymous. I couldn't find it just now though.

Lee, I'm hoping my workflow will be this:
1) anonymous is directed to a page where they can buy a membership. it would be excellent if this page allowed the admin to ask some required questions (first name, last name, who are you) and some non-required questions.

buyer is then sent to paypal
buyer then sent back, and is promoted.

if it could work like that it would be great! thank you.

yours is much easier to make work with anonymous than ecommerce suite because it does not require address, etc.

to the person who thought this is not a good feature:
*. the person would not be anonymous after paying for membership, so i would not have to open the site to everyone.

on a separate issue, I think killes wrote a note on a thread about how he made pay per posting work. I couldn't find it just now either. but it may be useful.

LeeMcL’s picture

Its only necessary if non-logged in users can see the subscribe page. I had my access control setup so that the subscribe menu item only appeared to authenticated users.

However I can see that not everyone will want to do that. So I'll patch things when I get over my jetlag!

Lee

--
Lee McLoughlin
lmmrtech.com

mamasdiner’s picture

Hi,
I installed the module and configured it using the instructions, however, the ad shows published even without the user paying for the ad. Not sure if this is because I didn't set-up the business account at Paypal or not. I thought I could test the posting of ads without having to set-up the account, but I did configure the admin settings section in lm_paypal and paid adverts sections.

I also configured the lm_paid_adverts under content types in the admin section so that posts were not published, but still they are published and to the front page.

Any thoughts?

Thanks.
Heather

LeeMcL’s picture

I've tried to duplicate this problem locally but cannot.

Can you confirm that you created the advert using:
create content>paypal paid adverts

and before paying for the advert the whole article was visible on your homepage even though the publish option is not set for that node type?

Could you also confirm which version of Drupal you are running and wether you have any additional modules installed.

Thanks

Lee

--
Lee McLoughlin
lmmrtech.com

mamasdiner’s picture

Hi Lee,
I'm running 4.7.2 and have many other modules installed, which I thought may be an issue. Some of them I'm not using and can delete them if you think they're causing the problem.

Yes, I created the ad by using: create content>paypal paid adverts.

Yes, the whole ad was viewable on my homepage without paypal payment being made.

However, now that I'm reading more I see that maybe I need to check that recent posts are not enabled and promoted to the front page.

I'll post back any findings if it helps.
Thank you for your time on this module. I really like its potential!

Heather

mwu’s picture

good news. lm paypal sub is working LIVE. everything is working. i set a 5 day subscription, so I can check again in 5 days.

Lee,
one thing.
on the paypal.com "Make your payment" page, it says
Subscription terms: $1.00 USD for each 5 days.

I think it should say for proper grammer "for every 5 days."
I don't know if that's paypal doing that.

Request-- can we make the paypal subscription button the pretty credit card button not the ugly paypal button?

I did confirm that webmaster can cancel subscription via paypal.com.

I'm sure jetlag is tiring! no rush. take some time to recover.

thank you very much.

mwu’s picture

good news. lm paypal sub is working LIVE. everything is working. i set a 5 day subscription, so I can check again in 5 days.

Lee,
one thing.
on the paypal.com "Make your payment" page, it says
Subscription terms: $1.00 USD for each 5 days.

I think it should say for proper grammer "for every 5 days."
I don't know if that's paypal doing that.

Request-- can we make the paypal subscription button the pretty credit card button not the ugly paypal button?

I did confirm that webmaster can cancel subscription via paypal.com.

I'm sure jetlag is tiring! no rush. take some time to recover.

thank you very much.

LeeMcL’s picture

Well thats good to hear.

The terms printed on paypal.com's subscription page are created by them so I cannot change the English. But their wording is acceptible.

Subscription button changed.

--
Lee McLoughlin
lmmrtech.com

mwu’s picture

I'm now testing the ad module.

I see Lee's made some wording changes to the current 1.18. thank you.

1) it says "This article will be only viewable by you" I changed the text to something custom. but I think it should say "viewable by only you." (move the "only")

that one is simple in that it's easy for us to change.

the menu is a problem.
under create content
"Paypal paid adverts" I didn't see where to change that.

also, url line says "lm paypal " blah blah (because of the module name perhaps) so that could be a problem for the suspicious user.

I changed the tab to some variety of "pay to publish"

[quote]
Not yet paid for. To make this article viewable by others you need to pay with PayPal. Please click the button below.

Paid advert $1 for 31 days [item_number1] .

[unquote]

The [item-number1] looks ugly. I'm afraid to change that in case paypal needs it. Is it okay to change? what's that about?

looking great overall. just minor word-smithing now.

LeeMcL’s picture

I should warn you that I've mostly rewriten that module to allow any node to be restricted until paid for by a PayPal subscription. Its about 50% done. It would be further along but I went down a few blind alleys while trying out different ideas.

I've moved the "only".

I'm not sure about 'pay to publish' as Drupal uses the term publish elsewhere and I dont want to confuse users. Also I'd rather keep "PayPal" somewhere in the tab. Within those restrictions I am open to suggestions!

The [item-number1] has gone with the move to subscriptions. But it was there because on paypal.com it was printing out item-number1 and I wanted it to appear on my page so users wouldn't be surprised later.

Lee
--
Lee McLoughlin
lmmrtech.com

mwu’s picture

it does seem there is a workflow problem with ad module.

i tested a paid for ad. looking good.

however, with the ad that was created and not paid for.
1) it shows up in recent posts for my other users.
2) when other users click on it from the "recent posts" page, they get an "access denied" error.
this is not good in that the other users will think they are lacking some permission, when that's not the issue. it's that it has not been paid for.

3) if admin looks at the not paid for ad, the ad is marked "published."

mwu’s picture

I'm going to sell some things/services that I will process by hand. I think the lm donate module pretty much does what I need. I'll mostly need to changing the word donate to buy everywhere.

on the my account page, it might take some configuring. because otherwise it'll just say thanks for your $x purchase, thanks for your $y purchase without saying what they got. I might try to disable that for the time being.

Lee,
what do you think about making a buy module that's like donate? you could possibly even make it something like the buddylist module which offers a few lines at the top for how to do global word substitutions in the file.

thank you.

mwu’s picture

Here is the Killes solution for pay per listing
http://drupal.org/node/77038#comment-145995

What I did for a similar case is to add a "buy me" link to a sample node. The link goes directly to the payment processor, but I think it could go to the shopping cart instead. Upon completion of payment, I add a special property to the user object and save. When the user goes to /node/add/foo where foo is the node type I check whether he has the special property and delete it after the node got created.

this sounds like a better workflow, if I understand it correctly. the person buys, and then creates the object. it may also be easier to integrate with cck. (Killes is the maintainer of Drupal 4.7.)

mwu’s picture

Hi Lee,
thanks for changing the sub button
that's exciting, that you've been trying out different things with the ad module.

it's great that any node can be restricted. (and do you mean any node as opposed to any node type?)

but I assume you don't mean all nodes will be restricted until paid for.

i assume you don't mean a per node setting for 100% of nodes. that could be pretty time-consuming from the admin point of view. my thought had been to set it by node type (cck). some will be free. some will charge per node.

in terms of names, i think pay per listing would be okay. i don't know about what "pay to publish" means in drupal right now. maybe without the underscores just to make typing easier. payperlisting.module perhaps.

i'm not convinced you'd want paypal in the name, because it seems to me you may eventually want to integrate other solutions.

thank you! i'll be ready to test as soon as you put it up.

LeeMcL’s picture

Yes I did mean by node type. On the donations admin page you can specify which Node Subscriptions can be associated with with node types (including any node types created with CCK).

Lee
--
Lee McLoughlin
lmmrtech.com

mwu’s picture

Lee
1) that's great about being able to coexist with ecommerce! I probably won't need it but I'm sure many people will be excited to hear about that. thank you for implementing it
2) good news about ad and node types. sounds great. thank you.
3) have you thought about a paymentlegal module? a terms and conditions that someone has to sign when they purchase something.
I've realized that I'd really like to have this.

I think it'd might be quick. the legal module has just about all of it. the only trick is to link it to the buy page instead of the registration page.

ideally there could be more than one terms and condition contract, depending on the product.

the legal module won't do it because it's only shown on the registration page. it has this nice feature of 1 contract plus 5 optional checkboxes.

thank you for all the work!

mwu’s picture

Lee
1) that's great about being able to coexist with ecommerce! I probably won't need it but I'm sure many people will be excited to hear about that. thank you for implementing it
2) good news about ad and node types. sounds great. thank you.
3) have you thought about a paymentlegal module? a terms and conditions that someone has to sign when they purchase something.
I've realized that I'd really like to use this, instead of trying to stuff everything "if you ever buy something from this website you also promise...) into the legal module.

I think it'd might be quick. the legal module has just about all of it. the only trick is to link it to the buy page instead of the registration page.

ideally there could be more than one terms and condition contract, depending on the product.

the legal module won't do it because it's only shown on the registration page. it has this nice feature of 1 contract plus 5 optional checkboxes.

thank you for all the work!

mwu’s picture

Lee
1) that's great about being able to coexist with ecommerce! I think I'll be relying on lm paypal for everything but I'm sure many people will be excited to hear about that. thank you for implementing it
2) good news about ad and node types. sounds great. thank you.
3) have you thought about a paymentlegal module? a terms and conditions that someone has to sign when they purchase something.
I've realized that I'd really like to use this, instead of trying to stuff everything "if you ever buy something from this website you also promise...) into the legal module.

I think it'd might be quick. the legal module has just about all of it. the only trick is to link it to the buy page instead of the registration page.

ideally there could be more than one terms and condition contract, depending on the product.

the legal module won't do it because it's only shown on the registration page. it has this nice feature of 1 contract plus 5 optional checkboxes.

thank you for all the work!

LeeMcL’s picture

I'd not thought a paymentlegal module but I'll have a think. But if you use a CCK node to create the node to buy something then you could use its help field to give achieve this.

The new version is now available at

http://lmmrtech.com/lm_paypal_module_for_drupal

I wont be able to spend as much time on this module from now on as I have a ton of other work to catch up on. Any maintenance and fixes definately but new code will be on the back burner.

Lee

--
Lee McLoughlin
lmmrtech.com

mwu’s picture

Lee,
thank you very much for the new version. I'll try it.

using cck to make legal is an interesting option. I'll check it out.

I understand you are busy. thanks for doing all this!

mwu’s picture

Hi Lee,
the link on your site is still to 1.19.

LeeMcL’s picture

Thanks for letting me know Mariun.

Sorry about that its now fixed.

To the one person who downloaded 1.19 before I zapped it - there is a bug in the paid adverts update that breaks donations (I typed the wrong module name while coding jetlagged). The problem only occurs if you enable paid adverts and then run update.php, if you didn't do that you are OK.

It is corrected in 1.20.

Lee
--
Lee McLoughlin
lmmrtech.com

bluecobalt’s picture

Thanks, Lee. That one person was me. I've got 1.20 now.

Blue Cobalt
dianovo, inc.
http://www.dianovo.com

Blue Cobalt
http://livingparadise.org
Conscious living for a better world.

LeeMcL’s picture

Thanks for letting me know I can stop worrying now. Apologies for that glitch!

While I have your ear (eye?) - do you have any feedback for me on the module in general, please?

I'd really appreciate feedback from anyone else trying it out too. Just post your feedback here.

Lee
--
Lee McLoughlin
lmmrtech.com

LeeMcL’s picture

When I have time to work on new code for lm_paypal again I will be looking at a some sorted of merged "register on drupal" and "paypal subscribe" system.

But in the mean time you could encourage users to register and subscribe by careful use of the front_page module.

Create a node (a simple page will do but remember to enable PHP) on my site this is node/2:

<?php
global $user;
$site_name = variable_get('site_name','drupal');
if ($user->uid == 0) {
  //watchdog('xx',"user is anon");
  $out = '<p>To make best use of this site please <a href="user/register">register</a> and then subscribe using PayPal!</p>';
}
else {
  if (function_exists('lm_paypal_can_subscribe')) {
    $subid = 2;
    if (! lm_paypal_can_subscribe($subid)) {
      //watchdog('xx','user is known but already subscribed');
      // I am already subscribed -go to the default home page
      drupal_goto('node');
    }
    else {
      //watchdog('xx','user is known but not subscribed');
      // I am not subscribed - encourage me
      $sub = lm_paypal_subscribe($subid,8);
      $out = "<p>Why not subscribe now!$sub</p>";
    }
  }
}
print "<h1>Welcome to $site_name</h1>$out";
?>

In admin/settings/front_page set:

Front Page settings for Anonymous Users (visitors not logged in)
Select type:redirect
Redirect to: node/2

Front Page settings for Authenticated Users (visitors already logged in)
Select type:redirect
Redirect to: node/2

Override your HOME breadcrumb links:
Redirect your site HOME links: on
Redirect your site HOME links to:node

Activate your front_page settings
front_page

You will certainly want to make the encouragement more verbose!

This is but no means a complete solution but it should prove helpful.

Lee
--
Lee McLoughlin
lmmrtech.com

LeeMcL’s picture

http://lmmrtech.com/lm_paypal_module_for_drupal

Lee go stand by the blackboard and write 100 times:

I must not release new versions while zonked out of my brain because of jetlag.
I must not release new versions while zonked out of my brain because of jetlag.
I must not release new versions while zonked out of my brain because of jetlag.
I must not release new versions while zonked out of my brain because of jetlag.
I must not release new versions while zonked out of my brain because of jetlag.
...

A couple of stupid problems and some stupid mistakes in the online help now fixed.

Sorry about that folks

--
Lee McLoughlin
lmmrtech.com

hadishon’s picture

Is there a way to have adverts free but charge for upgrades like; promote to front page, newsletter ad, bold title, etc...?

LeeMcL’s picture

No. But thats a very good idea. I'll put it on the TODO list for when I can work on new code again.

Lee
--
Lee McLoughlin
lmmrtech.com

marcoBauli’s picture

Hi all people on this thread,

i read some time ago about the good work of lm, but somehow missed to catch up on this new thread here..!

I just committed to a developer an e-commerce/cck based module that aims at having free adverts/listings, and different levels of charged upgrades to show more information (text fields) and visibility (using Views to show adverts in particular blocks on most visited pages of a site like homepage).

Very briefly here:
the module, called Taxonomy_actions, adds a taxonomy term (eg: silver, gold, platinum) to a selected advert/listing of the user, after the purchase and payment of a "Level" product are completed.
The taxonomy term can then be used by Views to build almost any desired sort of view (eg: show only platinum adverts, sort all paied adverts by level, show relative views on specific blocks....) and by phptemplate or hook_form_alter to show only particular fields per level (eg: less fields for silver, more for platinum)
Just in case someone could be interested, more details can be found at http://drupal.org/node/83079

I don't know how far the result will be compatible with the lm_paypal framework (no coder here!), but i'd be happy to share the module with anyone who might be interested, to help avoid reinventing the wheel.

cheers
-Marco

LeeMcL’s picture

Hi Marco!

I think the idea of paying more to add more to a node a really useful idea. I totally agree it will help encourage users to try free ads and, once comfortable, upgrade to add extra features to the ad (like pictures, more fonts, ...) If I had the time I'd probably write it myself! I cannot tell from your wording: have you hired a developer to implement this or are you still looking? If you have someone do you have any idea of timescales?

Lee

--
Lee McLoughlin
lmmrtech.com

marcoBauli’s picture

Lee, glad you apreciate the concept :)

actually a coder was contacted some weeks ago, and the module is currently in development in these days.

I should be able to test a revised version of it tomorrow evening. If you (and anyone else) is interested, i can then post the module for others for sneaking, testing or whatever else at http://drupal.org/node/83079 .

Please, leave any eventual comment or feedback (both apreciated!) there. Guess this post is not the right place and is already long enough ;)

mwu’s picture

Hi Lee,
I got this error.
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /var/www/modules/lm_paypal/lm_paypal_paid_adverts.module on line 133
about 8 times for various lines.

mwu’s picture

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /var/www/modules/lm_paypal/lm_paypal_paid_adverts.module on line 133

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /var/www/modules/lm_paypal/lm_paypal_paid_adverts.module on line 133

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /var/www/modules/lm_paypal/lm_paypal_paid_adverts.module on line 253

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /var/www/modules/lm_paypal/lm_paypal_paid_adverts.module on line 322

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of lm_paypal_paid_adverts_has_sub(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /var/www/modules/lm_paypal/lm_paypal_paid_adverts.module on line 360

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of lm_paypal_paid_adverts_has_sub(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /var/www/modules/lm_paypal/lm_paypal_paid_adverts.module on line 360

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of lm_paypal_paid_adverts_has_sub(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /var/www/modules/lm_paypal/lm_paypal_paid_adverts.module on line 403

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of lm_paypal_paid_adverts_has_sub(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /var/www/modules/lm_paypal/lm_paypal_paid_adverts.module on line 403

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of lm_paypal_paid_adverts_has_sub(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /var/www/modules/lm_paypal/lm_paypal_paid_adverts.module on line 415

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of lm_paypal_paid_adverts_has_sub(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /var/www/modules/lm_paypal/lm_paypal_paid_adverts.module on line 415

mwu’s picture

when I installed cck next,
I got the above list of error messages, but without anything else. (in my previous post, I got the error messages followed by the admin page and could do normal things.

so i navigated to my home page.
i got this error
warning: Cannot modify header information - headers already sent by (output started at /var/www/modules/lm_paypal/lm_paypal_paid_adverts.module:415) in /var/www/includes/common.inc on line 266.

i didn't do anything to the advert file. after getting this message, I opened it to see if there was an extra blank space at the end but I don't think so.

plus my database is acting like it's wiped/ a new install. it's saying i can go ahead and create the first account.

however, it didn't let me make a new user 1.

mwu’s picture

I installed cck on a clean sandbox. I got the same deprecated error warnings. (but not the header warning)

I talked to my host. it appeared to be caused by the php debugger i've been trying to install. i uninstalled php and installed it again. the warnings went away.

mwu’s picture

the admin interface seems nice

there seems to be a bug

i'm on the make a subscription page.
it does not let me select a role (for node/paid adverts, which is not supposed to have one.)

but will not let me exit the page saying
Subscribers Role field is required.

thank you! this looks very promising

LeeMcL’s picture

Fixed. I've posted a quickly updated version here, please test and let me know how you get on.

http://lmmrtech.com/lm_paypal_module_for_drupal

This bug only surfaced if you had no additional roles defined.

Thanks for the feedback

Lee
--
Lee McLoughlin
lmmrtech.com

LeeMcL’s picture

I've just posted an improved version of that fix to the same place:

http://lmmrtech.com/lm_paypal_module_for_drupal
--
Lee McLoughlin
lmmrtech.com

mwu’s picture

Hi everyone,
I just wanted to let you know that Lee put a donation button on the front page of his website. I sent him some money. (It's in pounds, so just multiply by 2 to convert to US dollars.) And I'll be sending him more when the site goes live with real users.

I just wanted to encourage everyone to send him money to keep this development going. Lee has done such a great job.

Thank you Lee.

mwu’s picture

i think the header warning also went away after reinstalling php

artha6’s picture

PayPal Webpayment Pro ?

LeeMcL’s picture

Currently no. It is on my TODO list but I am pretty swamped with other work so will not even start on it for a few weeks.

Lee
--
Lee McLoughlin
lmmrtech.com

mwu’s picture

Lee,
one minor request

on your site, can you paste the download url below the link so I can copy and paste it into wget? right now i have to click on the link, write the url in my notebook, and type the url into shell. thank you.

LeeMcL’s picture

The download link is now the full url.

If you have wget you might have lynx too. Its a text only web browser and it can do downloads.

Lee

--
Lee McLoughlin
lmmrtech.com

mwu’s picture

testing the ad module.
what i see so far
1) the early-on warnings about paying to publish are gone.
2) very interesting. before payment, the ad title is viewable to the public, with the line "not yet published." thanks for polishing that. for me, that's not great, because the user could put the title as "new blank for sale, see url blah blah"
3) this is minor, but if the return page does not exist there is no warning. however, any testing should catch this.
4) the return page is the same as for buying paid memberships. so the page will be a little schizophrenic.
"if you bought a paid membership, thank you. here is additonal info.
..
if you bought an ad, thank you. here is how to view your ad...."

5) everything else worked great. thank you for adding the links to the navigation menu. thank you for the nice summary table in "my account"

thank you very much!

Lee -- did you think about the killes solution/workflow I posted earlier in this thread? the person pays before they write the node, if I understand it correctly.

http://drupal.org/node/78002#comment-149779
What I did for a similar case is to add a "buy me" link to a sample node. The link goes directly to the payment processor, but I think it could go to the shopping cart instead. Upon completion of payment, I add a special property to the user object and save. When the user goes to /node/add/foo where foo is the node type I check whether he has the special property and delete it after the node got created.

this sounds like a better workflow, if I understand it correctly. the person buys, and then creates the object. it may also be easier to integrate with cck. (Killes is the maintainer of Drupal 4.7.)

It would a different workflow from yours. I think I prefer that. What is your thinking about that workflow? feasibility of implementation in your framework, etc.

a question about multiple ipn url's. I have about 4 sites now testing lm paypal.
1) live site
2) sandbox site with lmpaypal and nothing else
3) sandbox site with lmpaypal and cck
4) sandbox site with lmpaypal and whatever

i'm really only testing one at a time because i set my paypal return ipn to the current one. is there another way?

LeeMcL’s picture

Before an article is paid for only the first 20 characters of the title are available. That should not be enough for a meaningful advert!

Yes there should be two return pages. One for role sub's and one for node sub's.. I'll add that in when I can. Perhaps it would be best to allow each sub' to, optionally, specify a return page so it can be better targetted.

Glad to hear its all working for you.

I've ported lm_paypal to Drupal 5.0.0 dev. Not a very neat port as I'm short on time but the same code now runs on both Drupal 4.7.3 and Drupal 5.

That alternative workflow. I'm not at all sure how to implement that with the system I currently have. I suspect it would be a lot of work.

I'm also not sure I like it.

How does the user know they can now create a paid-node, if they create a non-paid node (or just post in a forum), will they still be able to create a paid-node?... Or if they logout, or get timed out, ... Even if these aren't problems users might think they are. If they decide not to publish the ad you would have to refund them (and loose any charges to paypal in the process).

I also prefer the workflow of creating an advert and then when ready paying for it to appear. It seem s better than having to pay in advance.

Testing and multiple sites::
If they are all using 1.20 or newer and all live subscriptions were created with lm_paypal 1.20 or newer then they can all co-exist as each site will set the notify_url with every request sent to PayPal.

For testing here I have the following sites:

live: using drupal 4.7.3, www.paypal.com and my premium account
test1: using drupal 4.7.3, www.sandbox.paypal.com and my sandbox business account
test2: using drupal 4.7.3, www.sandbox.paypal.com and same sandbox account as test1
test3: using drupal 5.0.0 dev, www.sandbox.paypal.com and same sandbox account as test1

All three sites run in parallel. I use FireFox, Internet Explorer and Opera with a different account in each to test out paid advert restrictions (an administration account + two test accounts).

Lee
--
Lee McLoughlin
lmmrtech.com

mwu’s picture

Lee,
thank you very much for the comments, and for being willing to put in different return IPN's for different subs.

I did figure out, like you, the need for 3 browsers.

what I don't understand is that as far as I know, my paypal account only has 1 return ipn.

so if sandbox 1 is called www.leetest1.com, my return ipn is
http://www.leetest1.com/lm_paypal/ipn

and sandbox 2 would need a different return ipn
http://www.leetest2.com/lm_paypal/ipn

but my paypal account only holds 1.

alas, I don't understand how you are doing it.

thank you.

LeeMcL’s picture

Since 1.20 the notify url set in on paypal.com (or sandbox) is no longer used. Whenever LM_PayPal sends a message to PayPal it tells it the URL to use for replies.

Note that subscriptions created before 1.20 will still use the notify url on paypal.

Lee

--
Lee McLoughlin
lmmrtech.com

mwu’s picture

thanks. i see.

that means for every kind of transaction I set a return ipn in admin -- lmpaypal, is that right? (and that's not implemented yet, is that right?)

does that make it easy for someone to use a proxy server and fake a transaction? or are security issues unchanged?

mwu’s picture

20 chars would be enough to say
visit www.amazon.com, or www.spammer.com.

is this a setting that I can simply change myself in the code?

thank you.

LeeMcL’s picture

Currently its fixed in the code. I'll parameterise it. In the meantime look for 20 in lm_paypal_paid_adverts.module.
--
Lee McLoughlin
lmmrtech.com

mwu’s picture

is this query is made for every single node, or just once? if it's made every single time, i'd be actually happier to just change it in the code. (perhaps you can flag it with a comment). that way one fewer query, better for performance.

thank you.

LeeMcL’s picture

Following your comments version 1.22 has it fixed at 10 chars.

If you'd like to change it look here:

lm_paypal_paid_adverts.module line 465:

$title_len = 10;

I will parameterise it when I get a chance.

Lee

--
Lee McLoughlin
lmmrtech.com

mwu’s picture

thank you for making it possible for anonymous to buy ad, per request.

where it says "please take out one of the subscriptions below" to publish the ad,
it doesn't show any subscriptions.
it says "please log in or create new account"

this wasn't quite the workflow I had in mind. but now i see why the discussion is so complicated in terms of integration ecommerce info with registration info.

an additional issue with this workflow is that i must give anonymous create node permission, which creates a security risk. my site has tightly controlled membership.

perhaps i need to think this through and dig up the threads about different options for the workflow when anonymous buys.

thank you very much for adding the feature.

mwu’s picture

Hi Lee,
I just sent you another donation.

thank you for all the features!

LeeMcL’s picture

Greatly appreciated!

--
Lee McLoughlin
lmmrtech.com

NickHBO’s picture

I haven't had the chance to test this module out yet but it looks pretty solid. I'll likely be using it solely for donations and after seeing your site's page for the module, I have a suggestion / feature request.

I noticed that you have 3 different donation buttons on your page to support multiple currencies. I think it would be pretty cool to hook in with an IP resolution database (I think there's a module for this) and allow the administrator to setup which countries he would like to have resolved to which currencies. It would be nice if it were automatic, but that's too much work and there could be situations where an admin doesn't want to go by the default currency for a country; a manual system would be the way to go.

The settings page could have a place to add and configure currency profiles, forcing one to be set as the default for unresolved IPs or in the event that the administrator has not specified any other resolutions. A "currency profile" would just be a currency type (USD, yen, Euro) referencing a list of countries using that currency and a suggested donation value; an enable/disable toggle per profile would be nice, too. You could include some standard, empty currency profiles that just defined the currency type but no countries; you would have to include at least one for the required default profile.

For example, if the user's IP resolved to England, the module would check to see if England was assigned to any currency profile; if not, it would use the default, if so it would use that profile. Assuming I had created the GBP profile (or it was included), the module would grab the suggested donation value of 5 pounds and display it. Assuming all the pieces were in place, a user from Japan would see a donation button suggesting a 1,000 yen donation.

Now, you would have to include a list of countries in the module, but that's not too bad since those don't usually change ;) When configuring a currency profile, the admin would select countries from a multi-select list and add them to that profile's list (a "list, add / remove buttons, list" UI). This action would remove the selected countries from the global list so that a country could not be assigned to multiple profiles.

Anyway, just a little idea that struck me when I saw your page. The above idea of "currency profiles" could integrate well into other parts of the module (I think), so the code would be pretty reusable throughout your project. Just one example of how it could be extended to subscriptions: create 2 profiles defining the same type of currency, let's say Euro, setup Italy in one profile and the rest of the EU countries in another, have a "Discount" field in the Italy profile set to 5%, and I can give my Italian visitors a discount. Not the best example, but it's a plausible use.

Good luck with the module, keep up the good work.

Nick

paddywwoof’s picture

The watchdog error message generated by line 1850 of the subscriptions module looks wrong.

I only came across this because I have made a minor add on module to allow manual entry of a subscriber. When it actually works I will post it although I think Lee's version on his TODO list will be more general and probably much tidier.

Paddy

LeeMcL’s picture

Looks OK ... what seems wrong?

--
Lee McLoughlin
lmmrtech.com

paddywwoof’s picture

I had %ipn_currency and changed it to $ipn_currency. I thought it was v1.21 but will check.

LeeMcL’s picture

Ah! Thanks for spotting that one. Fixed.

I'll be posting a new release with support for Drupal 5 shortly and it will appear in that.

Lee

--
Lee McLoughlin
lmmrtech.com

.carey’s picture

This is a great module. Thanks for providing it.

When I use the following code found in the 'Creating Donation Buttons' paragraph on the 'admin/help/lm_paypal_donations' page...

<?php
  if (function_exists('lm_paypal_donate') {
    // 10 = amount, 'USD' is the currency followed by a description
    // that will appear on the PayPal.dom donations page
    print 'We would really like a $10 donation ' . lm_paypal_donate(10, 'USD', '$10 donation');
  }
?>

... I get this error in the sidebar block:

Parse error: syntax error, unexpected '{' in /home/mysite/public_html/mydir/includes/common.inc(1175) : eval()'d code on line 2

But when I use the following snippet provided in the readme.txt file, it works - that is, the button shows up without incident or error:

<?php
if (function_exists('lm_paypal_donate')) {
  print 'We would really like a $10 donation ';
  // 10 = amount, 'USD' is the currency followed by a description
  // that will appear on the PayPal.com donations page
  print lm_paypal_donate(10, 'USD', '$10 donation');
}
?>

Also, could you tell me how I can change the button itself? Is that something I must do in Paypal? And how?

Thanks.

Update: I don't know php but it looks like the first snippet is missing ')' in the second line, just before '}'. (?)

.carey’s picture

Can the snippet be altered to not force a donation amount?

I'm using the above snippet without the 'donation box' - in other words, just the button - but when the button is pressed and the donator is sent to Paypal, the amount of $10 cannot be changed. I would just like to send them their with the $10 amount but for it to be able to be changed on Paypal's site at their discretion. Is that possible?

Or maybe I can set up a page on my site where they can provide info and the amount that will be passed on to Paypal. If this was available in the module, that would be great. (The module creates a page like it does 'thanks' but for 'donations' with form fields to pass info and donation amount to Paypal for the final process.) It would look more professional as I see that's how organizational sites that can accept credit cards do it.

And one more thing (sorry if I'm being too verbose): Maybe the Paypal Business email can be encrypted is some way. I get a lot of junk mail -- as I'm sure does everyone -- and with it showing up in the source output robots can snag it for spam.

Thanks so much.

Carey

.carey’s picture

I set the snippet up in its own 'donate' page but all that appears is the button. The input text block where the amount can be changed -- like on your site -- doesn't appear. :(

Can you tell me what I need to do or how I need to change the snippet to make it appear?

LeeMcL’s picture

If you switch to version 1.22 you'll have more flexible donations options.

--
Lee McLoughlin
lmmrtech.com

LeeMcL’s picture

Good point about the email. I'll add in a little javascript to help obscure it.

Lee

--
Lee McLoughlin
lmmrtech.com

.carey’s picture

I went into the donations.module and changed the link from Paypal to a graphic in my images directory.

:)

paddywwoof’s picture

I also changed the donations module to allow variable amounts as per Lee's site (which I will stick some cash in now while I remember) so maybe this should be the standard form.

.carey’s picture

Can you share how you did this? This is what I'm trying to do.

paddywwoof’s picture

This is what I did on about line 278 of the donations module. It would be better without the line break which I seem to remember you can do with form { margin: 0; } or form { display: inline; }

//  $form .= "<input type=\"hidden\" name=\"amount\" value=\"$amount\">\n";
  $form .= "<input name=\"amount\"  size=\"3\" value=\"$amount\">\n"; //PBG ///////////////////////////
.carey’s picture

That did the trick. Thank you so much, paddywwoof.

LeeMcL’s picture

Have a look at version 1.22 it has more flexible donations (users can type their own amount, pop-up list of amounts with default).

http://lmmrtech.com/files/lm_paypal-1.22.tar.gz

BTW: LM PayPal discussion has moved over to:

http://drupal.org/node/83644

--
Lee McLoughlin
lmmrtech.com

LeeMcL’s picture

Yes there is a missing ')' in the snippet. Thanks for pointing it out it is now corrected.

To have your own button image use a line like this instead of the print line from the snippet:

print lm_paypal_donate(10, 'USD', '$10 donation',
         'http://www.paypal.com/en_US/i/btn/x-click-but21.gif');

The PayPal donation button images are:

http://www.paypal.com/en_US/i/btn/x-click-butcc-donate.gif
http://www.paypal.com/en_US/i/btn/x-click-but21.gif
http://www.paypal.com/en_US/i/btn/x-click-but11.gif
http://www.paypal.com/en_US/i/btn/x-click-but04.gif

The default is the first one on the list. But any suitable image URL can be used.

--
Lee McLoughlin
lmmrtech.com

mwu’s picture

by the way, I just checked, anonymous donations seem to work perfectly.

I'm still investigating workflow that allows anonymous to buy a membership in order to register. (they buy before they register, and they are not allowed to register before they buy.)

mwu’s picture

I spoke with a developer.

he convinced me not to do anonymous purchase of accounts. he said there would be problems if the user's computer froze (requiring a reboot), as well as issues with security if the sessionid were kept in the url.

by the way, Lee, time for a new thread? how about opening a project?

mwu’s picture

I spoke with a developer.

he convinced me not to do anonymous purchase of accounts. he said there would be problems if the user's computer froze (requiring a reboot), as well as issues with security if the sessionid were kept in the url.

by the way, Lee, time for a new thread? how about opening a project?

LeeMcL’s picture

The developers advice sounds reasonable.

I've asked for a progress report on my request for a CVS account.

I'll start a new thread shortly when I release the next version with Drupal 5 support.

Lee

--
Lee McLoughlin
lmmrtech.com

LeeMcL’s picture

This thread, as you have surely noticed, has become pretty long!

So to co-incide with version 1.22 being released lets switch this to a new thread:

http://drupal.org/node/83644

--
Lee McLoughlin
lmmrtech.com

kaushik_sarkar@drupal.org’s picture

Actually I need when a user wants to create his loging, he has to create a subscription alongwith his registration. so How do I show the paypal subscription on my registration page?

devenderdagar’s picture

Hi Lee

I am trying to create a Node type subscription using Lm_paypal module at my local system. But This is not working at my system I dont know what is the reason while It is successful when I am creating Role Type subscription at the localhost.
Like I created a New Subscription of Node type then went to Paypal subscribe in the navigation menu, and it is not there. Then I try to create a Role Type Subscriptn and went to Paypal Subscribe and this one is there and I can subscribe. But Node type subscription is not coming there. while both subscriptions are visible in LM Paypal Subscription in the Setting Page.

Actually I am creating a Custom Content Type and then every time i create a node of this type, I want that any one can subscribe for these node after only paying otherwise not. Is it possible using this module. Please help.

Thanks

Devender