MotoPress Appointment Booking Security & Risk Analysis

wordpress.org/plugins/motopress-appointment-lite

MotoPress Appointment Booking makes it easy for time and service-based businesses to accept bookings and appointments online.

2K active installs v2.4.3 PHP 7.4+ WP 5.3+ Updated Dec 8, 2025
appointmentbookingcalendarreservationschedule
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is MotoPress Appointment Booking Safe to Use in 2026?

Generally Safe

Score 100/100

MotoPress Appointment Booking has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 3mo ago
Risk Assessment

The 'motopress-appointment-lite' v2.4.3 plugin demonstrates a generally good security posture. The static analysis reveals a limited attack surface with no unprotected AJAX handlers or REST API routes, which is a positive sign for security. The high percentage of prepared statements in SQL queries and proper output escaping also indicate diligent coding practices regarding common web vulnerabilities. Furthermore, the absence of any recorded CVEs suggests a history of responsible development and maintenance.

Key Concerns

  • Use of unserialize function
  • Flows with unsanitized paths detected
  • File operations present
  • External HTTP requests present
Vulnerabilities
None known

MotoPress Appointment Booking Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Code Analysis
Analyzed Mar 16, 2026

MotoPress Appointment Booking Code Analysis

Dangerous Functions
2
Raw SQL Queries
2
45 prepared
Unescaped Output
215
685 escaped
Nonce Checks
16
Capability Checks
13
File Operations
8
External Requests
5
Bundled Libraries
1

Dangerous Functions Found

unserialize$value = @unserialize( $metaValue[0] );includes\admin-pages\manage\ManageEmployeesPage.php:126
unserialize$value = @unserialize( $metaValue[0] );includes\admin-pages\manage\ManageSchedulesPage.php:113

Bundled Libraries

jQuery

SQL Query Safety

96% prepared47 total queries

Output Escaping

76% escaped900 total outputs
Data Flows
3 unsanitized

Data Flow Analysis

7 flows3 with unsanitized paths
echoCSVExportBarAboveBookingsTable (includes\admin-pages\manage\ManageBookingsPage.php:557)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

MotoPress Appointment Booking Attack Surface

Entry Points2
Unprotected0

AJAX Handlers 2

