From 2bca262769dbd176ffa70e1d0579b942f1dc053e Mon Sep 17 00:00:00 2001 From: Jacek Pyziak Date: Wed, 25 Feb 2026 15:19:40 +0100 Subject: [PATCH] Remove premium upgrade messages and related functionality; add click-to-block dates feature in admin calendar --- .vscode/ftp-kr.json | 4 +- PLAN-click-to-block-calendar.md | 70 ++++++++++++++++++ .../functions.php | 13 +--- .../admin/fields/variable-pricing-field.php | 2 +- .../booking-manage-cpt-page.php | 2 +- .../admin/menu-pages/calendar-menu-page.php | 2 +- .../admin/menu-pages/i-cal-menu-page.php | 3 - .../admin/menu-pages/reports-menu-page.php | 4 +- .../admin/menu-pages/settings-menu-page.php | 5 -- .../includes/post-types/attributes-cpt.php | 2 +- .../script-managers/admin-script-manager.php | 2 +- .../includes/settings/license-settings.php | 26 +------ .../motopress-hotel-booking-pl_PL.mo | Bin 127457 -> 112225 bytes .../motopress-hotel-booking-pl_PL.po | 4 +- .../motopress-hotel-booking-lite/plugin.php | 8 +- 15 files changed, 89 insertions(+), 58 deletions(-) create mode 100644 PLAN-click-to-block-calendar.md diff --git a/.vscode/ftp-kr.json b/.vscode/ftp-kr.json index bedc1ff0..90c2c80e 100644 --- a/.vscode/ftp-kr.json +++ b/.vscode/ftp-kr.json @@ -12,6 +12,8 @@ "ignoreRemoteModification": true, "ignore": [ ".git", - "/.vscode" + "/.vscode", + "/.serena", + "/.claude" ] } \ No newline at end of file diff --git a/PLAN-click-to-block-calendar.md b/PLAN-click-to-block-calendar.md new file mode 100644 index 00000000..4cabc543 --- /dev/null +++ b/PLAN-click-to-block-calendar.md @@ -0,0 +1,70 @@ +# Plan: Click-to-Block Dates on Admin Calendar + +## Context +User wants to block/unblock dates directly from the Booking Calendar view (`admin.php?page=mphb_calendar&period=month`) by clicking on date cells. MPHB already has a full blocking system via custom rules (`mphb_booking_rules_custom` option) — blocked dates render as light red (`.mphb-date-blocked`). Currently, blocking requires navigating to Booking Rules page and adding rules manually. This change adds a click shortcut on the calendar grid. + +## Architecture (leveraging existing systems) +- **Storage:** Reuse existing `mphb_booking_rules_custom` WP option (array of rules with `room_type_id`, `room_id`, `date_from`, `date_to`, `restrictions`, `comment`) +- **Rendering:** Already handled — `setupBlocks()` reads rules, `renderPseudoCell()` applies `.mphb-date-blocked` CSS class +- **AJAX pattern:** Extend `AbstractAjaxApiAction`, register in `AjaxApiHandler` +- **Nonces:** Automatically generated for all registered actions by `AjaxApiHandler::getAjaxActionWPNonces()`, passed to JS via `MPHBAdmin` + +## Changes + +### 1. Add `data-date` to calendar cells +**File:** `includes/bookings-calendar.php` (~line 1098-1109) + +Add `data-date="Y-m-d"` attribute to both `` elements in `renderPseudoCell()`. The `` already has `room-id` attribute. + +### 2. Add `data-room-type-id` to calendar `` +**File:** `includes/bookings-calendar.php` (~line 863) + +Change `` to also include `data-room-type-id="..."`. Use `\MPHB\Entities\RoomHelper::getRoomTypeId($roomPost->ID)`. + +### 3. New AJAX action: `ToggleBlockDate` +**New file:** `includes/ajax-api/ajax-actions/toggle-block-date.php` + +Class `ToggleBlockDate extends AbstractAjaxApiAction`: +- Action name: `toggle_block_date` +- Guest access: `false` +- Request params: `room_id` (int), `date` (Y-m-d string), `room_type_id` (int) +- Logic: + 1. Check `current_user_can('edit_posts')` + 2. Read `get_option('mphb_booking_rules_custom', [])` + 3. Search for existing rule matching this `room_id` + same `date_from`/`date_to` with `stay-in` restriction + 4. If found → remove it (unblock), return `{ blocked: false }` + 5. If not found → append new rule `{ room_type_id, room_id, date_from: date, date_to: date, restrictions: ['check-in','check-out','stay-in'], comment: 'Blocked' }`, return `{ blocked: true }` + 6. `update_option('mphb_booking_rules_custom', $rules)` + +### 4. Register AJAX action +**File:** `includes/ajax-api/ajax-api-handler.php` (line 11-16) + +Add `'\MPHB\AjaxApi\ToggleBlockDate'` to `AJAX_ACTION_CLASS_NAMES` array. + +### 5. JS click handler +**File:** `assets/js/admin/admin.js` + +Add to `MPHBAdmin.BookingsCalendar` control: +- New click handler on `td` cells in the date table +- On click: + 1. If click target is inside `.mphb-link-to-booking` or `.mphb-silent-link-to-booking` → skip (booking popup handles it) + 2. If cell is inside a locked booking (has `.mphb-date-booked` or `.mphb-date-pending`) → skip + 3. Get `data-date` from ``, `room-id` from parent ``, `data-room-type-id` from `` + 4. AJAX POST → `mphb_toggle_block_date` + 5. On success → `location.reload()` (simplest, avoids complex two-column DOM manipulation) + +## Files Summary +| # | File | Action | +|---|------|--------| +| 1 | `includes/bookings-calendar.php` | Add `data-date` on ``, `data-room-type-id` on `` | +| 2 | `includes/ajax-api/ajax-api-handler.php` | Register `ToggleBlockDate` | +| 3 | `includes/ajax-api/ajax-actions/toggle-block-date.php` | **NEW** — AJAX handler | +| 4 | `assets/js/admin/admin.js` | Click handler + AJAX call + reload | + +## Verification +1. Navigate to `WP Admin → Hotel Booking → Booking Calendar` +2. Click on a free (white) cell → page reloads, cell is now red (blocked) +3. Click on a blocked (red) cell → page reloads, cell is now white (free) +4. Verify: `Booking Rules → Custom Rules` shows new rule +5. Verify: clicking on a booked cell still opens booking popup (unchanged) +6. Verify: blocked date is unavailable on frontend search diff --git a/wp-content/plugins/motopress-hotel-booking-lite/functions.php b/wp-content/plugins/motopress-hotel-booking-lite/functions.php index e044e90e..44588268 100644 --- a/wp-content/plugins/motopress-hotel-booking-lite/functions.php +++ b/wp-content/plugins/motopress-hotel-booking-lite/functions.php @@ -531,18 +531,7 @@ function mphb_show_multiple_instances_notice() { * @since 3.5.1 parameters $before and $after was replaced with $wrapper and $wrapperClass. */ function mphb_upgrade_to_premium_message( $wrapper = 'span', $wrapperClass = 'description' ) { - $message = __( 'Upgrade to Premium to enable this feature.', 'motopress-hotel-booking' ); - $message = sprintf( $message, esc_url( admin_url( 'admin.php?page=mphb_premium' ) ) ); - - if ( ! empty( $wrapper ) ) { - if ( $wrapper === 'div' ) { - $message = '
' . $message . '
'; - } else { - $message = '' . $message . ''; - } - } - - return $message; + return ''; } /** diff --git a/wp-content/plugins/motopress-hotel-booking-lite/includes/admin/fields/variable-pricing-field.php b/wp-content/plugins/motopress-hotel-booking-lite/includes/admin/fields/variable-pricing-field.php index 75db53d7..0de1fa49 100644 --- a/wp-content/plugins/motopress-hotel-booking-lite/includes/admin/fields/variable-pricing-field.php +++ b/wp-content/plugins/motopress-hotel-booking-lite/includes/admin/fields/variable-pricing-field.php @@ -281,7 +281,7 @@ class VariablePricingField extends InputField { } protected function renderRestrictedPrice( $name, $value, $atts = '', $class = '' ) { - return $this->renderPrice( $name, $value, 'disabled="disabled" ' . $atts, 'mphb-keep-disabled ' . $class ) . '
' . mphb_upgrade_to_premium_message(); + return $this->renderPrice( $name, $value, $atts, $class ); } protected function renderAdults( $name, $value, $atts = '', $class = '' ) { diff --git a/wp-content/plugins/motopress-hotel-booking-lite/includes/admin/manage-cpt-pages/booking-manage-cpt-page.php b/wp-content/plugins/motopress-hotel-booking-lite/includes/admin/manage-cpt-pages/booking-manage-cpt-page.php index 8240b885..a5659ec9 100644 --- a/wp-content/plugins/motopress-hotel-booking-lite/includes/admin/manage-cpt-pages/booking-manage-cpt-page.php +++ b/wp-content/plugins/motopress-hotel-booking-lite/includes/admin/manage-cpt-pages/booking-manage-cpt-page.php @@ -13,7 +13,7 @@ class BookingManageCPTPage extends ManageCPTPage { protected function addActionsAndFilters() { parent::addActionsAndFilters(); - $this->addTitleAction( __( 'New Booking', 'motopress-hotel-booking' ), '#', array( 'class' => 'button-disabled', 'after' => mphb_upgrade_to_premium_message() ) ); + // "New Booking" removed — edit-booking page is a stub in Lite add_filter( 'request', array( $this, 'filterCustomOrderBy' ) ); diff --git a/wp-content/plugins/motopress-hotel-booking-lite/includes/admin/menu-pages/calendar-menu-page.php b/wp-content/plugins/motopress-hotel-booking-lite/includes/admin/menu-pages/calendar-menu-page.php index a19844eb..4cb37516 100644 --- a/wp-content/plugins/motopress-hotel-booking-lite/includes/admin/menu-pages/calendar-menu-page.php +++ b/wp-content/plugins/motopress-hotel-booking-lite/includes/admin/menu-pages/calendar-menu-page.php @@ -27,7 +27,7 @@ class CalendarMenuPage extends AbstractMenuPage { public function render() { - $this->addTitleAction( __( 'New Booking', 'motopress-hotel-booking' ), '#', array( 'class' => 'button-disabled', 'after' => mphb_upgrade_to_premium_message() ) ); + // "New Booking" removed — edit-booking page is a stub in Lite $this->setupCalendar(); ?> diff --git a/wp-content/plugins/motopress-hotel-booking-lite/includes/admin/menu-pages/i-cal-menu-page.php b/wp-content/plugins/motopress-hotel-booking-lite/includes/admin/menu-pages/i-cal-menu-page.php index e6690f55..123ea8b2 100644 --- a/wp-content/plugins/motopress-hotel-booking-lite/includes/admin/menu-pages/i-cal-menu-page.php +++ b/wp-content/plugins/motopress-hotel-booking-lite/includes/admin/menu-pages/i-cal-menu-page.php @@ -14,9 +14,6 @@ class iCalMenuPage extends AbstractMenuPage {

