PHPackages                             rebelcode/rcmod-wp-bookings-ui - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. rebelcode/rcmod-wp-bookings-ui

AbandonedArchivedRc-module[Admin Panels](/categories/admin)

rebelcode/rcmod-wp-bookings-ui
==============================

A RebelCode module that provides the WordPress admin interface for bookings.

v0.1-alpha25(7y ago)01.0k[1 PRs](https://github.com/RebelCode/rcmod-wp-bookings-ui/pulls)2GPL-3.0PHPPHP ^5.4 | ^7.0

Since Mar 28Pushed 7y ago1 watchersCompare

[ Source](https://github.com/RebelCode/rcmod-wp-bookings-ui)[ Packagist](https://packagist.org/packages/rebelcode/rcmod-wp-bookings-ui)[ RSS](/packages/rebelcode-rcmod-wp-bookings-ui/feed)WikiDiscussions develop Synced today

READMEChangelog (10)Dependencies (16)Versions (28)Used By (2)

RebelCode - WP Bookings UI Module
=================================

[](#rebelcode---wp-bookings-ui-module)

[![Build Status](https://camo.githubusercontent.com/42668d3178bc382b3d0654a4e9bd5131d155b3560d62cf1d4c3f841bf844b248/68747470733a2f2f7472617669732d63692e6f72672f526562656c436f64652f72636d6f642d77702d626f6f6b696e67732d75692e7376673f6272616e63683d646576656c6f70)](https://travis-ci.org/RebelCode/rcmod-wp-bookings-ui)[![Code Climate](https://camo.githubusercontent.com/ece90b8df4bd968d9646d281705ae7e45c4e86ada9396ee5f6d293f5a7676d67/68747470733a2f2f636f6465636c696d6174652e636f6d2f6769746875622f526562656c436f64652f72636d6f642d77702d626f6f6b696e67732d75692f6261646765732f6770612e737667)](https://codeclimate.com/github/RebelCode/rcmod-wp-bookings-ui)[![Test Coverage](https://camo.githubusercontent.com/ff24a713f9f7a783674c441c3447298b6132358c48a78a15014764406d3f06d4/68747470733a2f2f636f6465636c696d6174652e636f6d2f6769746875622f526562656c436f64652f72636d6f642d77702d626f6f6b696e67732d75692f6261646765732f636f7665726167652e737667)](https://codeclimate.com/github/RebelCode/rcmod-wp-bookings-ui/coverage)[![Latest Stable Version](https://camo.githubusercontent.com/2a9f1bf76063bc068562b04bb6d931b65aa887e2a45f045fed96ca2596584d69/68747470733a2f2f706f7365722e707567782e6f72672f726562656c636f64652f72636d6f642d77702d626f6f6b696e67732d75692f76657273696f6e)](https://packagist.org/packages/rebelcode/rcmod-wp-bookings-ui)[![Latest Unstable Version](https://camo.githubusercontent.com/75a6b6f48312ae1c61d46d2fa8b5ced604629785593d0ce444b146c96a88cc68/68747470733a2f2f706f7365722e707567782e6f72672f726562656c636f64652f72636d6f642d77702d626f6f6b696e67732d75692f762f756e737461626c65)](https://packagist.org/packages/rebelcode/rcmod-wp-bookings-ui)

WP Bookings plugin's UI Module

Run Front Assembling
--------------------

[](#run-front-assembling)

To run front assembling just run:

```
$ npm install # it will install JS dependencies and build `booking-js`
$ npm run build:css # build UI css
```

Run Application
---------------

[](#run-application)

This module's front-end logic expects to retrieve initial application state to initialize application. By [default](assets/js/main.js) it is `window.EDDBK_APP_STATE` which should be generated on server using `wp_localize_script(...)`.

We have two separate pages that require different states to work. Bookings page and one service page. So for this 2 pages we need two different application states.

### Service Page

[](#service-page)

#### State

[](#state)

Expected structure of **state** on service page (when user open some service for editing):

```
{
  // List of all availabilities for this service.
  "availabilities": [
    {
      "id": 1,
      "fromDate": "2017-01-03",

      "repeats": "week",
      "repeatsEvery": 2,
      "repeatsOn": ["mon", "tue", "thu"],

      "repeatsEnds": "afterPeriod",
      "repeatsEndsPeriod": 12,

      "fromTime": "09:30:00",
      "toTime": "12:30:00"
    }
    // ... other availabilities
  ],
  // List of all available session lengths.
  "sessions": [
    {
      "id": 1,
      "length": 120, // session length in seconds
      "price": 10.00
    }
    // ... other sessions
  ],
  // Current service's bookings display options.
  "displayOptions": {
    "allowCustomerChangeTimezone": true
    // ... other options
  }
}

```

### Bookings Page

[](#bookings-page)

#### State

[](#state-1)

Expected structure of **state** on bookings page:

```
{
  // Statuses that should be displayed on screen options
  "screenStatuses": [
    "draft", "approved", "scheduled", "pending", "completed"
  ],

  // List of all services. It will be used to filter bookings and for bookings editing.
  "services": [
    {
      "id": 1,
      "title": "Service Name",
      "color": "#ff7f50" // Service color needed to render it in the calendar
    }
  ]
}

```

#### Endpoints

[](#endpoints)

Here is endpoints required for bookings page. Paths are not real, this is just demonstration of concept which functionality is required from backend to make everything works.

##### Bookings

[](#bookings)

`GET /booking` - Retrieve **list of bookings, screen statuses list with items count for each status, filtered items count**. It should accept next parameters to filter result:

Both views:

- `search` - Search string to filter bookings by it. Allows to filter bookings via client name or client email address. If empty - no searching happens. For example: `client@rebelcode.com`,
- `service` - Service to filter by it. If empty - no service filtering happens. For example: `1`,
- `statuses` - Enabled screen statues to filter bookings by them. For example: `draft,scheduled`,
- `status` - Current status to filter. For example: `all` or `draft`.

Calendar filtering:

- `start` - Start date to get bookings. For example: `"2017-07-11"`,
- `end` - End date to get bookings. For example: `"2017-07-18"`.

List view filtering:

- `page` - Page number for pagination. For exmple: `1`,
- `month` - Month number to filter bookings by it. If empty - no month filtering happens. For example: `1`.

`POST /booking` - Create one booking.

`UPDATE /booking/{id}` - Update booking by it's ID.

`DELETE /booking/{id}` - Delete booking by it's ID.

##### Clients

[](#clients)

This API endpoint is required for booking editing functionality. When user creates/edits booking he can search across all clients or create new one.

`GET /client?search={queryString}` - Search for client.

`POST /client` - Create new client. Should accept this two fields:

- `name` - Client's name,
- `email` - Clien's email.

###  Health Score

28

—

LowBetter than 52% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 73.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~10 days

Recently: every ~28 days

Total

25

Last Release

2721d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a8036caaa483e3f8a21d0083284bd508f5ada08ad45b790b5075ecff49f09b6b?d=identicon)[rebelcode](/maintainers/rebelcode)

---

Top Contributors

[![romalytvynenko](https://avatars.githubusercontent.com/u/6153876?v=4)](https://github.com/romalytvynenko "romalytvynenko (367 commits)")[![XedinUnknown](https://avatars.githubusercontent.com/u/1428973?v=4)](https://github.com/XedinUnknown "XedinUnknown (105 commits)")[![mecha](https://avatars.githubusercontent.com/u/5425482?v=4)](https://github.com/mecha "mecha (25 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/rebelcode-rcmod-wp-bookings-ui/health.svg)

```
[![Health](https://phpackages.com/badges/rebelcode-rcmod-wp-bookings-ui/health.svg)](https://phpackages.com/packages/rebelcode-rcmod-wp-bookings-ui)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
