I've created a site for a client that allows public browsing, but its members must pay annually (professional organization). I have used blocks and menus to divide the site, which so far works well. The problem is the "Join" feature.
I have user administration set to allow users to create their own accounts without administrator approval. These go straight to authenticated users, which have almost no permissions.
When the account is created, I would like to automatically jump to the Ubercart shopping cart via workflow, but I couldn't get that to work. I have now decided to override the success message in the user.module until I can find a better solution. I have added a cartlink that empties the cart, adds the membership, and shows the cart.

Question 1-Is there a way to do this (need the cartlink URL to work, but would like to use relative paths) without overriding the "Registration successful" directly in the user.module?

Question 2-Is there a better way to seamlessly allow someone to join the site and pay in one step? I have found that having a user logged in should make the auto-return application of the member role work more smoothly in Ubercart, but have not gotten this to work correctly yet.

Thanks for any insight.