Giter Site home page Giter Site logo

buddypress-give's Introduction

#BuddyPress Give

give-bp

BuddyPress Give is an extension created for CFCommunity.net: A Social Network for people affected by Cystic Fibrosis (read more here: http://igg.me/at/cfcommunity/x). With BuddyPress Give we want to make it as easy as possible to accept and integrate donations for your BuddyPress community through the GiveWP.com plugin

Requirements

Recommended Give add-ons

  • Recurring Payments
  • Stripe

Why do we need this plugin?

CFCommunity is dependant on donations of our users and to collect funding after the initial launch of our community, we needed a (recurring) donation system. GiveWP is the perfect fit.

Base Features

  • Add Public Donations to the activity stream
  • Add a badge to a user avatar when they are a recurring donator
  • Show the donations that have been made on a users profile (members/bowe/donations/)
  • Allow users to donate on behalf of someone else (including picture + message)
  • A custom member directory of active donators.

Exciting Ideas for the future

  • Allow individual groups to accept donations (with PayPal/Stripe split payments to the main account)
  • Allow Groups to collect donations together showing total donations collected from all group members
  • Allow super quick micro donations in Multisite networks (showing donate buttons on blogs in the network)

buddypress-give's People

Contributors

bowefrankema avatar henrywright avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

buddypress-give's Issues

Add Donation Badges to user avatars

Allow an admin to set donation badges for different donation types and show those badges on top of the user his avatar.

screenshot 2015-04-10 11 17 06

screenshot 2015-04-10 11 18 50

Implementation

The BuddyVerfied (https://github.com/CFCommunity-net/BuddyVerified) plugin has a solid system in place to add the badges to members. We could replicate this functionality mostly to filter the avatars.

Assigning Badges

I think it would make sense to add an small upload field extending the CMB2 framework Give uses and adding it to the Donation Type fields.

badges

Allow a user to donate on behalf of another member (or group?)

Now this is an interesting one.. But I can imagine scenarios where someone wants to donate on behalf of someone else without needing to login as that user. In this case we would have to have some system in place where we would need to ask for some additional information.

I have no idea how this would work but it probably make sense to add this to the donation check out.

  1. During the donations check out process they would tick a box
    "This donation is on behalf of someone else"
  2. A dropdown appears asking
    "I want to donate on behalf of a member of CFCommunity"
    "I want to donate on behalf of a group of CFCommunity"
    "I want to donate on behalf of someone else.."
  3. When a user selects the Group or Member option they get a ajax Member search (similar to InviteAnyone plugin) where they type the name of the member. Once they have found the member they select the correct member/groups
  4. Once the donation is finished the donation is recorded in the database as belonging to that user.

Potential Problems

  1. Should we send out an email notification to the user that someone donated on there behalf? Should we add a way for that user to distance himself of the donation (I don't know if this could/would be abused in any way)
  2. Should we show the donation receipt in the dashboard of that user?
  3. How would this work in combination with the shortcodes described in #3? Would this massively complicate outputting a loop of donators?
  4. Any other concerns related to this?

Using shortcodes to show members who have donated

I'm not sure if the guys at Give have planned this feature already, but it would be cool to think how we could easily create a page that would output people who have donated.

I've put a little bit of thought into this and I think the most flexible solution would be using a shortcode. Looking at how Give does things they might have a similar solution planned for non-BuddyPress communities to show donations.

But because we use BuddyPress we could something like

[give_bp_donations donation_type="recurring_sponsor"]

This would output a Member loop of all those who have donated as a recurring sponsor. By default this loop should be bare bones with just the avatar.

Shortcode Parameters Ideas

Some additional custom parameters we can add to make this super flexible

type

Some style variations like "list" "card" "directory". This is just to open up the way for custom templates in the future.

show_avatar

Show an avatar yes or no.

donation_amount

Show the donation amount (in case of custom donation amounts)

donation_message

Show the message attached to the donation (if added through a Give custom field)

profile_fields

Show xprofile fields from the user his BuddyPress profile (Name, Location, Age etc etc)

sort_order

Sort by alphabet, date or donation amount.

css_class

Add a custom CSS class to the div container

exclude

Hide certain users

include

A custom loop of users based on user name/ID.

I'm sure there are others I forgot about!

Shortcake Integration

In a perfect world we would look into integrating the shortcodes with ShortCake http://next.fusion.net/tag/shortcode-ui/

@mathetos, @Mamaduka & @mathetos any ideas?

Add an activity stream item when a user has donated

It would be something like in the example below

screenshot 2015-04-10 11 08 10

Admin settings

Default update text
If there is no custom donation message attached let the admin specify a default message that gets added as an update

Visibility
Will the donation be shown to all members of the site or only to the friends of the person who donated?

Show Hide/Donation Amount
Do you want to show the donation amount made by the user?

That's it for now!

Create a Leaderboard of Top Donations

This is a hall of fame widget or shortcode listing the top donators from across your site.

Options

  • Amount of users to display
  • Show total donation amount

Add the donation dashboard to the user profile

We should integrate the dashboard into a users profile if they have an account. I've done this before for EDD and I did the following

  1. Create a new BP profile screen + BP nav item

  2. Output the shortcode for the dashboard directly into the new member screen template like this:

            <?php
                echo do_shortcode('[purchase_history]');
        ?>
    
  3. Do a template redirect on the page that is used for the shortcode like shown here:
    https://gist.github.com/BoweFrankema/9f9b34235a1f43e3df88

Full snippet can be seen here;

https://gist.github.com/BoweFrankema/685d5a52ef98a29cdc6a#file-edd-buddypress-purchase-php

This worked for me, but I'm sure it can be improved. Especially retrieving the "Donation Dashboard" page without hardcoding the slug!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.