Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow admins to collect donor's address #370

Closed
mathetos opened this issue Oct 27, 2015 · 9 comments
Closed

Allow admins to collect donor's address #370

mathetos opened this issue Oct 27, 2015 · 9 comments
Assignees
Milestone

Comments

@mathetos
Copy link
Member

Currently the Billing Address is tied only to a Transaction, NOT to the Donor Details. This is because a login is required to store the address information and tie it to usermeta.

@DevinWalker dug into this today. Question is, can we safely and reliably tie the billing address to the donor data instead of usermeta so that billing information is saved for ALL donors, not just logged in donors.

stripe-not-passing-billing-address-to-donor

@DevinWalker
Copy link
Member

As of right now it's being stored in usermeta which isn't optimal since Guests should have the ability to save address, additional emails, etc.

I like the discussion about a customer_meta table here: awesomemotive/easy-digital-downloads#2548

I'm not sure where Pippin and company are on that...

@DevinWalker DevinWalker added this to the 1.4 milestone Dec 23, 2015
@DevinWalker DevinWalker self-assigned this Dec 23, 2015
@DevinWalker DevinWalker modified the milestones: 1.4, 1.5 Mar 25, 2016
@DevinWalker DevinWalker modified the milestones: 1.6, 1.5 Jun 27, 2016
@Asparagirl
Copy link

Strongly agree that address information should be linked to the donor, not the transaction!

@DevinWalker DevinWalker modified the milestones: 1.7, 1.6 Jul 18, 2016
@DevinWalker
Copy link
Member

Pending completion of #653

@DevinWalker DevinWalker changed the title Can we remove login requirement to store billing address information? Allow admins to collect donor's address Aug 15, 2016
@DevinWalker
Copy link
Member

DevinWalker commented Aug 16, 2016

Thinking this over: the "Billing Details" fieldset is currently being used for credit card transactions and cannot be used for donor's addresses because of the way each gateway is integrated with them.

We're going to need to create separate fields for the address fields which integrate into the "Personal Info" field set.

A few considerations:

  1. We don't want donors to unnecessarily fill out their address twice
  2. Both address field sets should not be shown at the same time, this would make for a very long form
  3. Should the option to collect donor's addresses be controlled globally and per-form by admins via new options?
  4. Should the address fields be required by default or should there be an option to control which fields are required?

Solutions to considerations:

1 & 2: - I propose that when both the donor and billing address field sets are present that the billing address fields are hidden and a checkbox will expand and collapse them as necessary. They would be collapsed by default and the checkbox would ask: "Do you have different billing address?". If checked, then the additional fields appear. If not, the address fields from the donor's address are brought over.
3: Yes provide an option
4. Provide an option

Here's a quick concept of what I'm thinking:

screen-shot-2016-08-15-at-5 35 10-pm

DevinWalker pushed a commit that referenced this issue Aug 24, 2016
…Forms Options #370

Also rearranged other options so they make more sense under the advanced tab
DevinWalker pushed a commit that referenced this issue Aug 24, 2016
…m option to override global #370

Bunch of doc block updates
@kevinwhoffman
Copy link
Contributor

@DevinWalker I agree with you on all 4 points. Both donor address and billing address need saved with each transaction. Current behavior shows that a registered user's address is updated to reflect the billing address used in their most recent donation. For this reason, we should continue to record the billing address separately as part of _give_payment_meta. By doing so, the billing address remains tied to the transaction even if the donor address changes in the future (another point for frozen transactions).

Regarding the checkbox, I recommend we:

  1. Clarify that the personal address will be used as the billing address by default.
  2. Cater to the most common scenario, which is that personal and billing address are the same.
  3. Keep the form as lean as possible at first glance.

For those reasons, I recommend a Billing Address section with a pre-checked box and the following label: Use my personal address as my billing address. Unchecking the box reveals separate billing address fields. This is a pattern I've seen in use in other e-commerce applications.

The question then becomes where to save the address info. Seems to me if we are going to start saving addresses for unregistered users in the wp_give_customermeta table, then we should keep all donor addresses there instead of splitting them between wp_usermeta and wp_give_customermeta. A migration function could address backwards compatibility by migrating addresses in wp_usermeta to wp_give_customermeta when Give is updated.

@DevinWalker
Copy link
Member

@kevinwhoffman that's nearly exactly what I'm thinking we do. The CC billing address is currently stored in _give_payment_meta attached to the transaction. Which is fine because the payment

Here's my rundown of the line items:

  • Add global option to "Collect Donor's Address" under Settings > Display Options
  • Add per form option radio enable/disable under "Display Options" for collecting donor address
  • Create a checkbox that clarifies that the personal address will be used as the billing address by default.
  • Develop migration routine for moving the donor's addresses in wp_usermeta to wp_give_customermeta table
  • The [give_profile] shortcode will need some retooling to account for the address updates:
    screen shot 2016-10-18 at 10 35 07 am

Notice how it has the "Change Your Billing Address" which pulls from wp_usermeta. This will need to change to pull from wp_give_customermeta.

Final note: because of the UI significance of this and the major admin UI shifts we are making in release/1.8 I feel this issue is better suited being added to that milestone. Therefore, I'm going to bump the milestone to 1.8.

@DevinWalker DevinWalker modified the milestones: 1.6.3, 1.7, 1.8 Oct 18, 2016
@kevinwhoffman
Copy link
Contributor

@DevinWalker I agree with all of the above.

@DevinWalker DevinWalker modified the milestones: 1.9, 1.8 Dec 21, 2016
@Benunc
Copy link
Member

Benunc commented Feb 7, 2017

This is still causing headaches for folks trying to export donor info for creating tax reports.

@DevinWalker DevinWalker modified the milestones: 2.0, 1.9 Feb 13, 2017
@DevinWalker DevinWalker assigned ravinderk and unassigned DevinWalker May 10, 2017
@mathetos
Copy link
Member Author

More reports from users wanting to use the "Export Donors in CSV" tool and not seeing the address info there at all.
https://secure.helpscout.net/mailbox/f26ecd815eb729ba/672201/

As an interim solution the "Export Donor History" tool exports the addresses, but if a donor gave multiple times then it lists those duplicates, so the admin has to exclude duplicates from the CSV file in order to use for lists and whatnot.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants