=== Minimal Stripe Wrapper ===
Contributors: jerrystewart99
Tags: stripe, membership, credit card, payment, donation
Tested up to: 6.9
Stable tag: 1.1.8
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Minimal Stripe Wrapper (MSW) – Simple, Secure, and Lightweight Stripe Integration for WordPress


== Description ==

Minimal Stripe Wrapper (MSW) is a lightweight and secure WordPress plugin designed to streamline Stripe payments with minimal setup and maximum flexibility. Unlike complex, feature-heavy payment plugins, MSW provides a low-footprint solution that leverages Stripe Checkout, ensuring the highest level of security while keeping your site’s payment workflow simple and efficient.

Please visit the full [Plugin Documentation](https://plugins.webworkz.nz) page.

= Features =

* Single payments via Stripe-hosted Checkout

* No card or payment information are stored locally.

* Can use Stripe Test mode for sandbox testing.

* Can automatically add a surcharge to cover the Stripe transaction fee.

* Will work with either logged in users (eg. a membership site) or not logged in users (eg. a donation)

* Includes a shortcode Donate Form with variable amount.

* Downloadable transactions history in the WP dashboard for tracking and cross-referencing transactions.

= Security =

* Uses Stripe-hosted forms. No card data touches your server.

* Rate-limiting for extra protection.

* Stripe secret keys are stored encrypted.

* Uses the Wordpress REST API with corresponding validation checks in addition to Stripe validation.


== External services ==

This plugin connects to the Stripe API in order to initiate a Stripe Checkout session and to receive a Webhook response.

You may specify what information is supplied to Stripe. 

The minimum information you must supply is the payment amount.

You may optionally include a Users email, product name and quantity.

Where an email is not supplied, Stripe will require the user to enter an email.

See also the [Stripe Consumer Terms of Service](https://stripe.com/legal/consumer) and the [Stripe Privacy Policy](https://stripe.com/privacy)


== How it Works ==

You can initiate a Stripe payment with any of these methods:

1. The Gutenberg block element 'Minimal Stripe Button'
2. By using any clickable element of your choice (eg. a <button\> or <a\>) 
3. By using the shortcode-generated button.
4. By using an action hook. 
5. By using the shortcode-generated donate-form.


= Method 1: A Gutenberg block element =

Add to your page using the Wordpress block editor.


= Method 2: Use an existing clickable element =

Add a css class to any clickable target element.
eg. Use the page builder of your choice (eg. A Divi Button).

`class="mswr-stripe-payment"`

Then add a filter hook to enter/modify your specific payment details. 

For example:

`add_filter( 'mswr_pre_stripe_checkout', function( $args ) {`
``
`  // add payment details`
`  $args[ 'amount' ] = $amount;		        // use the smallest unit of your currency. ie. $123.45 => '12345'`
`  $args[ 'currency' ] = 'nzd';		        // iso 4217 currency code`
`  $args[ 'email' ] = abc@test.com;			// eg. wp_get_current_user()->user_email;`
`  $args[ 'product' ] = 'Your Product/Service name';`	// will appear on the Stripe Checkput page
`  $args[ 'user_meta' ] = 'Membership Renewal';`	// user-defined tag that can help identify a transaction in the Stripe webhook callback
``
`  return $args;`
`});`


= Method 3: Using a shortcode-generated button =

This method requires no php code. You can however, optionally add a php hook (as above) to modify the Stripe parameters and to perform extra actions on the Stripe webhook callback.

Example shortcode:

`[mswr_stripe_button amount="1234" currency="usd" email="abc@test.com" product="Sample Product" quantity="2"  success_url="/payment_success" cancelled_url="/payment_cancelled"]`



= Method 4: WP hook =

A developer method.
Use PHP from your code to fire a Wordpress 'action' which initiates a Stripe Checkout session with the specified Stripe arguments 

Action hook: `mswr_initiate_stripe_payment`

Example:

`$args = [ 'amount' => '12345' ];`
`add_action( 'mswr_initiate_stripe_payment', $args );`
...

== Hooks available in Minimal Stripe Wrapper ==

`1. mswr_initiate_stripe_payment`
`2. mswr_pre_stripe_checkout`
`3. mswr_{\$type}`
`4. mswr_shortcode_html`

= Method 5: Donate Form =

Shortcode generated Donate Form where the user can select the amount to pay.


See the [Plugin Documentation](https://plugins.webworkz.nz) for a full description



== Installation ==

Minimal Stripe Wrapper just as you would any other WP Plugin:

1. [Download Minimal Stripe Wrapper](https://wordpress.org/plugins/minimal-stripe-wrapper "Minimal Stripe Wrapper") from WordPress.org.

2. Unzip the .zip file.

3. Upload the Plugin folder (minimal-stripe-wrapper/) to the wp-content/plugins folder.

4. Go to [Plugins Admin Panel](https://codex.wordpress.org/Administration_Panels#Plugins "Plugins Admin Panel") and find the newly uploaded Plugin, "Minimal Stripe Wrapper" in the list.

5. Click Activate Plugin to activate it.




== Frequently Asked Questions ==


= How do I use this plugin? =
 
* Install and activate
* Setup the pluing settings page
* Choose your scenario and implement it as described
* See also the [Plugin Documentation](https://plugins.webworkz.nz)
 

= How to uninstall the plugin? =
 
Simply deactivate and delete the plugin. It will clean up nicely and leave no trace.
* WARNING Deleting the plugin will also delete your Stripe keys and all data associated with this plugin.


== Screenshots ==

1. Minimal Stripe Wrapper : Options page
2. Example of a Button to invoke Minimal Stripe Wrapper
3. Example of the Stripe Checkout page
4. Transaction Log Admin Page
5. Donate Form
6. Gutenberg Block Minimal Stripe Button

== Changelog ==

= 1.1.8 =
Added DB upgrader to facilitate a schema change in mswr_transactions table: Change user_meta from varchar(255) to TEXT.
Tabulate Settings page to permit inclusion of further gateways. (This to accomodate the meta-poli-payments plugin for POLi Payments -- NZ banking only)
Minor changes for code robustness

= 1.1.7 =
Changed mswr_initiate_stripe_payment from a filter to an action to align with WordPress hook semantics. If you were using add_filter() on this hook, please update to add_action().
Add support for Meta-Membership (yet to be released) plugin

= 1.1.6 =
Add Gutenberg block for button

= 1.1.5 =
Add click-to-copy link for Stripe endpoint
fix: donate form redirection, js console error

= 1.1.4 =
added transactions csv download
bugfix identifying client IP

= 1.1.3 =
added Donate Form shortcode
bugfix on rate limiter

= 1.1.2 =
bugfix: mswr_initiate_stripe_payment is now a filter not an action in order to return the checkout URL

= 1.1.1 =
small fix to readme.txt

= 1.1.0 =
add transactions log and system log pages to dashboard

= 1.0 =
Inital Release

== Upgrade Notice ==
.