When a (test) user registers, an order is created (and can be seen in the orders tab on the user profile), the emails are sent (both to the admin and the user), but no signup is registered (as in under the 'signup' tab on the event page nor in the user account).
In the admin signup tab, it does show signed-up users for an event, however their names are anonymous and emails are some placeholder values.
When I look at the tab from the event view, I do see placeholder values with 'anonymous' as the name and placeholder values for the email. When registering both as anon (user automatically created and logged in) and as user1, everything seemed smooth . . . I got the 'your order is complete and your order number is x'.
To display the list of signed-up users I have embed a view under the signups tab pointing to signup_user_list[defaults] and embedded the admin list is using the uc_signup_user_admin[list] provided listing.
So what seems to be missing is translating the placeholder to the email address of the user.
The payment system I am using is freeorder 6.0-1.0-beta4
I am using the latest dev build of uc_signup.
I am using signup 6.x-1.0-rc6
I have another problem that i'll submit as a separate issue.
Comments
Comment #1
-Mania- commentedSame problem, username is displayed as 'Anonymous' and email is displayed as 'placeholder-xxx@domain.com'. Please fix such an obvious bug.
Comment #2
ezra-g commentedWhile there are other potential causes of this problem, I did some testing on a fresh install and noticed that the Conditional Actions predicate for finalizing the placeholder signups listed it's trigger as '- None -'. As it turns out, we need to list uc_payment, which provides the trigger, as a dependency. I've committed this change. Please enable uc_payment.module and try again.
http://drupal.org/cvs?commit=422304
Comment #3
bewhy commentedI've solved my other problem from (http://drupal.org/node/910140) with the steps below, but this is still not working . . I just wanted to give you feedback on what I did and the results which hopefully will help you a bit:
1. disabled then uninstalled then deleted uc_signup, disabled payment module
2. downloaded and installed uc_signup dev (updated today), reactivated all modules at the same time (i.e. not by dependency)
3. attempted signup as anonymous user - fail - sent me back to fill out profile fields
4. disabled profile fields to be required for registration, also uninstalled content profile & account profile (solved problem above)
5. cleared cart, attempted to signup for an event as anonymous user - success -account created, account details sent
6. log in as new user using emailed credentials - success
7. check for signup as new user - fail - signups tab on profile page said no signups for this user
8. check for signup from admin view on event node - fail, did see anonymous user registration with placeholder information
also, in UC conditional actions, i notice that the condition is now 'check the order balance' to be less than or equal to zero . . . and the action is 'mark temporary signups as paid' . . .
Comment #4
bewhy commentedDid some more testing this morning
despite other problems, the beta3 of uc_signup successfully registered users upon signup (different server, relatively clean install). This means that going to the event page and viewing signups showed users with their username and correct emails and did not show user as 'anonymous' and the email as 'placeholder...'. This was accomplished as a registered user signing up two people for an event.
In looking at and testing the code of uc_signup.module of the dev and beta3 (a version hat i remembered successfully registered users) I noted three things:
1.
in dev, the uc_signup_ca_predicate is based on the #trigger 'uc_payment_entered'
in beta3, the uc_signup_ca_predicate is based on the #trigger 'uc_checkout_complete'
2.
in dev, starting on line 476 it reads:
'#conditions' => array(
'#operator' => 'AND',
'#conditions' => array(
array(
'#name' => 'uc_payment_condition_order_balance',
in beta3 staring on line 404 it reads:
'#conditions' => array(
'#operator' => 'AND',
'#name' => 'uc_payment_condition_order_balance',
perhaps in dev the presence of line 478 adn 479 throw things off.
3.
in dev on line 499 it reads:
'order' => 'order',
),
in beta3 on line 423 it reads:
'#settings' => array(
'order_status' => 'payment_received',
I think both the duplicate conditions (2) and the lack of the new setting (3) are the major parts,
**edit** i understand (2) now I think**edit**
I think i understand why you changed the trigger from 'checkout_complete' to 'payment_received' perhaps due to ipn issues with paypal or payment is received but something goes wrong in the next checkout step.
Comment #5
bewhy commentedtesting report #2
With the test server:
1. I upgraded from beta3 to the dev
2. added 'order_status' => 'payment_received', to line 499
3. registered for an event -
(3a) got an "invalid argument". . . for lines 658 and 691
(3b) order completed
4. checked 'store/orders/view' and found the order successful
5. checked event, no new registration for the information I used
6. checked email, got registration email
and I like your comment on line 651 . .
Comment #6
bewhy commentedThree times is a charm
A buddy of mine who is a Drupal developer spent some time with me on this. What we found is that signups are being registered in uc_signup_log for the temporary placeholders. However, upon payment completion (we think), a signup is being created in signup_log but the uid column isn't being populated, it was filled with zeroes.
We found many initiated signups in the uc_signup_log and only a few (those that were completed) in the signup_log. So when you go to check for signups in the user_admin_list, there are signups but they are not associated with a particular user or email. He wrote a custom module to do this as a temporary fix, which is basically a query that updates the signup_log table with the info from the uc_signup_log file upon completion of an order. The text of the module is as follows:
<?php
function custom_signup_convert($order_id){
//check the signups associated to orders but noit to users
watchdog('custom', "order_id: ".$order_id);
db_query("UPDATE {signup_log} set uid = (SELECT uid FROM {uc_signup_log} WHERE sid = signup_log.sid) WHERE uid = 0 AND sid IN (select usl.sid FROM {uc_signup_log} usl, {uc_orders} uo WHERE uo.order_id = usl.oid AND uo.order_status = 'completed' AND usl.oid = %d)", $order_id);
return;
}
In it you'll also find a watchdog to verify whether and what's working (whatever that means). We also linked this by some custom php code to execute the module in a conditional action aptly titled: "Update temp signups on checkout complete when order has no payment"
Apparently he reasoned what i reasoned in #4 point 1 above, which is that the trigger for what was working in Beta3 was 'checkout_complete' whereas the trigger in the dev build is 'payment_entered'. And as I'm using freeorder and my events have no charge, no payment is rendered etc.
And, looking at the code a little more, I see your comment on 958 "//TODO:save this in the order" - lmao!!! actually, you have the same line on 854 of the working beta3 so that's not it . . . On further comparing that with the beta3 i see lotsa changes in the function uc_signup_mark_paid area but don't understand it . . . did i mention that i'm not a coder(yet)?
Comment #7
benkorn1 commentedI am not sure these are related, but using the 6.x-1.x-dev uc_signup, I get these errors when viewing the 'Cancel temporary signups created by UC_Signup when an order is cancelled' predicate.
* warning: array_keys() [function.array-keys]: The first argument should be an array in /var/www/html/drupal_cod/sites/all/modules/contrib/ubercart/ca/ca.admin.inc on line 598.
* warning: array_shift() [function.array-shift]: The argument should be an array in /var/www/html/drupal_cod/sites/all/modules/contrib/ubercart/ca/ca.admin.inc on line 598.
Ben
Comment #8
benkorn1 commentedHello,
Using the 6.x-dev module.
I fixed this by doing the following:
In function 'uc_signup_mark_paid' in the uc_signup.module:
Move the line that says:
signup_save_signup($signup);
To a line directly above the following lines:
unset($account);
unset($signup);
That fixed my problem. Ill post here if this change has any bad effects.
Comment #9
benkorn1 commentedThe last post I made was working but only after another, another order was submitted. I changed the predicate rule:
'Change temporary signups to paid signups upon checkout when a payment clears the order balance.' to be run on the 'uc_checkout_complete' trigger, I also set the weight to 2 so that it runs after the other rules. I am still testing, but it appears to work. I will update if it as I continue to test.
Comment #10
goose2000 commentedI found this issue a ways back, subscribing.
Comment #11
Dutchman commentedSubscribing.
I am experiencing this issue. In addition I am using uc_free_order as module.
I believe these issues are the same:
http://drupal.org/node/943214
http://drupal.org/node/861058 (regarding the pay with cheque issue)
attached is a screenshot of the problem.
Comment #12
Dutchman commentedIt is listed on the latest beta release as a bugfix http://drupal.org/node/961442
I just tested it it however the problem is still there.
Comment #13
rastarr commentedSubscribing - using free_order as well. Signups aren't being listed as attendees for some reason
Comment #14
tike012 commentedI also have this issue using the latest version of signup integration.
Comment #15
michellezeedru commentedSubscribing... using UC Signup 1.0-beta6 as part of COD. I realized this problem happens when an order is not completed right away when the user is places the order. For example, if allowing payment by check, the order is not marked complete until an admin later goes in and marks it so when the check is received. When they do that, the uc_signup is not updated, so it still is anonymous with a placeholder.
Hope that's helpful - I'd welcome ideas for working around this, as payment by check is a requirement for our conference. I'd even be happy marking an order complete by default when this payment method is chosen, but don't see how I could do this. We can later handle those that never send a check. Thanks!
Comment #16
ezra-g commentedDoes this problem happen with the current dev version of uc_signup and Ubercart dev?
Comment #17
michellezeedru commentedI just tested with the latest dev versions of Ubercart and UC_Signup. Same problem. To replicate, set your store up to accept payment by check. Place a registration with check as the payment method. Look at the admin signup list for that event, note that username is Anonymous with placeholder email. Go to orders and mark this order complete. Still no change in that signup - username is still anonymous with placeholder email.
By contrast, if you register someone and pay by credit card, where order is marked as completed at the time of checkout, the signup is correctly associated with the user.
Hope this is helpful, please let me know if there's any more testing or information I can provide. Thanks!
Comment #18
ezra-g commented> Go to orders and mark this order complete. Still no change in that signup - username is still anonymous with placeholder email.
There's your problem. The "Change temporary signups to paid signups upon checkout when a payment clears the order balance" Conditional Action that finalizes UC_Signup signups is triggered by "A payment gets entered for an order", *not* by a change in order status.
On a fresh install of COD with UC_Signup RC1 and Ubercart dev, I was able to create a signup as expected with check as payment method by clicking "enter payment" on the order. You can either do the same thing, or reconfigure the conditional action to use a different trigger.