[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fC6V_xqxRHxghuBsGTwPGyBjb61zNaeDrhDJnVwYBvEg":3},{"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,"vulnerabilities":31,"developer":32,"crawl_stats":29,"alternatives":39,"analysis":158,"fingerprints":240},"vat-ust-id-checker-validator-eu-for-woocommerce","VAT \u002F UST ID Checker – Validator EU for WooCommerce","1.0.0","mlfactory","https:\u002F\u002Fprofiles.wordpress.org\u002Fmlfactory\u002F","\u003Cp>Just a small plugin that allows you to apply reverse charge (Europe) in WooCommerce.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cp>This small plugin for \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwoocommerce\u002F\" rel=\"ugc\">WooCommerce\u003C\u002Fa> allows you:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>1.) Checks if the vat ID given by the customer is valid\u003C\u002Fli>\n\u003Cli>2.) Checks if reverse charge can be applied\u003C\u002Fli>\n\u003Cli>2.) If reverse charge can be applied – vat is automatically omitted\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Its so simple, really!\u003C\u002Fh4>\n\u003Cp>All you have to do is to activate the plugin.\u003Cbr \u002F>\nAs soon as the plugin is activated, two selection buttons are automatically displayed at the checkout where the customer selects whether he is a company or a private person. If the customer chooses that he is a company he can enter his vat\u002Fust id. Directly after entering the vat\u002Fust id is checked in real time. The customer gets an immediate output if the vat\u002Fust id is valid and if reverse charge can be applied.\u003Cbr \u002F>\nIf reverse charge can be applied, vat is automatically omitted.\u003Cbr \u002F>\nThe output of the API is also added to the order as a note so you can check everything in detail.\u003C\u002Fp>\n\u003Ch4>Compatible plugins\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\n\u003Ca href=\"https:\u002F\u002Fec.europa.eu\" rel=\"nofollow ugc\">WooCommerce PDF Invoices\u003C\u002Fa>\u003Cbr \u002F>\nAn information on the invoice regarding reverse charge is displayed as well as the vat id itself.\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Used API\u003C\u002Fh4>\n\u003Cp>The verification is done via the API of \u003Ca href=\"https:\u002F\u002Fec.europa.eu\" rel=\"nofollow ugc\">ec.europa.eu (VIES\u002FMIAS)\u003C\u002Fa>.\u003Cbr \u002F>\nAll vat ids within the EU can be checked for validity.\u003C\u002Fp>\n\u003Ch3>Deutsch\u003C\u002Fh3>\n\u003Ch4>Funktionen\u003C\u002Fh4>\n\u003Cp>Dieses kleine Plugin für \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwoocommerce\u002F\" rel=\"ugc\">WooCommerce\u003C\u002Fa> erlaubt es:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>1.) Zu prüfen ob die des Kunden eingegebene UST ID gültig ist\u003C\u002Fli>\n\u003Cli>2.) Zu prüfen ob eine Umkehr der Steuerschuld (§ 13b UStG) möglich ist\u003C\u002Fli>\n\u003Cli>2.) Wenn eine Umkehr der Steuerschuld möglich ist entfällt die MwSt.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Es ist so einfach, wirklich!\u003C\u002Fh4>\n\u003Cp>Alles was Sie tun müssen, ist es das Plugin zu aktivieren.\u003Cbr \u002F>\nSobald das Plugin aktiviert ist, erscheinen 2 Auswahlmöglichkeiten an der Kasse (Privatperson\u002FFirma) sowie ein Eingabefeld für die UST ID.\u003Cbr \u002F>\nDer Kunde kann nun auswählen, ob er eine Privatperson ist oder eine Firma vertritt.\u003Cbr \u002F>\nWählt der Kunde Firma aus so kann er auch seine UST ID eingeben.\u003Cbr \u002F>\nSobald der Kunde seine UST ID eingibt wird diese in Echtzeit auf Ihre Gültigkeit geprüft.\u003Cbr \u002F>\nIst die UST ID gültig so wird automatisch die Steuerumkehrschuld angewendet – sprich die Mehrwertsteuern entfallen für den Leistungserbringer.\u003C\u002Fp>\n\u003Ch4>Kompatible Plugins\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\n\u003Ca href=\"https:\u002F\u002Fec.europa.eu\" rel=\"nofollow ugc\">WooCommerce PDF Invoices\u003C\u002Fa>\u003Cbr \u002F>\nEine Information bzgl. der Umkehr der Steuerschuld wird ausgegeben – ebenso die UST ID selbst.\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Genutze API\u003C\u002Fh4>\n\u003Cp>Die Prüfung erfolgt über die API von \u003Ca href=\"https:\u002F\u002Fec.europa.eu\" rel=\"nofollow ugc\">ec.europa.eu (VIES\u002FMIAS)\u003C\u002Fa>.\u003Cbr \u002F>\nEs können alle UST ID’s innerhalb der EU auf Ihre Gültigkeit geprüft werden.\u003C\u002Fp>\n","Just a small plugin that allows you to apply reverse charge (Europe) in WooCommerce.",10,1266,100,1,"2020-10-07T16:12:00.000Z","5.5.18","4.0","5.2.4",[20,21,22,23,24],"reverse-charge","ustid","validator","vat","woocommerce","http:\u002F\u002Fwww.mlfactory.de","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fvat-ust-id-checker-validator-eu-for-woocommerce.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":33,"total_installs":34,"avg_security_score":35,"avg_patch_time_days":36,"trust_score":37,"computed_at":38},7,20890,87,318,70,"2026-04-04T06:28:54.159Z",[40,63,88,112,136],{"slug":41,"name":42,"version":43,"author":44,"author_profile":45,"description":46,"short_description":47,"active_installs":48,"downloaded":49,"rating":50,"num_ratings":51,"last_updated":52,"tested_up_to":53,"requires_at_least":54,"requires_php":55,"tags":56,"homepage":60,"download_link":61,"security_score":13,"vuln_count":14,"unpatched_count":28,"last_vuln_date":62,"fetched_at":30},"woocommerce-services","WooCommerce Tax (formerly WooCommerce Shipping & Tax)","3.5.1","WooCommerce","https:\u002F\u002Fprofiles.wordpress.org\u002Fwoocommerce\u002F","\u003Cp>Attention: Shipping features have moved to a new dedicated plugin. Download WooCommerce Shipping.\u003C\u002Fp>\n\u003Cp>Enable automated taxes\u003Cbr \u002F>\nThat’s it! Once you update your tax settings, your store will collect sales tax at checkout based on the store address in your WooCommerce Settings.\u003C\u002Fp>\n\u003Cp>Eliminate the need to even think about sales taxes for your store\u003Cbr \u002F>\nAutomatically calculate how much sales tax should be collected for WooCommerce orders — by city, country, or state — at checkout.\u003C\u002Fp>\n\u003Ch3>External services\u003C\u002Fh3>\n\u003Cp>This plugin relies on the following external services:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\n\u003Cp>WordPress.com connection:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Description: The plugin makes requests to our own endpoints at WordPress.com (proxied via https:\u002F\u002Fapi.woocommerce.com) to fetch automated tax calculations.\u003C\u002Fli>\n\u003Cli>Website: https:\u002F\u002Fwordpress.com\u002F\u003C\u002Fli>\n\u003Cli>Terms of Service: https:\u002F\u002Fwordpress.com\u002Ftos\u002F\u003C\u002Fli>\n\u003Cli>Privacy Policy: https:\u002F\u002Fautomattic.com\u002Fprivacy\u002F\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Usage Tracking:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Description: The plugin will send usage statistics to our own service, after the user has accepted our Terms of Service.\u003C\u002Fli>\n\u003Cli>Script: https:\u002F\u002Fstats.wp.com\u002Fw.js\u003C\u002Fli>\n\u003Cli>Terms of Service: https:\u002F\u002Fwordpress.com\u002Ftos\u002F\u003C\u002Fli>\n\u003Cli>Privacy Policy: https:\u002F\u002Fautomattic.com\u002Fprivacy\u002F\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Fol>\n","We’re here to help with tax rates: collect accurate sales tax, automatically.",600000,48372092,40,105,"2026-03-10T08:22:00.000Z","6.9.4","6.7","7.4",[57,58,59,23,24],"gst","payment","tax","https:\u002F\u002Fwoocommerce.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwoocommerce-services.3.5.1.zip","2023-05-23 00:00:00",{"slug":64,"name":65,"version":66,"author":67,"author_profile":68,"description":69,"short_description":70,"active_installs":71,"downloaded":72,"rating":73,"num_ratings":74,"last_updated":75,"tested_up_to":53,"requires_at_least":76,"requires_php":77,"tags":78,"homepage":83,"download_link":84,"security_score":85,"vuln_count":86,"unpatched_count":28,"last_vuln_date":87,"fetched_at":30},"customize-my-account-for-woocommerce","SysBasics Customize My Account for WooCommerce","3.8.7","SysBasics","https:\u002F\u002Fprofiles.wordpress.org\u002Fphppoet\u002F","\u003Ch3>Customize My Account for WooCommerce\u003C\u002Fh3>\n\u003Cp>SysBasics Customize My Account for WooCommerce Plugin add dashboard links , user avatar, manage My Account endpoints & account\u002Fregistration fields\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fsysbasics.com\u002Fgo\u002Fcustomize\u002F\" title=\"Customize My Account for WooCommerce pro\" rel=\"nofollow ugc\">Upgrade to pro\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Customize My Account for WooCommerce\u003C\u002Fp>\n\u003Cp>Customize your default my account page. Reorder them , hide existing core endpoints. You will also be able to change the default endpoint.\u003C\u002Fp>\n\u003Ch3>Main Features of Customize My Account for WooCommerce plugin\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Add new endpoints in the My Account page, visible to your users , and choose what the content will be using third party shortcodes. You can use third party\u003Cbr \u002F>\nsubscription , royalty , coupons , wallet related shortcodes.\u003C\u002Fli>\n\u003Cli>Create Specific endpoints , links , groups into my account page that are visible only specific roles or users;\u003C\u002Fli>\n\u003Cli>Choose and customize the layout of the My Account page so to make it more usable and modern;\u003C\u002Fli>\n\u003Cli>Hide\u002Fshow existing endpoitns without using any extra code. \u003C\u002Fli>\n\u003Cli>Add icons to your existings my account page endpoints. Optionally you can display them as dashboard links and most importantly show them inside\u003Cbr \u002F>\nMy account widget. \u003C\u002Fli>\n\u003Cli>Compatible with WPML and WPML sticky links.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Modify the default WooCommerce endpoints\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>This is the most important feature of this plugin just after activation using checkboxes you exclude\u002Finclude\u002Frename existing endpoints. set icons to existing and new endpoint\u002Flinks. Plugin support three types of library as of now for icons. Font Awesome, Dashicons and you can also upload your own icon.\u003Cbr \u002F>\nPlugin also seamlessly integrates itself with third party endpoints. It recognises the existing endpoint. Best part is that you can even reorder\u002Frename that\u003Cbr \u002F>\nthird party endpoint. In certain cases if you want this plugin to take over third party endpoint, just hide the existing third party endpoint by unchecking\u003Cbr \u002F>\nthe checkbox then create new endpoint with same slug and it will work fine. For example you have Rewards Endpoint that are sourced from any other plugin which has revwards slud. in that case if you want full control as other endpoints just hide existing endpoint and add new endpoint with rewards slug and it will just work fine. \u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Show count bubble on navigation items\u003C\u002Fh3>\n\u003Cp>-You can show customers order count and customer’s download count to both sidebar menu as well as dashboard links added by our plugin. You can also show any chosen custom post type count by user like tickets , coupons or any other cpt. This function is fully modular so you can create your own function with any custom data like rewards, wallet balance etc.\u003C\u002Fp>\n\u003Cp>Plugin Supports following counts.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Customer total orders count.\u003C\u002Fli>\n\u003Cli>Customer total downloads count.\u003C\u002Fli>\n\u003Cli>Wallet balance by \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwoo-wallet\u002F\" rel=\"ugc\">Wallet for WooCommerce\u003Cbr \u002F>\n\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>Points by \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpoints-and-rewards-for-woocommerce\u002F\" rel=\"ugc\">Points and Rewards for WooCommerce by WP Swings\u003Cbr \u002F>\n\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Make your Dashboard Pretty with Dashboard links (Pro Feature)\u003C\u002Fh3>\n\u003Cp>-Plugin upon activation ads dashboard links or you may call it banner to your dashboard page. Most importantly you can manage the order of those dashboard links and you can also exclude certain endpoints from being included in dashboard links. Certain themes do have this feature inbuilt , in those case we\u003Cbr \u002F>\nhave provided you option to disable this feature completely. It works on most possible scenarios with wider theme compatibility. This feature is part of pro version only.\u003C\u002Fp>\n\u003Ch3>My Account navigation widget menu\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Plugin has inbuilt my account navigation widget menu feature where you can include existing endpoint links and display them into any menu of your site. Plugin also support navigation widget under appearance\u002Fmenu field.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Allow WooCommerce users to change avatar\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Pugin by default upon activation displays nice gravtar on my account page where optionally you can allow them to change the avatar by uploading png\u002Fjpg file. you can even adjust the dimension of avatar for users.  \u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Redirect default dashboard to endpoint (Pro Feature)\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Using simple option you can replace default page from dashboard to orders , downloads or something else. you can even create custom endpoint and send users there upon login. This feature is useful specially if you don’t like the default dashboard. Using elementor you can create clone template of dashboard or other endpoint and replace that with new cloned template.  This feature is part of pro version only.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Make WooCommerce My Account Endpoints Ajax Powered (Pro Feature)\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Using simple option you can make Entire my account endpoints content loaded via Ajax, This could improve end user feel about your site. It does work with custom groups and custom endpoints. Simply visit the settings tab and set yes for Enable Ajax navigation option and you will see smoother loading experience on frontend.Ajax navigation even works with dashboard links and internal my account page links like Edit shipping address and Edit billing address Check our pro version demo for this feature. This feature is part of pro version only.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Override endpoints using elementor\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>This plugin is even charm with free plugin elementor where you can create cloned template of existing endpoints and replace existing endpoints with cloned endpoints usind elementor’s drag and drop feature. \u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Change From your account dashboard text\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>WooCommerce displays “Change From your account dashboard text” at the begining of dashboard content after “Hello , username” text which could be very irritating for many. Using this plugin you can simply hide  “Hello , username” text plus you can hide entire intro text “From your account dashboard you can view your …” and you can also add new custom html or plan content just as a replacement of that text. Just visit the settings of dashboard endpoint and you should be able to find three toggle to enable or disable any. \u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Make WooCommerce My account menu horizontal (Pro Feature) \u003C\u002Fh3>\n\u003Cul>\n\u003Cli>WooCommerce by default have vertical menu which is good for most case scenario but in certain cases where menu items are limited users can opt for horizontal menu. Just visit the settings tab and set yes for Enable horizontal menu. This feature is compatible with most of popular themes out there. This feature is part of pro version only.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>ACF forms in WooCommerce My Account\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Using third party plugin \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Facf-frontend-form-element\u002F\" rel=\"ugc\">Frontend Admin by DynamiApps\u003C\u002Fa> You can create dynamic forms within your woocommerce my account page. possible use case scenario like having profile edit form inside endpoint, guest posting form , recipe submission form etc. Possibilities are endless with this.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp> Customize My Account for WooCommerce Other features \u003C\u002Fp>\n\u003Cul>\n\u003Cli>Modify existing endpoints.\u003C\u002Fli>\n\u003Cli>Add My Account navigation widget to any menu.\u003C\u002Fli>\n\u003Cli>Add custom links to your my account pages.\u003C\u002Fli>\n\u003Cli>Drag and drop UI.\u003C\u002Fli>\n\u003Cli>Modify WooCommerce My account Navigation background color\u003C\u002Fli>\n\u003Cli>Modify WooCommerce My account Navigation text color\u003C\u002Fli>\n\u003Cli>Modify WooCommerce My account menu item background color\u003C\u002Fli>\n\u003Cli>Easily Create new custom my account page using Customize My Account widgets for free elementor widgets. \u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp> Customize My Account for WooCommerce free version features \u003C\u002Fp>\n\u003Cul>\n\u003Cli>Show\u002Fhide woocommerce core endpoints\u003C\u002Fli>\n\u003Cli>Reorder core woocommerce my account endpoints\u003C\u002Fli>\n\u003Cli>Add extra class to core endpoint\u003C\u002Fli>\n\u003Cli>Add New link as endpoint on my account page\u003C\u002Fli>\n\u003Cli>Show user avatar on my account page\u003C\u002Fli>\n\u003Cli>Drag and drop UI\u003C\u002Fli>\n\u003Cli>Use Dashicons for WooCommerce My Account Endpoints. Plugin has inbuilt dashicon picker. If somehow font awesome icons not working for you , you can opt for dashicon which has wider compatibility across all themes.\u003C\u002Fli>\n\u003Cli>Optionally replace entire my account with custom elementor template.\u003C\u002Fli>\n\u003Cli>Optionally override endpoint content with elementor template content\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Customize My Account for WooCommerce pro version features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>All features of free version\u003C\u002Fli>\n\u003Cli>Support for link\u002Fendpoint\u002Fgroup endpoints\u003C\u002Fli>\n\u003Cli>Drage link\u002Fendpoints(core\u002Fnew) into group and reorder them\u003C\u002Fli>\n\u003Cli>Show custom content on endpoints\u003C\u002Fli>\n\u003Cli>Set groups as show by default which will make group menu open on page load\u003C\u002Fli>\n\u003Cli>Hide existing order page columns\u003C\u002Fli>\n\u003Cli>Add new custom columns to order listing page\u003C\u002Fli>\n\u003Cli>Reorder order page columns\u003C\u002Fli>\n\u003Cli>Add new custom order actions button in action column\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Privacy Policy\u003C\u002Fh3>\n\u003Cp>Customize My Account for WooCommerce uses \u003Ca href=\"https:\u002F\u002FAppsero.com\" rel=\"nofollow ugc\">Appsero\u003C\u002Fa> SDK to collect some telemetry data upon user’s confirmation. This helps us to troubleshoot problems faster & make product improvements.\u003C\u002Fp>\n\u003Cp>Appsero SDK \u003Cstrong>does not gather any data by default.\u003C\u002Fstrong> The SDK only starts gathering basic telemetry data \u003Cstrong>when a user allows it via the admin notice\u003C\u002Fstrong>. We collect the data to ensure a great user experience for all our users.\u003C\u002Fp>\n\u003Cp>Integrating Appsero SDK \u003Cstrong>DOES NOT IMMEDIATELY\u003C\u002Fstrong> start gathering data, \u003Cstrong>without confirmation from users in any case.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Learn more about how \u003Ca href=\"https:\u002F\u002FAppsero.com\u002Fprivacy-policy\u002F\" rel=\"nofollow ugc\">Appsero collects and uses this data\u003C\u002Fa>.\u003C\u002Fp>\n","Optimize your WooCommerce My account page also add new endpoints and manage existing endpoints with ease.",9000,535374,80,29,"2026-03-10T00:06:00.000Z","3.3","5.2",[79,80,81,82,24],"customize","endpoints","my-account","user-avatar","https:\u002F\u002Fsysbasics.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcustomize-my-account-for-woocommerce.3.8.7.zip",98,3,"2024-12-21 00:00:00",{"slug":89,"name":90,"version":91,"author":92,"author_profile":93,"description":94,"short_description":95,"active_installs":96,"downloaded":97,"rating":98,"num_ratings":99,"last_updated":100,"tested_up_to":53,"requires_at_least":101,"requires_php":55,"tags":102,"homepage":108,"download_link":109,"security_score":110,"vuln_count":14,"unpatched_count":28,"last_vuln_date":111,"fetched_at":30},"flexible-invoices","Flexible PDF Invoices for WooCommerce & WordPress","6.2.11","wpdesk","https:\u002F\u002Fprofiles.wordpress.org\u002Fwpdesk\u002F","\u003Cp>★★★★★\u003C\u002Fp>\n\u003Cp>Flexible PDF Invoices for WooCommerce & WordPress is a plugin that allows you to create WooCommerce invoices for free. Flexible PDF Invoices also let you issue vat invoices in WordPress not related to WooCommerce orders. So you may generate and manage all PDF invoices in one place.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cp>See the main features of the free version:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>NEW\u003C\u002Fstrong> Create your own invoice templates in Gutenberg editor,\u003C\u002Fli>\n\u003Cli>\u003Cstrong>NEW\u003C\u002Fstrong> Use one of predefined invoices template to speed up start of invoicing,\u003C\u002Fli>\n\u003Cli>Issue PDF invoices for WooCommerce orders,\u003C\u002Fli>\n\u003Cli>Create vat invoices in WooCommerce and WordPress manually,\u003C\u002Fli>\n\u003Cli>Issue, save, and download PDF invoices,\u003C\u002Fli>\n\u003Cli>Add, edit and delete invoices (invoices are stored as Custom Post Types),\u003C\u002Fli>\n\u003Cli>Send invoices manually,\u003C\u002Fli>\n\u003Cli>Manage currencies, tax rates, and payment methods,\u003C\u002Fli>\n\u003Cli>Create PDF invoices ready for VAT taxpayers and VAT-exempt entities,\u003C\u002Fli>\n\u003Cli>Generate and download WooCommerce invoices in bulk by a date range,\u003C\u002Fli>\n\u003Cli>Add EU VAT number in the checkout, order data, and to your WooCommerce invoice,\u003C\u002Fli>\n\u003Cli>Add payment info & additional notes in the invoice footer,\u003C\u002Fli>\n\u003Cli>Use custom numbering of invoices with shortcodes and by adding your own prefixes and suffixes,\u003C\u002Fli>\n\u003Cli>Set the initial number for WooCommerce PDF invoices so you may begin invoicing with the plugin throughout the year,\u003C\u002Fli>\n\u003Cli>Prepare reports with a summary of all documents issued in a chosen date range,\u003C\u002Fli>\n\u003Cli>Translate WooCommerce invoices into the languages of your customers by using WPML,\u003C\u002Fli>\n\u003Cli>Compatible with the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fflexible-quantity-measurement-price-calculator-for-woocommerce\u002F\" rel=\"ugc\">Flexible Quantity – Measurement Price Calculator for WooCommerce plugin\u003C\u002Fa>. Sell with \u003Cstrong>new units of measure\u003C\u002Fstrong> and show them on your WooCommerce PDF invoices!\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Visit\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fflexibleinvoices.com\u002Fsk\u002Fflexible-invoices-rm-docs\u002F\" rel=\"nofollow ugc\">Flexible Invoices Docs\u003C\u002Fa> to see all features of the plugin and how to issue, edit, download, and manage WooCommerce invoices.\u003C\u002Fp>\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\u002FBvsXrdtebUk?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&start=8&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>\n\u003Ch3>PRO Features\u003C\u002Fh3>\n\u003Cp>Generate and send WooCommerce PDF invoices in your store automatically with Flexible Invoices for WooCommerce PRO: \u003Ca href=\"https:\u002F\u002Fflexibleinvoices.com\u002Fsk\u002Fflexible-invoices-rm-pro\" rel=\"nofollow ugc\">Flexible Invoices for WooCommerce PRO\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>See some of its features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>[PRO] Issue and send WooCommerce PDF invoices \u003Cstrong>automatically\u003C\u002Fstrong>,\u003C\u002Fli>\n\u003Cli>[PRO] Three types of documents – invoice, proforma, and correction invoice\u003C\u002Fli>\n\u003Cli>[PRO] VAT invoices compatible with \u003Cstrong>EU law\u003C\u002Fstrong>,\u003C\u002Fli>\n\u003Cli>[PRO] MOSS and OSS support,\u003C\u002Fli>\n\u003Cli>[PRO] \u003Cstrong>EU VAT number\u003C\u002Fstrong> validation in the VIES database,\u003C\u002Fli>\n\u003Cli>[PRO] Conversion of VAT on the WooCommerce invoice into local currency,\u003C\u002Fli>\n\u003Cli>[PRO] Support for \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwoocommerce-product-price-based-on-countries\u002F\" rel=\"ugc\">Price Based on Country for WooCommerce\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fflexibleinvoices.com\u002Fsk\u002Fflexible-invoices-rm-pro\" rel=\"nofollow ugc\">Upgrade to PRO Now &rarr;\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Live Demo\u003C\u002Fh3>\n\u003Cp>Test Flexible PDF Invoices for WooCommerce & WordPress (free, PRO, and add-ons) in \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwpdesk.link\u002Fdemo-fi\" rel=\"nofollow ugc\">your free demo\u003C\u002Fa>\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Ch3>Add-ons for the PRO version\u003C\u002Fh3>\n\u003Cp>For the PRO version, you can also use add-ons to customize the invoices and get more features:\u003C\u002Fp>\n\u003Ch4>1️⃣ Flexible Invoices – Advanced Sending\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Email WooCommerce invoices automatically daily, weekly or monthly, for example, to your accounting office,\u003C\u002Fli>\n\u003Cli>Send CSV reports from your store to the accounting office automatically on a daily, weekly, and monthly basis,\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fflexibleinvoices.com\u002Fsk\u002Fflexible-invoices-rm-as\" rel=\"nofollow ugc\">Find it in Flexible Invoices – Advanced Sending add-on &rarr;\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>2️⃣ Flexible Invoices – Advanced Filters\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Filter invoices by document type, VAT number, payment status, and much more,\u003C\u002Fli>\n\u003Cli>Sort WooCommerce invoices in the list by date ranges and prices,\u003C\u002Fli>\n\u003Cli>Use additional data columns to manage your WooCommerce invoices,\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fflexibleinvoices.com\u002Fsk\u002Fflexible-invoices-rm-af\" rel=\"nofollow ugc\">Find it in Flexible Invoices – Advanced Filters add-on &rarr;\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>3️⃣ Flexible Invoices – Advanced Templates\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Customize your WooCommerce PDF invoices by changing templates, fonts, and colors,\u003C\u002Fli>\n\u003Cli>Use or adjust several invoice templates to your needs,\u003C\u002Fli>\n\u003Cli>Personalize the invoice template to match your store’s design,\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fflexibleinvoices.com\u002Fsk\u002Fflexible-invoices-rm-at\" rel=\"nofollow ugc\">Find it in Advanced Templates for Flexible Invoices PRO add-on &rarr;\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>4️⃣ Flexible Invoices – Advanced Reports\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Get better insights about your sales,\u003C\u002Fli>\n\u003Cli>Create reports for accounting purposes,\u003C\u002Fli>\n\u003Cli>Adjust columns, and filter or sort by issue date, sale date, payment date,\u003C\u002Fli>\n\u003Cli>Include WooCommerce invoices based on tax rates, currencies, countries, and dates.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fflexibleinvoices.com\u002Fsk\u002Fflexible-invoices-rm-ar\" rel=\"nofollow ugc\">Find it in Advanced Reports for Flexible Invoices PRO add-on &rarr;\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>⭐ Flexible Invoices – All Plugins Bundle\u003C\u002Fh4>\n\u003Cp>Get the PRO version of Flexible Invoices and all its add-ons with the \u003Ca href=\"https:\u002F\u002Fflexibleinvoices.com\u002Fsk\u002Fflexible-invoices-rm-bundle\" rel=\"nofollow ugc\">Flexible Invoices All Plugins Bundle &rarr;\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Docs\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fflexibleinvoices.com\u002Fsk\u002Fflexible-invoices-rm-docs\u002F\" rel=\"nofollow ugc\">View Flexible Invoices for WooCommerce PRO Docs\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Support Policy\u003C\u002Fh3>\n\u003Cp>We provide limited support for the free version in the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fflexible-invoices\u002F\" rel=\"ugc\">plugin Support Forum\u003C\u002Fa>. Please purchase a WooCommerce extension to receive priority e-mail support as well as all e-commerce PRO features. \u003Ca href=\"https:\u002F\u002Fflexibleinvoices.com\u002Fsk\u002Fflexible-invoices-rm-pro\" rel=\"nofollow ugc\">Upgrade Now &rarr;\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Languages\u003C\u002Fh3>\n\u003Cp>The Flexible PDF Invoices for WooCommerce & WordPress plugin is available in:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>English\u003C\u002Fli>\n\u003Cli>French\u003C\u002Fli>\n\u003Cli>Dutch\u003C\u002Fli>\n\u003Cli>Polish\u003C\u002Fli>\n\u003Cli>Spanish\u003C\u002Fli>\n\u003Cli>Japanese\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You may help us \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fflexible-invoices\" rel=\"nofollow ugc\">translate the plugin\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Flexible Invoices in a nutshell\u003C\u002Fh3>\n\u003Cp>Flexible PDF Invoices for WooCommerce & WordPress is a plugin for invoicing in WooCommerce. You can use it to invoice orders in your WooCommerce store. Also, it perfectly runs in a standalone WordPress, so you can invoice your services directly in the WordPress dashboard.\u003C\u002Fp>\n\u003Cp>★★★★★\u003C\u002Fp>\n\u003Cp>PRO version automates issuing WooCommerce PDF invoices. The plugin lets you create three types of documents – invoice, proforma, and correction invoice. If you need more info on your WooCommerce invoice, you may add additional notes as well.\u003C\u002Fp>\n\u003Cp>The PRO version will help you issue invoices under the MOSS and OSS procedure too! Individual customers will receive documents with the proper EU VAT number and VAT on the invoice. The business buyers will get reverse charge PDF invoices for WooCommerce orders thanks to the automatic EU VAT number validation in the checkout.\u003C\u002Fp>\n\u003Cp>The PRO version supports WooCommerce integration with many features like full EU VAT support for the vat invoice. The plugin generates WooCommerce PDF invoices automatically with full support for EU transactions. Also, thanks to the plugin, you may issue manual invoices in WordPress and a WooCommerce invoice any time you want. See how easy it is to configure the plugin, generate, send, and download invoices 🙂\u003C\u002Fp>\n\u003Ch3>Data use policy\u003C\u002Fh3>\n\u003Cp>Learn about \u003Ca href=\"https:\u002F\u002Fflexibleinvoices.com\u002Fsk\u002Fflexible-invoices-rm-privacy\" rel=\"nofollow ugc\">Use of Data Policy by WP Desk Plugins\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Roadmap\u003C\u002Fh3>\n\u003Cp>There is still a lot of work ahead 🙂 The Flexible PDF Invoices for WooCommerce & WordPress invoices will evolve according to your expectations! Let us know what you need from the plugin, and we’ll include it in our plans for plugin development. \u003Ca href=\"https:\u002F\u002Fflexibleinvoices.com\u002Fsk\u002Fflexible-invoices-rm-ideas\u002F\" rel=\"nofollow ugc\">You can vote for a feature you like or create your own here\u003C\u002Fa>.\u003C\u002Fp>\n","WooCommerce PDF invoices made simple. EU VAT validation, reverse charge invoice, proforma invoices, MOSS \u002F OSS support, invoices in bulk and more.",7000,366489,88,37,"2026-03-12T11:20:00.000Z","6.4",[103,104,105,106,107],"eu-vat","invoice","vat-invoice","woocommerce-invoices","woocommerce-pdf-invoices","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fflexible-invoices\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fflexible-invoices.6.2.11.zip",99,"2025-09-22 00:00:00",{"slug":113,"name":114,"version":115,"author":116,"author_profile":117,"description":118,"short_description":119,"active_installs":120,"downloaded":121,"rating":122,"num_ratings":123,"last_updated":124,"tested_up_to":125,"requires_at_least":126,"requires_php":127,"tags":128,"homepage":134,"download_link":135,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"toolkit-for-envato","Envato Toolkit","1.4","KestutisIT","https:\u002F\u002Fprofiles.wordpress.org\u002Fkestutisit\u002F","\u003Cp>It is a 3 files library + Visual UI, to validate the purchase codes of your customers, get details about specific Envato user (country, city, total followers, total sales, avatar), get his license purchase and support expiration dates, license type he bought, check for updates of purchased plugins and themes and get the download links for them.\u003C\u002Fp>\n\u003Cp>Plus – this library has Envato Item Id search feature by providing plugin’s or theme’s name and author. So – yes, this is a tool you, as a developer \u002F author, have been looking for months.\u003C\u002Fp>\n\u003Cp>If you are looking for the library-only version to integrate into your plugin \u002F theme, it’s on GitHub:\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FKestutisIT\u002FEnvatoToolkit\" title=\"Envato Toolkit (Standalone)\" rel=\"nofollow ugc\">Envato Toolkit (Standalone)\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>The main purpose of this plugin is to help you to start much easier without having a headache trying to understand \u003Ccode>WordPress - Envato Market\u003C\u002Fcode> plugins code, that is the only one built by Envato, and has so complicated and unclear code, that you never get how it works (see example below).\u003C\u002Fp>\n\u003Cp>When I tried to create plugin’s \u003Ccode>[Check for Update]\u003C\u002Fcode> and \u003Ccode>[Validate Purchase Code]\u003C\u002Fcode> feature-buttons in the plugin myself, and I saw the code of the \u003Ccode>WordPress - Envato Market\u003C\u002Fcode> plugin, I was shocked how badly it is written and how you should not to code.\u003C\u002Fp>\n\u003Cp>For example – you would like to give an error message, if Envato user token is empty, which is a required string, i.e. – \u003Ccode>pAA0aBCdeFGhiJKlmNOpqRStuVWxyZ44\u003C\u002Fcode>. If you like K.I.S.S., PSR-2, D.R.Y., clean code coding standards and paradigms, you’d probably just have these five lines of code, so that every developer would get it:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$token = get_user_meta(get_current_user_id(), 'envato_token', TRUE);\nif($token == \"\")\n{\n    return new \\WP_Error('api_token_error', __('An API token is required.', 'envato-toolkit'));\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Now lets see how the same task traceback looks like in \u003Ccode>WordPress - Envato Market\u003C\u002Fcode> plugin:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\n\u003Cp>\u003Ccode>[Api.php -> request(..)]\u003C\u002Fcode> Check if the token is empty:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>if ( empty( $token ) )\n{\n    return new WP_Error( 'api_token_error', __( 'An API token is required.', 'envato-market' ) );\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>[Api.php -> request(..)]\u003C\u002Fcode> Parse it from another string:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$token = trim( str_replace( 'Bearer', '', $args['headers']['Authorization'] ) );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>[Api.php -> request(..)]\u003C\u002Fcode> Parse it one more time – this time from arguments array:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>public function request( $url, $args = array() ) {\n    $defaults = array(\n        'timeout' => 20,\n    );\n    $args = wp_parse_args( $args, $defaults );\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>[Api.php -> download(..)]\u003C\u002Fcode> Transfer the token variable one more time – this time via params:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>class Envato_Market_API {\n    public function download( $id, $args = array() ) {\n        $url = 'https:\u002F\u002Fapi.envato.com\u002Fv2\u002Fmarket\u002Fbuyer\u002Fdownload?item_id=' . $id . '&shorten_url=true';\n        return $this->request( $url, $args );\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>[admin.php -> maybe_deferred_download(..)]\u003C\u002Fcode> Pass it again – this time get it to args array from another method call:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function maybe_deferred_download( $options ) {\n    $args = $this->set_bearer_args();\n    $options['package'] = envato_market()->api()->download( $vars['item_id'], $args );\n    return $options;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>[admin.php -> set_bearer_args(..)]\u003C\u002Fcode> Wrap the token into multi-dimensional string array:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$args = array(\n    'headers' => array(\n        'Authorization' => 'Bearer ' . $token,\n    ),\n);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>[admin.php -> set_bearer_args(..)]\u003C\u002Fcode> Pass the wrapped token one more time – this time get it from get_option:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>foreach ( envato_market()->get_option( 'items', array() ) as $item ) {\n    if ( $item['id'] === $id ) {\n        $token = $item['token'];\n        break;\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>[admin.php -> get_option(..)]\u003C\u002Fcode> So what’s in this \u003Ccode>get_option\u003C\u002Fcode>? – Correct, another call to another method – \u003Ccode>get_options()\u003C\u002Fcode>:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>public function get_option( $name, $default = '' ) {\n    $options = self::get_options();\n    $name = self::sanitize_key( $name );\n    return isset( $options[ $name ] ) ? $options[ $name ] : $default;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>[admin.php -> get_options()]\u003C\u002Fcode> Finally, after almost 10 steps in the tree, we are finally getting the original\u003Cbr \u002F>\nWordPress method call, but now I’m getting confused again – what is that \u003Ccode>option_name\u003C\u002Fcode> variable here:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>public function get_options() {\n    return get_option( $this->option_name, array() );\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>[envato-market.php -> init_globals()]\u003C\u002Fcode> Here is it is – the \u003Ccode>option name\u003C\u002Fcode> key name is… Oh wait…\u003Cbr \u002F>\nNo it is not here it. It is equals to another variable, who is is put\u003Cbr \u002F>\nin another clean-up function – look like I’m keep seeing this for the 2 time in the tree – the sanitization of sanitization:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$this->option_name = self::sanitize_key( $this->slug );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>[envato-market.php -> init_globals()]\u003C\u002Fcode> So the \u003Ccode>option name\u003C\u002Fcode> key name is the name of \u003Ccode>$this->slug\u003C\u002Fcode>.\u003Cbr \u002F>\nNow lets see what is the value of \u003Ccode>$this->slug\u003C\u002Fcode>:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$this->slug        = 'envato-market';\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>So it takes \u003Cstrong>eleven (!)\u003C\u002Fstrong> steps to understand one variable. And the whole code of that plugin is like that. The example above was the headache I had, until I realized that I must write a new Envato API Management Toolkit, instead of trying to use what Envato is giving, because otherwise I won’t get anything working ever.\u003C\u002Fp>\n\u003Cp>And, I believe, that many other developers had the same issue when tried to create update check feature for their plugins or themes.\u003C\u002Fp>\n\u003Cp>So instead of using that library for myself, I decided that I want to help all these developers to save their time, and I’m sharing this code with you. I’m releasing it under MIT license, which allows you to use this code in your plugin without any restrictions for both – free and commercial use.\u003C\u002Fp>\n\u003Cp>Plus – I’m giving a promise to you, that this plugin is and will always be 100% free, without any ads, ‘Subscribe’, ‘Follow us’, ‘Check our page’, ‘Get Pro Version’ or similar links.\u003C\u002Fp>\n\u003Cp>If you created in hi-quality code a valuable additional functionality to the library and you want to share it with everyone – I’m open here to support your efforts, and add your code to the plugin’s library, so that we all together make this plugin better for authors – the better is the plugin, the better plugins authors will make for their customers. The better quality products we will have on the internet, the happier people will be all over the world.\u003C\u002Fp>\n\u003Cp>Finally – the code is poetry – \u003Cstrong>the better is the plugin, the happier is the world\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>The pseudo-code of example output of the plugin is this:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>Details about you:\n----------------------------------------------------------\nList of all different plugins you bought:\n\u003C?php foreach($plugins AS $pluginId => $plugin): ?>\n    \u003C?='Plugin Id: '.$pluginId.', Name: '.$plugin['name'];?>, Licenses:\n    \u003C?php foreach($plugin['licenses'] AS $license): ?>\n        Code: \u003C?=$license['purchase_code'];?>,\n        License: \u003C?=$license['license'];?>,\n        Purchased: \u003C?=$license['license_purchase_date'];?> \u003C?=$license['license_purchase_time'];?>,\n        Expires: \u003C?=$license['support_expiration_date'];?> \u003C?=$license['support_expiration_time'];?>,\n        Support Status: \u003C?=$license['support_active'];?>\n    \u003C?php endforeach; ?>\n\u003C?php endforeach; ?>\n\nList of all different themes you bought:\n\u003C?php foreach($themes AS $themeId => $theme): ?>\n    \u003C?='Theme Id: '.$themeId.', Name: '.$theme['name'];?>, Licenses:\n    \u003C?php foreach($theme['licenses'] AS $license): ?>\n        Code: \u003C?=$license['purchase_code'];?>,\n        License: \u003C?=$license['license'];?>,\n        Purchased: \u003C?=$license['license_purchase_date'];?> \u003C?=$license['license_purchase_time'];?>,\n        Expires: \u003C?=$license['support_expiration_date'];?> \u003C?=$license['support_expiration_time'];?>,\n        Status: \u003C?=$license['support_active'] == 1 ? \"Supported\" : \"Support Expired\";?>\n    \u003C?php endforeach; ?>\n\u003C?php endforeach; ?>\n\nYour summary:\nYour location is \u003C?=$authorCity;?>, \u003C?=$authorCountry;?>.\nYou've sold your items \u003C?=$authorSales;?> times and you have \u003C?=$authorFollowers;?> followers on Envato.\n\n1. Your Customer's License Details\n----------------------------------------------------------\nPurchase Code: \u003C?=$targetPurchaseCode;?>\nIs Valid License: \u003C?=$isValidTargetLicense ? 'Yes' : 'No';?>\nBuyer Username: \u003C?=$targetLicenseBuyer;?>\nLicense Type: \u003C?=$targetLicenseType;?>\nPurchased At: \u003C?=$targetLicensePurchasedAt;?>\nSupported Until: \u003C?=$targetLicenseSupportedUntil;?>\nSupport Status: \u003C?=$targetLicenseSupportActive == 1 ? \"Supported\" : \"Support Expired\";?>\n\n2. Details About Target Envato User - \u003C?=$targetUsername;?>\n----------------------------------------------------------\n\u003C?=$targetUsername;?> is located in \u003C?=$targetUserCity;?>, \u003C?=$targetUserCountry;?>.\nHe sold his items \u003C?=$targetUserSales;?> times and has \u003C?=$targetUserFollowers;?> followers on Envato.\n\n3. Status of Purchased Plugin ID - \u003C?=$targetPluginId;?>\n----------------------------------------------------------\nPlugin Name: \u003C?=$nameOfTargetPluginId;?>\nPlugin Update Available: \u003C?=$pluginUpdateAvailable ? 'Yes' : 'No';?>\nInstalled Plugin Version: \u003C?=$installedPluginVersion;?>\nAvailable Plugin Version: \u003C?=$availablePluginVersion;?>\nPlugin Update Download URL:\n\u003Ca href=\"\u003C?=$pluginUpdateDownloadUrl;?>\" target=\"_blank\" title=\"Download newest version\">Download newest version\u003C\u002Fa>\n\n4. Status of Purchased Theme ID - \u003C?=$targetThemeId;?>:\n----------------------------------------------------------\nTheme Name: \u003C?=$nameOfTargetThemeId;?>\nTheme Update Available: \u003C?=$themeUpdateAvailable ? 'Yes' : 'No';?>\nInstalled Theme Version: \u003C?=$installedThemeVersion;?>\nAvailable Theme Version: \u003C?=$availableThemeVersion;?>\nTheme Update Download URL:\n\u003Ca href=\"\u003C?=$themeUpdateDownloadUrl;?>\" target=\"_blank\" title=\"Download newest version\">Download newest version\u003C\u002Fa>\n\n5. Envato Item Id of Purchased Plugin\n----------------------------------------------------------\nSearched for Name: \u003C?=$targetPluginName;?>\nSearched for Author: \u003C?=$targetPluginAuthor;?>\nFound Plugin Id: \u003C?=$foundPluginId;?>\n\n6. Envato Item Id of Purchased Theme\n----------------------------------------------------------\nSearched for Name: \u003C?=$targetThemeName;?>\nSearched for Author: \u003C?=$targetThemeAuthor;?>\nFound Theme Id: \u003C?=$foundThemeId;?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>And the example input of the output above, it this:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$objToolkit = new EnvatoAPIManager($toolkitSettings);\n\n\u002F\u002F Details about you\n$purchasedPlugins = $objToolkit->getPurchasedPluginsWithDetails();\n$plugins = array();\nforeach($purchasedPlugins AS $pluginId => $purchasedPlugin)\n{\n    $purchasedPlugin['licenses'] = $objToolkit->getLicensesByItemId($pluginId);\n    $plugins[$pluginId] = $purchasedPlugin;\n}\n\n$purchasedThemes = $objToolkit->getPurchasedThemesWithDetails();\n$themes = array();\nforeach($purchasedThemes AS $themeId => $purchasedTheme)\n{\n    $purchasedTheme['licenses'] = $objToolkit->getLicensesByItemId($themeId);\n    $themes[$themeId] = $purchasedTheme;\n}\n\n$authorDetails = $objToolkit->getUserDetails($sanitizedEnvatoUsername);\n\u002F\u002F View vars\n$view->plugins = $plugins;\n$view->themes = $themes;\nif($authorDetails != FALSE)\n{\n    $view->authorCity = $authorDetails['city'];\n    $view->authorCountry = $authorDetails['country'];\n    $view->authorSales = $authorDetails['sales'];\n    $view->authorFollowers = $authorDetails['followers'];\n} else\n{\n    $view->authorCity = '';\n    $view->authorCountry = '';\n    $view->authorSales = 0;\n    $view->authorFollowers = 0;\n}\n\n\u002F\u002F 1. Details About Target Purchase Code\n$targetLicenseDetails = $objToolkit->getLicenseDetails($sanitizedTargetPurchaseCode);\n\u002F\u002F View vars\n$view->targetPurchaseCode = esc_html($sanitizedTargetPurchaseCode); \u002F\u002F Ready for print\n$view->isValidTargetLicense = $objToolkit->isValidLicense($sanitizedTargetPurchaseCode);\n$view->targetLicenseBuyer = $targetLicenseDetails['buyer_username'];\n$view->targetLicense = $targetLicenseDetails['license'];\n$view->targetLicensePurchasedAt = $targetLicenseDetails['license_purchase_date'].' '.$targetLicenseDetails['license_purchase_time'];\n$view->targetLicenseSupportedUntil = $targetLicenseDetails['support_expiration_date'].' '.$targetLicenseDetails['support_expiration_time'];\n$view->targetLicenseSupportActive = $targetLicenseDetails['support_active'];\n\n\u002F\u002F 2. Details About Target Envato User\n$targetUserDetails = $objToolkit->getUserDetails($sanitizedTargetUsername);\n\u002F\u002F View vars\n$view->targetUsername = esc_html($sanitizedTargetUsername); \u002F\u002F Ready for print\n$view->targetUserCity = $targetUserDetails['city'];\n$view->targetUserCountry = $targetUserDetails['country'];\n$view->targetUserSales = $targetUserDetails['sales'];\n$view->targetUserFollowers = $targetUserDetails['followers'];\n\n\u002F\u002F 3. Status of Purchased Plugin ID\n$availablePluginVersion = $objToolkit->getAvailableVersion($sanitizedTargetPluginId);\n$pluginUpdateAvailable = version_compare($sanitizedInstalledPluginVersion, $availablePluginVersion, '\u003C');\n\u002F\u002F View vars\n$view->targetPluginId = intval($sanitizedTargetPluginId); \u002F\u002F Ready for print\n$view->installedPluginVersion = esc_html($sanitizedInstalledPluginVersion); \u002F\u002F Ready for print\n$view->nameOfTargetPluginId = esc_html($objToolkit->getItemName($sanitizedTargetPluginId));\n$view->availablePluginVersion = $availablePluginVersion;\n$view->pluginUpdateAvailable = $pluginUpdateAvailable;\n$view->pluginUpdateDownloadUrl = $pluginUpdateAvailable ? $objToolkit->getDownloadUrlIfPurchased($sanitizedTargetPluginId) : '';\n\n\u002F\u002F 4. Status of Purchased Theme ID\n$availableThemeVersion = $objToolkit->getAvailableVersion($sanitizedTargetThemeId);\n$themeUpdateAvailable = version_compare($sanitizedInstalledThemeVersion, $availableThemeVersion, '\u003C');\n\u002F\u002F View vars\n$view->targetThemeId = intval($sanitizedTargetThemeId); \u002F\u002F Ready for print\n$view->installedThemeVersion = esc_html($sanitizedInstalledThemeVersion); \u002F\u002F Ready for print\n$view->nameOfTargetThemeId = esc_html($objToolkit->getItemName($sanitizedTargetThemeId));\n$view->availableThemeVersion = $availableThemeVersion;\n$view->themeUpdateAvailable = $themeUpdateAvailable;\n$view->themeUpdateDownloadUrl = $themeUpdateAvailable ? $objToolkit->getDownloadUrlIfPurchased($sanitizedTargetThemeId) : '';\n\n\u002F\u002F 5. Envato Item Id of Purchased Plugin\n$view->targetPluginName = esc_html($sanitizedTargetPluginName); \u002F\u002F Ready for print\n$view->targetPluginAuthor = esc_html($sanitizedTargetPluginAuthor); \u002F\u002F Ready for print\n$view->foundPluginId = $objToolkit->getItemIdByPluginAndAuthorIfPurchased($sanitizedTargetPluginName, $sanitizedTargetPluginAuthor);\n\n\u002F\u002F 6. Envato Item Id of Purchased Theme\n$view->targetThemeName = esc_html($sanitizedTargetThemeName); \u002F\u002F Ready for print\n$view->targetThemeAuthor = esc_html($sanitizedTargetThemeAuthor); \u002F\u002F Ready for print\n$view->foundThemeId = $objToolkit->getItemIdByThemeAndAuthorIfPurchased($sanitizedTargetThemeName, $sanitizedTargetThemeAuthor);\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Validate purchase code, check for item update & support expiration, download newest version, lookup for user details, search for Envato item id & more",6000,126000,56,9,"2021-04-26T18:00:00.000Z","5.7.15","4.6","5.4",[129,130,131,132,133],"api","envato","license","purchase-validator","update-checker","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ftoolkit-for-envato\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftoolkit-for-envato.zip",{"slug":137,"name":138,"version":139,"author":140,"author_profile":141,"description":142,"short_description":143,"active_installs":144,"downloaded":145,"rating":146,"num_ratings":147,"last_updated":148,"tested_up_to":53,"requires_at_least":149,"requires_php":150,"tags":151,"homepage":156,"download_link":157,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"woocommerce-easy-booking-system","Easy Booking – WooCommerce Booking & Reservation Plugin","3.4.9","Ashanna","https:\u002F\u002Fprofiles.wordpress.org\u002Fmorki\u002F","\u003Cp>Easy Booking is a powerful yet intuitive WooCommerce booking and rental plugin, fully compatible with simple, variable, grouped, and bundle products. Designed to seamlessly integrate with your existing WooCommerce setup.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Flexible booking modes\u003C\u002Fstrong>: Choose between Days or Nights mode, and set custom booking durations and limits to match your business model.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Date selection\u003C\u002Fstrong>: offer single or dual-date bookings (e.g., check-in\u002Fcheck-out) for maximum flexibility.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Dashboard management\u003C\u002Fstrong>: Easily track and manage processing or upcoming bookings directly from your WordPress admin.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Developer-friendly\u003C\u002Fstrong>: Extend functionality with filters and action hooks for custom integrations.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Why choose Easy Booking?\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>No complex setup\u003C\u002Fstrong>: Works natively with WooCommerce, no extra product types or complicated configurations.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Adaptable to your needs\u003C\u002Fstrong>: Whether you rent equipment, manage event registrations, or offer seasonal services, Easy Booking adjusts to your workflow.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Responsive support & clear documentation\u003C\u002Fstrong> : Get help when you need it, with detailed documentaiton and a quick, friendly developer ready to assist you.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Perfect for rentals, event bookings, or any date-based service, Easy Booking gives you the tools to streamline reservations.\u003C\u002Fp>\n\u003Ch4>Upgrade to Easy Booking PRO for advanced features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Stock management by date\u003C\u002Fstrong>: Automatic availability management for each date individually, ensuring no overbookings.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Disabled dates\u003C\u002Fstrong>: Block specific dates (holidays, closures, etc.) to match your business schedule.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Advanced pricing\u003C\u002Fstrong>: Set prices by date, season, or booking duration for maximum flexibility.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Date selection on shop page\u003C\u002Fstrong>: Let customers choose dates directly from the product listing, with real-time filtering of available products.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Manual booking import\u003C\u002Fstrong>: Add reservations manually without creating orders, ideal for phone bookings or external systems.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Unlock the full potential of your booking system with \u003Ca href=\"https:\u002F\u002Feasy-booking.pro\u002Fpro\u002F\" rel=\"nofollow ugc\">Easy Booking PRO\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Demo\u003C\u002Fh4>\n\u003Cp>See Easy Booking in action: Check out the \u003Ca href=\"http:\u002F\u002Fdemo.easy-booking.pro\u002F\" rel=\"nofollow ugc\">demo\u003C\u002Fa> and explore all the features.\u003C\u002Fp>\n","A simple and flexible WooCommerce booking & reservation plugin to manage dates, availability and pricing on your products.",5000,328755,94,63,"2026-03-05T07:29:00.000Z","5.0","",[152,153,154,155,24],"appointment","booking","calendar","reservation","https:\u002F\u002Feasy-booking.pro\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwoocommerce-easy-booking-system.3.4.9.zip",{"attackSurface":159,"codeSignals":206,"taintFlows":228,"riskAssessment":229,"analyzedAt":239},{"hooks":160,"ajaxHandlers":194,"restRoutes":202,"shortcodes":203,"cronEvents":204,"entryPointCount":205,"unprotectedCount":205},[161,167,170,173,176,179,182,185,188,191],{"type":162,"name":163,"callback":164,"file":165,"line":166},"action","wpi_after_formatted_billing_address","anonymous","check-tax-vat-id-woo.php",47,{"type":162,"name":168,"callback":164,"priority":11,"file":165,"line":169},"woocommerce_admin_order_data_after_billing_address",49,{"type":162,"name":171,"callback":164,"file":165,"line":172},"woocommerce_after_order_notes",115,{"type":162,"name":174,"callback":164,"file":165,"line":175},"woocommerce_checkout_update_order_review",116,{"type":162,"name":177,"callback":164,"file":165,"line":178},"wp_enqueue_scripts",117,{"type":162,"name":180,"callback":164,"priority":110,"file":165,"line":181},"woocommerce_thankyou",118,{"type":162,"name":183,"callback":164,"file":165,"line":184},"woocommerce_checkout_update_user_meta",119,{"type":162,"name":186,"callback":164,"file":165,"line":187},"woocommerce_checkout_update_order_meta",120,{"type":162,"name":189,"callback":164,"file":165,"line":190},"wp_footer",121,{"type":162,"name":192,"callback":164,"priority":14,"file":165,"line":193},"woocommerce_before_checkout_billing_form",124,[195,199],{"action":196,"nopriv":197,"callback":164,"hasNonce":197,"hasCapCheck":197,"file":165,"line":198},"ctviwoo_update_session",false,122,{"action":196,"nopriv":200,"callback":164,"hasNonce":197,"hasCapCheck":197,"file":165,"line":201},true,123,[],[],[],2,{"dangerousFunctions":207,"sqlUsage":208,"outputEscaping":210,"fileOperations":28,"externalRequests":28,"nonceChecks":28,"capabilityChecks":28,"bundledLibraries":227},[],{"prepared":28,"raw":28,"locations":209},[],{"escaped":33,"rawEcho":33,"locations":211},[212,215,217,219,221,223,225],{"file":165,"line":213,"context":214},62,"raw output",{"file":165,"line":216,"context":214},65,{"file":165,"line":218,"context":214},93,{"file":165,"line":220,"context":214},160,{"file":165,"line":222,"context":214},216,{"file":165,"line":224,"context":214},265,{"file":165,"line":226,"context":214},363,[],[],{"summary":230,"deductions":231},"The \"vat-ust-id-checker-validator-eu-for-woocommerce\" plugin, at version 1.0.0, exhibits a mixed security posture.  While it demonstrates good practices by avoiding dangerous functions, performing all SQL queries using prepared statements, and having no recorded vulnerability history, significant concerns arise from its attack surface and lack of authorization checks. The presence of two AJAX handlers, both entirely unprotected by authentication, presents a direct avenue for attackers to interact with the plugin's functionality without prior validation.  This lack of access control on entry points is a critical weakness.\n\nDespite the absence of taint analysis findings and a clean vulnerability history, the unprotected AJAX handlers represent a substantial risk. The plugin's static analysis reveals that 50% of its output is not properly escaped, which, when combined with unprotected entry points, could lead to cross-site scripting (XSS) vulnerabilities if attacker-controlled data is reflected in the output without proper sanitization. The plugin's total lack of nonce checks further exacerbates this risk, as it provides no mechanism to verify the legitimacy of incoming requests to these AJAX endpoints.\n\nIn conclusion, while the plugin's foundational code appears robust in areas like SQL handling and the absence of known vulnerabilities, the unprotected AJAX handlers and insufficient output escaping create a clear and present danger.  The plugin has the potential for serious security flaws that could be exploited by unauthenticated users. Addressing the unprotected entry points and ensuring proper output escaping are paramount for improving its security.",[232,234,237],{"reason":233,"points":11},"AJAX handlers without auth checks",{"reason":235,"points":236},"Unescaped output (50% of 14)",5,{"reason":238,"points":33},"No nonce checks on AJAX","2026-03-16T23:53:41.060Z",{"wat":241,"direct":250},{"assetPaths":242,"generatorPatterns":245,"scriptPaths":246,"versionParams":247},[243,244],"\u002Fwp-content\u002Fplugins\u002Fvat-ust-id-checker-validator-eu-for-woocommerce\u002Fassets\u002Fcss\u002Fcustom.css","\u002Fwp-content\u002Fplugins\u002Fvat-ust-id-checker-validator-eu-for-woocommerce\u002Fassets\u002Fjs\u002Fcustom.js",[],[244],[248,249],"\u002Fwp-content\u002Fplugins\u002Fvat-ust-id-checker-validator-eu-for-woocommerce\u002Fassets\u002Fcss\u002Fcustom.css?ver=","\u002Fwp-content\u002Fplugins\u002Fvat-ust-id-checker-validator-eu-for-woocommerce\u002Fassets\u002Fjs\u002Fcustom.js?ver=",{"cssClasses":251,"htmlComments":255,"htmlAttributes":256,"restEndpoints":259,"jsGlobals":260,"shortcodeOutput":261},[252,253,254],"ctvidwoo_private_company","ctviwoo_checkout_fields","ctviwoo_ust_wrapper",[],[257,258],"name=\"ctviwoo_corp\"","name=\"ctviwoo_ust_input\"",[],[196],[]]