# Features — procon8

Evidence date: 2026-10-06. Source: `git@bitbucket.org:overdrive/procon8.git` at `45e5ee9f` (`master`).

Activation of themes and plugins is stored in the database, which is not in git. "Present" means the code is in the repository. "In use" is **Unknown** unless the code always runs.

## Current features

### WordPress 5.2.1 CMS

- Standard admin, posts, pages, media, comments, menus, widgets, users, cron (`wp-cron.php`), XML-RPC (`xmlrpc.php`).
- `$wp_version = '5.2.1'` and `$required_php_version = '5.6.20'` in `wordpress/wp-includes/version.php`.
- No `$wp_local_package` assignment was found in that file. Locale of the running site is **Unknown**.
- `WP_DEBUG` is false. Table prefix `wp_`.
- Location: `wordpress/` (`wp-admin/`, `wp-includes/`, root PHP bootstrap).
- Status: present. In use on a host: **Unknown / Requires Confirmation**.

### Listable 1.9.2

- Directory theme by PixelGrade. Header description: a listings site, local or global. Tested up to WordPress 4.9.2. Requires at least 4.7. This repo runs WordPress 5.2.1.
- `style.css` version is 1.9.2. `readme.txt` in the same theme still describes an Underscores starter at stable tag 1.0.0 (2015). The stylesheet header is the one that matches the directory templates. Provenance: both files are **Implemented**; they disagree.
- Supports `job_listing` archives, categories, tags, and regions; WooCommerce templates; job dashboard; job submit confirmation; paid-listing package template; bookmark templates.
- Location: `wordpress/wp-content/themes/listable/`.
- A zip of the theme is also at `wordpress/wp-content/themes/listable.zip`. Whether the zip matches 1.9.2 was not compared.
- Status: present. Active theme: **Unknown**.

### Listable Child

- Theme name "Listable Child". Template `listable`. No Version line in the header.
- `functions.php` loads the text domain `listable-child-theme` and enqueues the parent stylesheet plus the child stylesheet. A second function that would replace parent JS and CSS is commented out.
- The only authored CSS rule hides `.home span.category-count`.
- Location: `wordpress/wp-content/themes/listable-child-master/` (`style.css`, `functions.php`, `languages/listable.pot`, `languages/readme.txt`, `LICENSE`).
- Status: present. It is the only project-specific theme. Whether it is active is **Unknown**.

### Bundled Twenty* themes

Present and unmodified as far as this onboarding inspected: `twentyfifteen`, `twentyfourteen`, `twentysixteen`, `twentyseventeen`, `twentynineteen`. These ship with WordPress 5.2. Several contain `error_log` files from the earlier `discoverikasico` host (2018).

### WP Job Manager 1.30.2 and add-ons

- `wp-job-manager` 1.30.2 — listings post type the theme expects.
- `wp-job-manager-locations` 1.14.0.
- `wp-job-manager-products` 1.7.0.
- Theme templates also expect `wp-job-manager-bookmarks` and `wp-job-manager-wc-paid-listings`. Those plugins are not in the tree.
- Location: `wordpress/wp-content/plugins/wp-job-manager/`, `wp-job-manager-locations/`, `wp-job-manager-products/`.
- Status: present. In use: **Unknown**.

### WooCommerce 3.3.4 and booking extensions

- `woocommerce` 3.3.4.
- `woocommerce-bookings` 1.10.11.
- `woocommerce-accommodation-bookings` 1.1.2.
- Listable overrides WooCommerce templates under `themes/listable/woocommerce/`, including `checkout/place-order-button.php` (comment in file: not part of WooCommerce core).
- Status: present. In use: **Unknown**.

### Other booking plugins (overlapping)

All present. Which one is in use is **Unknown**. Running more than one would be a product decision this repo does not record.

| Directory | Name | Version |
|---|---|---|
| `booking` | Booking Calendar (`wpdev-booking.php`) | 8.0 |
| `booking-system` | Pinpoint Booking System (`dopbs.php`) | 2.6.4 |
| `advanced-booking-calendar` | Advanced Booking Calendar | 1.4.9 |
| `wp-simple-booking-calendar` | WP Simple Booking Calendar | 1.5.1 |

### Ecwid shopping cart 5.6.1

- Location: `wordpress/wp-content/plugins/ecwid-shopping-cart/`.
- A second storefront beside WooCommerce. In use: **Unknown**.

### Login and accounts

| Directory | Name | Version |
|---|---|---|
| `theme-my-login` | Theme My Login | 7.0.5 |
| `login-with-ajax` | Login With Ajax | 3.1.7 |
| `socialall-social-login` | SocialAll Social Login | 2.3 |
| `jetpack` | Jetpack | 6.0 |

Listable calls `listable_using_lwa()` in the logged-out bookmark form, so Login With Ajax is the login UI the theme was built to detect. Activation is still **Unknown**.

Core login screen: `wordpress/wp-admin/css/login.css` secondary-button focus border is `#4CAF50` (commit `dd9a2916`). That is a core file edit, not a child-theme override.

### PixelGrade companions (shipped with Listable-style stacks)

| Directory | Name | Version |
|---|---|---|
| `pixelgrade-care` | PixelGrade Care | 1.4.6.2 |
| `customify` | Customify | 1.5.3 |
| `pixtypes` | PixTypes | 1.4.6 |
| `comments-ratings` | Comments Ratings | 1.1.5 |
| `category-icon` | Category Icon | 0.6.0 |

### Content and marketing plugins

