=== Minimal Stripe Wrapper === Contributors: jerrystewart99 Tags: stripe, membership, credit card, payment, donation Tested up to: 7.0 Stable tag: 1.1.9 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 or ) 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.9 = Tested up to 7.0 * Bug fix: The mswr_transaction_complete action was being fired incorrectly for checkout.session.completed events due to $args['session_id'] being set before the completed subtype check, causing a spurious transaction update with status 'pending'. Fixed by moving the session_id assignment inside the non-completed branch only, so completed events leave $args unset as originally intended. = 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 == .