[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fyiNwQ4BmMXKjn-hwqaKofjgcQg4Sq6OahTw1a62cgx8":3,"$fQRMIo1VbKRGQ7bBvBhgsgaN23QSmIzJgnyJfP_ebTZo":734,"$fJqgYxgHkMFzUdDF1xhiKpTn7M4GIyVHLPHcJ_HZNc9E":738},{"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":23,"download_link":24,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27,"discovery_status":28,"vulnerabilities":29,"developer":30,"crawl_stats":26,"alternatives":35,"analysis":94,"fingerprints":661},"wahra-rentals-bookings","Rentals & Bookings � Solo & Marketplace","2.3.0","wahra","https:\u002F\u002Fprofiles.wordpress.org\u002Fwahra\u002F","\u003Cp>WooCommerce rental bookings plugin for Solo stores and multi-vendor Marketplaces. Works standalone with WooCommerce (Solo Mode) or with Dokan for a full rental marketplace (Marketplace Mode). Availability calendars, flexible pricing rules, deposits, and security deposits.\u003C\u002Fp>\n\u003Cp>For full documentation, visit \u003Ca href=\"https:\u002F\u002Fwahra.tn\u002Fplugins\u002F?wahra-docs\" rel=\"nofollow ugc\">https:\u002F\u002Fwahra.tn\u002Fplugins\u002F?wahra-docs\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Support & Community\u003C\u002Fh3>\n\u003Cp>Have questions? Found a bug? Want to suggest a feature?\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Support Forums:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fwahra-rentals-bookings\u002F\" rel=\"ugc\">wordpress.org\u002Fsupport\u002Fplugin\u002Fwahra-rentals-bookings\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>GitHub Issues:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwahra-tn\u002Fwahra-rentals-bookings\u002Fissues\" rel=\"nofollow ugc\">wahra-tn\u002Fwahra-rentals-bookings\u002Fissues\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Documentation:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fwahra.tn\u002Fplugins\u002F?wahra-docs\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Our team responds to all support questions within 24-48 hours.\u003C\u002Fp>\n","Rental & booking plugin for WooCommerce � Solo or Marketplace. Works standalone or with Dokan. Calendar, pricing rules & deposits.",0,377,"2026-03-14T23:30:00.000Z","6.9.4","6.6","8.1",[18,19,20,21,22],"booking-deposits","dokan-booking","product-rentals","woocommerce-bookings","woocommerce-rentals","https:\u002F\u002Fwahra.tn\u002Fplugins\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwahra-rentals-bookings.2.3.0.zip",100,null,"2026-04-16T10:56:18.058Z","no_bundle",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":31,"total_installs":11,"avg_security_score":25,"avg_patch_time_days":32,"trust_score":33,"computed_at":34},2,30,94,"2026-05-20T00:52:40.674Z",[36,56,75],{"slug":37,"name":38,"version":39,"author":40,"author_profile":41,"description":42,"short_description":43,"active_installs":25,"downloaded":44,"rating":25,"num_ratings":45,"last_updated":46,"tested_up_to":47,"requires_at_least":48,"requires_php":49,"tags":50,"homepage":49,"download_link":54,"security_score":55,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"gcal-event-addon-woocommerce-bookings","Calendar Event Add-on WooCommerce Bookings","1.4","Rajesh Kaswala","https:\u002F\u002Fprofiles.wordpress.org\u002Frstarlite\u002F","\u003Cp>⚠⚠IMPORTANT NOTICE⚠⚠\u003Cbr \u002F>\nIf you use any version of Woocommerce Bookings between 1.12.2 to 1.13.3 then unfortunately, the plugin has no support of “woocommerce_bookings_gcalendar_sync” filter which is used by our plugin, so our plugin won’t work for those versions. Since Woocommerce Bookings version 1.14.0 the filter was restored, so you can use any Woocommerce Bookings version from 1.14.0 to continue use of our plugin.\u003C\u002Fp>\n\u003Cp>Calendar Event Add-on WooCommerce Bookings is used to send additional information about the customer when WooCommerce Bookings creates an event in Google Calendar.\u003C\u002Fp>\n\u003Cp>Please note that this plugin is Add-on for \u003Ca href=\"https:\u002F\u002Fwoocommerce.com\u002Fproducts\u002Fwoocommerce-bookings\u002F\" rel=\"nofollow ugc\">WooCommerce Bookings\u003C\u002Fa>, so it doesn’t do any thing without prior installation of WooCommerce Bookings.\u003C\u002Fp>\n\u003Cp>Go to WordPress Administrative area >> Settings >> Click on “Calendar Addon for WC Booking”. Here, you will see “Additional Event Description”. In this text area, you’re free to use these placeholders: CUSTOMER_NAME, CUSTOMER_BILLING_EMAIL, CUSTOMER_BILLING_PHONE. You can use normal text there as well. What ever information you write in the text area is sent as additional event description when WooCommerce Bookings creates an event in Google Calender. At this time, each of the placeholders mentioned in the text area, has been replaced by its real value.\u003C\u002Fp>\n","This plugin is used to send additional information about the customer when WooCommerce Bookings creates an event in Google Calendar.",7706,3,"2024-07-15T03:12:00.000Z","6.5.8","4.4","",[51,52,53,21],"google-calendar","woo-commerce","woocommerce","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgcal-event-addon-woocommerce-bookings.1.4.zip",92,{"slug":57,"name":58,"version":39,"author":59,"author_profile":60,"description":61,"short_description":62,"active_installs":63,"downloaded":64,"rating":11,"num_ratings":11,"last_updated":65,"tested_up_to":66,"requires_at_least":67,"requires_php":68,"tags":69,"homepage":73,"download_link":74,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"sku-for-woocommerce-bookings","SKU for WooCommerce Bookings","theorcawp","https:\u002F\u002Fprofiles.wordpress.org\u002Ftheorcawp\u002F","\u003Cp>This plugin adds SKUs to your WooCommerce bookings products and also makes it searchable by bookings SKU in your site.\u003C\u002Fp>\n","This plugin adds SKUs to your WooCommerce bookings products and also makes it searchable in your site.",10,1185,"2025-09-18T09:27:00.000Z","6.8.5","6.0","7.4",[70,71,72,53,21],"add-sku-to-bookings","booking-sku","sku","https:\u002F\u002Fprofiles.wordpress.org\u002Ftheorcawp","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsku-for-woocommerce-bookings.zip",{"slug":76,"name":77,"version":78,"author":79,"author_profile":80,"description":81,"short_description":82,"active_installs":11,"downloaded":83,"rating":25,"num_ratings":84,"last_updated":49,"tested_up_to":14,"requires_at_least":85,"requires_php":68,"tags":86,"homepage":91,"download_link":92,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":93},"emmeo-booking-reception","Emmeo Booking Reception","1.3","sylvestnovember","https:\u002F\u002Fprofiles.wordpress.org\u002Fsylvestnovember\u002F","\u003Cp>Booking Reception connects your WordPress booking plugin to a cloud front desk \u002F reception dashboard so you can manage \u003Cstrong>hotel-style check-in and check-out\u003C\u002Fstrong>, arrivals, departures, and in-house guests.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Works with:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>WP Booking System (free & premium)\u003C\u002Fli>\n\u003Cli>MotoPress Hotel Booking (Lite & Pro)\u003C\u002Fli>\n\u003Cli>Booking Calendar (Free, Premium & Hotel Edition)\u003C\u002Fli>\n\u003Cli>WooCommerce Bookings\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Beautiful iPad-optimized reception dashboard\u003C\u002Fli>\n\u003Cli>One-click check-in and check-out\u003C\u002Fli>\n\u003Cli>Today’s arrivals and departures at a glance\u003C\u002Fli>\n\u003Cli>Secure API connection with HMAC authentication\u003C\u002Fli>\n\u003Cli>Real-time sync with your bookings\u003C\u002Fli>\n\u003Cli>Overview of all current guests\u003C\u002Fli>\n\u003Cli>Multi-property support\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>How it works:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>Install and activate this plugin\u003C\u002Fli>\n\u003Cli>Copy your API key from the Booking Reception settings page\u003C\u002Fli>\n\u003Cli>Sign up at \u003Ca href=\"https:\u002F\u002Fbookingreception.app\" rel=\"nofollow ugc\">bookingreception.app\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Connect your site using the API key\u003C\u002Fli>\n\u003Cli>Access your reception dashboard from any device\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Requirements:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>One of the supported booking plugins listed above\u003C\u002Fli>\n\u003Cli>WordPress 6.2 or higher\u003C\u002Fli>\n\u003Cli>PHP 7.4 or higher\u003C\u002Fli>\n\u003Cli>A free Booking Reception account at \u003Ca href=\"https:\u002F\u002Fbookingreception.app\" rel=\"nofollow ugc\">bookingreception.app\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Security:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Booking Reception uses industry-standard security practices to protect your data:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>HMAC-SHA256 Authentication\u003C\u002Fstrong> – All API requests are signed with HMAC-SHA256 to verify authenticity\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Timestamp Validation\u003C\u002Fstrong> – Requests older than 5 minutes are rejected to prevent replay attacks\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Nonce Protection\u003C\u002Fstrong> – Each request includes a unique nonce to prevent duplicate processing\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Input Sanitization\u003C\u002Fstrong> – All user inputs are sanitized using WordPress sanitization functions\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Output Escaping\u003C\u002Fstrong> – All data is properly escaped before being returned in API responses\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>External Services\u003C\u002Fh3>\n\u003Cp>This plugin connects to the Booking Reception cloud service at \u003Ca href=\"https:\u002F\u002Fbookingreception.app\" rel=\"nofollow ugc\">bookingreception.app\u003C\u002Fa> to provide the reception dashboard functionality.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>What data is sent:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Booking data (guest names, dates, status, accommodation details)\u003Cbr \u002F>\n* Site URL and plugin version for compatibility\u003C\u002Fp>\n\u003Cp>\u003Cstrong>When data is sent:\u003C\u002Fstrong>\u003Cbr \u002F>\n* During scheduled sync intervals (configurable)\u003Cbr \u002F>\n* When check-in\u002Fout actions are performed from the dashboard\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Service links:\u003C\u002Fstrong>\u003Cbr \u002F>\n* \u003Ca href=\"https:\u002F\u002Fbookingreception.app\u002Fterms\" rel=\"nofollow ugc\">Terms of Service\u003C\u002Fa>\u003Cbr \u002F>\n* \u003Ca href=\"https:\u002F\u002Fbookingreception.app\u002Fprivacy\" rel=\"nofollow ugc\">Privacy Policy\u003C\u002Fa>\u003C\u002Fp>\n","Front desk \u002F reception dashboard for WP Booking System, MotoPress Hotel Booking, Booking Calendar & WooCommerce Bookings — manage arrivals, depart &hellip;",355,1,"6.2",[87,88,89,21,90],"booking-calendar","front-desk","motopress-hotel-booking","wp-booking-system","https:\u002F\u002Fbookingreception.app","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Femmeo-booking-reception.1.3.zip","2026-03-15T10:48:56.248Z",{"attackSurface":95,"codeSignals":406,"taintFlows":503,"riskAssessment":653,"analyzedAt":660},{"hooks":96,"ajaxHandlers":375,"restRoutes":397,"shortcodes":398,"cronEvents":399,"entryPointCount":405,"unprotectedCount":31},[97,103,107,111,115,119,121,126,130,134,137,141,145,148,152,155,158,161,164,170,173,177,180,183,187,190,193,196,199,202,206,209,212,215,219,222,225,229,232,236,240,242,244,246,248,250,252,254,257,259,262,265,268,272,275,278,281,285,290,292,295,298,300,302,304,308,309,311,313,314,316,319,321,323,326,329,332,335,338,341,346,348,351,355,359,361,365,367,371],{"type":98,"name":99,"callback":100,"file":101,"line":102},"action","admin_init","check_compatibility","includes\u002FAdmin\u002Fclass-wahrb-compatibility.php",45,{"type":98,"name":104,"callback":105,"file":101,"line":106},"admin_notices","closure",90,{"type":98,"name":104,"callback":108,"file":109,"line":110},"maybe_show_freshness_notice","includes\u002FAdmin\u002Fclass-wahrb-freshness-reminder.php",40,{"type":98,"name":112,"callback":113,"file":109,"line":114},"admin_footer","dismiss_script",42,{"type":98,"name":104,"callback":116,"file":117,"line":118},"maybe_show_review_prompt","includes\u002FAdmin\u002Fclass-wahrb-review-prompt.php",50,{"type":98,"name":112,"callback":113,"file":117,"line":120},52,{"type":98,"name":122,"callback":123,"priority":124,"file":117,"line":125},"wahrb_booking_status_changed","track_completed_bookings",99,60,{"type":98,"name":104,"callback":127,"file":128,"line":129},"maybe_show_setup_notice","includes\u002FAdmin\u002Fclass-wahrb-setup-wizard.php",56,{"type":98,"name":131,"callback":132,"file":128,"line":133},"admin_menu","register_page",62,{"type":98,"name":99,"callback":135,"file":128,"line":136},"handle_save",65,{"type":98,"name":138,"callback":139,"file":128,"line":140},"admin_enqueue_scripts","maybe_enqueue_assets",68,{"type":98,"name":104,"callback":142,"file":143,"line":144},"maybe_show_support_notices","includes\u002FAdmin\u002Fclass-wahrb-support-widget.php",37,{"type":98,"name":138,"callback":146,"file":143,"line":147},"enqueue_support_styles",38,{"type":98,"name":149,"callback":150,"priority":63,"file":151,"line":114},"wahrb_booking_created","sync_for_booking","includes\u002FBookings\u002Fclass-wahrb-daily-availability.php",{"type":98,"name":153,"callback":150,"priority":63,"file":151,"line":154},"wahrb_booking_updated",43,{"type":98,"name":156,"callback":150,"priority":63,"file":151,"line":157},"wahrb_booking_cancelled",44,{"type":98,"name":159,"callback":160,"priority":63,"file":151,"line":102},"wahrb_hold_created","sync_for_hold",{"type":98,"name":162,"callback":160,"priority":63,"file":151,"line":163},"wahrb_hold_expired",46,{"type":165,"name":166,"callback":167,"file":168,"line":169},"filter","dokan_query_var_filter","add_query_vars","includes\u002FDokan\u002Fclass-wahrb-dokan-integration.php",27,{"type":165,"name":171,"callback":172,"priority":63,"file":168,"line":32},"dokan_get_dashboard_nav","add_dashboard_menus",{"type":165,"name":174,"callback":175,"priority":63,"file":168,"line":176},"dokan_vendor_dashboard_layout_config","modify_react_dashboard_config",34,{"type":98,"name":178,"callback":179,"file":168,"line":144},"dokan_load_custom_template","load_templates",{"type":98,"name":181,"callback":182,"file":168,"line":147},"dokan_render_new_product_template","maybe_load_wizard",{"type":98,"name":184,"callback":185,"file":168,"line":186},"dokan_booking-wizard_content","render_wizard_content",41,{"type":98,"name":188,"callback":189,"file":168,"line":114},"dokan_wahrb-bookings_content","render_bookings_content",{"type":98,"name":191,"callback":192,"file":168,"line":154},"dokan_wahrb-calendar_content","render_calendar_content",{"type":98,"name":194,"callback":195,"file":168,"line":157},"dokan_wahrb-analytics_content","render_analytics_content",{"type":98,"name":197,"callback":198,"file":168,"line":102},"dokan_wahrb-settings_content","render_settings_content",{"type":98,"name":200,"callback":201,"file":168,"line":163},"dokan_wahrb-form-builder_content","render_form_builder_content",{"type":98,"name":203,"callback":204,"priority":63,"file":168,"line":205},"dokan_product_edit_after_inventory","add_product_rental_fields",49,{"type":98,"name":207,"callback":208,"priority":63,"file":168,"line":120},"dokan_product_updated","save_product_rental_fields",{"type":98,"name":210,"callback":208,"priority":63,"file":168,"line":211},"dokan_new_product_added",53,{"type":98,"name":213,"callback":214,"file":168,"line":129},"dokan_enqueue_scripts","enqueue_scripts",{"type":98,"name":216,"callback":217,"file":168,"line":218},"dokan_dashboard_content_inside_before","add_dashboard_widget",59,{"type":165,"name":220,"callback":221,"file":168,"line":133},"dokan_product_listing_filter_args","filter_rental_products",{"type":165,"name":223,"callback":224,"priority":63,"file":168,"line":136},"dokan_dashboard_nav_active","fix_sidebar_active_menu",{"type":98,"name":226,"callback":227,"priority":228,"file":168,"line":140},"init","maybe_flush_rewrite_rules",999,{"type":165,"name":230,"callback":105,"priority":63,"file":168,"line":231},"script_loader_tag",532,{"type":165,"name":233,"callback":234,"file":235,"line":147},"cron_schedules","add_cron_intervals","includes\u002FEmails\u002Fclass-wahrb-cron.php",{"type":98,"name":237,"callback":238,"file":235,"line":239},"wahrb_daily_cron_event","process_reminders",39,{"type":98,"name":237,"callback":241,"file":235,"line":110},"auto_start_bookings",{"type":98,"name":237,"callback":243,"file":235,"line":186},"auto_complete_bookings",{"type":98,"name":237,"callback":245,"file":235,"line":114},"auto_cancel_pending_bookings",{"type":98,"name":237,"callback":247,"file":235,"line":154},"cleanup_expired_holds",{"type":98,"name":237,"callback":249,"file":235,"line":157},"cleanup_old_logs",{"type":98,"name":237,"callback":251,"file":235,"line":102},"cleanup_stale_drafts",{"type":98,"name":237,"callback":253,"file":235,"line":163},"cleanup_soft_deleted_bookings",{"type":98,"name":149,"callback":255,"priority":63,"file":256,"line":147},"on_booking_created","includes\u002FEmails\u002Fclass-wahrb-emailer.php",{"type":98,"name":122,"callback":258,"priority":63,"file":256,"line":239},"on_status_changed",{"type":98,"name":260,"callback":261,"priority":63,"file":256,"line":114},"wahrb_booking_checked_in","on_booking_checked_in",{"type":98,"name":263,"callback":264,"priority":63,"file":256,"line":154},"wahrb_booking_checked_out","on_booking_checked_out",{"type":98,"name":266,"callback":267,"priority":63,"file":256,"line":157},"wahrb_booking_completed","on_booking_completed",{"type":98,"name":269,"callback":270,"priority":63,"file":271,"line":163},"woocommerce_checkout_order_processed","process_booking_order","includes\u002FPayment\u002Fclass-wahrb-payment-manager.php",{"type":98,"name":273,"callback":274,"file":271,"line":205},"woocommerce_order_status_completed","on_order_completed",{"type":98,"name":276,"callback":277,"file":271,"line":118},"woocommerce_order_status_processing","on_order_processing",{"type":165,"name":279,"callback":280,"priority":63,"file":271,"line":211},"woocommerce_cart_item_name","cart_item_name",{"type":165,"name":282,"callback":283,"priority":63,"file":271,"line":284},"woocommerce_order_item_name","order_item_name",54,{"type":98,"name":131,"callback":286,"priority":287,"file":288,"line":289},"register_admin_menus",20,"includes\u002FSolo\u002Fclass-wahrb-solo-integration.php",31,{"type":98,"name":138,"callback":291,"file":288,"line":176},"enqueue_admin_assets",{"type":98,"name":293,"callback":294,"file":288,"line":144},"woocommerce_product_data_tabs","add_product_data_tab",{"type":98,"name":296,"callback":297,"file":288,"line":147},"woocommerce_product_data_panels","render_product_data_panel",{"type":98,"name":299,"callback":208,"file":288,"line":239},"woocommerce_process_product_meta",{"type":98,"name":301,"callback":217,"file":288,"line":114},"wp_dashboard_setup",{"type":165,"name":230,"callback":105,"priority":63,"file":288,"line":303},509,{"type":98,"name":305,"callback":306,"file":307,"line":102},"woocommerce_product_options_general_product_data","anonymous","includes\u002Fclass-wahrb-loader.php",{"type":98,"name":299,"callback":306,"file":307,"line":163},{"type":98,"name":310,"callback":306,"file":307,"line":118},"woocommerce_single_product_summary",{"type":165,"name":312,"callback":306,"file":307,"line":211},"woocommerce_is_purchasable",{"type":98,"name":273,"callback":306,"file":307,"line":129},{"type":98,"name":276,"callback":306,"file":307,"line":315},57,{"type":98,"name":317,"callback":306,"file":307,"line":318},"woocommerce_order_status_cancelled",58,{"type":98,"name":320,"callback":306,"file":307,"line":218},"woocommerce_order_status_refunded",{"type":165,"name":322,"callback":306,"file":307,"line":133},"woocommerce_add_cart_item_data",{"type":165,"name":324,"callback":306,"file":307,"line":325},"woocommerce_get_item_data",63,{"type":98,"name":327,"callback":306,"file":307,"line":328},"woocommerce_checkout_create_order_line_item",64,{"type":98,"name":131,"callback":330,"file":307,"line":331},"add_admin_menu",70,{"type":98,"name":99,"callback":333,"file":307,"line":334},"register_settings",72,{"type":98,"name":149,"callback":336,"priority":63,"file":307,"line":337},"clear_stats_cache",75,{"type":98,"name":122,"callback":339,"priority":63,"file":307,"line":340},"clear_stats_cache_on_status",76,{"type":98,"name":342,"callback":343,"priority":63,"file":344,"line":345},"plugins_loaded","init_plugin","wahra-rentals-bookings.php",110,{"type":98,"name":104,"callback":105,"file":344,"line":347},190,{"type":98,"name":99,"callback":349,"file":344,"line":350},"maybe_upgrade_database",282,{"type":98,"name":352,"callback":353,"file":344,"line":354},"rest_api_init","register_rest_routes",299,{"type":98,"name":356,"callback":357,"file":344,"line":358},"wp_enqueue_scripts","enqueue_frontend_assets",302,{"type":98,"name":138,"callback":291,"file":344,"line":360},303,{"type":98,"name":362,"callback":363,"file":344,"line":364},"before_woocommerce_init","declare_hpos_compatibility",306,{"type":165,"name":233,"callback":105,"file":344,"line":366},507,{"type":98,"name":368,"callback":369,"file":344,"line":370},"wahrb_cleanup_expired_holds","cleanup_expired",526,{"type":98,"name":372,"callback":373,"file":344,"line":374},"wahrb_process_balance_orders","process_pending_orders",527,[376,382,385,389,392,395],{"action":377,"nopriv":378,"callback":379,"hasNonce":380,"hasCapCheck":380,"file":381,"line":186},"wahrb_export_bookings_csv",false,"handle_export",true,"includes\u002FAdmin\u002Fclass-wahrb-csv-exporter.php",{"action":383,"nopriv":378,"callback":384,"hasNonce":380,"hasCapCheck":380,"file":109,"line":186},"wahrb_dismiss_freshness","ajax_dismiss_freshness",{"action":386,"nopriv":378,"callback":387,"hasNonce":380,"hasCapCheck":380,"file":117,"line":388},"wahrb_dismiss_review","ajax_dismiss_review",51,{"action":390,"nopriv":378,"callback":391,"hasNonce":380,"hasCapCheck":380,"file":128,"line":218},"wahrb_dismiss_setup_wizard","ajax_dismiss_notice",{"action":393,"nopriv":378,"callback":306,"hasNonce":378,"hasCapCheck":378,"file":307,"line":394},"wahrb_get_availability",79,{"action":393,"nopriv":380,"callback":306,"hasNonce":378,"hasCapCheck":378,"file":307,"line":396},80,[],[],[400,401,403],{"hook":237,"callback":237,"file":235,"line":205},{"hook":368,"callback":368,"file":344,"line":402},517,{"hook":372,"callback":372,"file":344,"line":404},522,6,{"dangerousFunctions":407,"sqlUsage":408,"outputEscaping":411,"fileOperations":84,"externalRequests":11,"nonceChecks":501,"capabilityChecks":289,"bundledLibraries":502},[],{"prepared":409,"raw":11,"locations":410},271,[],{"escaped":412,"rawEcho":186,"locations":413},3104,[414,418,420,422,423,425,427,429,431,433,435,437,439,441,443,445,447,449,451,453,456,459,462,464,466,468,470,472,474,476,478,479,481,483,485,487,489,491,493,495,498],{"file":415,"line":416,"context":417},"templates\u002Fadmin\u002Fanalytics.php",184,"raw output",{"file":415,"line":419,"context":417},185,{"file":415,"line":421,"context":417},186,{"file":415,"line":347,"context":417},{"file":415,"line":424,"context":417},191,{"file":415,"line":426,"context":417},192,{"file":415,"line":428,"context":417},193,{"file":415,"line":430,"context":417},194,{"file":415,"line":432,"context":417},195,{"file":415,"line":434,"context":417},196,{"file":415,"line":436,"context":417},275,{"file":415,"line":438,"context":417},279,{"file":415,"line":440,"context":417},318,{"file":415,"line":442,"context":417},319,{"file":415,"line":444,"context":417},326,{"file":415,"line":446,"context":417},343,{"file":415,"line":448,"context":417},348,{"file":415,"line":450,"context":417},349,{"file":415,"line":452,"context":417},350,{"file":454,"line":455,"context":417},"templates\u002Fadmin\u002Fbooking-detail.php",584,{"file":457,"line":458,"context":417},"templates\u002Fadmin\u002Fsettings.php",337,{"file":460,"line":461,"context":417},"templates\u002Fdokan\u002Fanalytics.php",232,{"file":460,"line":463,"context":417},248,{"file":460,"line":465,"context":417},254,{"file":460,"line":467,"context":417},255,{"file":460,"line":469,"context":417},256,{"file":460,"line":471,"context":417},257,{"file":460,"line":473,"context":417},258,{"file":460,"line":475,"context":417},259,{"file":460,"line":477,"context":417},260,{"file":460,"line":364,"context":417},{"file":460,"line":480,"context":417},354,{"file":460,"line":482,"context":417},385,{"file":460,"line":484,"context":417},409,{"file":460,"line":486,"context":417},431,{"file":460,"line":488,"context":417},436,{"file":460,"line":490,"context":417},437,{"file":460,"line":492,"context":417},438,{"file":460,"line":494,"context":417},491,{"file":496,"line":497,"context":417},"templates\u002Fdokan\u002Fbooking-detail.php",524,{"file":499,"line":500,"context":417},"templates\u002Fproduct-calendar.php",352,14,[],[504,523,552,570,581,592,630],{"entryPoint":505,"graph":506,"unsanitizedCount":11,"severity":522},"\u003Cbookings> (templates\u002Fadmin\u002Fbookings.php:0)",{"nodes":507,"edges":520},[508,514],{"id":509,"type":510,"label":511,"file":512,"line":513},"n0","source","$_GET (x5)","templates\u002Fadmin\u002Fbookings.php",15,{"id":515,"type":516,"label":517,"file":512,"line":518,"wp_function":519},"n1","sink","echo() [XSS]",120,"echo",[521],{"from":509,"to":515,"sanitized":380},"low",{"entryPoint":524,"graph":525,"unsanitizedCount":11,"severity":522},"\u003Csettings> (templates\u002Fadmin\u002Fsettings.php:0)",{"nodes":526,"edges":548},[527,530,534,538,541,545],{"id":509,"type":510,"label":528,"file":457,"line":529},"$_POST (x2)",171,{"id":515,"type":516,"label":531,"file":457,"line":532,"wp_function":533},"update_option() [Settings Manipulation]",173,"update_option",{"id":535,"type":510,"label":536,"file":457,"line":537},"n2","$_GET",290,{"id":539,"type":516,"label":517,"file":457,"line":540,"wp_function":519},"n3",320,{"id":542,"type":510,"label":543,"file":457,"line":544},"n4","$_POST",273,{"id":546,"type":516,"label":517,"file":457,"line":547,"wp_function":519},"n5",1237,[549,550,551],{"from":509,"to":515,"sanitized":380},{"from":535,"to":539,"sanitized":380},{"from":542,"to":546,"sanitized":380},{"entryPoint":553,"graph":554,"unsanitizedCount":11,"severity":522},"\u003Cbooking-wizard> (templates\u002Fdokan\u002Fbooking-wizard.php:0)",{"nodes":555,"edges":567},[556,559,563,565],{"id":509,"type":510,"label":536,"file":557,"line":558},"templates\u002Fdokan\u002Fbooking-wizard.php",97,{"id":515,"type":516,"label":560,"file":557,"line":561,"wp_function":562},"get_row() [SQLi]",125,"get_row",{"id":535,"type":510,"label":564,"file":557,"line":558},"$_GET (x7)",{"id":539,"type":516,"label":517,"file":557,"line":566,"wp_function":519},383,[568,569],{"from":509,"to":515,"sanitized":380},{"from":535,"to":539,"sanitized":380},{"entryPoint":571,"graph":572,"unsanitizedCount":11,"severity":522},"\u003Cbookings-list> (templates\u002Fdokan\u002Fbookings-list.php:0)",{"nodes":573,"edges":579},[574,577],{"id":509,"type":510,"label":511,"file":575,"line":576},"templates\u002Fdokan\u002Fbookings-list.php",18,{"id":515,"type":516,"label":517,"file":575,"line":578,"wp_function":519},223,[580],{"from":509,"to":515,"sanitized":380},{"entryPoint":582,"graph":583,"unsanitizedCount":11,"severity":522},"\u003Csettings> (templates\u002Fdokan\u002Fsettings.php:0)",{"nodes":584,"edges":590},[585,588],{"id":509,"type":510,"label":586,"file":587,"line":102},"$_POST (x19)","templates\u002Fdokan\u002Fsettings.php",{"id":515,"type":516,"label":517,"file":587,"line":589,"wp_function":519},251,[591],{"from":509,"to":515,"sanitized":380},{"entryPoint":593,"graph":594,"unsanitizedCount":45,"severity":629},"\u003Cbooking-detail> (templates\u002Fadmin\u002Fbooking-detail.php:0)",{"nodes":595,"edges":622},[596,598,600,601,603,605,608,613,616,619],{"id":509,"type":510,"label":536,"file":454,"line":597},69,{"id":515,"type":516,"label":560,"file":454,"line":599,"wp_function":562},85,{"id":535,"type":510,"label":511,"file":454,"line":597},{"id":539,"type":516,"label":517,"file":454,"line":602,"wp_function":519},212,{"id":542,"type":510,"label":536,"file":454,"line":604},105,{"id":546,"type":606,"label":607,"file":454,"line":604},"transform","→ get_email_logs()",{"id":609,"type":516,"label":610,"file":256,"line":611,"wp_function":612},"n6","get_results() [SQLi]",533,"get_results",{"id":614,"type":510,"label":536,"file":454,"line":615},"n7",106,{"id":617,"type":606,"label":618,"file":454,"line":615},"n8","→ get_sms_logs()",{"id":620,"type":516,"label":610,"file":256,"line":621,"wp_function":612},"n9",555,[623,624,625,626,627,628],{"from":509,"to":515,"sanitized":378},{"from":535,"to":539,"sanitized":380},{"from":542,"to":546,"sanitized":378},{"from":546,"to":609,"sanitized":378},{"from":614,"to":617,"sanitized":378},{"from":617,"to":620,"sanitized":378},"high",{"entryPoint":631,"graph":632,"unsanitizedCount":31,"severity":629},"\u003Cbooking-detail> (templates\u002Fdokan\u002Fbooking-detail.php:0)",{"nodes":633,"edges":646},[634,635,637,638,639,640,641,642,644,645],{"id":509,"type":510,"label":536,"file":496,"line":318},{"id":515,"type":516,"label":560,"file":496,"line":636,"wp_function":562},84,{"id":535,"type":510,"label":511,"file":496,"line":318},{"id":539,"type":516,"label":517,"file":496,"line":430,"wp_function":519},{"id":542,"type":510,"label":536,"file":496,"line":558},{"id":546,"type":606,"label":607,"file":496,"line":558},{"id":609,"type":516,"label":610,"file":256,"line":611,"wp_function":612},{"id":614,"type":510,"label":536,"file":496,"line":643},98,{"id":617,"type":606,"label":618,"file":496,"line":643},{"id":620,"type":516,"label":610,"file":256,"line":621,"wp_function":612},[647,648,649,650,651,652],{"from":509,"to":515,"sanitized":380},{"from":535,"to":539,"sanitized":380},{"from":542,"to":546,"sanitized":378},{"from":546,"to":609,"sanitized":378},{"from":614,"to":617,"sanitized":378},{"from":617,"to":620,"sanitized":378},{"summary":654,"deductions":655},"The \"wahra-rentals-bookings\" v2.3.0 plugin exhibits a generally strong security posture, with excellent practices in SQL query sanitization and output escaping, indicating a mature development process. The plugin also demonstrates diligent use of nonces and capability checks, crucial for WordPress security. The absence of known CVEs and a clean vulnerability history further bolster this positive assessment, suggesting a commitment to maintaining a secure codebase.\n\nHowever, the analysis does reveal specific areas of concern. The presence of two AJAX handlers without authentication checks represents a significant risk, as these could be exploited by unauthenticated users to perform unintended actions. Furthermore, the taint analysis flagged two flows with unsanitized paths, indicating potential for path traversal vulnerabilities, which are classified as high severity. These findings, despite the overall good practices, introduce exploitable attack vectors.\n\nIn conclusion, while the plugin excels in many security aspects, the unprotected AJAX endpoints and identified taint flows with unsanitized paths require immediate attention. Addressing these specific vulnerabilities will significantly improve the plugin's security, moving it from a generally good posture with critical weaknesses to a more robust and secure state.",[656,658],{"reason":657,"points":63},"Unprotected AJAX handlers found",{"reason":659,"points":513},"High severity taint flows with unsanitized paths","2026-04-16T14:53:32.408Z",{"wat":662,"direct":712},{"assetPaths":663,"generatorPatterns":686,"scriptPaths":687,"versionParams":689},[664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685],"\u002Fwp-content\u002Fplugins\u002Fwahra-rentals-bookings\u002Fassets\u002Fcss\u002Fvendors\u002Fflatpickr.min.css","\u002Fwp-content\u002Fplugins\u002Fwahra-rentals-bookings\u002Fassets\u002Fcss\u002Fvendors\u002Fselect2.min.css","\u002Fwp-content\u002Fplugins\u002Fwahra-rentals-bookings\u002Fassets\u002Fcss\u002Fvendors\u002Fnouislider.min.css","\u002Fwp-content\u002Fplugins\u002Fwahra-rentals-bookings\u002Fassets\u002Fcss\u002Fvendors\u002Fswiper-bundle.min.css","\u002Fwp-content\u002Fplugins\u002Fwahra-rentals-bookings\u002Fassets\u002Fcss\u002Fvendors\u002Ftooltipster.bundle.min.css","\u002Fwp-content\u002Fplugins\u002Fwahra-rentals-bookings\u002Fassets\u002Fcss\u002Fvendors\u002Fcropper.min.css","\u002Fwp-content\u002Fplugins\u002Fwahra-rentals-bookings\u002Fassets\u002Fcss\u002Fwahra-admin-dashboard.css","\u002Fwp-content\u002Fplugins\u002Fwahra-rentals-bookings\u002Fassets\u002Fcss\u002Fwahra-frontend.css","\u002Fwp-content\u002Fplugins\u002Fwahra-rentals-bookings\u002Fassets\u002Fcss\u002Fwahra-wizard.css","\u002Fwp-content\u002Fplugins\u002Fwahra-rentals-bookings\u002Fassets\u002Fcss\u002Fwahra-date-picker.css","\u002Fwp-content\u002Fplugins\u002Fwahra-rentals-bookings\u002Fassets\u002Fjs\u002Fvendors\u002Fjquery.min.js","\u002Fwp-content\u002Fplugins\u002Fwahra-rentals-bookings\u002Fassets\u002Fjs\u002Fvendors\u002Fmoment.min.js","\u002Fwp-content\u002Fplugins\u002Fwahra-rentals-bookings\u002Fassets\u002Fjs\u002Fvendors\u002Fflatpickr.min.js","\u002Fwp-content\u002Fplugins\u002Fwahra-rentals-bookings\u002Fassets\u002Fjs\u002Fvendors\u002Fselect2.min.js","\u002Fwp-content\u002Fplugins\u002Fwahra-rentals-bookings\u002Fassets\u002Fjs\u002Fvendors\u002Fnouislider.min.js","\u002Fwp-content\u002Fplugins\u002Fwahra-rentals-bookings\u002Fassets\u002Fjs\u002Fvendors\u002Fswiper-bundle.min.js","\u002Fwp-content\u002Fplugins\u002Fwahra-rentals-bookings\u002Fassets\u002Fjs\u002Fvendors\u002Ftooltipster.bundle.min.js","\u002Fwp-content\u002Fplugins\u002Fwahra-rentals-bookings\u002Fassets\u002Fjs\u002Fvendors\u002Fcropper.min.js","\u002Fwp-content\u002Fplugins\u002Fwahra-rentals-bookings\u002Fassets\u002Fjs\u002Fwahra-admin-dashboard.js","\u002Fwp-content\u002Fplugins\u002Fwahra-rentals-bookings\u002Fassets\u002Fjs\u002Fwahra-frontend.js","\u002Fwp-content\u002Fplugins\u002Fwahra-rentals-bookings\u002Fassets\u002Fjs\u002Fwahra-wizard.js","\u002Fwp-content\u002Fplugins\u002Fwahra-rentals-bookings\u002Fassets\u002Fjs\u002Fwahra-date-picker.js",[],[688],"\u002Fwp-content\u002Fplugins\u002Fwahra-rentals-bookings\u002Fwahra-rentals-bookings.php",[690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711],"wahra-rentals-bookings\u002Fassets\u002Fcss\u002Fvendors\u002Fflatpickr.min.css?ver=","wahra-rentals-bookings\u002Fassets\u002Fcss\u002Fvendors\u002Fselect2.min.css?ver=","wahra-rentals-bookings\u002Fassets\u002Fcss\u002Fvendors\u002Fnouislider.min.css?ver=","wahra-rentals-bookings\u002Fassets\u002Fcss\u002Fvendors\u002Fswiper-bundle.min.css?ver=","wahra-rentals-bookings\u002Fassets\u002Fcss\u002Fvendors\u002Ftooltipster.bundle.min.css?ver=","wahra-rentals-bookings\u002Fassets\u002Fcss\u002Fvendors\u002Fcropper.min.css?ver=","wahra-rentals-bookings\u002Fassets\u002Fcss\u002Fwahra-admin-dashboard.css?ver=","wahra-rentals-bookings\u002Fassets\u002Fcss\u002Fwahra-frontend.css?ver=","wahra-rentals-bookings\u002Fassets\u002Fcss\u002Fwahra-wizard.css?ver=","wahra-rentals-bookings\u002Fassets\u002Fcss\u002Fwahra-date-picker.css?ver=","wahra-rentals-bookings\u002Fassets\u002Fjs\u002Fvendors\u002Fjquery.min.js?ver=","wahra-rentals-bookings\u002Fassets\u002Fjs\u002Fvendors\u002Fmoment.min.js?ver=","wahra-rentals-bookings\u002Fassets\u002Fjs\u002Fvendors\u002Fflatpickr.min.js?ver=","wahra-rentals-bookings\u002Fassets\u002Fjs\u002Fvendors\u002Fselect2.min.js?ver=","wahra-rentals-bookings\u002Fassets\u002Fjs\u002Fvendors\u002Fnouislider.min.js?ver=","wahra-rentals-bookings\u002Fassets\u002Fjs\u002Fvendors\u002Fswiper-bundle.min.js?ver=","wahra-rentals-bookings\u002Fassets\u002Fjs\u002Fvendors\u002Ftooltipster.bundle.min.js?ver=","wahra-rentals-bookings\u002Fassets\u002Fjs\u002Fvendors\u002Fcropper.min.js?ver=","wahra-rentals-bookings\u002Fassets\u002Fjs\u002Fwahra-admin-dashboard.js?ver=","wahra-rentals-bookings\u002Fassets\u002Fjs\u002Fwahra-frontend.js?ver=","wahra-rentals-bookings\u002Fassets\u002Fjs\u002Fwahra-wizard.js?ver=","wahra-rentals-bookings\u002Fassets\u002Fjs\u002Fwahra-date-picker.js?ver=",{"cssClasses":713,"htmlComments":718,"htmlAttributes":719,"restEndpoints":724,"jsGlobals":728,"shortcodeOutput":733},[714,715,716,717],"wahrb-admin-dashboard","wahrb-frontend","wahrb-wizard","wahrb-date-picker",[],[720,721,722,723],"data-wahrb-input-type","data-wahrb-lang","data-wahrb-disable-weekday","data-wahrb-disable-weekend",[725,726,727],"\u002Fwp-json\u002Fwahra-rentals-bookings\u002Fv1\u002Favailability","\u002Fwp-json\u002Fwahra-rentals-bookings\u002Fv1\u002Fbookings","\u002Fwp-json\u002Fwahra-rentals-bookings\u002Fv1\u002Fwizard",[729,730,731,732],"WAHRB_AdminDashboard","WAHRB_Frontend","WAHRB_Wizard","WAHRB_DatePicker",[],{"error":380,"url":735,"statusCode":736,"statusMessage":737,"message":737},"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fwahra-rentals-bookings\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":405,"versions":739},[740,745,752,759,766,773],{"version":6,"download_url":24,"svn_tag_url":741,"released_at":26,"has_diff":378,"diff_files_changed":742,"diff_lines":26,"trac_diff_url":743,"vulnerabilities":744,"is_current":380},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwahra-rentals-bookings\u002Ftags\u002F2.3.0\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fwahra-rentals-bookings%2Ftags%2F2.2.0&new_path=%2Fwahra-rentals-bookings%2Ftags%2F2.3.0",[],{"version":746,"download_url":747,"svn_tag_url":748,"released_at":26,"has_diff":378,"diff_files_changed":749,"diff_lines":26,"trac_diff_url":750,"vulnerabilities":751,"is_current":378},"2.2.0","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwahra-rentals-bookings.2.2.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwahra-rentals-bookings\u002Ftags\u002F2.2.0\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fwahra-rentals-bookings%2Ftags%2F2.0.4&new_path=%2Fwahra-rentals-bookings%2Ftags%2F2.2.0",[],{"version":753,"download_url":754,"svn_tag_url":755,"released_at":26,"has_diff":378,"diff_files_changed":756,"diff_lines":26,"trac_diff_url":757,"vulnerabilities":758,"is_current":378},"2.0.4","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwahra-rentals-bookings.2.0.4.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwahra-rentals-bookings\u002Ftags\u002F2.0.4\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fwahra-rentals-bookings%2Ftags%2F2.0.3&new_path=%2Fwahra-rentals-bookings%2Ftags%2F2.0.4",[],{"version":760,"download_url":761,"svn_tag_url":762,"released_at":26,"has_diff":378,"diff_files_changed":763,"diff_lines":26,"trac_diff_url":764,"vulnerabilities":765,"is_current":378},"2.0.3","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwahra-rentals-bookings.2.0.3.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwahra-rentals-bookings\u002Ftags\u002F2.0.3\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fwahra-rentals-bookings%2Ftags%2F2.0.2&new_path=%2Fwahra-rentals-bookings%2Ftags%2F2.0.3",[],{"version":767,"download_url":768,"svn_tag_url":769,"released_at":26,"has_diff":378,"diff_files_changed":770,"diff_lines":26,"trac_diff_url":771,"vulnerabilities":772,"is_current":378},"2.0.2","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwahra-rentals-bookings.2.0.2.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwahra-rentals-bookings\u002Ftags\u002F2.0.2\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fwahra-rentals-bookings%2Ftags%2F1.0.2&new_path=%2Fwahra-rentals-bookings%2Ftags%2F2.0.2",[],{"version":774,"download_url":775,"svn_tag_url":776,"released_at":26,"has_diff":378,"diff_files_changed":777,"diff_lines":26,"trac_diff_url":26,"vulnerabilities":778,"is_current":378},"1.0.2","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwahra-rentals-bookings.1.0.2.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwahra-rentals-bookings\u002Ftags\u002F1.0.2\u002F",[],[]]