| Directory | Name | Version |
|---|---|---|
| `contact-form-7` | Contact Form 7 | 4.8.1 |
| `wpforms-lite` | WPForms Lite | 1.4.7.1 |
| `quick-and-easy-faqs` | Quick and Easy FAQs | 1.1.2 |
| `cta` | Calls to Action | 3.3.3 |
| `landing-pages` | Landing Pages | 2.6.3 |
| `nav-menu-roles` | Nav Menu Roles | 1.8.6 |
| `google-analytics-dashboard-for-wp` | Google Analytics Dashboard for WP | 5.1.1.3 |
| `akismet` | Akismet | 4.1.2 |
| `hello.php` | Hello Dolly | 1.7.2 |
| `string-locator` | String Locator | 2.3.0 |

`contact-form-7/error_log` and `login-with-ajax/error_log` are fatal errors from 2018 when those files were requested directly on `/home/discoverikasico/public_html/`. They are leftover logs, not a feature.

### Hide products count 0.6

- Removes WooCommerce subcategory count HTML (`woocommerce_subcategory_count_html`).
- Location: `wordpress/wp-content/plugins/hide-products-count.php_/hide-products-count.php`.
- The directory name ends in `.php_`. That does not by itself stop WordPress from detecting the plugin header. Status: present. Active: **Unknown**.

### Media offload and migration

- WP Offload S3 / Amazon S3 and CloudFront 2.2 (`amazon-s3-and-cloudfront`). `wp-config.php` sets `AS3CF_AWS_USE_EC2_IAM_ROLE` true.
- All-in-One WP Migration 6.97 and Unlimited Extension 2.30.
- Backup directory `wordpress/wp-content/ai1wm-backups/` has no `.wpress` archive.
- Status: present. Configured bucket and last migration: **Unknown**.

### Deploy to Elastic Beanstalk

- `beanstalk_deploy.py` uploads `/tmp/artifact.zip` to S3 key `wordpress.zip`, creates a version, sleeps 5 seconds, updates the environment.
- `bitbucket-pipelines.yml` on `master` runs that path for branch `master` (zip `wordpress/*`) and also declares a `Dev` step that zips `Dev/*`.
- The `Dev` branch's own pipeline file zips `test/*` and its deploy script uses an S3 key of `{APPLICATION_NAME}/{timestamp}` instead of `wordpress.zip`.
- `elasticbeanstalk.json` is a CloudFormation template titled "Deploy the Procon8 application to Elastic Beanstalk".
- `README.md` documents the environment variables and recommends an IAM user with `AWSElasticBeanstalkFullAccess`.
- Status: present on `master`. Last pipeline edit `45e5ee9f` (2019-08-02). Whether the pipeline still runs: **Unknown**.

### PHP and load balancer extensions

- `wordpress/.ebextensions/php-settings.config` — document root `/wordpress`, memory 256M, zlib output compression off, `allow_url_fopen` on, `display_errors` off, `max_execution_time` 60, `composer_options: vendor/package`.
- `wordpress/.ebextensions/loadbalancer-sg.config` — HTTPS 443 listener, HTTP target group, health check `/readme.html`, ingress 443 from the world.
- Status: present in git. Included in the zip and applied by Beanstalk: **Unknown / Requires Confirmation** (dotfiles and bundle-root rules). See `technical-documentation.md`.

## Recently changed (last commits on `master`)

| Commit | Date | Change |
|---|---|---|
| `45e5ee9f`, `3472be55` | 2019-08-02 | `bitbucket-pipelines.yml` edited in the Bitbucket UI |
| `96e5d057` | 2019-08-02 | `beanstalk_deploy.py` edited in the Bitbucket UI |
| `d2e8b542` | 2019-08-02 | Deleted `wordpress/.ebextensions/EFS.config` (message says "edited") |
| `dd9a2916` | 2019-08-02 | Login secondary-button focus colour `#4CAF50` |
| `4ce44d8d` | 2019-08-02 | Added the `wordpress/` tree |

Nothing in git has changed since.

## Removed or only on another branch

| Feature | Evidence | Status |
|---|---|---|
| EFS mount for `wp-content/uploads` | File existed at `4ce44d8d`, deleted in `d2e8b542`. Script installed `nfs-utils` and `jq`, read env `EFS_NAME`, mounted NFS4 at `/mnt/efs`, symlinked uploads | Removed from `master` |
| S3 bucket stack | `s3bucket.json` deleted in `a939b358` (2019-07-15). Bucket name pattern `{env}-procon81-{region}`. Tags `SYSTEM=Procon8`, `OWNER=DiscoverKasi`, `LIFETIME=FIXED`. Versioning enabled | Removed |
| Static portfolio site | `test/index.html` at `05e6cc1d`: title "Akhona Booi - Model / Brand Manager". Deleted from `master` in `52b6bc59` | Removed from `master` |
| Static "My Blog" page | `origin/Dev` `test/index.html` title "My Blog" | Only on `Dev` |
| CodeDeploy / CodeBuild / early monitoring stacks | April–May 2019 commits (`buildspec.yml`, `appspec.yml`, `codedeploy_deploy.py`, `Procon8.json`, `Procon8-Dev.json`, `Procon8_Monitoring.json`, `master-stack.yml`) | Not on `master` or `Dev` tips |

## Planned or in development

No TODO, roadmap, or open feature branch newer than `Dev` (2019-05-10). **No planned features are documented.**

## Not in git, contrary to the onboarding file list

The 2026-09-28 scan listed `sonar-project.properties` and `sonarqube_scan.bat` at the repository root. Neither file is in `45e5ee9f` and neither has a commit. SonarQube scanning is **not** an implemented feature of this repository.
