{"id":349427,"date":"2026-09-03T19:37:18","date_gmt":"2026-09-03T19:37:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/innflow-manager\/"},"modified":"2026-09-05T12:31:38","modified_gmt":"2026-09-05T12:31:38","slug":"staynexus-hotel-manager","status":"publish","type":"plugin","link":"https:\/\/tw.wordpress.org\/plugins\/staynexus-hotel-manager\/","author":17676349,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.1","stable_tag":"1.1.1","tested":"7.1","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"StayNexus Hotel Manager","header_author":"sakibbd08","header_description":"Hotel operations, reservations, billing, and staff management.","assets_banners_color":"72899c","last_updated":"2026-09-05 12:31:38","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/pluginpros.co","header_author_uri":"https:\/\/profiles.wordpress.org\/sakibbd08\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":94,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.4":{"tag":"1.0.4","author":"sakibbd08","date":"2026-09-03 19:37:08","revision":3680298},"1.1.1":{"tag":"1.1.1","author":"sakibbd08","date":"2026-09-05 12:31:38","revision":3682439}},"upgrade_notice":{"1.1.1":"<p>Plugin Check cleanup: invalid filenames removed and channel sync log SQL prepared.<\/p>","1.1.0":"<p>Adds Payment settings, optional Stripe Checkout, optional manual payment, payment reference tracking, and documents the optional Channex channel connection. Existing pay-at-hotel bookings are unchanged.<\/p>","1.0.4":"<p>Requires WordPress 6.2+ for prepared identifier placeholders in database queries.<\/p>","1.0.3":"<p>Class files renamed to class-shmpp-*; no user-facing shortcode or data changes.<\/p>","1.0.2":"<p>Shortcode renamed to [shmpp_search]; existing content is migrated automatically on upgrade.<\/p>","1.0.1":"<p>Initial release of StayNexus Hotel Manager.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3680304,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3680304,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.4","1.1.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3680304,"resolution":"1","location":"assets","locale":"","width":1695,"height":848},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3680304,"resolution":"2","location":"assets","locale":"","width":1689,"height":761},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3680304,"resolution":"3","location":"assets","locale":"","width":1715,"height":702},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3682439,"resolution":"4","location":"assets","locale":"","width":1824,"height":793}},"screenshots":{"1":"Admin dashboard with guest and billing overview.","2":"Room types and availability management.","3":"Frontend booking search shortcode."}},"plugin_section":[],"plugin_tags":[269,26114,4488,1475,1582],"plugin_category":[40],"plugin_contributors":[269283],"plugin_business_model":[],"class_list":["post-349427","plugin","type-plugin","status-publish","hentry","plugin_tags-booking","plugin_tags-hospitality","plugin_tags-hotel","plugin_tags-reservations","plugin_tags-rooms","plugin_category-calendar-and-events","plugin_contributors-sakibbd08","plugin_committers-sakibbd08"],"banners":{"banner":"https:\/\/ps.w.org\/staynexus-hotel-manager\/assets\/banner-772x250.png?rev=3680304","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/staynexus-hotel-manager\/assets\/icon-256x256.png?rev=3680304","icon_2x":"https:\/\/ps.w.org\/staynexus-hotel-manager\/assets\/icon-256x256.png?rev=3680304","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/staynexus-hotel-manager\/assets\/screenshot-1.png?rev=3680304","caption":"Admin dashboard with guest and billing overview."},{"src":"https:\/\/ps.w.org\/staynexus-hotel-manager\/assets\/screenshot-2.png?rev=3680304","caption":"Room types and availability management."},{"src":"https:\/\/ps.w.org\/staynexus-hotel-manager\/assets\/screenshot-3.png?rev=3680304","caption":"Frontend booking search shortcode."},{"src":"https:\/\/ps.w.org\/staynexus-hotel-manager\/assets\/screenshot-4.png?rev=3682439","caption":""}],"raw_content":"<!--section=description-->\n<p>StayNexus Hotel Manager is a hotel operations plugin with a React admin dashboard and a guest-facing booking search shortcode.<\/p>\n\n<p>Features:<\/p>\n\n<ul>\n<li>Room types, amenities, and date-based availability slots<\/li>\n<li>Guest and booking management with soft-delete trash<\/li>\n<li>Room, restaurant, laundry, and damage billing<\/li>\n<li>Staff, roles, and salaries<\/li>\n<li>Dedicated <strong>Payment settings<\/strong> admin screen for online, manual, and offline payment options<\/li>\n<li>Configurable frontend primary color so the booking form can match your site theme<\/li>\n<li>Optional online card payments on the public booking form using Stripe Checkout (requires your own Stripe account)<\/li>\n<li>Optional manual \/ bank-transfer payment on checkout with instructions you define<\/li>\n<li>Pay-at-hotel option so guests can reserve without paying online<\/li>\n<li>Payment reference numbers for paid bookings and bills (cheque number, card transaction ID, bank transfer reference, and similar)<\/li>\n<li>Staff can mark bookings paid under Bookings and record the payment method plus reference<\/li>\n<li>Optional channel manager connection using Channex to sync availability and rates and pull OTA bookings (requires your own Channex account)<\/li>\n<li>In-admin Channels setup and Channex help guide<\/li>\n<li>REST API under <code>\/wp-json\/staynexushm\/v1\/<\/code><\/li>\n<\/ul>\n\n<p>Add the shortcode <code>[shmpp_search]<\/code> to any page for the booking UI.<\/p>\n\n<h4>Data storage and third-party services<\/h4>\n\n<p>By default, hotel and guest data is stored in custom database tables on your WordPress site. The plugin does not send that data to third-party analytics services.<\/p>\n\n<p>If you enable card payments, guests who choose to pay online are redirected to Stripe Checkout. In that case, payment-related details (such as booking total, currency, and guest email) are sent to Stripe so the payment can be processed. You must provide your own Stripe API keys. This plugin is not affiliated with, endorsed by, or sponsored by Stripe, Inc.<\/p>\n\n<ul>\n<li>Stripe terms: https:\/\/stripe.com\/legal<\/li>\n<li>Stripe privacy policy: https:\/\/stripe.com\/privacy<\/li>\n<\/ul>\n\n<p>If you enable the channel manager connection, StayNexus exchanges availability, rates, inventory (ARI), and booking data with Channex so Online Travel Agency (OTA) channels can stay in sync. You must provide your own Channex API credentials. This plugin is not affiliated with, endorsed by, or sponsored by Channex.io LTD.<\/p>\n\n<ul>\n<li>Channex terms and policies: https:\/\/channex.io\/policy<\/li>\n<li>Channex documentation: https:\/\/docs.channex.io\/<\/li>\n<\/ul>\n\n<p>Online card payment, manual payment, and the Channex channel connection are all optional. Guests can still reserve with \u201cPay at hotel\u201d when you prefer not to collect payment online.<\/p>\n\n<h3>Source code<\/h3>\n\n<p>https:\/\/github.com\/sakib08\/innflow-manager<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>staynexus-hotel-manager<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the ZIP via Plugins \u2192 Add New \u2192 Upload Plugin.<\/li>\n<li>Activate <strong>StayNexus Hotel Manager<\/strong> through the Plugins screen.<\/li>\n<li>Open <strong>StayNexus Hotel Manager<\/strong> in the admin menu to configure hotel settings.<\/li>\n<li>Add <code>[shmpp_search]<\/code> to a page for the frontend booking form.<\/li>\n<li>(Optional) Open <strong>Payment settings<\/strong> to enable Stripe and\/or manual payment:\n\n<ul>\n<li>Stripe: enter publishable and secret keys (use test keys while verifying, then live keys for production).<\/li>\n<li>Manual payment: enable the option and add bank-transfer or other payment instructions shown to guests after booking.<\/li>\n<li>Offline methods: manage labels such as Cash, Card, Bank Transfer, or Cheque for staff when marking payments received.<\/li>\n<\/ul><\/li>\n<li>(Optional) Open <strong>Channels<\/strong> to connect Channex: add your API key and property ID, map room types, then push availability\/rates and pull OTA bookings. See <strong>Channex help<\/strong> in the admin menu for a step-by-step guide.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20replace%20a%20theme%3F\"><h3>Does this replace a theme?<\/h3><\/dt>\n<dd><p>No. It adds admin screens and a shortcode. Your theme still controls the public site layout around the shortcode.<\/p><\/dd>\n<dt id=\"where%20is%20guest%20and%20booking%20data%20stored%3F\"><h3>Where is guest and booking data stored?<\/h3><\/dt>\n<dd><p>In custom tables in your WordPress database (prefixed <code>shmpp_<\/code>). Soft-deleted items go to the plugin Trash screen before permanent removal.<\/p><\/dd>\n<dt id=\"do%20i%20need%20node.js%20to%20use%20the%20plugin%3F\"><h3>Do I need Node.js to use the plugin?<\/h3><\/dt>\n<dd><p>No. Production assets are included under <code>assets\/dist\/<\/code>.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20stripe%20account%20for%20bookings%3F\"><h3>Do I need a Stripe account for bookings?<\/h3><\/dt>\n<dd><p>No. Bookings work without Stripe. Guests can pay at the hotel, or you can enable manual \/ bank-transfer instructions. Stripe is only required if you enable optional online card payment in Payment settings.<\/p><\/dd>\n<dt id=\"how%20do%20i%20test%20card%20payments%20safely%3F\"><h3>How do I test card payments safely?<\/h3><\/dt>\n<dd><p>In the Stripe Dashboard, use Test mode and paste the <code>pk_test_<\/code> \/ <code>sk_test_<\/code> keys into Payment settings. Live keys (<code>pk_live_<\/code> \/ <code>sk_live_<\/code>) should be used only when you are ready to accept real payments. This plugin supports both; it is not limited to a sandbox-only API.<\/p><\/dd>\n<dt id=\"what%20guest%20data%20is%20shared%20with%20stripe%3F\"><h3>What guest data is shared with Stripe?<\/h3><\/dt>\n<dd><p>Only when Stripe is enabled and the guest chooses card payment: booking amount, currency, booking reference metadata, and guest email (when provided) are sent to Stripe to create the Checkout Session. Card details are entered on Stripe\u2019s hosted Checkout page, not stored by this plugin.<\/p><\/dd>\n<dt id=\"what%20is%20a%20payment%20reference%3F\"><h3>What is a payment reference?<\/h3><\/dt>\n<dd><p>When a booking or bill is marked paid, staff must enter a payment reference such as a cheque number, card terminal transaction ID, or bank transfer reference. Stripe payments store the Stripe payment identifier automatically as the reference.<\/p><\/dd>\n<dt id=\"where%20do%20i%20configure%20payments%3F\"><h3>Where do I configure payments?<\/h3><\/dt>\n<dd><p>Use the <strong>Payment settings<\/strong> menu item (not the general Settings screen). There you manage Stripe keys, manual payment instructions, and offline payment method labels.<\/p><\/dd>\n<dt id=\"do%20i%20need%20channex%3F\"><h3>Do I need Channex?<\/h3><\/dt>\n<dd><p>No. Direct website bookings work without Channex. Connect Channex only if you want to sync inventory with OTAs (for example Booking.com or Agoda) through a channel manager account you manage yourself.<\/p><\/dd>\n<dt id=\"what%20data%20is%20shared%20with%20channex%3F\"><h3>What data is shared with Channex?<\/h3><\/dt>\n<dd><p>When Channels is configured and active, StayNexus sends mapped room availability and rates to Channex and may receive OTA bookings from Channex into your Bookings list. Use your own Channex API key and property ID. Review Channex terms and privacy policies before enabling the connection.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Removed accidental junk files with invalid names from the plugin root.<\/li>\n<li>Hardened channel sync log prune queries with <code>$wpdb-&gt;prepare()<\/code> and <code>%i<\/code> placeholders.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Optional online card payment on the public booking form via Stripe Checkout.<\/li>\n<li>Optional manual \/ bank-transfer payment with configurable instructions.<\/li>\n<li>Dedicated Payment settings admin screen (Stripe, manual payment, offline methods).<\/li>\n<li>Payment reference numbers required when marking bookings or bills as paid.<\/li>\n<li>Mark paid action on Bookings with payment method and reference.<\/li>\n<li>Public checkout REST route for guest reservations (pay at hotel, manual, or pay online).<\/li>\n<li>Documented optional Channex channel manager connection (Channels + Channex help).<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Hardened database queries with allow-listed table identifiers and prepared placeholders.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Prefixed all PHP class filenames with <code>class-shmpp-<\/code> and updated the autoloader map.<\/li>\n<li>Confirmed REST routes use <code>permission_callback<\/code>, text domain matches the plugin slug, and SQL identifiers are allow-listed.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fixed text domain to match the plugin slug (staynexus-hotel-manager).<\/li>\n<li>Renamed the frontend shortcode to the plugin-prefixed <code>[shmpp_search]<\/code> (old <code>[staynexus_hotel_manager_search]<\/code> and <code>[hotel_booking_search]<\/code> shortcodes in existing content are migrated automatically).<\/li>\n<li>Hardened legacy-table migration queries and the public booking endpoint.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<p>Initial release of StayNexus Hotel Manager.<\/p>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Hotel operations, reservations, billing, and staff management for WordPress.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/349427","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=349427"}],"author":[{"embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/sakibbd08"}],"wp:attachment":[{"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=349427"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=349427"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=349427"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=349427"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=349427"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=349427"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}