Could not load branches. Could not load tags. Latest commit. Git stats 2 commits. Failed to load latest commit information. View code. Software-Licensing-System-for-Ubercart About this module: This Drupal module allows someone who uses Ubercart to sell a software license and generate license keys by having their application, written in any language, communicate back to their Drupal site to retrieve and or generate SSL keys over http in a secure manner with a simple set of usage limitations.
Step 1. Step 2. Run the drupal module installer from the admin page of your site. This will create the necessary databases. Step 3.
Create a new content page from the admin section of drupal and paste in the contents of the page. PartySoft PartySoft 1, 3 3 gold badges 15 15 silver badges 31 31 bronze badges. Add a comment. Active Oldest Votes. Improve this answer. Houen Houen. Glad to help ; — Houen. This way you can make unlimited e-mail templates and keep the original customer template intact. Also note that you can choose the template you want sent in the conditional actions predicate. Sign up or log in Sign up using Google.
Sign up using Facebook. Hope this helps someone else out there. Improve this answer. Sign up or log in Sign up using Google. Sign up using Facebook. Sign up using Email and Password. Post as a guest Name.
Email Required, but never shown. The Overflow Blog. Podcast Who is building clouds for the independent developer? Exploding turkeys and how not to thaw your frozen bird: Top turkey questions Then, you need to add a few fields to the new "Registrant Profile" content type.
I'm going to be adding 2 fields to the content type - both will be hidden to the user, but you'll be using them behind the scenes to add some additional functionality. The default values for each fields configuration settings don't need to be touched. Here's what the completed registrant profile content type should look like:. At this point, you have the necessary content types set up, the next step is to create an event product, and associate it with the registrant profile.
Click on the "create content" menu item and select "event" as the content you'd like to create. Again, we really only need to fill out the required fields, the rest of the fields are fine the way they are. Next, you need to link the registrant profile with this event using the UC Node Checkout settings.
Take note of the node ID of the event - assuming that the Pathauto module is not enabled, you can find the node ID in the URL of the event page - it should look something like this:.
This will force attendees of the event to fill out a registrant profile during the checkout process. Click the "edit" link for the Registrant Profile. I also made both the "Status" and "Order ID" fields "restricted" - this will hide the fields from public view. Go ahead and uncheck this box for this example to allow anonymous users to complete a registrant profile. Be warned that it will also expose a create "registrant profile" link in the "create content" menu that you may want to disable in the future.
At this point, we actually have a semi-working system. Go ahead and log out as admin, then navigate to your event product and click to add it to your cart. You'll see that you're immediately directed to a blank "registrant profile" page that you're required to fill out prior to checkout.
Be sure to notice that the "Status" and "Order ID" fields are not visible. There's still one major flaw in the system - if a user completes the "registrant profile" form, but failed to complete the checkout, you'll end up with an orphaned registrant profile page - we need some way to mark a registrant profile page as paid.
This is what we're going to use the "Status" and "Order ID" fields for. We'll use Ubercart's Conditional Actions to add a bit of PHP code to update the fields when the user completes the checkout process. A conditional action is simply something that takes place when a certain condition is met. In our case, the trigger is going to be "customer completes checkout", the condition is going to be that the customer is ordering our "Rock Climbing Championship of the World" product, and the action is going to be our custom PHP code to update the "Status" and "Order ID" fields.
Go ahead and click to "Add a predicate" from Ubercart's Conditional Actions page. Next, we want to add the condition. This page can be a little tricky - be careful about which buttons you're clicking here, I've gotten into trouble more than once on this page.
Under "available conditions", select "Check and order's products", then click "Add condition". Then, fill out the form as follows:. When finished, click "Save changes". When complete, click the "Save changes" button. Once the order is complete, log back in as the site admin, and view the registrant profile node - you'll see the updated fields. You might also want to try repeating the process, but abandoning the cart to see the difference. At this point, you can create a view to show the registrant profiles for customers who have completed their checkout as well as a listing of those who have abandoned their checkout.
That should do it - you now should have a fully-functional event registration system that exposes registrant profile information as fully functional nodes that you can bend to your will using any number of modules.
Go forth and sell! NOTE: One of our readers, Ron, noted: Using "checkout complete" as the trigger to update the published status of items is not safe for all payment methods. For example, when this is applied against checks or cash on delivery it allows anons to fully publish nodes regardless of whether they have paid since Ubercart still views those methods as having completed the checkout process.
The fix is to move the status change to the payment completed condition which makes sure the user has actually paid for something before publish nodes. I've posted details in the issue queue and even asked on the development list , but I haven't been able to find a good workaround yet.
Do you guys have a suggestion of how to get around this situation? That's exactly what the module is already doing. Hey, I followed these instructions to the tee and for some reason when any type of user clicks add to cart on the event's node page, they're taken to the cart instead of the registrant profile form. What else am I missing???
Im using a D5 install, could that be to blame? The code I showed was for Drupal 6 - I'm not sure what the outcome would be for Drupal 5, but it wouldn't surprise me if it didn't work without some modifications Hey Mike thx for the reply. I actually only got to the part where you say: "At this point, we actually have a semi-working system.
I then tested it out and found that i wasnt getting redirected to the registrant profile creation form and stopped there. Is it likely that the steps prior to this could somehow not apply correctly to a D5 install?
I haven't actually used the D5 version, so I don't know if the D6 version is a straight port of it or a rewrite. Mike, awesome job.
Thanks so much for turning this into a tutorial. It's at the top of my list for coverage on CommerceGuys. Anyways, the whole View association is brand new with the D6 version, so people on D5 will only be able to associate a node type with a single product.
I don't intend to backport this functionality. Great tutorial! I have a question though.
0コメント