=== GunTab Payment Gateway ===
Contributors: guntab
Tags: payments, checkout, ecommerce, firearms, guns, ammunition
Requires at least: 4.7
Tested up to: 6.9.4
Stable tag: 0.3.4
Requires PHP: 7.2
License: GPLv3 or later
URI: http://www.gnu.org/licenses/gpl-3.0.html

GunTab is "the PayPal for guns". This free plugin adds a "Pay with GunTab" button to your WooCommerce checkout page.

== Description ==

GunTab is the only transaction platform built for firearm and ammunition e-commerce. It enables you get paid safely and easily online. We even guarantee against chargebacks. Learn more at [GunTab.com](https://www.guntab.com).

== Installation ==

=== Activate the plugin in WordPress ===

1. Go to Plugins > Add New.
1. Search for "GunTab".
1. Select "Install Now".
1. After installation is complete, select "Activate".

=== Enable the plugin in WooCommerce ===

1. Go to WooCommerce > Settings > Payments.
1. Select to enable "GunTab Payments".
1. Select "Save changes".
1. After the page reloads, select to "Manage" GunTab Payments. Now you may set your preferences.

== Filters ==

Alter the invoice data before it gets sent to GunTab:

    use GunTab\Api\GunTab\Abstracts\Invoice;
    
    function guntabAlterInvoice(Invoice $invoice, \WC_Order $order) {
	    // Your code
	    return $invoice;
    }

    add_filter('guntab_alter_invoice', 'guntabAlterInvoice');

Alter the order status when the status must change due to a webhook request from GunTab:

    function getNewOrderStatus(string $suggestedStatus, \stdClass $jsonDataFromGunTab) {
	    // Your code
        return 'wc-complete'; // Choose a different WooCommerce order status based on $jsonDataFromGunTab->status
    }
    
    add_filter('guntab_get_new_order_status', 'getNewOrderStatus', 10, 2);

== Actions ==

Called when GunTab sends a request to your webhook endpoint. It runs after the plugin processes the request:

    function your_function_name(\WC_Order $order, \stdClass $postedJsonData) {
	    // Your code
    }
    
    add_action('guntab_on_webhook', 'your_function_name', 10, 2);

== Frequently Asked Questions ==

If you have any questions, please visit the [GunTab Help Center](https://www.guntab.com/help).

== Screenshots ==

1. Plugin Settings
2. WooCommerce Gateway Settings
3. Checkout Module

== Upgrade Notice ==

* Initial Release

== Changelog ==

* 0.3.4

Bugfix: Fix "Uncaught Error: Class "Dragon\Config" not found" in some installations.
Bugfix: Fix deprecation warnings about dynamic attributes.

* 0.3.3

Enhancement: Fix incorrect warning that "This plugin hasn’t been tested with the latest 3 major releases of WordPress".

* 0.3.2

Enhancement: Update "tested up to" version to WordPress 6.7.

* 0.3.1

Enhancement: Declare support for High-Performance Order Storage (HPOS).

* 0.3.0

Enhancement: Add support for marketplace websites.
Enhancement: Improve error message.

* 0.2.1

Bugfix: Fixed invalid path.


* 0.2.0

Enhancement: Add support for "block" checkout, so it is no longer necessary to "Switch to classic checkout" in WooCommerce 8.3+.

* 0.1.6

Enhancement: Error logging and error messages are now clearer and more robust, including new error logging for failed requests to the GunTab API.

* 0.1.5

Bugfix: Fatal error due to missing file when running on PHP8.  Example: "Failed opening required '...wp-content/plugins/guntab-payment-gateway/vendor/symfony/polyfill-mbstring/bootstrap80.php'"
Bugfix: "Add to Cart" button can lead to a 404 error page.
Bugfix: "Deprecated: Non-static method GunTab\GunTabPaymentGateway::quick_checkout_redirect() should not be called statically"

* 0.1.4

Bugfix: Remove more type hints in an attempt to be unofficially compatible with PHP 5.

* 0.1.3

Bugfix: Although this plugin officially requires PHP 7 or higher, we have removed type hints in an attempt to be unofficially compatible with PHP 5.

* 0.1.2

Bugfix: Two buttons appearing for quick checkout.
Bugfix: Settings content going outside container.
Eliminate warning about get_product_from_item().

* 0.1.1

Bugfix: "An active PHP session was detected".
Bugfix: Nullable property types.
Replace third-party framework dependency with self-managed version.

* 0.1.0

Initial beta version.
