[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f11viO6FZ1NaGIWTIfPto_uSWCeZAd70DX18eBty8zd4":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":18,"download_link":24,"security_score":25,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28,"vulnerabilities":29,"developer":30,"crawl_stats":27,"alternatives":38,"analysis":39,"fingerprints":247},"product-options-for-woocommerce","Simple Product Options for WooCommerce","1.0.0","Pektsekye","https:\u002F\u002Fprofiles.wordpress.org\u002Fpektsekye\u002F","\u003Cp>This plugin adds selectable options to WooCommerce products.\u003Cbr \u002F>\nSo customer can select size, color and specify custom text before adding a product into the shopping cart.\u003Cbr \u002F>\nThe store administrator can create product options on the edit product page.\u003Cbr \u002F>\nHe can set price for each option value and make options required “mandatory” for selection.\u003Cbr \u002F>\nSo the customer will not be able to add the product the shopping cart without selecting the required options.\u003Cbr \u002F>\nSelected values are saved and then displayed on checkout pages and in the order complete emails.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Main Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Drop-down, radio button, multiple select, checkbox, text field and text area option types.\u003C\u002Fli>\n\u003Cli>Set price for each option value.\u003C\u002Fli>\n\u003Cli>Make options mandatory for selection.\u003C\u002Fli>\n\u003Cli>Display selected values on checkout, order info pages and in the order emails.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Main Limitations:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>The current version of this extension supports only Simple products.\u003C\u002Fli>\n\u003Cli>It uses JavaScript to change product price so it is very dependent on theme’s HTML. If it cannot find and update the product price you will need to adjust the JS file.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You can check a demo page here:\u003Cbr \u002F>\n\u003Cstrong>\u003Ca href=\"http:\u002F\u002Fhottons.com\u002Fdemo\u002Fwp\u002Fas\u002Fproduct\u002Fdayton-dt30d\u002F\" rel=\"nofollow ugc\">DEMO Page\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>You can read the installation instructions here:\u003Cbr \u002F>\n\u003Cstrong>\u003Ca href=\"http:\u002F\u002Fhottons.com\u002Fdemo\u002Fwp\u002Fpo\u002FREADME.html\" rel=\"nofollow ugc\">README\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Simple Code Idea:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>The idea of this plugin is to keep the base version as simple as possible.\u003Cbr \u002F>\nAnd to add the new features as modifications.\u003C\u002Fp>\n\u003Cp>This plugin has just 19 files to make it easy to use and customize. If you need more features check the modifications page \u003Ca href=\"http:\u002F\u002Fhottons.com\u002Fpo_modifications\" rel=\"nofollow ugc\">hottons.com\u002Fpo_modifications\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Contact me by email \u003Ca href=\"mailto:pektsekye@gmail.com\" rel=\"nofollow ugc\">pektsekye@gmail.com\u003C\u002Fa> if you have questions or need help.\u003C\u002Fp>\n\u003Ch3>Other plugins\u003C\u002Fh3>\n\u003Ch4>If you like this plugin check also:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Ca href=\"http:\u002F\u002Fhottons.com\u002Fwoocommerce\u002Fwp-ox.html\" rel=\"nofollow ugc\">Dependent Custom Options (gallery)\u003C\u002Fa> (PAID)\u003Cbr \u002F>\nIf you need options with images and descriptions and to make them dependent on each other.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fdate-price-calendar\u002F\" rel=\"ugc\">Date Price Calendar\u003C\u002Fa>\u003Cbr \u002F>\nIf you need a date option with different price per date.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Flenses-prescription\u002F\" rel=\"ugc\">Lenses Prescription\u003C\u002Fa>\u003Cbr \u002F>\nDisplays product options as a table for contact lenses prescription.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpofw-pizza-toppings\u002F\" rel=\"ugc\">Pizza Toppings\u003C\u002Fa>\u003Cbr \u002F>\nDisplays product options with special layout for pizza toppings.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fproduct-configurations-table\u002F\" rel=\"ugc\">Product Configurations Table\u003C\u002Fa>\u003Cbr \u002F>\nDisplays product options as a table with dependent selectable values.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Translators\u003C\u002Fh3>\n\u003Ch4>Available Languages\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>English (Default)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Documentation\u003C\u002Fh3>\n\u003Cp>Full documentation is available \u003Ca href=\"http:\u002F\u002Fhottons.com\u002Fdemo\u002Fwp\u002Fpo\u002FREADME.html\" rel=\"nofollow ugc\">here\u003C\u002Fa>.\u003C\u002Fp>\n","It adds drop-down, radio button and text field options on the product page.",4000,34088,94,35,"2026-02-20T10:03:00.000Z","6.9.4","4.7","",[20,21,22,23],"customer-order-note","dependent-variations","lenses-prescription","price-calculation-formula","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fproduct-options-for-woocommerce.zip",100,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":31,"display_name":7,"profile_url":8,"plugin_count":32,"total_installs":33,"avg_security_score":34,"avg_patch_time_days":35,"trust_score":36,"computed_at":37},"pektsekye",14,6390,98,8,93,"2026-04-04T19:10:04.647Z",[],{"attackSurface":40,"codeSignals":102,"taintFlows":233,"riskAssessment":234,"analyzedAt":246},{"hooks":41,"ajaxHandlers":98,"restRoutes":99,"shortcodes":100,"cronEvents":101,"entryPointCount":26,"unprotectedCount":26},[42,48,53,57,61,66,70,74,78,82,85,90,94],{"type":43,"name":44,"callback":45,"priority":46,"file":47,"line":35},"filter","woocommerce_product_data_tabs","add_product_tab",99,"Block\\Adminhtml\\Product\\Edit\\Tab\\CustomOptions.php",{"type":49,"name":50,"callback":51,"file":47,"line":52},"action","woocommerce_product_data_panels","add_tab_fields",9,{"type":49,"name":54,"callback":55,"file":47,"line":56},"woocommerce_process_product_meta","save_options",10,{"type":49,"name":58,"callback":59,"file":60,"line":35},"woocommerce_before_add_to_cart_button","display_options_on_product_page","Controller\\Product.php",{"type":49,"name":62,"callback":63,"priority":56,"file":64,"line":65},"woocommerce_add_to_cart_validation","validate_selected_options","Model\\Observer.php",11,{"type":49,"name":67,"callback":68,"priority":56,"file":64,"line":69},"woocommerce_add_cart_item_data","save_selected_options",12,{"type":43,"name":71,"callback":72,"priority":56,"file":64,"line":73},"woocommerce_get_item_data","display_selected_options_on_checkout",13,{"type":49,"name":75,"callback":76,"priority":77,"file":64,"line":32},"woocommerce_new_order_item","display_selected_options_with_order_info",1,{"type":49,"name":79,"callback":80,"priority":46,"file":64,"line":81},"woocommerce_before_calculate_totals","add_option_price_on_checkout",15,{"type":49,"name":83,"callback":83,"file":64,"line":84},"delete_post",16,{"type":49,"name":86,"callback":87,"file":88,"line":89},"wp_enqueue_scripts","enqueue_frontend_scripts","product-options-for-woocommerce.php",63,{"type":49,"name":91,"callback":92,"priority":81,"file":88,"line":93},"admin_enqueue_scripts","enqueue_admin_scripts",64,{"type":49,"name":95,"callback":96,"file":88,"line":97},"before_woocommerce_init","closure",137,[],[],[],[],{"dangerousFunctions":103,"sqlUsage":104,"outputEscaping":131,"fileOperations":26,"externalRequests":26,"nonceChecks":26,"capabilityChecks":77,"bundledLibraries":232},[],{"prepared":105,"raw":65,"locations":106},2,[107,111,113,115,117,118,121,122,124,126,129],{"file":108,"line":109,"context":110},"Model\\Option\\Value.php",42,"$wpdb->query() with variable interpolation",{"file":108,"line":112,"context":110},44,{"file":108,"line":114,"context":110},52,{"file":108,"line":116,"context":110},58,{"file":108,"line":93,"context":110},{"file":119,"line":120,"context":110},"Model\\Option.php",62,{"file":119,"line":93,"context":110},{"file":119,"line":123,"context":110},80,{"file":119,"line":125,"context":110},89,{"file":127,"line":128,"context":110},"uninstall.php",6,{"file":127,"line":130,"context":110},7,{"escaped":132,"rawEcho":133,"locations":134},3,61,[135,137,139,140,142,144,145,147,149,151,153,155,156,158,159,161,163,165,167,169,171,173,175,177,179,180,182,183,184,186,187,189,190,192,193,194,196,197,199,200,201,202,203,204,205,207,208,209,211,212,214,216,217,219,220,222,223,225,227,229,231],{"file":60,"line":84,"context":136},"raw output",{"file":138,"line":35,"context":136},"view\\adminhtml\\templates\\product\\edit\\tab\\customoptions\\options.php",{"file":138,"line":52,"context":136},{"file":138,"line":141,"context":136},22,{"file":138,"line":143,"context":136},31,{"file":138,"line":14,"context":136},{"file":138,"line":146,"context":136},36,{"file":138,"line":148,"context":136},37,{"file":138,"line":150,"context":136},38,{"file":138,"line":152,"context":136},39,{"file":138,"line":154,"context":136},40,{"file":138,"line":109,"context":136},{"file":138,"line":157,"context":136},43,{"file":138,"line":112,"context":136},{"file":138,"line":160,"context":136},51,{"file":138,"line":162,"context":136},59,{"file":138,"line":164,"context":136},75,{"file":138,"line":166,"context":136},76,{"file":138,"line":168,"context":136},77,{"file":138,"line":170,"context":136},85,{"file":138,"line":172,"context":136},106,{"file":138,"line":174,"context":136},115,{"file":138,"line":176,"context":136},132,{"file":178,"line":65,"context":136},"view\\adminhtml\\templates\\product\\edit\\tab\\customoptions.php",{"file":178,"line":84,"context":136},{"file":181,"line":35,"context":136},"view\\frontend\\templates\\product\\options.php",{"file":181,"line":52,"context":136},{"file":181,"line":65,"context":136},{"file":181,"line":185,"context":136},19,{"file":181,"line":185,"context":136},{"file":181,"line":188,"context":136},20,{"file":181,"line":188,"context":136},{"file":181,"line":191,"context":136},25,{"file":181,"line":191,"context":136},{"file":181,"line":191,"context":136},{"file":181,"line":195,"context":136},26,{"file":181,"line":195,"context":136},{"file":181,"line":198,"context":136},34,{"file":181,"line":198,"context":136},{"file":181,"line":198,"context":136},{"file":181,"line":14,"context":136},{"file":181,"line":14,"context":136},{"file":181,"line":154,"context":136},{"file":181,"line":154,"context":136},{"file":181,"line":206,"context":136},41,{"file":181,"line":157,"context":136},{"file":181,"line":157,"context":136},{"file":181,"line":210,"context":136},47,{"file":181,"line":210,"context":136},{"file":181,"line":213,"context":136},48,{"file":181,"line":215,"context":136},50,{"file":181,"line":215,"context":136},{"file":181,"line":218,"context":136},54,{"file":181,"line":218,"context":136},{"file":181,"line":221,"context":136},56,{"file":181,"line":221,"context":136},{"file":181,"line":224,"context":136},66,{"file":181,"line":226,"context":136},70,{"file":181,"line":228,"context":136},71,{"file":181,"line":230,"context":136},72,{"file":181,"line":166,"context":136},[],[],{"summary":235,"deductions":236},"The \"product-options-for-woocommerce\" plugin version 1.0.0 exhibits a mixed security posture. On the positive side, the plugin has no recorded vulnerabilities, no known CVEs, and zero taint flows with unsanitized paths, suggesting a diligent approach to security in its development or a limited exposure. The static analysis also shows no dangerous functions, file operations, or external HTTP requests, which are generally good signs.\n\nHowever, there are significant areas of concern. The plugin has a very low percentage of SQL queries using prepared statements (15%), indicating a high risk of SQL injection vulnerabilities, especially given that all 13 SQL queries could potentially be exploitable. Furthermore, only 5% of output escaping is properly done, leaving a substantial risk of Cross-Site Scripting (XSS) vulnerabilities. The complete absence of nonce checks across its entry points, coupled with only one capability check overall, points to potential authorization bypass issues if any of the entry points are indeed exposed in future versions or through interactions with other components.\n\nGiven the lack of a vulnerability history, it's difficult to establish a historical pattern. However, the current static analysis reveals critical weaknesses in how the plugin handles data and user input. While the absence of direct vulnerabilities is a strength, the underlying code quality in terms of SQL and output sanitization presents a substantial risk that could be exploited if attackers find ways to trigger the identified insecure code paths. A strong emphasis on improving SQL prepared statement usage and output escaping is paramount.",[237,239,241,243],{"reason":238,"points":81},"Low percentage of prepared statements for SQL",{"reason":240,"points":56},"Low percentage of proper output escaping",{"reason":242,"points":35},"No nonce checks implemented",{"reason":244,"points":245},"Limited capability checks",5,"2026-03-16T18:16:35.075Z",{"wat":248,"direct":268},{"assetPaths":249,"generatorPatterns":255,"scriptPaths":256,"versionParams":262},[250,251,252,253,254],"\u002Fwp-content\u002Fplugins\u002Fproduct-options-for-woocommerce\u002Fview\u002Fadminhtml\u002Fweb\u002Fproduct\u002Fedit\u002Fmain.js","\u002Fwp-content\u002Fplugins\u002Fproduct-options-for-woocommerce\u002Fview\u002Fadminhtml\u002Fweb\u002Fproduct\u002Fedit\u002Fstyles-old.css","\u002Fwp-content\u002Fplugins\u002Fproduct-options-for-woocommerce\u002Fview\u002Fadminhtml\u002Fweb\u002Fproduct\u002Fedit\u002Fmain.css","\u002Fwp-content\u002Fplugins\u002Fproduct-options-for-woocommerce\u002Fview\u002Ffrontend\u002Fweb\u002Fproduct\u002Fmain.js","\u002Fwp-content\u002Fplugins\u002Fproduct-options-for-woocommerce\u002Fview\u002Ffrontend\u002Fweb\u002Fproduct\u002Fmain.css",[],[257,258,259,260,261],"product-options-for-woocommerce\u002Fview\u002Fadminhtml\u002Fweb\u002Fproduct\u002Fedit\u002Fmain.js","product-options-for-woocommerce\u002Fview\u002Fadminhtml\u002Fweb\u002Fproduct\u002Fedit\u002Fstyles-old.css","product-options-for-woocommerce\u002Fview\u002Fadminhtml\u002Fweb\u002Fproduct\u002Fedit\u002Fmain.css","product-options-for-woocommerce\u002Fview\u002Ffrontend\u002Fweb\u002Fproduct\u002Fmain.js","product-options-for-woocommerce\u002Fview\u002Ffrontend\u002Fweb\u002Fproduct\u002Fmain.css",[263,264,265,266,267],"product-options-for-woocommerce\u002Fview\u002Fadminhtml\u002Fweb\u002Fproduct\u002Fedit\u002Fmain.js?ver=","product-options-for-woocommerce\u002Fview\u002Fadminhtml\u002Fweb\u002Fproduct\u002Fedit\u002Fstyles-old.css?ver=","product-options-for-woocommerce\u002Fview\u002Fadminhtml\u002Fweb\u002Fproduct\u002Fedit\u002Fmain.css?ver=","product-options-for-woocommerce\u002Fview\u002Ffrontend\u002Fweb\u002Fproduct\u002Fmain.js?ver=","product-options-for-woocommerce\u002Fview\u002Ffrontend\u002Fweb\u002Fproduct\u002Fmain.css?ver=",{"cssClasses":269,"htmlComments":271,"htmlAttributes":272,"restEndpoints":274,"jsGlobals":275,"shortcodeOutput":276},[270],"pofw_admin__scope-old",[],[273],"pofw_product_options_tab",[],[],[]]