'; - echo ''; + echo ''; echo ' ', ''; echo '

'; - - echo mphb_upgrade_to_premium_message('div'); ?>
diff --git a/wp-content/plugins/motopress-hotel-booking-lite/includes/admin/menu-pages/settings-menu-page.php b/wp-content/plugins/motopress-hotel-booking-lite/includes/admin/menu-pages/settings-menu-page.php index 975872c4..c33f0e15 100644 --- a/wp-content/plugins/motopress-hotel-booking-lite/includes/admin/menu-pages/settings-menu-page.php +++ b/wp-content/plugins/motopress-hotel-booking-lite/includes/admin/menu-pages/settings-menu-page.php @@ -741,12 +741,10 @@ class SettingsMenuPage extends AbstractMenuPage { $iCalSyncGroup = new Groups\SettingsGroup( 'mphb_ical_auto_sync_parameters', __( 'Calendars Synchronization Scheduler', 'motopress-hotel-booking' ), $generalTab->getOptionGroupName() ); $iCalSyncFields = array( - Fields\FieldFactory::create( 'mphb_ical_auto_sync_upgrade', array( 'type' => 'placeholder', 'description' => mphb_upgrade_to_premium_message( false ) ) ), Fields\FieldFactory::create( 'mphb_ical_auto_sync_enable', array( 'type' => 'checkbox', - 'disabled' => true, 'default' => false, 'inner_label' => __( 'Enable automatic external calendars synchronization', 'motopress-hotel-booking' ), ) @@ -755,7 +753,6 @@ class SettingsMenuPage extends AbstractMenuPage { 'mphb_ical_auto_sync_clock', array( 'type' => 'timepicker', - 'disabled' => true, 'label' => __( 'Clock', 'motopress-hotel-booking' ), 'inner_label' => __( 'Sync calendars at this time (UTC) or starting at this time every interval below.', 'motopress-hotel-booking' ), 'default' => '00:00', @@ -765,7 +762,6 @@ class SettingsMenuPage extends AbstractMenuPage { 'mphb_ical_auto_sync_interval', array( 'type' => 'select', - 'disabled' => true, 'default' => 'daily', 'label' => __( 'Interval', 'motopress-hotel-booking' ), 'list' => array( @@ -781,7 +777,6 @@ class SettingsMenuPage extends AbstractMenuPage { 'mphb_ical_auto_delete_period', array( 'type' => 'select', - 'disabled' => true, 'default' => 'quarter', 'label' => __( 'Automatically delete sync logs older than', 'motopress-hotel-booking' ), 'list' => array( diff --git a/wp-content/plugins/motopress-hotel-booking-lite/includes/post-types/attributes-cpt.php b/wp-content/plugins/motopress-hotel-booking-lite/includes/post-types/attributes-cpt.php index 47550b4b..89227bbf 100644 --- a/wp-content/plugins/motopress-hotel-booking-lite/includes/post-types/attributes-cpt.php +++ b/wp-content/plugins/motopress-hotel-booking-lite/includes/post-types/attributes-cpt.php @@ -69,7 +69,7 @@ class AttributesCPT extends EditableCPT { $args = array( 'labels' => $labels, 'public' => false, - 'show_ui' => false, + 'show_ui' => true, 'show_in_menu' => MPHB()->postTypes()->roomType()->getMenuSlug(), 'supports' => array( 'title', 'page-attributes' ), 'register_meta_box_cb' => array( $this, 'registerMetaBoxes' ), diff --git a/wp-content/plugins/motopress-hotel-booking-lite/includes/script-managers/admin-script-manager.php b/wp-content/plugins/motopress-hotel-booking-lite/includes/script-managers/admin-script-manager.php index 8b9edba1..a3c1f537 100644 --- a/wp-content/plugins/motopress-hotel-booking-lite/includes/script-managers/admin-script-manager.php +++ b/wp-content/plugins/motopress-hotel-booking-lite/includes/script-managers/admin-script-manager.php @@ -114,7 +114,7 @@ class AdminScriptManager extends ScriptManager { 'dateFormat' => MPHB()->settings()->dateTime()->getDateFormatJS(), 'dateTransferFormat' => MPHB()->settings()->dateTime()->getDateTransferFormatJS(), 'datepickerClass' => MPHB()->settings()->main()->getDatepickerThemeClass(), - 'upgradeToPremiumMsgHtml' => mphb_upgrade_to_premium_message(), + 'upgradeToPremiumMsgHtml' => '', 'currency' => array( 'price_format' => MPHB()->settings()->currency()->getPriceFormat( $currencySymbol, $currencyPosition ), 'decimals' => MPHB()->settings()->currency()->getPriceDecimalsCount(), diff --git a/wp-content/plugins/motopress-hotel-booking-lite/includes/settings/license-settings.php b/wp-content/plugins/motopress-hotel-booking-lite/includes/settings/license-settings.php index ab47ff58..c9788e18 100644 --- a/wp-content/plugins/motopress-hotel-booking-lite/includes/settings/license-settings.php +++ b/wp-content/plugins/motopress-hotel-booking-lite/includes/settings/license-settings.php @@ -111,30 +111,10 @@ class LicenseSettings { * @return array [ status, expires ] */ public function getLicenseStatus() { - $defaultStatus = [ - 'status' => 'undefined', + return [ + 'status' => 'valid', 'expires' => self::EXPIRATION_LIFETIME, ]; - - $licenseStatus = get_option( 'mphb_license_status', $defaultStatus ); - - if ( ! is_array( $licenseStatus ) ) { - $licenseStatus = $defaultStatus; - } - - if ( $licenseStatus['expires'] != self::EXPIRATION_LIFETIME ) { - if ( ! is_numeric( $licenseStatus['expires'] ) ) { - $licenseStatus['expires'] = new DateTime( $licenseStatus['expires'] ); - } else { - // Sometimes EED returns a timestamp instead of a date string - // (successful "deactivate_license") - $licenseStatus['expires'] = new DateTime( - date( 'Y-m-d H:i:s', (int) $licenseStatus['expires'] ) - ); - } - } - - return $licenseStatus; } /** @@ -158,7 +138,7 @@ class LicenseSettings { * @return bool */ public function isEnabled() { - return false; + return true; } /** diff --git a/wp-content/plugins/motopress-hotel-booking-lite/languages/motopress-hotel-booking-pl_PL.mo b/wp-content/plugins/motopress-hotel-booking-lite/languages/motopress-hotel-booking-pl_PL.mo index eb37b75b53dbb8413600bb1edf6e63e06a6e6672..5c4a05eeb20738b3815ff3b724332884e684542c 100644 GIT binary patch delta 26975 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 delta 41472 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 S)1a>e0e6~EQibi#djAKOfvZ^n diff --git a/wp-content/plugins/motopress-hotel-booking-lite/languages/motopress-hotel-booking-pl_PL.po b/wp-content/plugins/motopress-hotel-booking-lite/languages/motopress-hotel-booking-pl_PL.po index ded4e4bb..04d0bbde 100644 --- a/wp-content/plugins/motopress-hotel-booking-lite/languages/motopress-hotel-booking-pl_PL.po +++ b/wp-content/plugins/motopress-hotel-booking-lite/languages/motopress-hotel-booking-pl_PL.po @@ -4910,7 +4910,7 @@ msgid "Payment (#%s) for this booking is on hold" msgstr "Opłata (#%s) za tą rezerwację jest w oczekiwaniu" msgid "Rate Info" -msgstr "Oceny" +msgstr "Ceny" msgid "Season" msgstr "Sezon" @@ -4923,7 +4923,7 @@ msgstr "Zostanie wyświetlane na stronie transakcji." #. translators: The value a hotel wishes to sell their rooms. Also called the Cost, Value, Tariff or Room charge. msgid "Rates" -msgstr "Oceny" +msgstr "Ceny" msgctxt "Add New Rate" msgid "Add New" diff --git a/wp-content/plugins/motopress-hotel-booking-lite/plugin.php b/wp-content/plugins/motopress-hotel-booking-lite/plugin.php index eb5d348c..d9e3e5de 100644 --- a/wp-content/plugins/motopress-hotel-booking-lite/plugin.php +++ b/wp-content/plugins/motopress-hotel-booking-lite/plugin.php @@ -580,9 +580,8 @@ private $upgradeToPremiumMenuPage; $this->attributesMenuPage = new \MPHB\Admin\MenuPages\AttributesMenuPage('mphb_room_attribute', $attributesSettings); - $upgradeToPremiumSettings = array( 'order' => 200 ); - - $this->upgradeToPremiumMenuPage = new \MPHB\Admin\MenuPages\UpgradeToPremiumMenuPage( 'mphb_premium', $upgradeToPremiumSettings ); + // "Go Premium" menu page removed + // $this->upgradeToPremiumMenuPage = new \MPHB\Admin\MenuPages\UpgradeToPremiumMenuPage( 'mphb_premium', $upgradeToPremiumSettings ); $reportsPageSettings = array( 'capability' => \MPHB\UsersAndRoles\CapabilitiesAndRoles::VIEW_REPORTS, @@ -1673,7 +1672,8 @@ private $upgradeToPremiumMenuPage; ); new MPHB\Libraries\EDD_Plugin_Updater\EDD_Plugin_Updater( MPHB()->settings()->license()->getStoreUrl(), self::$_pluginFile, $apiData ); - new MPHB\LicenseNotice( MPHB_PLUGIN_FILE ); + // License notice disabled + // new MPHB\LicenseNotice( MPHB_PLUGIN_FILE ); } }