/givewp

Democratizing Generosity - The best way to accept donations on WordPress

Primary LanguagePHPOtherNOASSERTION

GiveWP - The #1 WordPress Fundraising Plugin 💚

This plugin is the highest rated, most downloaded, and best supported donation plugin for WordPress. Built from the ground up for all your fundraising needs, GiveWP provides you with a powerful donation platform optimized for online giving that's both easy-to-use for beginners yet flexible for developers to craft their own unique giving experiences.


👉🏻 Not a developer? Running WordPress? Download GiveWP on WordPress.org.

WordPress version WordPress Rating WordPress Downloads Build Status Scrutinizer Code Quality License

Welcome to the GiveWP GitHub repository. This is the core repository and heart of ecosystem of active development. Here you can browse the source, look at open issues, and contribute to the project.

Many of our add-ons are in public repositories, however the majority are private. If you have a legitimate need for access, please reach out to us and we'll be happy to grant you access. As well, we recommend all developers follow the GiveWP development blog to stay up to date on the latest features and changes. Happy coding!

🙋 Support

This repository is not suitable for WordPress admin or donor support. Please don't use GitHub issues for non-development related support requests. Don't get us wrong, we're more than happy to help you! However, to get the support you need please use the following channels:

🌱 Getting Started

If you're looking to contribute or actively develop on GiveWP, welcome! We're glad you're here. Please ⭐️ this repository and fork it to begin local development.

Most of us are using Local by Flywheel to develop on WordPress, which makes set up quick and easy. If you prefer Docker, VVV, or another flavor of local development that's cool too!

✅ Prerequisites

  • Node.js as JavaScript engine
  • NPM npm command globally available in CLI
  • Composer composer command globally available in CLI

💻 Local Development

To get started developing on the GiveWP platform you will need to perform the following steps:

  1. Create a new WordPress site with give.test as the URL
  2. cd into your local plugins directory: /path/to/wp-content/plugins/
  3. Fork this this repository from GitHub and then clone that into your plugins directory in a new give directory
  4. Run composer install to set up dependencies
  5. Run npm install to get the necessary npm packages
  6. Activate the plugin in WordPress
  7. Run npm run dev to start the watch process which will build the sass and script files and live reload using Browsersync

That's it. You're now ready to start development.

Available commands

Command Description
npm run watch Live reloads JS and SASS files. Typically you'll run this command before you start development. It's necessary to build the JS/CSS however if you're working strictly within PHP it may not be necessary to run.
npm run dev Runs a one time build for development. No production files are created.
npm run production Builds the minified production files for release.
npm run test Run jest tests. Make sure that your docker container is running before running this command. Read more

Development Notes

  • Ensure that you have SCRIPT_DEBUG enabled within your wp-config.php file. Here's a good example of wp-config.php for debugging:
     // Enable WP_DEBUG mode
    define( 'WP_DEBUG', true );
    
    // Enable Debug logging to the /wp-content/debug.log file
    define( 'WP_DEBUG_LOG', true );
    
    // Loads unminified core files
    define( 'SCRIPT_DEBUG', true );
    
  • Commit the package.lock file. Read more about why here.
  • Your editor should recognize the .eslintrc and .editorconfig files within the Repo's root directory. Please only submit PRs following those coding style rulesets.
  • Read CONTRIBUTING.md - it contains more about contributing to GiveWP.