{"id":117822,"date":"2020-02-26T14:37:14","date_gmt":"2020-02-26T14:37:14","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ffl-api\/"},"modified":"2026-08-07T11:57:54","modified_gmt":"2026-08-07T11:57:54","slug":"ffl-api","status":"publish","type":"plugin","link":"https:\/\/ky.wordpress.org\/plugins\/ffl-api\/","author":8112103,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.6.5","stable_tag":"1.6.5","tested":"7.0.4","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"FFL API Integration for WooCommerce","header_author":"Optimum7","header_description":"FFL API Woocommerce plugin","assets_banners_color":"ffffff","last_updated":"2026-08-07 11:57:54","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/fflapi.com\/","header_author_uri":"https:\/\/www.optimum7.com\/","rating":0,"author_block_rating":0,"active_installs":10,"downloads":4202,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.5.9":{"tag":"1.5.9","author":"optimum7","date":"2023-02-24 09:26:02"},"1.6.2":{"tag":"1.6.2","author":"optimum7","date":"2025-12-15 12:32:32"},"1.6.3":{"tag":"1.6.3","author":"optimum7","date":"2025-12-15 12:53:37"},"1.6.4":{"tag":"1.6.4","author":"optimum7","date":"2026-08-03 18:41:35"},"1.6.5":{"tag":"1.6.5","author":"optimum7","date":"2026-08-07 11:57:54"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":2250790,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-128x128.png":{"filename":"icon-128x128.png","revision":2870493,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":2250790,"resolution":"256x256","location":"assets","locale":"","width":250,"height":250},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2870493,"resolution":"256x256","location":"assets","locale":"","width":250,"height":250},"icon.svg":{"filename":"icon.svg","revision":2870504,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500-rtl.jpg":{"filename":"banner-1544x500-rtl.jpg","revision":2250790,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":2250790,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250-rtl.jpg":{"filename":"banner-772x250-rtl.jpg","revision":2250790,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":2250790,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.5.9","1.6.2","1.6.3","1.6.4","1.6.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":2250790,"resolution":"1","location":"assets","locale":"","width":1731,"height":664},"screenshot-2.png":{"filename":"screenshot-2.png","revision":2250790,"resolution":"2","location":"assets","locale":"","width":1425,"height":360},"screenshot-3.png":{"filename":"screenshot-3.png","revision":2250790,"resolution":"3","location":"assets","locale":"","width":1756,"height":448},"screenshot-4.png":{"filename":"screenshot-4.png","revision":2250796,"resolution":"4","location":"assets","locale":"","width":475,"height":1166}},"screenshots":{"1":"Plugin settings page","2":"Assigning products as firearms","3":"Bulk product management","4":"FFL dealer search by ZIP code"}},"plugin_section":[],"plugin_tags":[182389,198681,252263,286],"plugin_category":[45],"plugin_contributors":[83654],"plugin_business_model":[],"class_list":["post-117822","plugin","type-plugin","status-publish","hentry","plugin_tags-ffl","plugin_tags-firearms","plugin_tags-gun-dealers","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-optimum7","plugin_committers-optimum7"],"banners":{"banner":"https:\/\/ps.w.org\/ffl-api\/assets\/banner-772x250.jpg?rev=2250790","banner_2x":"https:\/\/ps.w.org\/ffl-api\/assets\/banner-1544x500.jpg?rev=2250790","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/ffl-api\/assets\/icon.svg?rev=2870504","icon":"https:\/\/ps.w.org\/ffl-api\/assets\/icon.svg?rev=2870504","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ffl-api\/assets\/screenshot-1.png?rev=2250790","caption":"Plugin settings page"},{"src":"https:\/\/ps.w.org\/ffl-api\/assets\/screenshot-2.png?rev=2250790","caption":"Assigning products as firearms"},{"src":"https:\/\/ps.w.org\/ffl-api\/assets\/screenshot-3.png?rev=2250790","caption":"Bulk product management"},{"src":"https:\/\/ps.w.org\/ffl-api\/assets\/screenshot-4.png?rev=2250796","caption":"FFL dealer search by ZIP code"}],"raw_content":"<!--section=description-->\n<p>FFL API Integration for WooCommerce is designed for WooCommerce-powered online stores that sell firearm-related products requiring shipment to licensed FFL dealers.<\/p>\n\n<p>The plugin integrates with the FFL API service to allow customers to select a licensed dealer during checkout. This helps store owners clearly separate FFL and non-FFL products and guide customers through the appropriate checkout flow.<\/p>\n\n<p>This plugin requires an active WooCommerce installation and valid API credentials from FFL API.<\/p>\n\n<h3>Shop Owners<\/h3>\n\n<p>Online shop owners selling regulated firearm products often need a clear and structured checkout experience that supports FFL dealer selection.<\/p>\n\n<p>This plugin provides tools to:\n- Identify firearm products\n- Display FFL dealer selection during checkout\n- Manage dealer-related shipment details within WooCommerce<\/p>\n\n<h3>Customers Purchasing FFL Products<\/h3>\n\n<p>Customers purchasing firearm products can search for nearby licensed FFL dealers by ZIP code during checkout and select a dealer before completing their order.<\/p>\n\n<p>The selected dealer\u2019s information is displayed clearly to help avoid confusion during fulfillment.<\/p>\n\n<h3>Features<\/h3>\n\n<h4>Checkout Integration<\/h4>\n\n<p>Displays an FFL dealer search field on the WooCommerce checkout page when firearm products are present in the cart.<\/p>\n\n<h4>Firearm Product Identification<\/h4>\n\n<p>Allows store administrators to mark products as firearm or non-firearm.<\/p>\n\n<h4>Bulk Product Updates<\/h4>\n\n<p>Provides bulk actions in the admin panel to update firearm status for multiple products.<\/p>\n\n<h4>FFL Dealer Map<\/h4>\n\n<p>Displays nearby licensed FFL dealers based on customer ZIP code using Google Maps.<\/p>\n\n<h4>Dealer Search by ZIP Code<\/h4>\n\n<p>Customers can search for FFL dealers within a defined radius and select one during checkout.<\/p>\n\n<h4>Automatic Updates<\/h4>\n\n<p>The plugin supports WordPress automatic update notifications.<\/p>\n\n<h4>Color Customization<\/h4>\n\n<p>Admin users can adjust basic color settings for the FFL dealer list display.<\/p>\n\n<h4>Flexible Placement<\/h4>\n\n<p>The FFL dealer selection area can be positioned in different locations on the checkout page:\n* Order Review\n* Above Billing Form\n* Below Billing Form\n* Above Shipping Form\n* Below Shipping Form<\/p>\n\n<h3>Demo<\/h3>\n\n<p>You can view a demo of the plugin functionality here:\n<a href=\"https:\/\/wpdemo.fflapi.com\/\">FFL API Demo<\/a><\/p>\n\n<h3>Assigning a Product as Firearm<\/h3>\n\n<ol>\n<li>Go to Products &gt; All Products<\/li>\n<li>Edit a product<\/li>\n<li>Locate the firearm option in Product Data<\/li>\n<li>Enable the firearm checkbox<\/li>\n<li>Update the product<\/li>\n<\/ol>\n\n<h3>How FFL Dealer Search Works<\/h3>\n\n<ol>\n<li>Add a firearm product to the cart<\/li>\n<li>Proceed to checkout<\/li>\n<li>Enter ZIP code in the FFL dealer search field<\/li>\n<li>Select a dealer from the map or list<\/li>\n<li>Complete checkout<\/li>\n<\/ol>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the third-party FFL API service (https:\/\/fflapi.com) to retrieve licensed FFL dealer data and loads the dealer selection widget script from https:\/\/app.fflapi.com\/sdk\/woo-widget-v2.js during WooCommerce checkout. The customer's ZIP code and selected dealer information are sent to the FFL API service to display nearby dealers. Service terms and privacy: https:\/\/fflapi.com\/<\/p>\n\n<p>The dealer map is powered by the Google Maps Platform (https:\/\/developers.google.com\/maps) using the API key you configure. Map\/location queries are sent to Google. Terms: https:\/\/cloud.google.com\/maps-platform\/terms\/ - Privacy: https:\/\/policies.google.com\/privacy<\/p>\n\n<!--section=installation-->\n<h4>Minimum Requirements<\/h4>\n\n<ul>\n<li>WordPress 5.0 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<li>MySQL 5.x<\/li>\n<li>WooCommerce plugin<\/li>\n<\/ul>\n\n<h4>API Requirements<\/h4>\n\n<p>To use this plugin, you need:\n1. An FFL API key from https:\/\/app.fflapi.com\/register\n2. A Google Maps API key from https:\/\/developers.google.com\/maps\/documentation\/maps-static\/get-api-key<\/p>\n\n<h4>Installation Steps<\/h4>\n\n<ol>\n<li>Upload the plugin ZIP file via Plugins &gt; Add New &gt; Upload Plugin<\/li>\n<li>Activate the plugin<\/li>\n<li>Navigate to the \"FFL API\" menu in the WordPress admin<\/li>\n<li>Enter your API keys and configuration settings<\/li>\n<li>Save changes<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20use%20the%20same%20api%20key%20for%20multiple%20websites%3F\"><h3>Can I use the same API key for multiple websites?<\/h3><\/dt>\n<dd><p>No. Each website requires a separate API key.<\/p><\/dd>\n<dt id=\"do%20unused%20api%20requests%20roll%20over%20to%20the%20next%20month%3F\"><h3>Do unused API requests roll over to the next month?<\/h3><\/dt>\n<dd><p>No. API request limits reset with each billing cycle.<\/p><\/dd>\n<dt id=\"can%20customers%20search%20dealers%20by%20address%20or%20zip%20code%3F\"><h3>Can customers search dealers by address or ZIP code?<\/h3><\/dt>\n<dd><p>Yes. Customers can search for licensed FFL dealers using ZIP code information.<\/p><\/dd>\n<dt id=\"how%20is%20dealer%20license%20information%20maintained%3F\"><h3>How is dealer license information maintained?<\/h3><\/dt>\n<dd><p>FFL dealer data is updated through the FFL API service.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.6.5<\/h4>\n\n<ul>\n<li>Declared license is now GPLv2 or later in both the readme and the plugin headers, matching the bundled LICENSE.txt<\/li>\n<li>Removed an unused bundled JavaScript file that had no human-readable source<\/li>\n<li>The checkout hook stored in the settings is validated against the list of hooks offered in the settings screen<\/li>\n<li>Escaped admin notices, image URLs and select options on output<\/li>\n<li>Fixed the Plugin URI and Author URI headers<\/li>\n<\/ul>\n\n<h4>1.6.4<\/h4>\n\n<ul>\n<li>Renamed plugin display name in the plugin headers to match the directory listing<\/li>\n<li>Hardened checkout map initialization: values are JSON-encoded and printed via wp_print_inline_script_tag()<\/li>\n<li>Added ABSPATH guards to all plugin files<\/li>\n<li>Documented external services (FFL API, Google Maps Platform) in the readme<\/li>\n<li>Tested up to WordPress 7.0<\/li>\n<\/ul>\n\n<h4>1.6.3<\/h4>\n\n<ul>\n<li>Documentation and packaging fixes<\/li>\n<\/ul>\n\n<h4>1.6.2<\/h4>\n\n<ul>\n<li>Plugin name and documentation updates to comply with WordPress.org guidelines<\/li>\n<li>Internationalization improvements<\/li>\n<li>Settings sanitization enhancements<\/li>\n<\/ul>\n\n<h4>1.6.1<\/h4>\n\n<ul>\n<li>Compatibility update for WooCommerce HPOS<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Admin panel input hint improvements<\/li>\n<\/ul>\n\n<h4>1.5.9<\/h4>\n\n<ul>\n<li>Added option to control FFL info pop-up visibility<\/li>\n<\/ul>\n\n<h4>1.5.8<\/h4>\n\n<ul>\n<li>Fixed FFL dealer map display issue<\/li>\n<\/ul>\n\n<h4>1.5.7<\/h4>\n\n<ul>\n<li>Fixed special character handling in Firearm Warning Message<\/li>\n<\/ul>\n\n<h4>1.5.6<\/h4>\n\n<ul>\n<li>Minor bug fixes and stability improvements<\/li>\n<\/ul>\n\n<h4>1.5.3<\/h4>\n\n<ul>\n<li>Added form clear notice<\/li>\n<\/ul>\n\n<h4>1.5.2<\/h4>\n\n<ul>\n<li>User interface fixes and minor improvements<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>Fixed shipping address issue for WooCommerce 3.9 and later<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Initial public release<\/li>\n<\/ul>","raw_excerpt":"FFL dealer selection for WooCommerce checkout.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/117822","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=117822"}],"author":[{"embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/optimum7"}],"wp:attachment":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=117822"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=117822"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=117822"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=117822"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=117822"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=117822"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}