authwp_ajax_mpa_finish_wizardincludes\handlers\WizardHandler.php:91
authwp_ajax_mpa_skip_wizardincludes\handlers\WizardHandler.php:92
WordPress Hooks 153
actionadmin_menuincludes\admin-pages\custom\AbstractCustomPage.php:124
actionadmin_enqueue_scriptsincludes\admin-pages\custom\AbstractCustomPage.php:125
actionadmin_noticesincludes\admin-pages\custom\CustomersPage.php:52
actionadmin_headincludes\admin-pages\custom\UpgradeToPremiumPage.php:33
filtermpa_prevent_emailsincludes\admin-pages\edit\EditBookingPage.php:22
filterenter_title_hereincludes\admin-pages\edit\EditCouponPage.php:20
actionload-post.phpincludes\admin-pages\edit\EditPostPage.php:40
actionload-post-new.phpincludes\admin-pages\edit\EditPostPage.php:41
actionadmin_enqueue_scriptsincludes\admin-pages\edit\EditPostPage.php:65
actionadmin_footerincludes\admin-pages\edit\EditShortcodePage.php:25
actionadmin_initincludes\admin-pages\manage\ManageBookingsPage.php:38
filterdisable_months_dropdownincludes\admin-pages\manage\ManageBookingsPage.php:125
actionrestrict_manage_postsincludes\admin-pages\manage\ManageBookingsPage.php:135
actionmanage_posts_extra_tablenavincludes\admin-pages\manage\ManageBookingsPage.php:149
filterpost_row_actionsincludes\admin-pages\manage\ManageBookingsPage.php:165
actionpre_get_postsincludes\admin-pages\manage\ManageBookingsPage.php:251
filterposts_searchincludes\admin-pages\manage\ManageBookingsPage.php:260
filterposts_whereincludes\admin-pages\manage\ManageBookingsPage.php:300
filterposts_whereincludes\admin-pages\manage\ManageBookingsPage.php:383
actionadmin_action_mpa_duplicate_employeeincludes\admin-pages\manage\ManageEmployeesPage.php:27
filterpost_row_actionsincludes\admin-pages\manage\ManageEmployeesPage.php:52
actionpre_get_postsincludes\admin-pages\manage\ManageNotificationsPage.php:26
filterdisplay_post_statesincludes\admin-pages\manage\ManageNotificationsPage.php:45
filterposts_searchincludes\admin-pages\manage\ManagePaymentsPage.php:23
filterpost_row_actionsincludes\admin-pages\manage\ManagePaymentsPage.php:25
actionadmin_initincludes\admin-pages\manage\ManagePostsPage.php:30
actionadmin_enqueue_scriptsincludes\admin-pages\manage\ManagePostsPage.php:45
actionadmin_footerincludes\admin-pages\manage\ManagePostsPage.php:54
actionadmin_noticesincludes\admin-pages\manage\ManagePostsPage.php:277
filterposts_joinincludes\admin-pages\manage\ManagePostsPage.php:289
filterposts_whereincludes\admin-pages\manage\ManagePostsPage.php:306
filterposts_groupbyincludes\admin-pages\manage\ManagePostsPage.php:328
actionadmin_action_mpa_duplicate_scheduleincludes\admin-pages\manage\ManageSchedulesPage.php:22
filterpost_row_actionsincludes\admin-pages\manage\ManageSchedulesPage.php:46
actionadmin_footer-edit-tags.phpincludes\admin-pages\manage\ManageServiceCategoriesPage.php:21
filterterms_clausesincludes\admin-pages\manage\ManageServiceCategoriesPage.php:24
actionadmin_footerincludes\admin-pages\manage\ManageShortcodesPage.php:24
actionquick_edit_custom_boxincludes\admin-pages\manage\ManageTermsPage.php:22
actioninitincludes\direct-link-actions\AbstractAction.php:14
filterget_pagesincludes\direct-link-actions\pages\AbstractRealPage.php:16
filterdisplay_post_statesincludes\direct-link-actions\pages\AbstractRealPage.php:17
filterbody_classincludes\direct-link-actions\pages\AbstractVirtualPage.php:24
actionadmin_bar_menuincludes\direct-link-actions\pages\AbstractVirtualPage.php:56
actiontemplate_redirectincludes\direct-link-actions\pages\AbstractVirtualPage.php:180
actionet_builder_modules_loadedincludes\divi\Init.php:16
actionet_builder_readyincludes\divi\Init.php:17
actionwp_headincludes\divi\Init.php:20
filterelementor/elements/categories_registeredincludes\elementor\Init.php:26
filterelementor/widgets/registerincludes\elementor\Init.php:42
filtermpa_email_section_settingsincludes\emails\EmailsDispatcher.php:33
actionmpa_booking_placed_by_userincludes\emails\EmailsDispatcher.php:36
actionmpa_booking_placed_by_adminincludes\emails\EmailsDispatcher.php:37
actionmpa_booking_status_changedincludes\emails\EmailsDispatcher.php:39
actionmpa_new_customer_accountincludes\emails\EmailsDispatcher.php:41
filtermpa_email_tag_customer_account_passwordincludes\emails\EmailsDispatcher.php:220
filterwp_mail_fromincludes\emails\Mailer.php:26
filterwp_mail_from_nameincludes\emails\Mailer.php:27
filterwp_mail_content_typeincludes\emails\Mailer.php:28
actionadmin_enqueue_scriptsincludes\fields\complex\EmployeeUserField.php:29
actionadmin_footerincludes\functions.php:48
actionadmin_footer_textincludes\functions.php:79
actionadmin_headincludes\functions.php:121
filterblock_categories_allincludes\gutenberg\Init.php:18
filterblock_categoriesincludes\gutenberg\Init.php:20
actionenqueue_block_editor_assetsincludes\gutenberg\Init.php:26
actioncron_schedulesincludes\handlers\CronsHandler.php:29
actioninitincludes\handlers\CronsHandler.php:37
actiondeleted_userincludes\handlers\CustomerAccountActionsHandler.php:11
filtermpa_registered_notification_sendersincludes\handlers\notification\AbstractNotificationSender.php:19
filterwp_mail_fromincludes\handlers\notification\EmailNotificationSender.php:67
filterwp_mail_from_nameincludes\handlers\notification\EmailNotificationSender.php:68
actioninitincludes\handlers\NotificationHandler.php:42
actionmpa_booking_placed_by_userincludes\handlers\NotificationHandler.php:65
actionmpa_booking_placed_by_adminincludes\handlers\NotificationHandler.php:73
actionmpa_booking_cancelledincludes\handlers\NotificationHandler.php:82
actionmpa_payment_completedincludes\handlers\NotificationHandler.php:90
actioninitincludes\handlers\SecurityHandler.php:43
actionadmin_initincludes\handlers\SecurityHandler.php:46
actionrest_api_initincludes\handlers\SecurityHandler.php:47
actionshow_admin_barincludes\handlers\SecurityHandler.php:48
filteruser_has_capincludes\handlers\SecurityHandler.php:56
actionpre_get_postsincludes\handlers\SecurityHandler.php:57
actionpre_get_postsincludes\handlers\SecurityHandler.php:58
filterposts_clausesincludes\handlers\SecurityHandler.php:59
filterposts_clausesincludes\handlers\SecurityHandler.php:60
filterposts_clausesincludes\handlers\SecurityHandler.php:61
filterwp_count_postsincludes\handlers\SecurityHandler.php:62
actionpre_get_postsincludes\handlers\SecurityHandler.php:317
filteruser_has_capincludes\handlers\SecurityHandler.php:470
actionadmin_initincludes\handlers\WizardHandler.php:38
actioninitincludes\handlers\WizardHandler.php:39
actionadmin_noticesincludes\handlers\WizardHandler.php:48
filterpost_updated_messagesincludes\metaboxes\booking\ResendBookingConfirmationEmailMetabox.php:26
filterredirect_post_locationincludes\metaboxes\booking\ResendBookingConfirmationEmailMetabox.php:107
actioninitincludes\payments\gateways\webhooks\AbstractWebhooksListener.php:52
actioninitincludes\plugin\Assets.php:65
actioninitincludes\plugin\Assets.php:66
actionwp_print_scriptsincludes\plugin\Assets.php:67
actionadmin_print_scriptsincludes\plugin\Assets.php:68
actionwp_insert_siteincludes\plugin\DatabaseTables.php:32
filterwpmu_drop_tablesincludes\plugin\DatabaseTables.php:35
actionadmin_initincludes\plugin\settings\LicenseSettings.php:22
actionadmin_initincludes\plugin\settings\LicenseSettings.php:23
actionplugins_loadedincludes\Plugin.php:140
actioninitincludes\Plugin.php:142
actioninitincludes\Plugin.php:155
actioninitincludes\Plugin.php:163
actionadmin_initincludes\Plugin.php:164
actionwp_headincludes\Plugin.php:166
actionadmin_noticesincludes\Plugin.php:168
filteruse_block_editor_for_post_typeincludes\post-types\AbstractBlockEditorPostType.php:16
actioninitincludes\post-types\AbstractPostType.php:38
actionbefore_delete_postincludes\post-types\BookingPostType.php:52
actionmpa_booking_confirmedincludes\post-types\CouponPostType.php:25
actionmpa_booking_placed_by_userincludes\post-types\CouponPostType.php:28
actioninitincludes\post-types\LocationPostType.php:30
filterwp_count_commentsincludes\post-types\logs\CustomCommentsFix.php:24
filtercomment_feed_whereincludes\post-types\logs\PostTypeLogs.php:54
actionpre_get_commentsincludes\post-types\logs\PostTypeLogs.php:65
actioninitincludes\post-types\ServicePostType.php:38
actioninitincludes\post-types\ServicePostType.php:39
actioninitincludes\post-types\ServicePostType.php:40
actionadmin_menuincludes\post-types\ServicePostType.php:42
filterparent_fileincludes\post-types\ServicePostType.php:44
actioninitincludes\post-types\statuses\AbstractPostStatuses.php:72
actiontransition_post_statusincludes\post-types\statuses\AbstractPostStatuses.php:73
filtermpa_payment_section_settingsincludes\registries\PaymentsRegistry.php:33
actioninitincludes\registries\PaymentsRegistry.php:51
actionadmin_enqueue_scriptsincludes\registries\WidgetsRegistry.php:28
filterposts_joinincludes\repositories\ReservationRepository.php:204
filterposts_whereincludes\repositories\ReservationRepository.php:205
filterposts_clausesincludes\rest\controllers\v1\ReservationsController.php:257
actionrest_api_initincludes\rest\Server.php:66
actioninitincludes\shortcodes\AbstractShortcode.php:81
filterquery_varsincludes\shortcodes\CustomerAccountShortcode.php:60
filterquery_varsincludes\shortcodes\CustomerAccountShortcode.php:100
actioninitincludes\shortcodes\CustomerAccountShortcode.php:161
actionwp_login_failedincludes\shortcodes\CustomerAccountShortcode.php:162
filterlogin_form_middleincludes\shortcodes\CustomerAccountShortcode.php:163
filtersingle_templateincludes\views\PostTypePseudoTemplate.php:36
actionloop_startincludes\views\PostTypePseudoTemplate.php:49
filterthe_contentincludes\views\PostTypePseudoTemplate.php:69
actionloop_endincludes\views\PostTypePseudoTemplate.php:70
actionappointment_form_widget_stepsincludes\views\WidgetsView.php:25
actionappointment_form_widget_stepsincludes\views\WidgetsView.php:26
actionappointment_form_widget_stepsincludes\views\WidgetsView.php:27
actionappointment_form_widget_stepsincludes\views\WidgetsView.php:28
actionappointment_form_widget_stepsincludes\views\WidgetsView.php:29
actionappointment_form_widget_stepsincludes\views\WidgetsView.php:30
actionwidgets_initincludes\widgets\AbstractWidget.php:51
actioninitincludes\widgets\AbstractWidget.php:54
filterwidget_display_callbackincludes\widgets\AbstractWidget.php:56
actionadmin_enqueue_scriptsincludes\widgets\AppointmentFormWidget.php:313
Maintenance & Trust

