[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fzyjr1MW4P_GZ0nyFNe0aOL688Mw_uPQkC7EVrzJmb60":3},{"slug":4,"display_name":4,"profile_url":5,"plugin_count":6,"total_installs":7,"avg_security_score":8,"avg_patch_time_days":9,"trust_score":10,"computed_at":11,"plugins":12},"smjrifle","https:\u002F\u002Fprofiles.wordpress.org\u002Fsmjrifle\u002F",3,10,93,30,89,"2026-08-29T15:00:16.881Z",[13,31,48],{"slug":14,"name":15,"version":16,"author":4,"author_profile":5,"description":17,"short_description":18,"active_installs":7,"downloaded":19,"rating":20,"num_ratings":20,"last_updated":21,"tested_up_to":22,"requires_at_least":23,"requires_php":24,"tags":25,"homepage":26,"download_link":27,"security_score":28,"vuln_count":20,"unpatched_count":20,"last_vuln_date":29,"fetched_at":30},"smjrifle-qr-payments","Smjrifle QR Payments","1.0.2","\u003Cp>Smjrifle QR Payments for WooCommerce is a lightweight manual QR gateway built for stores that want zero commission and full control.\u003C\u002Fp>\n\u003Cp>Customers scan your QR code using their banking app, complete the transfer, and upload the receipt directly on the checkout page. Orders are placed on hold until you verify payment.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Important Note on Dynamic QR:\u003C\u002Fstrong>\u003Cbr \u002F>\nThe “Dynamic Merchant QR” mode requires an official Merchant QR string (EMV format). It will \u003Cstrong>not\u003C\u002Fstrong> work with generic “Personal” QR codes from standard banking apps. For personal accounts, please use the “Static Image” mode to upload your account’s QR screenshot.\u003C\u002Fp>\n\u003Cp>No third-party processors. No API dependency. No transaction fees.\u003C\u002Fp>\n\u003Cp>Built and maintained by Shailesh Man Joshi (smjrifle).\u003Cbr \u002F>\nSupport and updates: https:\u002F\u002Fsmjrifle.net\u002F\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Static QR image upload or Dynamic Merchant QR generation\u003C\u002Fli>\n\u003Cli>Inline checkout flow without redirects\u003C\u002Fli>\n\u003Cli>Optional bank transfer details display\u003C\u002Fli>\n\u003Cli>Drag and drop receipt upload\u003C\u002Fli>\n\u003Cli>Secure AJAX upload with nonce validation\u003C\u002Fli>\n\u003Cli>Place Order locked until receipt is uploaded (classic checkout)\u003C\u002Fli>\n\u003Cli>Receipt preview inside WooCommerce admin\u003C\u002Fli>\n\u003Cli>Orders set to On Hold for manual verification\u003C\u002Fli>\n\u003Cli>Zero commission payments\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>How It Works\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Customer selects QR Payment at checkout.\u003C\u002Fli>\n\u003Cli>QR code is displayed with payment instructions.\u003C\u002Fli>\n\u003Cli>Customer completes payment in their banking app.\u003C\u002Fli>\n\u003Cli>Customer uploads receipt.\u003C\u002Fli>\n\u003Cli>Order is placed on hold.\u003C\u002Fli>\n\u003Cli>Admin verifies and updates order status.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Dynamic QR Requirements:\u003C\u002Fstrong>\u003Cbr \u002F>\n* This mode requires a \u003Cstrong>Merchant Account\u003C\u002Fstrong> QR code.\u003Cbr \u002F>\n* To set up: Scan your merchant board with a generic scanner (like Google Lens).\u003Cbr \u002F>\n* Copy the full raw text (Format: \u003Ccode>00020101021226...\u003C\u002Fcode>).\u003Cbr \u002F>\n* Paste it into the plugin settings.\u003Cbr \u002F>\n* If your QR text does not start with \u003Ccode>000201\u003C\u002Fcode>, it is likely a personal QR and you should use \u003Cstrong>Static Image Mode\u003C\u002Fstrong> instead.\u003C\u002Fp>\n","Accept QR payments in WooCommerce. Customers scan, pay, and upload receipt for manual verification.",446,0,"2026-03-28T12:11:00.000Z","6.9.5","5.6","7.4",[],"","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsmjrifle-qr-payments.1.0.2.zip",100,null,"2026-07-22T17:31:50.256Z",{"slug":32,"name":33,"version":34,"author":4,"author_profile":5,"description":35,"short_description":36,"active_installs":20,"downloaded":37,"rating":20,"num_ratings":20,"last_updated":38,"tested_up_to":39,"requires_at_least":23,"requires_php":24,"tags":40,"homepage":26,"download_link":46,"security_score":28,"vuln_count":20,"unpatched_count":20,"last_vuln_date":29,"fetched_at":47},"smjrifle-interactive-maps","Smjrifle Interactive Maps with Google Maps and Leaflet","1.0.0","\u003Cp>Smjrifle Interactive Maps with Google Maps and Leaflet brings powerful, customizable mapping functionality to WordPress with:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Dual Engine Support\u003C\u002Fstrong>: Google Maps or Leaflet (OpenStreetMap) fallback\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Marker Clustering\u003C\u002Fstrong>: Group nearby markers at lower zoom levels\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom Markers\u003C\u002Fstrong>: Use your own marker icons per location\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Snazzy Maps\u003C\u002Fstrong>: 8+ preset map styles + custom JSON support\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Location Search\u003C\u002Fstrong>: Built-in Autocomplete and Geocoding\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Location Cards\u003C\u002Fstrong>: Display list of locations with grid layout\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Popups\u003C\u002Fstrong>: Rich HTML popups with images, descriptions, and links\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Lazy Loading\u003C\u002Fstrong>: Intersection Observer for performance\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shortcode\u003C\u002Fstrong>: [smjrgoma_map id=”123″] for easy embeds\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Per-Map Settings\u003C\u002Fstrong>: Zoom, type, center, height, colors individually\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Getting Started\u003C\u002Fh3>\n\u003Col>\n\u003Cli>\u003Cstrong>Create a Map Post\u003C\u002Fstrong>: Go to WordPress admin > Smjrifle Interactive Maps with Google Maps and Leaflet > Add New Map\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Search & Add Locations\u003C\u002Fstrong>: Use the search bar or click the map to place pins\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Configure\u003C\u002Fstrong>: Set zoom, map type, height, colors in the Settings tab\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Style\u003C\u002Fstrong>: Apply Snazzy Maps presets or custom JSON in the Style tab\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Publish\u003C\u002Fstrong>: Save the map and get your shortcode\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Embed\u003C\u002Fstrong>: Use [smjrgoma_map id=”123″] on any page\u002Fpost\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Admin Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Map Editor\u003C\u002Fstrong>: Visual map for editing pins with drag-and-drop\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Location Manager\u003C\u002Fstrong>: Edit title, image, description, and settings per marker\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Auto Geocoding\u003C\u002Fstrong>: Click map to auto-fill address via Geocoding API\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Location Search\u003C\u002Fstrong>: Autocomplete search to add locations instantly\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Snazzy Styles\u003C\u002Fstrong>: Preset styles + custom JSON support\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Global Settings\u003C\u002Fstrong>: Default marker icon, clustering, scroll behavior, lazy loading\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Frontend Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Responsive Maps\u003C\u002Fstrong>: Mobile-friendly with touch support\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Location Cards\u003C\u002Fstrong>: Grid display of all locations with images\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Interactive\u003C\u002Fstrong>: Click card to pan\u002Fzoom map and open popup\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Lazy Loading\u003C\u002Fstrong>: Maps load only when visible (default on)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Clustering\u003C\u002Fstrong>: Markers group into clusters until you zoom in\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Popup Rich Content\u003C\u002Fstrong>: Images, descriptions, links in marker popups\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Fallback Engine\u003C\u002Fstrong>: Auto-switches to Leaflet if Google API unavailable\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>API Requirements\u003C\u002Fh3>\n\u003Cp>To use Google Maps, you need a Google API key with these APIs enabled:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Google Maps JavaScript API\u003C\u002Fli>\n\u003Cli>Places API (for location search)\u003C\u002Fli>\n\u003Cli>Geocoding API (for address lookup)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Leaflet fallback requires no API key and uses OpenStreetMap tiles.\u003C\u002Fp>\n\u003Ch3>External Services\u003C\u002Fh3>\n\u003Cp>This plugin uses external services to provide map functionality.\u003C\u002Fp>\n\u003Cp>Google Maps JavaScript API\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Used when a Google Maps API key is provided\u003C\u002Fli>\n\u003Cli>Loads scripts and map data from: https:\u002F\u002Fmaps.googleapis.com\u002F\u003C\u002Fli>\n\u003Cli>Used for rendering maps, markers, clustering, autocomplete search, and geocoding\u003C\u002Fli>\n\u003Cli>Data sent: User-entered location queries (for search\u002Fgeocoding)\u003C\u002Fli>\n\u003Cli>Privacy Policy: https:\u002F\u002Fpolicies.google.com\u002Fprivacy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>OpenStreetMap (Leaflet fallback)\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Used when no Google Maps API key is provided\u003C\u002Fli>\n\u003Cli>Map tiles are loaded from OpenStreetMap servers\u003C\u002Fli>\n\u003Cli>Used for rendering maps and markers\u003C\u002Fli>\n\u003Cli>Data sent: Map tile requests based on user viewport\u003C\u002Fli>\n\u003Cli>Privacy Policy: https:\u002F\u002Fwiki.osmfoundation.org\u002Fwiki\u002FPrivacy_Policy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Security\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Nonce Verification\u003C\u002Fstrong>: All AJAX requests validated\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Capability Checks\u003C\u002Fstrong>: Only authorized users can manage maps\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Input Sanitization\u003C\u002Fstrong>: All user input sanitized per WordPress standards\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Output Escaping\u003C\u002Fstrong>: All output properly escaped (\u003Ccode>esc_html\u003C\u002Fcode>, \u003Ccode>esc_attr\u003C\u002Fcode>, \u003Ccode>esc_url\u003C\u002Fcode>, \u003Ccode>wp_kses_post\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Database Safety\u003C\u002Fstrong>: Uses WordPress APIs for data storage\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Settings\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Map Engine\u003C\u002Fstrong>: Auto (Google if API key, else Leaflet), Google, or Leaflet\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Marker Icon\u003C\u002Fstrong>: Global default marker PNG\u002FSVG URL\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Clustering\u003C\u002Fstrong>: Toggle marker clustering globally\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Cluster Style\u003C\u002Fstrong>: Default, Modern, or Minimal (Google Maps)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Scroll Zoom\u003C\u002Fstrong>: Enable\u002Fdisable scroll wheel zoom\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Lazy Loading\u003C\u002Fstrong>: Load maps only when visible\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Shortcode\u003C\u002Fh3>\n\u003Cpre>\u003Ccode>[smjrgoma_map id=\"123\" height=\"500\" zoom=\"14\" class=\"custom-class\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cul>\n\u003Cli>\u003Cstrong>id\u003C\u002Fstrong> (required): Post ID of the map\u003C\u002Fli>\n\u003Cli>\u003Cstrong>height\u003C\u002Fstrong> (optional): Map height in pixels (default: post setting)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>zoom\u003C\u002Fstrong> (optional): Default zoom level (default: post setting)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>class\u003C\u002Fstrong> (optional): CSS class for wrapper div\u003C\u002Fli>\n\u003C\u002Ful>\n","A flexible Google Maps plugin with clustering, custom markers, Snazzy Maps styling, and Leaflet fallback.",32,"2026-04-13T18:38:00.000Z","6.9.4",[41,42,43,44,45],"google-maps","leaflet","maps","markers","shortcode","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsmjrifle-interactive-maps.1.0.0.zip","2026-04-16T10:56:18.058Z",{"slug":49,"name":50,"version":51,"author":4,"author_profile":5,"description":52,"short_description":53,"active_installs":20,"downloaded":54,"rating":20,"num_ratings":20,"last_updated":55,"tested_up_to":22,"requires_at_least":56,"requires_php":57,"tags":58,"homepage":63,"download_link":64,"security_score":65,"vuln_count":66,"unpatched_count":66,"last_vuln_date":67,"fetched_at":30},"svg-map-by-saedi","SVG Map by Smjrifle","1.0.3","\u003Cp>SVG Map by Smjrifle allows you to display an interactive SVG map with clickable points.\u003C\u002Fp>\n\u003Cp>Administrators can select points from the map and assign popup descriptions that appear on hover.\u003C\u002Fp>\n\u003Cp>Originally developed under Saedi Works, this plugin is now independently maintained and actively improved by Smjrifle.\u003C\u002Fp>\n\u003Cp>Features include:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Interactive SVG map\u003C\u002Fli>\n\u003Cli>Clickable location points\u003C\u002Fli>\n\u003Cli>Admin-managed popup descriptions\u003C\u002Fli>\n\u003Cli>Popup descriptions on hover\u003C\u002Fli>\n\u003Cli>Shortcode integration\u003C\u002Fli>\n\u003Cli>Secure AJAX handling\u003C\u002Fli>\n\u003Cli>Security hardened architecture\u003C\u002Fli>\n\u003C\u002Ful>\n","Add an interactive SVG world map with selectable points and popup descriptions.",1405,"2026-04-04T04:13:00.000Z","5.8","8.0",[59,60,61,62],"interactive","locations","map","svg","https:\u002F\u002Fsmjrifle.net","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsvg-map-by-saedi.1.0.3.zip",78,1,"2026-01-06 19:40:29"]