[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fIhx4Cfh_AlN24nRsUDDYpOjboT3H6pHm3-NYIpCa6R0":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":13,"download_link":23,"security_score":24,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":26,"vulnerabilities":27,"developer":28,"crawl_stats":25,"alternatives":33,"analysis":137,"fingerprints":330},"universal-commerce-protocol-ucp-for-woocommerce","Universal Commerce Protocol (UCP) for WooCommerce","1.0.4","siteupgradepro","https:\u002F\u002Fprofiles.wordpress.org\u002Fsiteupgradepro\u002F","\u003Cp>\u003Cstrong>UCP Ready\u003C\u002Fstrong> transforms your WooCommerce store into an AI-agent-friendly commerce platform by implementing the \u003Ca href=\"https:\u002F\u002Fucp.dev\" rel=\"nofollow ugc\">Universal Commerce Protocol (UCP)\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>AI agents like Google’s shopping assistants, ChatGPT plugins, and custom MCP clients can now:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>🔍 \u003Cstrong>Discover\u003C\u002Fstrong> your store’s capabilities via a \u003Ccode>.well-known\u002Fucp\u003C\u002Fcode> endpoint\u003C\u002Fli>\n\u003Cli>📦 \u003Cstrong>Browse\u003C\u002Fstrong> your product catalog with AI-optimized metadata\u003C\u002Fli>\n\u003Cli>🛒 \u003Cstrong>Create checkout sessions\u003C\u002Fstrong> with full shipping and discount support\u003C\u002Fli>\n\u003Cli>🔐 \u003Cstrong>Authenticate\u003C\u002Fstrong> via OAuth 2.0 Identity Linking\u003C\u002Fli>\n\u003Cli>💬 \u003Cstrong>Communicate\u003C\u002Fstrong> over REST, MCP (JSON-RPC), or Embedded Protocol bindings\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Key Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Multi-Transport Support\u003C\u002Fstrong> — REST API, MCP (Model Context Protocol), and Embedded Protocol (EP) bindings\u003C\u002Fli>\n\u003Cli>\u003Cstrong>AI-Optimized Catalog\u003C\u002Fstrong> — Products are served with quick facts and FAQs designed for agent consumption\u003C\u002Fli>\n\u003Cli>\u003Cstrong>OAuth 2.0 Identity Linking\u003C\u002Fstrong> — Agents can act on behalf of authenticated users\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shipping & Fulfillment\u003C\u002Fstrong> — Full integration with WooCommerce Shipping Zones\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Discount Codes\u003C\u002Fstrong> — Agents can apply coupon codes during checkout\u003C\u002Fli>\n\u003Cli>\u003Cstrong>GDPR Compliance\u003C\u002Fstrong> — Buyer consent management built-in\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Order Tracking\u003C\u002Fstrong> — Agents can query order status and fulfillment events\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Bot Tracker\u003C\u002Fstrong> — Monitor AI agent traffic on your store\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Built-in Simulator\u003C\u002Fstrong> — Test the full agent flow from your WordPress admin\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Who Is This For?\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Store owners\u003C\u002Fstrong> who want to be ready for the AI commerce revolution\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Developers\u003C\u002Fstrong> building AI shopping agents or MCP clients\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Agencies\u003C\u002Fstrong> deploying WooCommerce stores that need to be AI-discoverable\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>How It Works\u003C\u002Fh4>\n\u003Col>\n\u003Cli>Install and activate the plugin\u003C\u002Fli>\n\u003Cli>Your store automatically exposes a UCP discovery endpoint at \u003Ccode>\u002F.well-known\u002Fucp\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>AI agents find your store, browse products, and create checkout sessions\u003C\u002Fli>\n\u003Cli>Customers complete payment through your existing WooCommerce checkout\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Links\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fucp.dev\" rel=\"nofollow ugc\">UCP Specification\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>External services\u003C\u002Fh3>\n\u003Cp>This plugin uses external JSON schemas from ucp.dev to define protocol responses.\u003Cbr \u002F>\n* What the service is: \u003Ccode>ucp.dev\u003C\u002Fcode> is the central repository for the Universal Commerce Protocol schemas. The schema URLs are included in API responses so AI agents know how to parse the data.\u003Cbr \u002F>\n* What data is sent and when: No personal, store, or customer data is sent to \u003Ccode>ucp.dev\u003C\u002Fcode>. The service is acting strictly as a static schema host.\u003Cbr \u002F>\n* Service Policies: \u003Ca href=\"https:\u002F\u002Fucp.dev\u002Fterms\" rel=\"nofollow ugc\">Terms of Use\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fucp.dev\u002Fprivacy\" rel=\"nofollow ugc\">Privacy Policy\u003C\u002Fa>.\u003C\u002Fp>\n","Enable the Universal Commerce Protocol (UCP) for WooCommerce. Let AI agents discover, browse, and purchase products for your customers safely.",0,133,"","6.9.4","5.8","7.4",[18,19,20,21,22],"ai","ai-agent","checkout","mcp","woocommerce","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Funiversal-commerce-protocol-ucp-for-woocommerce.1.0.4.zip",100,null,"2026-03-15T10:48:56.248Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":29,"total_installs":11,"avg_security_score":24,"avg_patch_time_days":30,"trust_score":31,"computed_at":32},1,30,94,"2026-04-04T14:22:12.237Z",[34,58,81,101,121],{"slug":35,"name":36,"version":37,"author":38,"author_profile":39,"description":40,"short_description":41,"active_installs":42,"downloaded":43,"rating":44,"num_ratings":45,"last_updated":46,"tested_up_to":47,"requires_at_least":48,"requires_php":13,"tags":49,"homepage":54,"download_link":55,"security_score":24,"vuln_count":29,"unpatched_count":11,"last_vuln_date":56,"fetched_at":57},"saphali-woocommerce-lite","Saphali Woocommerce Lite","2.0.1","Saphali","https:\u002F\u002Fprofiles.wordpress.org\u002Fsaphali\u002F","\u003Cp>WooCommerce Lite!\u003Cbr \u002F>\nFunctional additions for WooCommerce – specifically for managing fields on the checkout page.\u003C\u002Fp>\n\u003Ch4>Integrates into the store:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Ability to customize the order form for checkout\u003C\u002Fli>\n\u003Cli>Manage the number of columns in the catalog\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>From WooCommerce version 8.3, fields are used as blocks by default (i.e., fields are configured as if editing the Checkout page itself). The plugin has been tested for compatibility with Checkout Blocks from WooCommerce 8.5.0 and above. If you have a lower version and the functionality in the block checkout does not work, to use the capabilities of this plugin, \u003Cstrong>you just need to switch to Classic Shortcode\u003C\u002Fstrong> when editing the \u003Cem>Checkout\u003C\u002Fem> page. If necessary, you can always convert back to blocks.\u003C\u002Fli>\n\u003Cli>Added to the general list of currencies — Ukrainian Hryvnia (UAH), Russian Ruble (RUB), Belarusian Ruble (BYN), Armenian Dram (AMD), Kyrgyz Som (KGS), Kazakhstani Tenge (KZT), Uzbekistani Som (UZS), Lithuanian Litas (LTL)\u003C\u002Fli>\n\u003Cli>Manage fields on the checkout page and profile page. The function allows you to customize the order form for checkout. You can make some fields optional at checkout or remove them completely, thereby simplifying the checkout process. You can also add your own special fields.\u003C\u002Fli>\n\u003Cli>Manage the number of columns in the product catalog (Shop) and categories.\u003C\u002Fli>\n\u003Cli>The plugin is designed to simplify the development of online stores.\u003C\u002Fli>\n\u003Cli>The plugin does not change the original WooCommerce files, you can update the WooCommerce plugin every time new versions are released!\u003C\u002Fli>\n\u003Cli>Mapping fields to payment and shipping methods, e.g., it will be useful if some fields do not need to be displayed when paying with a certain shipping and\u002For payment method, but are needed with another shipping or payment method.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>ATTENTION!\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>More about payment gateway plugins: https:\u002F\u002Fsaphali.com\u002Fwordpress\u002Fpayment-gateways , https:\u002F\u002Fsaphali.com\u002Fen\u002Fwordpress\u002Fpayment-gateways\u003C\u002Fp>\n\u003Cp>See other plugins for WooCommerce online stores in our catalog https:\u002F\u002Fsaphali.com\u002Fwordpress\u002Fwoocommerce-plugins\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is free for everyone as it is released under the GPL. You can use it for free in your online stores. But if you like this plugin, you can thank us by sharing the link to our website with your friends and colleagues.\u003C\u002Fp>\n\u003Ch3>Translations\u003C\u002Fh3>\n\u003Cp>We assume that the Russian localization for WooCommerce can be further improved. If you notice an incorrect translation in the WooCommerce settings or it can be replaced with an alternative and more suitable one, here – https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fwoocommerce\u002Fstable\u002Fru\u002Fdefault\u003C\u002Fp>\n\u003Ch3>Demo\u003C\u002Fh3>\n\u003Cp>You can check this plugin in action on our website http:\u002F\u002Fsaphali.com\u002F – on the “Demo Online Store” page.\u003C\u002Fp>\n","A set of additions to the WooCommerce online store. Adds localization & special tools in WooCommerce.",10000,547630,84,25,"2025-11-06T12:26:00.000Z","6.8.5","4.5",[50,51,52,53,22],"manager-fields-checkout","russian-ruble","ukrainian-hryvnia","woo-commerce-lite","http:\u002F\u002Fsaphali.com\u002Fsaphali-woocommerce-plugin-wordpress","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsaphali-woocommerce-lite.2.0.1.zip","2023-07-26 00:00:00","2026-03-15T15:16:48.613Z",{"slug":59,"name":60,"version":61,"author":62,"author_profile":63,"description":64,"short_description":65,"active_installs":66,"downloaded":67,"rating":68,"num_ratings":69,"last_updated":70,"tested_up_to":14,"requires_at_least":71,"requires_php":16,"tags":72,"homepage":75,"download_link":76,"security_score":77,"vuln_count":78,"unpatched_count":79,"last_vuln_date":80,"fetched_at":57},"notification-for-telegram","Notification for Telegram","3.5","rainafarai","https:\u002F\u002Fprofiles.wordpress.org\u002Frainafarai\u002F","\u003Cp>The “Notification for Telegram” plugin for WordPress is a tool that allows you to send notifications and messages to a Telegram channel, group or user\u002Fs when specific events occur on your WordPress site.\u003Cbr \u002F>\nThis plugin is useful for monitoring critical events on your site, such as new comments, new user registrations, publishing activities, New forms sent,Woocommerce and Surecart orders, cart and lowstock, Mailchimp and more, by sending notifications directly to a Telegram channel or group or user\u002Fs of your choice. It also offers a shortcode to send Telegram notifications on every page of your website or in your code.\u003C\u002Fp>\n\u003Cp>Receive Telegram messages notification when:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>When receive a new order in Woocommerce.\u003C\u002Fli>\n\u003Cli>When a Woocommerce order change status.\u003C\u002Fli>\n\u003Cli>When receive a new order in Surecart. \u003C\u002Fli>\n\u003Cli>Every event captured by WP Activity Log plugin\u003C\u002Fli>\n\u003Cli>New field in Woocommerce checkout page let customers add the own telegram nickname\u003C\u002Fli>\n\u003Cli>Low Stock Product notifications when a product is low stock conditions.\u003C\u002Fli>\n\u003Cli>Shows Telegram Nick link in admin order details page when present\u003C\u002Fli>\n\u003Cli>When receive new forms (supports Elementor Pro Form, WPForm , CF7 and Ninjaform)\u003C\u002Fli>\n\u003Cli>When new user subscribes  or unsubscribes to mailchimp. MC4WP integration\u003C\u002Fli>\n\u003Cli>When new user registers. Helps identify unauthorized or suspicious registrations.\u003C\u002Fli>\n\u003Cli>When users login or fail login.\u003C\u002Fli>\n\u003Cli>When new comment is posted.\u003C\u002Fli>\n\u003Cli>When someone adds or remove a product in the Woocommerce cart.\u003C\u002Fli>\n\u003Cli>When a new Pending posts is received. (works with any post type)\u003C\u002Fli>\n\u003Cli>Say function to speak to make the bot say Something to the people\u003C\u002Fli>\n\u003Cli>Cron job detect and notify when Plugins & Core need to update. \u003C\u002Fli>\n\u003Cli>Send custom message with Shortcode anywhere in your WP.\u003C\u002Fli>\n\u003Cli>Should Work on Multisite\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You can enable\u002Fdisable every notification in the Plugin settings page.\u003C\u002Fp>\n\u003Cp>To configure the plugin, you need a valid Telegram API token. Its easy to get starting a Telegram Bot.\u003Cbr \u002F>\nYou can learn about obtaining  tokens and generating new ones in\u003C\u002Fp>\n\u003Ch4>Setup Guide\u003C\u002Fh4>\n\u003Cp>A complete step-by-step guide is available here:\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fdocs.google.com\u002Fdocument\u002Fd\u002F1HCa54OhOm9Vm0Jz2AUjQUHK71djzOUQBDZF-9NH7irU\u002Fedit?tab=t.0\" rel=\"nofollow ugc\">View the full documentation\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>To get your Bot Token, you can refer to one of these resources:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fcore.telegram.org\u002Fbots#6-botfather\" title=\"Obtaining tokens and generating new ones\" rel=\"nofollow ugc\">Official Telegram documentation\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fmedium.com\u002Fshibinco\u002Fcreate-a-telegram-bot-using-botfather-and-get-the-api-token-900ba00e0f39\" title=\"Create a Telegram bot using BotFather and Get the API Token\" rel=\"nofollow ugc\">Step-by-step guide on Medium\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>To get your Chat ID, you need at least one recipient ID. You can retrieve it using one of these bots directly in Telegram:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Ftelegram.me\u002FchatIDrobot\" title=\"@chatIDrobot\" rel=\"nofollow ugc\">@get_id_bot\u003C\u002Fa> — send \u002Fstart and it will reply with your personal Chat ID\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Ft.me\u002FRawDataBot\" rel=\"nofollow ugc\">@RawDataBot\u003C\u002Fa> — send any message and it will return your full account info including your ID\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For Channel and Group Chatid settings see the \u003Ca href=\"#faq\" rel=\"nofollow ugc\">FAQ section\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Once You got the 2 fields save the configuration and try the “TEST” button .. you should receive a message in you telegram : “WOW IT WORKS” !! If not, check token and chatid fields again for the correct values.\u003C\u002Fp>\n\u003Cp>this plugin is relying on a 3rd party service to geolocate the Ip address https:\u002F\u002Fip-api.com\u002F\u003Cbr \u002F>\nhttps:\u002F\u002Fip-api.com\u002Fdocs\u002Flegal  to see the services’ a terms of use and\u002For privacy policies\u003C\u002Fp>\n\u003Ch3>AI & MCP Compatible\u003C\u002Fh3>\n\u003Cp>This plugin supports the \u003Cstrong>WordPress Abilities API\u003C\u002Fstrong> and is compatible with\u003Cbr \u002F>\n\u003Cstrong>MCP (Model Context Protocol)\u003C\u002Fstrong> — the standard that allows AI agents like\u003Cbr \u002F>\nClaude, ChatGPT, and others to interact with WordPress autonomously.\u003C\u002Fp>\n\u003Cp>If the \u003Cstrong>Abilities API\u003C\u002Fstrong> and \u003Cstrong>MCP Adapter\u003C\u002Fstrong> plugins are installed, any\u003Cbr \u002F>\nauthorized AI agent can automatically discover and use the\u003Cbr \u002F>\n\u003Cstrong>Send Telegram Message\u003C\u002Fstrong> ability — no extra configuration needed.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>What an AI can do with this plugin:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Send a Telegram message with custom text\u003Cbr \u002F>\n* Add an inline button with label and URL\u003Cbr \u002F>\n* Override the default chat ID\u003C\u002Fp>\n\u003Ch4>Requirements for MCP\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>WordPress 6.9+\u003C\u002Fli>\n\u003Cli>Plugin: Abilities API (WordPress\u002Fabilities-api)\u003C\u002Fli>\n\u003Cli>Plugin: MCP Adapter (WordPress\u002Fmcp-adapter)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>MESSAGES TRANSLATION\u003C\u002Fh3>\n\u003Cp>To translate Telegram messages, use WPML or Loco Translate. All notification strings are now translatable.\u003Cbr \u002F>\nGo to Loco Translate \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Plugins \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Notification for Telegram to add your translations.\u003Cbr \u002F>\nFor WPML, ensure String Translation is enabled to modify notification texts.\u003C\u002Fp>\n\u003Ch3>SHORTCODE EXAMPLE\u003C\u002Fh3>\n\u003Cpre>\u003Ccode>[telegram_mess  message=\"Im so happy\" chatids=\"0000000,\" token=\"000000000:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" showsitename=\"1\" showip=\"1\" showcity=\"1\" ]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>SHORTCODE OPTIONS:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>message : Your message to be sent. Example (message=”hello world”)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>chatids : Recipient(s) who will receive your message separated by comma (example chatids=”0000000,11111111″) , If not present this field  the shortcode will use default value in Plugin option page.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>token:  The token looks something like 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11\u003Cbr \u002F>\nIf not present this field, the shortcode will use default value in Plugin option page.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>showsitename: if set to “1” appends sitename after the message. Defaultvalue is “0” Example (showsitename=”1″)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>showip: if set to “1” appends user ip address after the message. Default value is “0” Example (showip=”1″)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>showcity: if set to “1” appends user city name after the message. Default value is “0” Example (showcity=”1″)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>USE SHORTCODE IN YOU PHP CODE\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php\n\n$date = date(\"d-m-Y\");\n\ndo_shortcode('[telegram_mess  message=\"'.$date .'\" chatids=\"0000000,\" token=\"000000000:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" showsitename=\"1\" showip=\"1\" showcity=\"1\" ]'); \n\n?>\u003Ch3>WOOCOMMERCE FILTER HOOKS\u003C\u002Fh3>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>We have created 4 filter hooks for WooCommerce order notification message. 4 new positions: Message Header, Message Footer, before Items, and after Items. And we have created a filter through which you can add custom code to product rows, and if you want, you can replace and customize the entire row. :\u003C\u002Fp>\n\u003Cp>4 new Positions and code axample ( echo payment_status in the 4 positions)\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php\nadd_filter('nftb_order_header_message_hook', 'my_filter_function', 10, 1); \nadd_filter('nftb_order_before_items_hook', 'my_filter_function', 10, 1);\nadd_filter('nftb_order_after_items_hook', 'my_filter_function', 10, 1);\nadd_filter('nftb_order_footer_message_hook', 'my_filter_function', 10, 1);\n\nfunction my_filter_function($order_id) {\n  $order = wc_get_order($order_id);\n  if ($order) {\n      \u002F\u002F Get order details\n      $order_data = $order->get_data();\n\n      \u002F\u002F Extract specific order information\n\n      $payment_status = $order->get_status();\n      $payment_method = $order->get_payment_method();  \n  }\n  return  \"\\r\\n\\r\\n\".$payment_method.\"(\".$payment_status.\")\\r\\n\" ;\n}\n?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Product rows Filter with 2 different behaviors ADD or REPLACE LINE\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php\nadd_filter('nftb_order_product_line_hook', 'my_item_line_function', 10, 3);\n\nfunction my_item_line_function($message ,$product_id, $item) {\n\n    \u002F\u002F ADD SOME CODE $product_id TO ORIGINAL row $message.\n    $modified_data = $message. \"->\".$product_id. \"\\r\\n\";\n\n    \u002F\u002F REPLACE Product ITEM LINE CODE WITH YOUR CODE  without concatenate $message.\n    $modified_data = $product_id. \"\\r\\n\";\n\n    return $modified_data;\n} \n?>\u003Ch3>USER LOGIN FILTER HOOKS\u003C\u002Fh3>\n\u003C?php\n\u002F\u002F Triggered on successful user login\nadd_filter( 'nftb_login_notification', 'custom_message_modifier', 10, 1 );\n\n\u002F\u002F Triggered on new user registration\nadd_filter( 'nftb_user_registered_notification', 'custom_message_modifier', 10, 1 );\n\n\u002F\u002F Triggered when an existing user fails to login\nadd_filter( 'nftb_existing_user_fails_login_notification', 'custom_message_modifier', 10, 1 );\n\n\u002F\u002F Triggered when an unknown user fails to login\nadd_filter( 'nftb_unknown_user_fails_login_notification', 'custom_message_modifier', 10, 1 );\n\n\u002F\u002F Example: append the user registration date to the notification\nfunction custom_message_modifier( $user_id ) {\n    $user_info = get_userdata( $user_id );\n\n    if ( $user_info ) {\n        $registration_date = $user_info->user_registered;\n        $timestamp         = strtotime( $registration_date );\n\n        $formatter = new IntlDateFormatter( 'en_US', IntlDateFormatter::LONG, IntlDateFormatter::LONG, 'UTC' );\n        $formatter->setPattern( 'd MMMM y HH:mm:ss' );\n\n        $formatted_date = $formatter->format( $timestamp );\n        $message = \"\\r\\n\\r\\nUser Registration Date: \" . $formatted_date . \"\\r\\n\\r\\n\";\n    } else {\n        $message = \"\\r\\nNo info available for this user.\\r\\n\";\n    }\n\n    return $message;\n}\n?>\u003Ch3>LEGACY FUNCTIONS (kept for backward compatibility)\u003C\u002Fh3>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Before hooks were introduced, 3 overridable functions allowed message customization without editing plugin code. These are still supported but we encourage migrating to hooks.\u003C\u002Fp>\n\u003Cp>1) Before the product list — example: prepend the Order ID\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php\nfunction nftb_order_before_items( $order_id ) {\n    return \"ORDER ID: \" . $order_id;\n}\n?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>2) After the product list — example: append the order currency\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php\nfunction nftb_order_after_items( $order_id ) {\n    $order = wc_get_order( $order_id );\n    $data  = $order->get_data();\n    return \"Currency: \" . $data['currency'];\n}\n?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>3) At the end of each product line — example: append the product slug\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php\nfunction nftb_order_product_line( $product_id, $item ) {\n    $product = wc_get_product( $product_id );\n    return \" | \" . $product->get_slug() . \" \";\n}\n?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Suggestions for new notifications, hooks, and plugin integrations are always welcome!\u003C\u002Fp>\n","Sends notifications to Telegram users or groups, when some events occur in WordPress.",4000,48571,98,65,"2026-02-27T13:01:00.000Z","4.0",[18,21,73,74,22],"notification","telegram","https:\u002F\u002Fwww.reggae.it\u002Fmy-wordpress-plugins","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fnotification-for-telegram.3.5.zip",54,3,2,"2025-11-29 00:00:00",{"slug":82,"name":83,"version":84,"author":85,"author_profile":86,"description":87,"short_description":88,"active_installs":89,"downloaded":90,"rating":24,"num_ratings":91,"last_updated":92,"tested_up_to":14,"requires_at_least":93,"requires_php":94,"tags":95,"homepage":99,"download_link":100,"security_score":24,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":57},"f4-woocommerce-shipping-phone-and-e-mail","F4 Shipping Phone and E-Mail for WooCommerce","1.0.20","FAKTOR VIER","https:\u002F\u002Fprofiles.wordpress.org\u002Ffaktorvier\u002F","\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.f4dev.ch\" rel=\"nofollow ugc\">F4 Shipping Phone and E-Mail for WooCommerce\u003C\u002Fa> does exactly what the name says. It adds (often needed) fields\u003Cbr \u002F>\nfor e-mail and\u002For telephone number to the shipping address. Here are a few things the plugin does:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Adds e-mail and\u002For telephone field to the shipping address checkout form\u003C\u002Fli>\n\u003Cli>Adds e-mail and\u002For telephone field to the edit shipping address form\u003C\u002Fli>\n\u003Cli>Adds e-mail and\u002For telephone field to the edit order backend page\u003C\u002Fli>\n\u003Cli>Shows e-mail and\u002For telephone field in privacy data export\u003C\u002Fli>\n\u003Cli>Erases e-mail and\u002For telephone data if privacy erase is requested\u003C\u002Fli>\n\u003Cli>Shows e-mail and\u002For telephone field in orders (thank you page, email etc.)\u003C\u002Fli>\n\u003Cli>Full integration into the PayPal payment gateway\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Usage\u003C\u002Fh4>\n\u003Cp>This plugin works out-of-the-box. By default, the settings from the billing address\u003Cbr \u002F>\nare used for both fields (e-mail = required and telephone = required, optional or hidden, according to the billing address settings).\u003C\u002Fp>\n\u003Cp>You can change the settings for both fields on the Accounts & Privacy screen in your WooCommerce settings. Both fields you can hide or set to optional\u002Frequired.\u003C\u002Fp>\n\u003Ch4>Features overview\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Adds e-mail and\u002For telephone fields\u003C\u002Fli>\n\u003Cli>Works without configuration\u003C\u002Fli>\n\u003Cli>Can be configurated for both fields\u003C\u002Fli>\n\u003Cli>Easy to use\u003C\u002Fli>\n\u003Cli>Lightweight and optimized\u003C\u002Fli>\n\u003Cli>100% free!\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Planned features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Full integration into API and REST\u003C\u002Fli>\n\u003Cli>Compatibility check for other popular payment gateways\u003C\u002Fli>\n\u003C\u002Ful>\n","Adds fields for e-mail and\u002For telephone to the WooCommerce shipping address.",800,15820,8,"2025-12-16T12:51:00.000Z","5.0","7.0",[20,96,97,98,22],"email","shipping","telephone","https:\u002F\u002Fgithub.com\u002Ffaktorvier\u002Ff4-woocommerce-shipping-phone-and-e-mail","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ff4-woocommerce-shipping-phone-and-e-mail.1.0.20.zip",{"slug":102,"name":103,"version":104,"author":105,"author_profile":106,"description":107,"short_description":108,"active_installs":109,"downloaded":110,"rating":24,"num_ratings":111,"last_updated":112,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":113,"homepage":119,"download_link":120,"security_score":24,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":57},"storeagent-ai-for-woocommerce","StoreAgent – WooCommerce AI Chatbot & AI Content Tools","1.1.3.1","Josh Kohlbach","https:\u002F\u002Fprofiles.wordpress.org\u002Fjkohlbach\u002F","\u003Ch4>🟡 WooCommerce AI Chatbot & AI Content Tools\u003C\u002Fh4>\n\u003Cp>StoreAgent is your \u003Cstrong>WooCommerce AI\u003C\u002Fstrong> toolkit featuring:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>💬 \u003Cstrong>AI Chatbot for WooCommerce\u003C\u002Fstrong> – Instantly answer shopper questions\u003C\u002Fli>\n\u003Cli>✍️ \u003Cstrong>AI Product Description Writer\u003C\u002Fstrong> – Create SEO-ready copy in seconds\u003C\u002Fli>\n\u003Cli>🏷️ \u003Cstrong>AI Product Tag Generator\u003C\u002Fstrong> – Suggests optimized product tags\u003C\u002Fli>\n\u003Cli>⭐ \u003Cstrong>AI Review Summaries\u003C\u002Fstrong> – Turns reviews into powerful social proof\u003C\u002Fli>\n\u003Cli>📈 \u003Cstrong>AI Insights Dashboard\u003C\u002Fstrong> – Get data-driven recommendations for product content\u003C\u002Fli>\n\u003Cli>⚡ \u003Cstrong>No-Code Setup\u003C\u002Fstrong> – Connect your store and start chatting instantly\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>👉 You’ll need a free \u003Ca href=\"https:\u002F\u002Fstoreagent.ai\u002F?utm_source=wprepo&utm_medium=saaiwooplugin&utm_campaign=signupintro\" rel=\"nofollow ugc\">StoreAgent.ai account\u003C\u002Fa> to activate the AI features.\u003C\u002Fp>\n\u003Ch4>🧠 Why Use StoreAgent?\u003C\u002Fh4>\n\u003Cp>✅ Slash Your First-Response Support Times\u003C\u002Fp>\n\u003Cp>Turn your WooCommerce chat into an AI teammate that handles FAQs, order questions, and more — saving you hours.\u003C\u002Fp>\n\u003Cp>StoreAgent AI Chat bot solution slashes first-response support times and reduces repetitive support questions by 70% or more.\u003C\u002Fp>\n\u003Cp>Free your team from answering the same questions over and over with a conversational AI chat bot that’s trained on your product data.\u003C\u002Fp>\n\u003Cp>✅ Ship SEO-Ready Product Pages In Seconds\u003C\u002Fp>\n\u003Cp>AI Product Description Generation tool are included in StoreAgent Content for all accounts, even free plans. To create amazing product descriptions simply answer a couple of questions about your product and watch as our e-commerce trained AI creates your product descriptions in a flash.\u003C\u002Fp>\n\u003Cp>✅ Insights Delivered To Your Dashboard\u003C\u002Fp>\n\u003Cp>Ever wonder if AI can analyze your products and suggest improvements?\u003C\u002Fp>\n\u003Cp>StoreAgent actively helps you understand content improvement opportunities to help you boost your conversions over time and delivers them to you in the dashboard.\u003C\u002Fp>\n\u003Cp>Then it’s one click to use the AI content tools to implement the changes.\u003C\u002Fp>\n\u003Cp>It’s the ultimate balance between having control over what’s happening but leveraging AI to do the hard work.\u003C\u002Fp>\n\u003Cp>✅ No More Copy+Paste Or Fiddling With API Keys\u003C\u002Fp>\n\u003Cp>Most AI tools feel like you’re baby sitting a chat prompt – StoreAgent is different.\u003C\u002Fp>\n\u003Cp>If you’re still copy and pasting from a ChatGPT window you’re missing out on e-commerce AI agent tools that are specifically trained and tuned for store owners needs.\u003C\u002Fp>\n\u003Cp>There’s also no digging for API keys in platform provider dashboards. There’s no API keys needed with StoreAgent, just connect your store and get started.\u003C\u002Fp>\n\u003Ch4>💬 WooCommerce AI Chatbot (Free)\u003C\u002Fh4>\n\u003Cp>Deliver instant AI answers with your very own AI chat bot trained on \u003Cem>your\u003C\u002Fem> product data.\u003C\u002Fp>\n\u003Cp>StoreAgent Chat is conversational. It uses your own product information data to talk with your customers naturally, giving them instant answers to their questions.\u003C\u002Fp>\n\u003Cp>✅ Slash first‑response times to under 10 seconds\u003Cbr \u002F>\n✅ Reduce repetitive questions by up to 70 percent\u003Cbr \u002F>\n✅ Boost conversions with deep product knowledge\u003Cbr \u002F>\n✅ Serve unlimited shoppers at once, 24\u002F7\u003Cbr \u002F>\n✅ Customise the widget to match your brand, colours, and tone\u003Cbr \u002F>\n✅ Trained on your own product data, right down to the meta.\u003C\u002Fp>\n\u003Ch4>🚀 Unlock All AI Features\u003C\u002Fh4>\n\u003Cp>The free Lite plan gives a taste of everything StoreAgent has to offer. Then, when you’re ready and want to increase plan limits or unlock more advanced features, upgrade to a paid plan to get even more.\u003C\u002Fp>\n\u003Cp>🟢 \u003Cstrong>AI Chat Bot Widget\u003C\u002Fstrong> – Real‑time, conversational AI live chat that understands your entire catalogue – powered by your product data\u003Cbr \u002F>\n🟢 \u003Cstrong>Product‑Aware Conversations\u003C\u002Fstrong> – Answers pulled directly from titles, specs, attributes, and reviews\u003Cbr \u002F>\n🟢 \u003Cstrong>Full Chat History Logs (Paid Plans)\u003C\u002Fstrong> – Review every conversation and uncover new content ideas\u003Cbr \u002F>\n🟢 \u003Cstrong>Tone Control\u003C\u002Fstrong> – Set the preferred tone of AI chat responses\u003Cbr \u002F>\n🟢 \u003Cstrong>WooCommerce Integration\u003C\u002Fstrong> – Works out of the box with WooCommerce and WooCommerce compatible themes\u003Cbr \u002F>\n🟢 \u003Cstrong>Multi‑language Detection\u003C\u002Fstrong> – Answers shoppers in their own language\u003C\u002Fp>\n\u003Ch4>✍️ AI Content Tools for WooCommerce\u003C\u002Fh4>\n\u003Cp>✍️ Product Description Generation – SEO‑friendly copy for your products in seconds\u003Cbr \u002F>\n✍️ Category Description Generation – SEO‑friendly copy for your category archives in seconds\u003Cbr \u002F>\n⚡ Short Descriptions – Scroll‑stopping blurbs auto‑generated from the long copy\u003Cbr \u002F>\n🏷️ Product Tag Generation – One‑click tag suggestions for better search rankings\u003Cbr \u002F>\n⭐ Review Summaries – Turns mountains of reviews into punchy social proof\u003C\u002Fp>\n\u003Ch4>📈 AI Insights for WooCommerce\u003C\u002Fh4>\n\u003Cp>🔔 Automated Notifications – StoreAgent surfaces quick fixes to the StoreAgent Dashboard so you can improve your product listings easily\u003Cbr \u002F>\n📈 Content Quality – Monitors content length and quality with one click buttons to improve\u003C\u002Fp>\n\u003Ch4>🌍 Built for WordPress & WooCommerce\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Install and connect your store in just a few minutes\u003C\u002Fli>\n\u003Cli>Compatible with any WooCommerce‑ready theme\u003C\u002Fli>\n\u003Cli>Lightweight, CDN‑served assets and GDPR‑compliant\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>🆓 Get Started for Free\u003C\u002Fh4>\n\u003Cp>Keep the free plan as long as you like, with generous free plan inclusions. Upgrade when you are ready for more advanced features and higher plan limits.\u003C\u002Fp>\n\u003Cp>See all plans at \u003Ca href=\"https:\u002F\u002Fstoreagent.ai\u002Fpricing\u002F\" rel=\"nofollow ugc\">storeagent.ai\u002Fpricing\u002F\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Feedback and Support\u003C\u002Fh3>\n\u003Cp>If you encounter any issues or have feature suggestions, please reach out to us at \u003Ca href=\"mailto:support@storeagent.ai\" rel=\"nofollow ugc\">support@storeagent.ai\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Have an idea for an AI tool? \u003Ca href=\"https:\u002F\u002Fstoreagent.ai\u002Fsubmit-an-agent-idea\u002F?utm_source=wprepo&utm_medium=saaiwooplugin&utm_campaign=submitidealink\" rel=\"nofollow ugc\">Let us know\u003C\u002Fa>.\u003C\u002Fp>\n","WooCommerce AI Chatbot for stores with built-in AI content tools. Generate product descriptions, answer customer questions & more with AI.",200,4611,5,"2026-02-25T02:28:00.000Z",[114,115,116,117,118],"ai-agents","ai-chatbot","ai-content","tag-generator","woocommerce-ai","https:\u002F\u002Fstoreagent.ai\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fstoreagent-ai-for-woocommerce.1.1.3.1.zip",{"slug":122,"name":123,"version":124,"author":125,"author_profile":126,"description":127,"short_description":128,"active_installs":24,"downloaded":129,"rating":11,"num_ratings":11,"last_updated":130,"tested_up_to":47,"requires_at_least":131,"requires_php":94,"tags":132,"homepage":135,"download_link":136,"security_score":24,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":57},"fields-and-file-upload","Checkout Fields and File Upload for WooCommerce","1.2.3","Brandon Fowler","https:\u002F\u002Fprofiles.wordpress.org\u002Fbrandonxlf\u002F","\u003Cp>Checkout Fields and File Upload for WooCommerce allows you to easily add custom fields to the WooCommerce checkout.\u003C\u002Fp>\n\u003Ch4>Product-Specific Fields\u003C\u002Fh4>\n\u003Cp>These fields can be configured only to appear when specific items or categories of items are in the cart or to appear for all items. When enabled, fields are added to the to the WooCommerce checkout field above the order notes field.\u003C\u002Fp>\n\u003Ch4>Multiple Input Types\u003C\u002Fh4>\n\u003Cp>You can add custom input fields of a multitude of different types include text, multiline, date, password, number, file, and more!\u003C\u002Fp>\n\u003Ch4>Secure File Uploads\u003C\u002Fh4>\n\u003Cp>Files are uploaded to a secure directory and are given a randomly generated name to prevent unauthorized access.\u003C\u002Fp>\n\u003Ch3>Contribute\u003C\u002Fh3>\n\u003Cp>Check out \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FBrandonXLF\u002Ffields-and-file-upload\" rel=\"nofollow ugc\">the GitHub repository\u003C\u002Fa> to learn more about how you can contribute to the plugin’s development.\u003C\u002Fp>\n","Easily add general or item-specific detail inputs and file uploads to the WooCommerce checkout page's additional information section.",2978,"2025-09-23T23:27:00.000Z","4.6",[20,133,134,22],"file-upload","order-details","https:\u002F\u002Fwww.brandonfowler.me\u002Ffields-and-file-upload\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffields-and-file-upload.1.2.3.zip",{"attackSurface":138,"codeSignals":273,"taintFlows":296,"riskAssessment":324,"analyzedAt":329},{"hooks":139,"ajaxHandlers":221,"restRoutes":222,"shortcodes":270,"cronEvents":271,"entryPointCount":272,"unprotectedCount":78},[140,146,150,154,158,162,165,169,173,176,178,182,185,189,193,197,199,200,203,207,210,213,217],{"type":141,"name":142,"callback":143,"file":144,"line":145},"action","admin_menu","add_settings_page","includes\\class-ucp-admin.php",14,{"type":141,"name":147,"callback":148,"file":144,"line":149},"admin_init","register_settings",15,{"type":141,"name":151,"callback":152,"file":144,"line":153},"admin_notices","univcopr_permalink_notice",16,{"type":141,"name":155,"callback":156,"file":144,"line":157},"rest_api_init","register_sim_endpoint",17,{"type":141,"name":159,"callback":160,"file":144,"line":161},"admin_enqueue_scripts","enqueue_admin_assets",18,{"type":141,"name":155,"callback":163,"file":164,"line":153},"register_routes","includes\\class-ucp-api.php",{"type":141,"name":166,"callback":167,"file":168,"line":145},"init","add_rewrite_rules","includes\\class-ucp-auth.php",{"type":170,"name":171,"callback":172,"file":168,"line":149},"filter","query_vars","add_query_vars",{"type":141,"name":174,"callback":175,"file":168,"line":153},"template_redirect","handle_auth_request",{"type":141,"name":155,"callback":177,"file":168,"line":157},"register_token_routes",{"type":141,"name":179,"callback":180,"file":181,"line":153},"add_meta_boxes","add_product_meta_boxes","includes\\class-ucp-content.php",{"type":141,"name":183,"callback":184,"file":181,"line":157},"save_post_product","save_product_meta",{"type":141,"name":186,"callback":187,"priority":149,"file":181,"line":188},"woocommerce_single_product_summary","inject_quick_facts",20,{"type":141,"name":190,"callback":191,"priority":188,"file":181,"line":192},"woocommerce_after_single_product_summary","inject_faq_block",21,{"type":141,"name":194,"callback":195,"file":196,"line":153},"wp_head","add_discovery_links","includes\\class-ucp-discovery.php",{"type":141,"name":166,"callback":167,"file":196,"line":198},19,{"type":170,"name":171,"callback":172,"file":196,"line":188},{"type":141,"name":201,"callback":202,"file":196,"line":192},"parse_request","render_discovery_json",{"type":141,"name":204,"callback":205,"file":206,"line":153},"wp_footer","inject_ecp_bridge","includes\\class-ucp-ecp.php",{"type":141,"name":208,"callback":209,"file":206,"line":198},"woocommerce_thankyou","mark_checkout_complete",{"type":141,"name":194,"callback":211,"priority":111,"file":212,"line":149},"inject_product_schema","includes\\class-ucp-schema.php",{"type":141,"name":151,"callback":214,"file":215,"line":216},"closure","universal-commerce-protocol.php",32,{"type":141,"name":218,"callback":219,"file":215,"line":220},"plugins_loaded","univcopr_init",69,[],[223,230,236,241,246,251,256,262,266],{"namespace":224,"route":225,"methods":226,"callback":228,"permissionCallback":214,"file":144,"line":229},"univcopr\u002Fv1","\u002Fsimulator",[227],"POST","run_simulator",117,{"namespace":224,"route":231,"methods":232,"callback":234,"permissionCallback":235,"file":164,"line":192},"\u002Fcatalog\u002Fproducts",[233],"GET","get_catalog","check_permission",{"namespace":224,"route":237,"methods":238,"callback":239,"permissionCallback":235,"file":164,"line":240},"\u002Fcheckout-sessions",[227],"create_checkout_session",27,{"namespace":224,"route":242,"methods":243,"callback":244,"permissionCallback":235,"file":164,"line":245},"\u002Fcheckout-sessions\u002F(?P\u003Cid>\\d+)",[233],"get_checkout_session",33,{"namespace":224,"route":247,"methods":248,"callback":249,"permissionCallback":235,"file":164,"line":250},"\u002Fmcp",[227],"handle_mcp_request",39,{"namespace":224,"route":252,"methods":253,"callback":254,"permissionCallback":235,"file":164,"line":255},"\u002Forders\u002F(?P\u003Cid>[a-zA-Z0-9_\\-]+)",[233],"get_order_status",45,{"namespace":224,"route":257,"methods":258,"callback":259,"permissionCallback":260,"file":164,"line":261},"\u002Fagent-card",[233],"get_agent_card","__return_true",51,{"namespace":224,"route":263,"methods":264,"callback":265,"permissionCallback":260,"file":168,"line":245},"\u002Ftoken",[227],"handle_token_request",{"namespace":224,"route":267,"methods":268,"callback":269,"permissionCallback":260,"file":168,"line":250},"\u002Ftoken\u002Frevoke",[227],"handle_token_revoke",[],[],9,{"dangerousFunctions":274,"sqlUsage":275,"outputEscaping":277,"fileOperations":11,"externalRequests":11,"nonceChecks":79,"capabilityChecks":29,"bundledLibraries":295},[],{"prepared":11,"raw":11,"locations":276},[],{"escaped":278,"rawEcho":279,"locations":280},76,7,[281,284,286,288,290,292,294],{"file":144,"line":282,"context":283},323,"raw output",{"file":144,"line":285,"context":283},355,{"file":181,"line":287,"context":283},121,{"file":196,"line":289,"context":283},46,{"file":196,"line":291,"context":283},52,{"file":212,"line":293,"context":283},102,{"file":215,"line":245,"context":283},[],[297,316],{"entryPoint":298,"graph":299,"unsanitizedCount":11,"severity":315},"handle_auth_request (includes\\class-ucp-auth.php:50)",{"nodes":300,"edges":312},[301,306],{"id":302,"type":303,"label":304,"file":168,"line":305},"n0","source","$_GET (x2)",58,{"id":307,"type":308,"label":309,"file":168,"line":310,"wp_function":311},"n1","sink","echo() [XSS]",241,"echo",[313],{"from":302,"to":307,"sanitized":314},true,"low",{"entryPoint":317,"graph":318,"unsanitizedCount":11,"severity":315},"\u003Cclass-ucp-auth> (includes\\class-ucp-auth.php:0)",{"nodes":319,"edges":322},[320,321],{"id":302,"type":303,"label":304,"file":168,"line":305},{"id":307,"type":308,"label":309,"file":168,"line":310,"wp_function":311},[323],{"from":302,"to":307,"sanitized":314},{"summary":325,"deductions":326},"The plugin exhibits a generally good security posture, with no recorded vulnerabilities or critical issues identified in static analysis or taint flows. The absence of dangerous functions, file operations, and external HTTP requests is a significant strength. Furthermore, the plugin demonstrates strong practices regarding SQL query security, utilizing prepared statements exclusively, and a high percentage of properly escaped output.  The presence of nonce and capability checks, while limited, indicates an awareness of common WordPress security mechanisms. \n\nHowever, there are notable concerns stemming from the attack surface. The plugin exposes 9 REST API routes, with 3 of them lacking explicit permission callbacks. This creates a potential avenue for unauthorized access or data manipulation if these routes are not adequately protected by default WordPress role management or other security measures.  While taint analysis found no critical issues, the presence of unsanitized paths would be a more significant concern. \n\nIn conclusion, while the plugin has a strong foundation in secure coding practices, the unprotected REST API routes represent a tangible risk that requires further investigation and potential mitigation. The lack of any historical vulnerabilities is positive, but it should not breed complacency, especially given the identified attack surface.",[327],{"reason":328,"points":279},"REST API routes without permission callbacks","2026-03-17T05:46:55.492Z",{"wat":331,"direct":340},{"assetPaths":332,"generatorPatterns":335,"scriptPaths":336,"versionParams":337},[333,334],"\u002Fwp-content\u002Fplugins\u002Funiversal-commerce-protocol-ucp-for-woocommerce\u002Fassets\u002Fjs\u002Fucp-admin-script.js","\u002Fwp-content\u002Fplugins\u002Funiversal-commerce-protocol-ucp-for-woocommerce\u002Fassets\u002Fcss\u002Fucp-admin-style.css",[],[333],[338,339],"universal-commerce-protocol-ucp-for-woocommerce\u002Fassets\u002Fcss\u002Fucp-admin-style.css?ver=","universal-commerce-protocol-ucp-for-woocommerce\u002Fassets\u002Fjs\u002Fucp-admin-script.js?ver=",{"cssClasses":341,"htmlComments":349,"htmlAttributes":350,"restEndpoints":360,"jsGlobals":362,"shortcodeOutput":365},[342,343,344,345,346,347,348],"ucp-sim-grid","ucp-sim-field","ucp-sim-identity-box","ucp-sim-section-title","ucp-sim-card","ucp-dash-row","ucp-dash-col",[],[351,352,353,354,355,356,357,358,359],"id=\"sim-progress\"","id=\"sim-steps\"","id=\"start-ucp-sim\"","id=\"ucp-sim-transport\"","id=\"ucp-sim-coupon\"","id=\"ucp-sim-identity\"","id=\"ucp-sim-city\"","id=\"ucp-sim-zip\"","id=\"ucp-sim-address\"",[361],"\u002Fwp-json\u002Funivcopr\u002Fv1\u002Fsimulator",[363,364],"UNIVCOPR_VERSION","jQuery",[]]