MotoPress Appointment Booking Maintenance & Trust

Maintenance Signals

WordPress version tested6.8.5
Last updatedDec 8, 2025
PHP min version7.4
Downloads45K

Community Trust

Rating88/100
Number of ratings17
Active installs2K
Developer Profile

MotoPress Appointment Booking Developer Profile

jetmonsters

33 plugins · 326K total installs

76
trust score
Avg Security Score
95/100
Avg Patch Time
193 days
View full developer profile
Detection Fingerprints

How We Detect MotoPress Appointment Booking

Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.

Asset Fingerprints

Asset Paths
/wp-content/plugins/motopress-appointment-lite/assets/css/wizard-page.min.css/wp-content/plugins/motopress-appointment-lite/assets/js/wizard-page.min.js/wp-content/plugins/motopress-appointment-lite/assets/css/manage-posts.min.css/wp-content/plugins/motopress-appointment-lite/assets/js/manage-bookings.min.js
Script Paths
/wp-content/plugins/motopress-appointment-lite/assets/js/wizard-page.min.js/wp-content/plugins/motopress-appointment-lite/assets/js/manage-bookings.min.js
Version Parameters
motopress-appointment-lite/assets/css/wizard-page.min.css?ver=motopress-appointment-lite/assets/js/wizard-page.min.js?ver=motopress-appointment-lite/assets/css/manage-posts.min.css?ver=motopress-appointment-lite/assets/js/manage-bookings.min.js?ver=

HTML / DOM Fingerprints

CSS Classes
mpa-wizardmpa-wizard-stepmpa-wizard-actionsmpa-wizard-buttonmpa-wizard-contentmpa-wizard-descriptionmpa-wizard-headermpa-wizard-title+2 more
HTML Comments
<!-- Widget MotoPress Appointment Booking Lite -->
Data Attributes
data-mpa-booking-id
JS Globals
mpaAjaxData
FAQ

Frequently Asked Questions about MotoPress Appointment Booking