[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fpPOJ-JuEgw1JWmR7d50wtXMhLqqpqpgrv52zrvQt_RA":3,"$fu2qmufQ8hH6gt_2VfD_aUfYrAqsrZbRMJC_4eS5dD8c":534,"$fsRzWskMd8rxKtpeK0iDR8lmg8-haFzseTc5Vc8FaOCQ":538},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"discovery_status":31,"vulnerabilities":32,"developer":33,"crawl_stats":29,"alternatives":37,"analysis":102,"fingerprints":516},"withinweb-php-keycodes","Sell License Key Codes with WordPress PHP-KeyCodes","2.1.6","paulvgibbs","https:\u002F\u002Fprofiles.wordpress.org\u002Fpaulvgibbs\u002F","\u003Cp>This Plugin enables you to sell software license key codes, pin numbers, mobile phone key codes or similar codes, automatically when someone makes a PayPal purchase.\u003C\u002Fp>\n\u003Cp>The pin numbers are listed in the database one entry per line and when a purchase is made, PayPal sends an IPN notification to the plugin which then extracts the first pin number, sends it to the purchaser and then removes that pin number from the list.\u003C\u002Fp>\n\u003Cp>The email sent to the purchaser contains the pin number, and you should receive a copy of the email.\u003C\u002Fp>\n\u003Cp>The sales history listing also identifies which pin number has been sold to the purchaser.\u003C\u002Fp>\n\u003Cp>A local test system is included which allows you to test without connecting to PayPal.\u003C\u002Fp>\n\u003Cp>Setting a value in the Lower Limit entry box causes an email to be sent to the administrator when the minimum number of key codes has been reached.\u003C\u002Fp>\n\u003Ch3>Testing\u003C\u002Fh3>\n\u003Cp>The best way to test the application is to use a second live PayPal account as that tests the complete system.  You have to do this if you want to test live because PayPal does not allow you to purchase from your own account.\u003C\u002Fp>\n\u003Cp>To open a second PayPal account you need a second bank account which some people may find difficult but you will find it worth doing in the long run.\u003C\u002Fp>\n\u003Cp>You can also use the PayPal Sandbox for testing which requires you work in the developer enviromment \u003Cstrong>http:\u002F\u002Fdeveloper.paypal.com\u003C\u002Fstrong>.  Login into this using your normal PayPal account.\u003C\u002Fp>\n\u003Cp>In the developer environment, you can create as many test acoounts as you want, and then set the PHP-KeyCodes to the sandbox environment.  You also need to enter the sandbox email address into the “Settings” dsplay of PHP-KeyCodes.\u003C\u002Fp>\n\u003Cp>Local Test\u003C\u002Fp>\n\u003Cp>PHP-KeyCodes has a local test facility which will test all the set up and email details, but does not go through PayPal.\u003C\u002Fp>\n\u003Cp>Local test has to be enabled before it can be used by going to the “Settings” display and setting the “Do Local Test” check box.  Once you have finished your local tests, you should un-tick this box.\u003C\u002Fp>\n\u003Cp>The local test is useful if you don\\’t want to sepend time going in and out of PayPal.\u003C\u002Fp>\n\u003Cp>Logging\u003C\u002Fp>\n\u003Cp>Enable the debug log in the “Setting” section of PHP-KeyCodes.  This will create a file which details the IPN results and other messages to show the path through the application.\u003C\u002Fp>\n\u003Ch3>Trouble Shooting\u003C\u002Fh3>\n\u003Cp>If you have multiple email addresses in your PayPal account, make sure that the one you use in this application is your PRIMARY PayPal email address.\u003C\u002Fp>\n\u003Cp>If your emails are not getting to the customer, use SMTP.  There are a number of WordPress Plugins for this.\u003C\u002Fp>\n\u003Cp>Conflicts between Plugins can sometimes occur.  To test this, deactive suspect Plugins.\u003C\u002Fp>\n","Sell software license key codes or pin numbers automatically using PayPal.",10,2510,100,2,"2021-09-08T13:42:00.000Z","5.8.13","4.7.0","",[20,21,22,23,24],"key-codes","license-keys","pin-codes","sell-pin-codes","software-license-codes","http:\u002F\u002Fwww.withinweb.com\u002Fwordpresskeycodes\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwithinweb-php-keycodes.2.1.6.zip",85,0,null,"2026-04-06T09:54:40.288Z","no_bundle",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":14,"total_installs":34,"avg_security_score":27,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},30,84,"2026-05-19T19:59:37.870Z",[38,64,85],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":48,"num_ratings":49,"last_updated":50,"tested_up_to":51,"requires_at_least":18,"requires_php":52,"tags":53,"homepage":58,"download_link":59,"security_score":60,"vuln_count":61,"unpatched_count":28,"last_vuln_date":62,"fetched_at":63},"serial-codes-generator-and-validator","Serial Codes Generator and Validator with WooCommerce Support","2.9.3","Vollstart","https:\u002F\u002Fprofiles.wordpress.org\u002Fsasonikolov\u002F","\u003Cp>Manage your Serial Codes the easy way.\u003Cbr \u002F>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FDoNPvD3c6eM?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fyoutu.be\u002FDoNPvD3c6eM\" rel=\"nofollow ugc\">Video\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Allows you to manage codes (serial numbers) for your digital licensed products and physical products. Your user enters the code on your page and checks if the code is valid.\u003C\u002Fp>\n\u003Cp>Optional for you is the included support for Woocommerce products and WooCommerce PDF Invoices – generate your WooCommerce serial directly with a purchase.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=DoNPvD3c6eM\" rel=\"nofollow ugc\">“Check out the overview video”\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>If you use woocommerce, you can uset the option to auto generate a serial code for each sold product!\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>WooCommerce is NOT required, but just additional supported by our plugin if needed by you.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Shop:\u003C\u002Fstrong> With Serial Code Generator your will be able to sell license keys and products with a serial number or activation key. The plugin can create the code on the fly or use unused serials from your code list for each sold item.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Validation of serials:\u003C\u002Fstrong> You customer can validate a serial on your page. The code generator gives you a flexible pattern to generate codes upfront. You can also \u003Cstrong>import your existing codes\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Build your own stolen serial database:\u003C\u002Fstrong> Support your customer and yourself to protect stolen products to be sold to others. Mark reported stolen products as stolen and let others check the serials.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>How can you setup the serial code generator?\u003C\u002Fstrong>\u003Cbr \u002F>\nYou can enter your codes within the WP admin area in the serial code section (a new menu point in the wordpress amdin area).\u003Cbr \u002F>\nYou can add your own codes manually using the serial code generator or import existing codes.\u003Cbr \u002F>\nThe codes can also be generated by the plugin. The serial code generator can create a bulk of serials or numbers as codes.\u003Cbr \u002F>\nAnd you are also able to add your own codes by just entering them to the generated codes below the serial code generator.\u003Cbr \u002F>\nIf needed you can assign the codes to a list. The list (code list) helps you to organize the codes. The code list can be assigned to a WooCommerce product, if you want to add a serial code to each sold product.\u003Cbr \u002F>\nCreate one or more code lists to use the WooCommerce functionality.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>How the serial code generator works\u003C\u002Fstrong>\u003Cbr \u002F>\nYou define your look and feel for your codes. The generated codes will be unique. After you are satisfied with the generated codes, you can start the code adding step.\u003Cbr \u002F>\nThe code adding step will check if the code is unique on the server before adding it.\u003Cbr \u002F>\nIf the code (serial number\u002Fticket number) exists already on the server, it will not be added.\u003C\u002Fp>\n\u003Ch4>The generator provides a lot of features:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Code prefix – you can enter a fixed prefix to each code\u003C\u002Fli>\n\u003Cli>Length of code\u003C\u002Fli>\n\u003Cli>Only letters\u003C\u002Fli>\n\u003Cli>Uppercase, Lowercase or both\u003C\u002Fli>\n\u003Cli>Exclusion of letters that are easy to missread (i,l,o,q,p)\u003C\u002Fli>\n\u003Cli>Delimiter possible: [None, -, :, SPACE] – you decide after how many letters within the code\u003C\u002Fli>\n\u003Cli>CVV code generation (only numbers)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Limit purchase of WooCommerce products to people with a specific code (restriction feature)\u003C\u002Fli>\n\u003Cli>Store WooCommerce orderid, itemid and productid to a serial code that was generated or used for a product sale\u003C\u002Fli>\n\u003Cli>You can now set the serial code format for all WooCommerce product that are using a serial code\u003C\u002Fli>\n\u003Cli>You can now set the serial code format directly on the WooCommerce product detail page if needed\u003C\u002Fli>\n\u003Cli>Use your serials to restrict purchases to allow a purchase of this product only if the buyer has a code for it (purchase allowance code)\u003C\u002Fli>\n\u003Cli>Add your own messages for the serial code validation form for your customers\u003C\u002Fli>\n\u003Cli>Add your own message for the “product stolen” validation message\u003C\u002Fli>\n\u003Cli>Disable the validation form for not logged in wordpress user\u003C\u002Fli>\n\u003Cli>User can register to a code (with wordpress user id if needed) after the code is checked – this makes your code one-time usable\u003C\u002Fli>\n\u003Cli>Display registered user information of a code during the validation if you need this\u003C\u002Fli>\n\u003Cli>One time check is possible (with wordpress user id if needed) – the code will be marked as used after the check\u003C\u002Fli>\n\u003Cli>One time check can have a maximum check amount based on code list or based on the global setting\u003C\u002Fli>\n\u003Cli>Several checks allowed – the code will be marked as used after X confirmed checks\u003C\u002Fli>\n\u003Cli>The user can be forwared (redirected) to an URL after the code was checked – to show more details\u003C\u002Fli>\n\u003Cli>Webhooks – you can inform other systems about code validation steps by entering for serveral serial code status during the validation check\u003C\u002Fli>\n\u003Cli>Display assigned serial codes to your user with a shortcode [sngmbhSerialcodesValidator_code]\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Premium Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Unlimited Codes (the basic allows you 500 serial codes)\u003C\u002Fli>\n\u003Cli>Unlimited Code Lists\u003C\u002Fli>\n\u003Cli>Save IP address of user using the code validation check on your page\u003C\u002Fli>\n\u003Cli>De- and re-activate codes\u003C\u002Fli>\n\u003Cli>Block IPs after x retries within 60 minutes – prevent brute force\u003C\u002Fli>\n\u003Cli>One time usage overuled by code list setting\u003C\u002Fli>\n\u003Cli>Enter expiration date for codes\u003C\u002Fli>\n\u003Cli>Enter expiration date for code lists (code overrule list expiration date)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Try it out first, before you go Premium. \u003Ca href=\"https:\u002F\u002Fvollstart.com\u002F\" rel=\"nofollow ugc\">“Here you can find the premium plugin”\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Build your own Stolen products database\u003C\u002Fh3>\n\u003Cp>You can set the status of a serial code to be marked as stolen. This way you can offer your customers a way to report a stolen product. Other buyers of used products can validate the code on your website and will be notified with a “Product is stolen” warning.\u003Cbr \u002F>\nThis could increase sales and help reducing theft of your products.\u003Cbr \u002F>\nThe check behaviour will be like “inactive serial codes” but with the stolen message. You can change the stolen message within the options area of the serial code admin.\u003C\u002Fp>\n\u003Ch3>Protection with CVV\u003C\u002Fh3>\n\u003Cp>You can set a code verification value (CVV) to protect your serial code. This allows you to print your serial code on the visible side of your product and print the CVV number on the open visible part of your packaging of your products. The validation check will ask the user to enter both for a valid check.\u003Cbr \u002F>\nThat way you increase the security of your serial codes and prevent stealing the serial code (If you are able hide the CVV on your packaging).\u003Cbr \u002F>\nIf you use a CVV on a serial code , then the user will be asked to enter this CVV too. If the CVV on your code is not set or empty it will be ignored and your customer is not asked for it.\u003C\u002Fp>\n\u003Ch3>Woocommerce support for auto-generating serial codes\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Supports version 6+\u003C\u002Fstrong>\u003Cbr \u002F>\n\u003Cstrong>You can use this plugin to auto-generate serial codes for your woocommerce products\u003C\u002Fstrong>\u003Cbr \u002F>\n* Create a code list\u003Cbr \u002F>\n* Go to your WooCommerce product and edit the product which should receive a serial code\u003Cbr \u002F>\n* Click on “Serial Codes and Sale Restrictions” in the attribute area of your product\u003Cbr \u002F>\n* Choose the “Code list” that will be used for this product\u003C\u002Fp>\n\u003Cp>Everytime this product is sold, it will get a new generated serial code or use an unused serial code within your list (This need to be activated within the option settings). The new serial code will be added to the code list you set on your WooCommerce product and to the product sale too.\u003Cbr \u002F>\nIf the sold product quantity in the order is more than 1, then a code will be generated for each element. The code will be generated after the purchase. In case of a refund the serial code will be recovered and marked as unused, so that it can be reused.\u003C\u002Fp>\n\u003Cp>\u003Cem>E.g.: Your customer bought 2 of the same product within one order, then 2 serials will be generated and stored to the product item within this order.\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch4>WooCommerce Serial Code Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Automatically create and assign serial codes for physical products and digital products\u003C\u002Fli>\n\u003Cli>Recover serial code assigned to refunded orders\u003C\u002Fli>\n\u003Cli>Option to reuse the recovered serial codes with the latest orders\u003C\u002Fli>\n\u003Cli>Automatically deliver the serial codes with the complete order email\u003C\u002Fli>\n\u003Cli>Automatically deliver the serial codes with the optional PDF invoice “WooCommerce PDF Invoices”\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Woocommerce support product purchase restriction\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>You can use this plugin to protect the sale of a product without a purchase code\u003C\u002Fstrong>\u003Cbr \u002F>\n* Create a code list\u003Cbr \u002F>\n* Add codes to this list – these codes will be the allowance-code to purchase a specific product\u003Cbr \u002F>\n* Go to your WooCommerce product and edit the product which should be restricted for buy-only-with-serial-code\u003Cbr \u002F>\n* Click on “Serial Codes and Sale Restrictions” in the attribute area of your product\u003Cbr \u002F>\n* Choose the “Code List for sale restriction”\u003Cbr \u002F>\n* Activate the option “Activate the purchase restrictions of product sales without a valid and unused serial code”\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Please note:\u003C\u002Fstrong>\u003Cbr \u002F>\nIf you exceed your limit (\u003Cem>no limits for premium user\u003C\u002Fem>) of the amount of possible codes, then the code added to the sold product will be a text information: \u003Cstrong>“Please contact our support for the serial code”\u003C\u002Fstrong>.\u003Cbr \u002F>\nThis way your business is not harmed and your customer can contact you to get a serial code manually. The format of the serial code will be \u003Cstrong>12345-12345-12345-12345\u003C\u002Fstrong> if you do not set a generation format within the options.\u003C\u002Fp>\n\u003Ch3>WooCommerce PDF Invoices support to display the serial codes on the PDFs\u003C\u002Fh3>\n\u003Cp>If you use \u003Ca href=\"https:\u002F\u002Fen-gb.wordpress.org\u002Fplugins\u002Fwoocommerce-pdf-invoices-packing-slips\u002F\" rel=\"nofollow ugc\">“WooCommerce PDF Invoices”\u003C\u002Fa>, then the generated serial codes are displayed on the generated PDFs too!\u003Cbr \u002F>\nThe supported PDF plugin is from Ewout Fernhout.\u003C\u002Fp>\n\u003Ch3>WooCommerce Product Sale Restriction to code only\u003C\u002Fh3>\n\u003Cp>You can restrict purchases for a product to a code from a code list or any code you have. The purchase will mark the code as used and cannot be reused for the next purchase.\u003Cbr \u002F>\nThis allows you to offer products that can be only bought by customers, that have received already the purchase code.\u003C\u002Fp>\n\u003Ch3>Frontend\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Use the shortcode \u003Cstrong>[sngmbhSerialcodesValidator]\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Create a page or use an existing one and add the shortcode to the page\u003C\u002Fli>\n\u003Cli>The shortcode will be replaced for your users by a form to enter the code and a button to validate the serial code. This allows you to surround the form with your own heading and instruction.\u003C\u002Fli>\n\u003Cli>Each code has a display version (e.g. XYZXYZ -> XYZ-XYZ), so it is easier for your user to read the serial code.\u003C\u002Fli>\n\u003Cli>The check will remove the display delimiter “-“, “:”, ” ” for the check automatically.\u003C\u002Fli>\n\u003Cli>So your user can enter the code with or without delimiters.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>If you use CVV on a code and the user enter the code that requires a cvv, then your user will be ask to enter the CVV.\u003Cbr \u002F>\nThe user could enter the CVV immediately with the code. Separate the value with a “:”. E.g: XYZXYZ:1234.\u003C\u002Fp>\n\u003Cp>It is possible to prefill the serial code validation form with a code.\u003Cbr \u002F>\nAdd the parameter “code” to your page URL to create a link that prefills the form.\u003Cbr \u002F>\n\u003Cem>E.g https:\u002F\u002Fvollstart.com\u002Fserial-codes\u002F?code=123-456-789\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch4>Form Options for expert\u003C\u002Fh4>\n\u003Cp>You can use your own input, trigger and output HTML element.\u003Cbr \u002F>\nAdd the id parameter to your HTML elements and pass them to the shortcode as corresponding parameter.\u003Cbr \u002F>\nYou can add also your own JS function name that will be called before the code is checked on the server and also if the result comes back.\u003Cbr \u002F>\n\u003Cem>[sngmbhSerialcodesValidator inputid=”” triggerid=”” outputid=”” jspre=”” jsafter=””]\u003C\u002Fem>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fvollstart.com\u002Fserial-codes-validator-premium\u002Fdocs\u002F#styling\" rel=\"nofollow ugc\">Read here more about this feature\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Quick overview\u003C\u002Fh3>\n\u003Cp>Each code is unique. The list is for your organisation and for your WooCommerce products.\u003C\u002Fp>\n\u003Ch4>Plugin administration – where to find the plugin management area\u003C\u002Fh4>\n\u003Cp>\u003Cem>It will add a new menu entry “Serial Codes Validator” within the settings section.\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fvollstart.com\u002Fserial-codes-validator-premium\u002Ffirst-steps\" rel=\"nofollow ugc\">More about the plugin on our website\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>Write to support@vollstart.com for support request.\u003Cbr \u002F>\nFor both plugins: The basic free and for the premium plugin.\u003Cbr \u002F>\nWe are here to help you.\u003C\u002Fp>\n\u003Ch3>GETTING STARTED\u003C\u002Fh3>\n\u003Cp>A Quick start is shown in this \u003Ca href=\"https:\u002F\u002Fvollstart.com\u002Fserial-codes-validator-premium\u002Ffirst-steps\" rel=\"nofollow ugc\">video\u003C\u002Fa>.\u003Cbr \u002F>\nA good first start is to open the serial code admin area and create a code list first.\u003Cbr \u002F>\nThen add your codes by importing (add button at the code table) or assign the code list to your products.\u003Cbr \u002F>\nCheck out all the possible options in the serial code admin area to understand, how to tweak your usages of serial codes.\u003Cbr \u002F>\nIf you need a validation form for your users, to check the code, then please add the shortcode \u003Cstrong>[sngmbhSerialcodesValidator]\u003C\u002Fstrong> to a page.\u003C\u002Fp>\n\u003Ch4>Steps to start\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Go to the settings and click on menu “Serial Codes Validator”.\u003C\u002Fli>\n\u003Cli>Click on button “Add” next to the heading “Codes”.\u003C\u002Fli>\n\u003Cli>Enter you codes or generate codes using the built in serial code generator.\u003C\u002Fli>\n\u003Cli>Save your codes.\u003C\u002Fli>\n\u003Cli>Add the shortcode \u003Cstrong>[sngmbhSerialcodesValidator]\u003C\u002Fstrong> to a page.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Premium Features\u003C\u002Fh3>\n\u003Cp>The \u003Cstrong>premium plugin\u003C\u002Fstrong> is now available with a lifetime license and 1 year support.\u003C\u002Fp>\n\u003Ch4>Your benefits\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Unlimited Code Lists\u003C\u002Fli>\n\u003Cli>Unlimited Codes\u003C\u002Fli>\n\u003Cli>Upload CSV file for massive codes import\u003C\u002Fli>\n\u003Cli>Assign serials to existing WooCommerce orders\u003C\u002Fli>\n\u003Cli>Save IP address of user using the code validation check on your page\u003C\u002Fli>\n\u003Cli>De- and re-activate codes\u003C\u002Fli>\n\u003Cli>Block IPs after x retries within 60 minutes – prevent brute force\u003C\u002Fli>\n\u003Cli>One time usage overuled by code list setting\u003C\u002Fli>\n\u003Cli>Enter expiration date for codes\u003C\u002Fli>\n\u003Cli>Enter expiration date for code lists (code overrule list expiration date)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Checkout the premium plugin and planned features: \u003Ca href=\"https:\u002F\u002Fvollstart.com\u002Fserial-codes-validator-premium\u002F\" rel=\"nofollow ugc\">Serial Code Generator and Validator Premium\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n","Generate, manage and validate serial codes and license keys. WooCommerce integration for auto-generating codes on purchase.",800,43957,92,13,"2026-04-14T21:03:00.000Z","6.9.4","7.0",[54,55,21,56,57],"code-generator","code-validator","serial-generator","serial-validator","https:\u002F\u002Fvollstart.com\u002Fserial-codes-validator-premium\u002Fdocs\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fserial-codes-generator-and-validator.2.9.3.zip",96,3,"2025-12-31 00:00:00","2026-04-16T10:56:18.058Z",{"slug":65,"name":66,"version":67,"author":68,"author_profile":69,"description":70,"short_description":71,"active_installs":72,"downloaded":73,"rating":74,"num_ratings":75,"last_updated":76,"tested_up_to":77,"requires_at_least":78,"requires_php":79,"tags":80,"homepage":83,"download_link":84,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":63},"woo-license-keys","License Keys for WooCommerce","1.5.6","10Quality","https:\u002F\u002Fprofiles.wordpress.org\u002F10quality\u002F","\u003Cp>\u003Cstrong>License Keys\u003C\u002Fstrong> for \u003Cstrong>WooCommerce\u003C\u002Fstrong> is a simple and powerfull license keys manager, that adds a new product type to your WordPress and WooCommerce setup, and lets you create and handle license keys that can be used to validate your licensed products.\u003C\u002Fp>\n\u003Ch3>Built-in API\u003C\u002Fh3>\n\u003Cp>This plugin will enable your WordPress to act as a validator API (service) with endpoints that will let you activate, validate and deactivate license keys via HTTP requests; we provide various solutions (as PHP libraries, packages and documentation) to integrate the API with your products.\u003C\u002Fp>\n\u003Ch3>License Keys\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>License Keys\u003C\u002Fstrong> will be generated automatically when a WooCommerce order is completed, the code is appended in the “Order completed” email notification sent by WooCommerce. Each License Key data is generated per product configuration. The License Key product type will add a new options tab that will allow you to:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Expire options\u003C\u002Fstrong>: Set the expiration of a license key.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Virtual\u003C\u002Fstrong>: Check the virtual checkbox to set the product as physical or virtual.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Downloadable\u003C\u002Fstrong>: Check the downloadable checkbox to append downloadable files to the product.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You can customize this plugin and add more options by your own, or purchase our extension that will allow you to:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Limit options\u003C\u002Fstrong>: Set the limitation of a license key (per number of activations, per domain), and unlimit on development environments.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Offline options\u003C\u002Fstrong>: Set offline options to allow a product to run when not connected to the internet.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Downloadable data\u003C\u002Fstrong>: Set to append the downloadable data on API responses, to allow automatic updates.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Customer account pages\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>License Keys\u003C\u002Fstrong> for \u003Cstrong>WooCommerce\u003C\u002Fstrong> will add management pages to WooCommerce “My Account” section to allow license keys to be self-managed by users; these pages will allow them to view purchased licenses and license key activations.\u003C\u002Fp>\n\u003Cp>Aside from the API endpoint, customers will be able to deactivate their licenses at these pages.\u003C\u002Fp>\n\u003Ch3>Admin management\u003C\u002Fh3>\n\u003Cp>License keys can be searched by admins at the “Orders” section of WooCommerce, details (such as the customer’s license key code, expiration date and the number of activations) can be reviewed when viewing and editing an order.\u003C\u002Fp>\n\u003Ch3>Product integration\u003C\u002Fh3>\n\u003Cp>We offer an SDK, software libraries and documentation to implement easily the API’s integration in your products.\u003C\u002Fp>\n\u003Ch3>Customization\u003C\u002Fh3>\n\u003Cp>We have built this plugin with customization in mind. We have placed WordPress hooks all over the source code, making it flexible to be customized or extended. All HTML templates can also be modified in themes.\u003C\u002Fp>\n\u003Ch3>Paid extension\u003C\u002Fh3>\n\u003Cp>If you don’t wish to customize this your self, we offer the option to add an extension that will expand its capabilities with the following features:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Additional product options for the License Key product type.\u003C\u002Fli>\n\u003Cli>Product variable and price variations support.\u003C\u002Fli>\n\u003Cli>License keys admin management module, these management pages will allow admins to edit generated license keys options, deactivate activations and view more details.\u003C\u002Fli>\n\u003Cli>Built-in semi-automatic subscription system supported by any WooCommerce payment gateway.\u003C\u002Fli>\n\u003Cli>Automatic subscriptions (Recurring payments) through compatibility with WooCommerce Subscriptions and Subscriptio.\u003C\u002Fli>\n\u003Cli>Analytics module and reporting.\u003C\u002Fli>\n\u003Cli>Import custom license key codes.\u003C\u002Fli>\n\u003Cli>Add, edit and delete custom license key codes.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You can opt to obtain these features \u003Ca href=\"https:\u002F\u002Fwww.10quality.com\u002Fproduct\u002Fwoocommerce-license-keys\u002F\" rel=\"nofollow ugc\">here\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Who do I thank for all of this?\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.10quality.com\u002F\" rel=\"nofollow ugc\">10Quality\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fabout.me\u002Famostajo\" rel=\"nofollow ugc\">Ale Mostajo\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.wordpress-mvc.com\u002F\" rel=\"nofollow ugc\">WordPress MVC\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","Enable and handle \"License Keys\" with WooCommerce. Software license keys manager for Wordpress.",90,15933,62,23,"2020-10-04T06:10:00.000Z","5.5.18","3.2","5.6",[21,81,82],"software-license-manager","woocommerce","https:\u002F\u002Fwww.10quality.com\u002Fproduct\u002Fwoocommerce-license-keys\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwoo-license-keys.1.5.6.zip",{"slug":86,"name":87,"version":88,"author":89,"author_profile":90,"description":91,"short_description":92,"active_installs":11,"downloaded":93,"rating":28,"num_ratings":28,"last_updated":18,"tested_up_to":51,"requires_at_least":79,"requires_php":94,"tags":95,"homepage":99,"download_link":100,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":101},"serial-numbers-license-keys-for-woocommerce","Serial Numbers & License Keys for WooCommerce","1.0.2","shafiq1010","https:\u002F\u002Fprofiles.wordpress.org\u002Fshafiq1010\u002F","\u003Cp>\u003Cstrong>Serial Numbers & License Keys for WooCommerce\u003C\u002Fstrong> allows you to sell secret keys, license codes, and gift cards directly through WooCommerce.\u003Cbr \u002F>\nThe plugin supports both \u003Cstrong>Simple\u003C\u002Fstrong> and \u003Cstrong>Variable Products\u003C\u002Fstrong>, enabling different keys or rules to be assigned per variation.\u003C\u002Fp>\n\u003Cp>Serial keys are automatically assigned when an order is completed and are displayed securely on the customer’s order page and in order emails.\u003C\u002Fp>\n\u003Cp>The plugin operates entirely within your WordPress installation and does not transmit customer or license data to external servers.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Support for \u003Cstrong>Simple and Variable WooCommerce products\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Automatic assignment of serial keys on order completion\u003C\u002Fli>\n\u003Cli>Bulk generation of keys using custom patterns (e.g. \u003Ccode>KEY-####-####\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>CSV import and export for easy migration\u003C\u002Fli>\n\u003Cli>Secure storage using a dedicated database table\u003C\u002Fli>\n\u003Cli>Clear overview of available and used keys\u003C\u002Fli>\n\u003Cli>Compatible with standard WooCommerce order emails\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Optional Extensions\u003C\u002Fh3>\n\u003Cp>Optional extensions may be available separately to add additional automation and management features.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Automatic order completion for key-based products\u003C\u002Fli>\n\u003Cli>Low stock notifications for serial keys\u003C\u002Fli>\n\u003Cli>Advanced key lifecycle handling (refunds and cancellations)\u003C\u002Fli>\n\u003Cli>Integration with third-party invoice and PDF plugins\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The free plugin functions independently and does not require the extension.\u003C\u002Fp>\n","Sell license keys, serial numbers, and gift cards for Simple and Variable WooCommerce products with automatic assignment and secure storage.",161,"7.4",[96,21,97,98,82],"digital-products","serial-keys","software-licenses","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fserial-numbers-license-keys-for-woocommerce\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fserial-numbers-license-keys-for-woocommerce.1.0.2.zip","2026-03-15T10:48:56.248Z",{"attackSurface":103,"codeSignals":336,"taintFlows":447,"riskAssessment":510,"analyzedAt":515},{"hooks":104,"ajaxHandlers":323,"restRoutes":324,"shortcodes":325,"cronEvents":335,"entryPointCount":61,"unprotectedCount":28},[105,111,115,120,125,128,131,133,136,138,141,143,146,149,151,155,160,162,165,169,172,176,180,184,188,192,196,200,204,208,211,214,217,220,222,226,229,231,233,235,239,243,246,249,253,256,258,261,264,267,270,273,276,280,283,286,289,292,295,298,301,304,307,310,314,316,319],{"type":106,"name":107,"callback":108,"file":109,"line":110},"filter","posts_join_request","withinweb_wwkc_keycodes_modify_wp_search_join","admin\\admin.php",138,{"type":106,"name":112,"callback":113,"file":109,"line":114},"posts_distinct_request","withinweb_wwkc_keycodes_modify_wp_search_distinct",139,{"type":116,"name":117,"callback":117,"file":118,"line":119},"action","withinweb_wwkc_keycodes_about_display","admin\\classes\\about.php",7,{"type":116,"name":121,"callback":122,"file":123,"line":124},"admin_menu","add_settings_menu","admin\\classes\\admindisplay.php",8,{"type":116,"name":126,"callback":126,"file":127,"line":119},"withinweb_wwkc_keycodes_buttoncode_display","admin\\classes\\buttoncode.php",{"type":116,"name":129,"callback":129,"file":130,"line":119},"withinweb_wwkc_keycodes_createitem_save_field","admin\\classes\\createitem.php",{"type":116,"name":132,"callback":132,"file":130,"line":124},"withinweb_wwkc_keycodes_createitem_display",{"type":116,"name":134,"callback":134,"file":135,"line":119},"withinweb_wwkc_keycodes_deleteitem_save_field","admin\\classes\\deleteitem.php",{"type":116,"name":137,"callback":137,"file":135,"line":124},"withinweb_wwkc_keycodes_deleteitem_display",{"type":116,"name":139,"callback":139,"file":140,"line":119},"withinweb_wwkc_keycodes_edititem_save_field","admin\\classes\\edititem.php",{"type":116,"name":142,"callback":142,"file":140,"line":124},"withinweb_wwkc_keycodes_edititem_display",{"type":116,"name":144,"callback":144,"file":145,"line":119},"withinweb_wwkc_keycodes_listitems_display","admin\\classes\\listitems.php",{"type":116,"name":147,"callback":147,"file":148,"line":119},"withinweb_wwkc_keycodes_localtest_update","admin\\classes\\localtest.php",{"type":116,"name":150,"callback":150,"file":148,"line":124},"withinweb_wwkc_keycodes_localtest_display",{"type":116,"name":152,"callback":153,"file":154,"line":124},"admin_print_scripts","disable_autosave","admin\\classes\\posttypes.php",{"type":116,"name":156,"callback":157,"priority":158,"file":154,"line":159},"init","withinweb_wwkc_keycodes_register_taxonomies",5,9,{"type":116,"name":156,"callback":161,"priority":158,"file":154,"line":11},"withinweb_wwkc_keycodes_register_post_types",{"type":116,"name":156,"callback":163,"priority":11,"file":154,"line":164},"withinweb_wwkc_keycodes_register_post_status",11,{"type":116,"name":166,"callback":167,"priority":11,"file":154,"line":168},"restrict_manage_posts","withinweb_wwkc_keycodes_ipn_filter",12,{"type":116,"name":170,"callback":171,"priority":11,"file":154,"line":49},"add_meta_boxes","withinweb_wwkc_keycodes_remove_meta_boxes",{"type":116,"name":173,"callback":174,"priority":11,"file":154,"line":175},"manage_edit-paypal_ipn_columns","withinweb_wwkc_keycodes_add_paypal_ipn_columns",14,{"type":116,"name":177,"callback":178,"priority":14,"file":154,"line":179},"manage_paypal_ipn_posts_custom_column","withinweb_wwkc_keycodes_render_paypal_ipn_columns",15,{"type":106,"name":181,"callback":182,"file":154,"line":183},"manage_edit-paypal_ipn_sortable_columns","withinweb_wwkc_keycodes_paypal_ipn_sortable_columns",16,{"type":116,"name":185,"callback":186,"file":154,"line":187},"pre_get_posts","withinweb_wwkc_keycodes_ipn_column_orderby",17,{"type":106,"name":189,"callback":190,"priority":11,"file":154,"line":191},"views_edit-paypal_ipn","withinweb_wwkc_keycodes_ipn_section_name",18,{"type":116,"name":170,"callback":193,"priority":194,"file":154,"line":195},"withinweb_wwkc_keycodes_add_meta_boxes_ipn_data_custome_fields",31,19,{"type":106,"name":197,"callback":198,"priority":11,"file":154,"line":199},"withinweb_wwkc_keycodes_the_meta_key","withinweb_wwkc_keycodes_the_meta_key_remove_raw_dump",20,{"type":106,"name":201,"callback":202,"priority":11,"file":154,"line":203},"post_class","withinweb_wwkc_keycodes_post_class_representation",21,{"type":116,"name":205,"callback":206,"priority":11,"file":154,"line":207},"parse_query","withinweb_wwkc_keycodes_parse_query",22,{"type":116,"name":209,"callback":209,"file":210,"line":119},"withinweb_wwkc_keycodes_premium_display","admin\\classes\\premium.php",{"type":116,"name":212,"callback":212,"file":213,"line":119},"withinweb_wwkc_keycodes_sales_display","admin\\classes\\sales.php",{"type":116,"name":215,"callback":215,"file":216,"line":119},"withinweb_wwkc_keycodes_salesdetails_display","admin\\classes\\salesdetails.php",{"type":116,"name":218,"callback":218,"file":219,"line":119},"withinweb_wwkc_keycodes_general_setting_save_field","admin\\classes\\settings.php",{"type":116,"name":221,"callback":221,"file":219,"line":124},"withinweb_wwkc_keycodes_general_setting_display",{"type":116,"name":223,"callback":224,"priority":11,"file":225,"line":159},"withinweb_wwkc_keycodes_ipn_smarter_forwarding_handler","withinweb_wwkc_keycodes_ipn_forwarding_handler","includes\\ipnforwarder.php",{"type":106,"name":227,"callback":228,"priority":11,"file":225,"line":179},"woocommerce_paypal_args","withinweb_wwkc_keycodes_standard_parameters",{"type":106,"name":230,"callback":230,"priority":11,"file":225,"line":191},"withinweb_wwkc_keycodes_ipn_forwarding_setting",{"type":106,"name":232,"callback":232,"priority":11,"file":225,"line":199},"withinweb_wwkc_keycodes_ipn_forwarding_remote_post_response",{"type":116,"name":234,"callback":234,"priority":11,"file":225,"line":203},"withinweb_wwkc_keycodes_ipn_forwarding_remote_post",{"type":116,"name":156,"callback":236,"priority":28,"file":237,"line":238},"add_endpoint","includes\\keycodescore.php",34,{"type":116,"name":240,"callback":241,"priority":28,"file":237,"line":242},"parse_request","handle_api_requests",36,{"type":116,"name":156,"callback":244,"priority":28,"file":237,"line":245},"create_required_files",38,{"type":116,"name":247,"callback":247,"file":237,"line":248},"withinweb_wwkc_keycodes_api_ipn_handler",40,{"type":116,"name":250,"callback":251,"file":237,"line":252},"plugins_loaded","anonymous",112,{"type":116,"name":254,"callback":251,"file":237,"line":255},"admin_enqueue_scripts",119,{"type":116,"name":254,"callback":251,"file":237,"line":257},120,{"type":116,"name":259,"callback":251,"file":237,"line":260},"posts_where_request",121,{"type":116,"name":262,"callback":251,"file":237,"line":263},"post_row_actions",122,{"type":116,"name":265,"callback":251,"file":237,"line":266},"delete_post",123,{"type":116,"name":268,"callback":251,"file":237,"line":269},"wp_enqueue_scripts",133,{"type":116,"name":271,"callback":251,"file":237,"line":272},"the_posts",134,{"type":116,"name":274,"callback":251,"file":237,"line":275},"wp",135,{"type":116,"name":277,"callback":278,"file":279,"line":11},"withinweb_wwkc_keycodes_payment_status_completed","withinweb_wwkc_function_completed","keycodes\\keycodesactions.php",{"type":116,"name":281,"callback":282,"file":279,"line":164},"withinweb_wwkc_keycodes_payment_status_pending","withinweb_wwkc_function_pending",{"type":116,"name":284,"callback":285,"file":279,"line":168},"withinweb_wwkc_keycodes_payment_status_failed","withinweb_wwkc_function_failed",{"type":116,"name":287,"callback":288,"file":279,"line":49},"withinweb_wwkc_keycodes_payment_status_denied","withinweb_wwkc_function_denied",{"type":116,"name":290,"callback":291,"file":279,"line":175},"withinweb_wwkc_keycodes_payment_status_refunded","withinweb_wwkc_function_refunded",{"type":116,"name":293,"callback":294,"file":279,"line":179},"withinweb_wwkc_keycodes_payment_status_partially_refunded","withinweb_wwkc_function_partially_refunded",{"type":116,"name":296,"callback":297,"file":279,"line":183},"withinweb_wwkc_keycodes_payment_status_expired","withinweb_wwkc_function_expired",{"type":116,"name":299,"callback":300,"file":279,"line":187},"withinweb_wwkc_keycodes_payment_status_processed","withinweb_wwkc_function_processed",{"type":116,"name":302,"callback":303,"file":279,"line":191},"withinweb_wwkc_keycodes_payment_status_canceled_reversal","withinweb_wwkc_function_canceled_reversal",{"type":116,"name":305,"callback":306,"file":279,"line":195},"withinweb_wwkc_keycodes_payment_status_in_progress","withinweb_wwkc_function_in_progress",{"type":116,"name":308,"callback":309,"file":279,"line":199},"withinweb_wwkc_keycodes_payment_status_reversed","withinweb_wwkc_function_reversed",{"type":106,"name":311,"callback":311,"priority":11,"file":312,"line":313},"withinweb_wwkc_keycodes_getnoofkeycodes","keycodes\\paypalkeycodes.php",33,{"type":106,"name":315,"callback":315,"priority":11,"file":312,"line":238},"withinweb_wwkc_keycodes_getlowerlimit",{"type":106,"name":317,"callback":317,"priority":11,"file":312,"line":318},"withinweb_wwkc_keycodes_getnextkeycodes",35,{"type":106,"name":320,"callback":321,"file":322,"line":159},"widget_text","do_shortcode","public\\classes\\publicdisplay.php",[],[],[326,329,332],{"tag":327,"callback":328,"file":322,"line":49},"paypal_ipn_list","withinweb_wwkc_keycodes_paypal_ipn_list",{"tag":330,"callback":331,"file":322,"line":175},"paypal_ipn_data","withinweb_wwkc_keycodes_paypal_ipn_paypal_ipn_data",{"tag":333,"callback":334,"file":322,"line":179},"keycodesbutton","withinweb_wwkc_keycodes_paypal_ipn_paypal_keycodesbutton",[],{"dangerousFunctions":337,"sqlUsage":342,"outputEscaping":361,"fileOperations":159,"externalRequests":445,"nonceChecks":168,"capabilityChecks":183,"bundledLibraries":446},[338],{"fn":339,"file":279,"line":340,"context":341},"preg_replace(\u002Fe)",488,"preg_replace(\"\u002Fe",{"prepared":343,"raw":344,"locations":345},54,6,[346,349,352,354,357,359],{"file":130,"line":347,"context":348},179,"$wpdb->get_var() with variable interpolation",{"file":130,"line":350,"context":351},310,"$wpdb->get_row() with variable interpolation",{"file":145,"line":353,"context":348},45,{"file":145,"line":355,"context":356},48,"$wpdb->get_results() with variable interpolation",{"file":213,"line":358,"context":348},44,{"file":213,"line":360,"context":356},47,{"escaped":362,"rawEcho":363,"locations":364},348,42,[365,368,370,372,374,376,379,381,382,383,385,386,388,390,392,394,396,398,400,402,404,406,408,410,412,414,416,418,419,421,423,424,426,428,430,431,433,435,437,439,441,443],{"file":127,"line":366,"context":367},159,"raw output",{"file":130,"line":369,"context":367},317,{"file":135,"line":371,"context":367},144,{"file":140,"line":373,"context":367},261,{"file":140,"line":375,"context":367},338,{"file":377,"line":378,"context":367},"admin\\classes\\htmloutput.php",80,{"file":377,"line":380,"context":367},109,{"file":377,"line":255,"context":367},{"file":377,"line":257,"context":367},{"file":377,"line":384,"context":367},132,{"file":377,"line":275,"context":367},{"file":377,"line":387,"context":367},142,{"file":377,"line":389,"context":367},156,{"file":377,"line":391,"context":367},164,{"file":377,"line":393,"context":367},177,{"file":377,"line":395,"context":367},182,{"file":377,"line":397,"context":367},194,{"file":377,"line":399,"context":367},198,{"file":377,"line":401,"context":367},206,{"file":377,"line":403,"context":367},210,{"file":377,"line":405,"context":367},212,{"file":377,"line":407,"context":367},264,{"file":377,"line":409,"context":367},271,{"file":377,"line":411,"context":367},272,{"file":377,"line":413,"context":367},273,{"file":377,"line":415,"context":367},306,{"file":377,"line":417,"context":367},308,{"file":377,"line":417,"context":367},{"file":145,"line":420,"context":367},60,{"file":145,"line":422,"context":367},127,{"file":145,"line":272,"context":367},{"file":145,"line":425,"context":367},140,{"file":145,"line":427,"context":367},146,{"file":145,"line":429,"context":367},157,{"file":148,"line":411,"context":367},{"file":154,"line":432,"context":367},197,{"file":154,"line":434,"context":367},385,{"file":154,"line":436,"context":367},406,{"file":154,"line":438,"context":367},499,{"file":213,"line":440,"context":367},59,{"file":213,"line":442,"context":367},117,{"file":213,"line":444,"context":367},128,4,[],[448,466,474,483,491,502],{"entryPoint":449,"graph":450,"unsanitizedCount":28,"severity":465},"withinweb_wwkc_keycodes_deleteitem_display (admin\\classes\\deleteitem.php:96)",{"nodes":451,"edges":462},[452,457],{"id":453,"type":454,"label":455,"file":135,"line":456},"n0","source","$_GET",126,{"id":458,"type":459,"label":460,"file":135,"line":371,"wp_function":461},"n1","sink","echo() [XSS]","echo",[463],{"from":453,"to":458,"sanitized":464},true,"low",{"entryPoint":467,"graph":468,"unsanitizedCount":28,"severity":465},"\u003Cdeleteitem> (admin\\classes\\deleteitem.php:0)",{"nodes":469,"edges":472},[470,471],{"id":453,"type":454,"label":455,"file":135,"line":456},{"id":458,"type":459,"label":460,"file":135,"line":371,"wp_function":461},[473],{"from":453,"to":458,"sanitized":464},{"entryPoint":475,"graph":476,"unsanitizedCount":28,"severity":465},"withinweb_wwkc_keycodes_edititem_display (admin\\classes\\edititem.php:190)",{"nodes":477,"edges":481},[478,480],{"id":453,"type":454,"label":455,"file":140,"line":479},231,{"id":458,"type":459,"label":460,"file":140,"line":373,"wp_function":461},[482],{"from":453,"to":458,"sanitized":464},{"entryPoint":484,"graph":485,"unsanitizedCount":28,"severity":465},"\u003Cedititem> (admin\\classes\\edititem.php:0)",{"nodes":486,"edges":489},[487,488],{"id":453,"type":454,"label":455,"file":140,"line":479},{"id":458,"type":459,"label":460,"file":140,"line":373,"wp_function":461},[490],{"from":453,"to":458,"sanitized":464},{"entryPoint":492,"graph":493,"unsanitizedCount":28,"severity":465},"withinweb_wwkc_keycodes_general_setting_save_field (admin\\classes\\settings.php:12)",{"nodes":494,"edges":500},[495,497],{"id":453,"type":454,"label":496,"file":219,"line":34},"$_POST (x7)",{"id":458,"type":459,"label":498,"file":219,"line":194,"wp_function":499},"update_option() [Settings Manipulation]","update_option",[501],{"from":453,"to":458,"sanitized":464},{"entryPoint":503,"graph":504,"unsanitizedCount":28,"severity":465},"\u003Csettings> (admin\\classes\\settings.php:0)",{"nodes":505,"edges":508},[506,507],{"id":453,"type":454,"label":496,"file":219,"line":34},{"id":458,"type":459,"label":498,"file":219,"line":194,"wp_function":499},[509],{"from":453,"to":458,"sanitized":464},{"summary":511,"deductions":512},"The \"withinweb-php-keycodes\" v2.1.6 plugin demonstrates a generally good security posture based on the provided static analysis and vulnerability history. The plugin exhibits strong adherence to secure coding practices, with a high percentage of SQL queries using prepared statements and a significant majority of output being properly escaped.  Furthermore, the absence of known CVEs and a clean vulnerability history suggest a history of secure development and diligent maintenance.\n\nHowever, a minor concern exists with the use of the `preg_replace(\u002Fe)` dangerous function, which, if not handled with extreme care and thorough input sanitization, could potentially lead to code execution vulnerabilities. While the taint analysis found no direct evidence of exploitable flows related to this, its presence warrants careful review. The plugin's limited attack surface, consisting solely of shortcodes with no unprotected entry points, further reinforces its current secure state.",[513],{"reason":514,"points":158},"Use of dangerous function preg_replace(\u002Fe)","2026-03-17T00:36:52.303Z",{"wat":517,"direct":526},{"assetPaths":518,"generatorPatterns":521,"scriptPaths":522,"versionParams":523},[519,520],"\u002Fwp-content\u002Fplugins\u002Fwithinweb-php-keycodes\u002Fadmin\u002Fcss\u002Fwithinweb_wwkc_keycodes_admin.css","\u002Fwp-content\u002Fplugins\u002Fwithinweb-php-keycodes\u002Fadmin\u002Fjs\u002Fwithinweb_wwkc_keycodes_admin.js",[],[520],[524,525],"withinweb_wwkc_keycodes_admin.css?ver=","withinweb_wwkc_keycodes_admin.js?ver=",{"cssClasses":527,"htmlComments":528,"htmlAttributes":529,"restEndpoints":530,"jsGlobals":531,"shortcodeOutput":533},[],[],[],[],[532],"withinweb_wwkc_keycodes",[],{"error":464,"url":535,"statusCode":536,"statusMessage":537,"message":537},"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fwithinweb-php-keycodes\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":168,"versions":539},[540,546,553,560,567,574,581,588,595,602,608,615],{"version":6,"download_url":26,"svn_tag_url":541,"released_at":29,"has_diff":542,"diff_files_changed":543,"diff_lines":29,"trac_diff_url":544,"vulnerabilities":545,"is_current":464},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwithinweb-php-keycodes\u002Ftags\u002F2.1.6\u002F",false,[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fwithinweb-php-keycodes%2Ftags%2F2.1.5&new_path=%2Fwithinweb-php-keycodes%2Ftags%2F2.1.6",[],{"version":547,"download_url":548,"svn_tag_url":549,"released_at":29,"has_diff":542,"diff_files_changed":550,"diff_lines":29,"trac_diff_url":551,"vulnerabilities":552,"is_current":542},"2.1.5","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwithinweb-php-keycodes.2.1.5.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwithinweb-php-keycodes\u002Ftags\u002F2.1.5\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fwithinweb-php-keycodes%2Ftags%2F2.1.4&new_path=%2Fwithinweb-php-keycodes%2Ftags%2F2.1.5",[],{"version":554,"download_url":555,"svn_tag_url":556,"released_at":29,"has_diff":542,"diff_files_changed":557,"diff_lines":29,"trac_diff_url":558,"vulnerabilities":559,"is_current":542},"2.1.4","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwithinweb-php-keycodes.2.1.4.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwithinweb-php-keycodes\u002Ftags\u002F2.1.4\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fwithinweb-php-keycodes%2Ftags%2F2.1.3&new_path=%2Fwithinweb-php-keycodes%2Ftags%2F2.1.4",[],{"version":561,"download_url":562,"svn_tag_url":563,"released_at":29,"has_diff":542,"diff_files_changed":564,"diff_lines":29,"trac_diff_url":565,"vulnerabilities":566,"is_current":542},"2.1.3","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwithinweb-php-keycodes.2.1.3.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwithinweb-php-keycodes\u002Ftags\u002F2.1.3\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fwithinweb-php-keycodes%2Ftags%2F2.1.2&new_path=%2Fwithinweb-php-keycodes%2Ftags%2F2.1.3",[],{"version":568,"download_url":569,"svn_tag_url":570,"released_at":29,"has_diff":542,"diff_files_changed":571,"diff_lines":29,"trac_diff_url":572,"vulnerabilities":573,"is_current":542},"2.1.2","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwithinweb-php-keycodes.2.1.2.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwithinweb-php-keycodes\u002Ftags\u002F2.1.2\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fwithinweb-php-keycodes%2Ftags%2F2.1.1&new_path=%2Fwithinweb-php-keycodes%2Ftags%2F2.1.2",[],{"version":575,"download_url":576,"svn_tag_url":577,"released_at":29,"has_diff":542,"diff_files_changed":578,"diff_lines":29,"trac_diff_url":579,"vulnerabilities":580,"is_current":542},"2.1.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwithinweb-php-keycodes.2.1.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwithinweb-php-keycodes\u002Ftags\u002F2.1.1\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fwithinweb-php-keycodes%2Ftags%2F2.1.0&new_path=%2Fwithinweb-php-keycodes%2Ftags%2F2.1.1",[],{"version":582,"download_url":583,"svn_tag_url":584,"released_at":29,"has_diff":542,"diff_files_changed":585,"diff_lines":29,"trac_diff_url":586,"vulnerabilities":587,"is_current":542},"2.1.0","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwithinweb-php-keycodes.2.1.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwithinweb-php-keycodes\u002Ftags\u002F2.1.0\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fwithinweb-php-keycodes%2Ftags%2F2.0.5&new_path=%2Fwithinweb-php-keycodes%2Ftags%2F2.1.0",[],{"version":589,"download_url":590,"svn_tag_url":591,"released_at":29,"has_diff":542,"diff_files_changed":592,"diff_lines":29,"trac_diff_url":593,"vulnerabilities":594,"is_current":542},"2.0.5","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwithinweb-php-keycodes.2.0.5.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwithinweb-php-keycodes\u002Ftags\u002F2.0.5\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fwithinweb-php-keycodes%2Ftags%2F2.0.4&new_path=%2Fwithinweb-php-keycodes%2Ftags%2F2.0.5",[],{"version":596,"download_url":597,"svn_tag_url":598,"released_at":29,"has_diff":542,"diff_files_changed":599,"diff_lines":29,"trac_diff_url":600,"vulnerabilities":601,"is_current":542},"2.0.4","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwithinweb-php-keycodes.2.0.4.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwithinweb-php-keycodes\u002Ftags\u002F2.0.4\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fwithinweb-php-keycodes%2Ftags%2F1.0.2&new_path=%2Fwithinweb-php-keycodes%2Ftags%2F2.0.4",[],{"version":88,"download_url":603,"svn_tag_url":604,"released_at":29,"has_diff":542,"diff_files_changed":605,"diff_lines":29,"trac_diff_url":606,"vulnerabilities":607,"is_current":542},"https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwithinweb-php-keycodes.1.0.2.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwithinweb-php-keycodes\u002Ftags\u002F1.0.2\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fwithinweb-php-keycodes%2Ftags%2F1.0.1&new_path=%2Fwithinweb-php-keycodes%2Ftags%2F1.0.2",[],{"version":609,"download_url":610,"svn_tag_url":611,"released_at":29,"has_diff":542,"diff_files_changed":612,"diff_lines":29,"trac_diff_url":613,"vulnerabilities":614,"is_current":542},"1.0.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwithinweb-php-keycodes.1.0.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwithinweb-php-keycodes\u002Ftags\u002F1.0.1\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fwithinweb-php-keycodes%2Ftags%2F1.0&new_path=%2Fwithinweb-php-keycodes%2Ftags%2F1.0.1",[],{"version":616,"download_url":617,"svn_tag_url":618,"released_at":29,"has_diff":542,"diff_files_changed":619,"diff_lines":29,"trac_diff_url":29,"vulnerabilities":620,"is_current":542},"1.0","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwithinweb-php-keycodes.1.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwithinweb-php-keycodes\u002Ftags\u002F1.0\u002F",[],[]]