# Features — sabullion_current_live

Evidence date: 2026-10-05. Source: `master` at `6cbf6777` (2022-10-01).

"Present in the tree" means the files are in that commit. It does not mean WordPress has the plugin or theme activated. Activation is **Unknown** unless a file runs because another file includes it.

There is no changelog for the SA Bullion site. The parent `CHANGELOG.md` is the Sage starter changelog. Git history cannot show recently changed features: there is one commit.

## Current — project code

### F-001 — Parent theme `sabullion` (Rocket Theme / Sage 8)

- Path: `wp-content/themes/sabullion/`
- Header: Theme Name Rocket Theme, Version 1.2, Author Grant Barnard, Text Domain `Grant B`, license MIT.
- `package.json` name `sage`, version 8.5.2.
- Sage includes: `lib/assets.php`, `lib/extras.php`, `lib/setup.php`, `lib/titles.php`, `lib/wrapper.php`, `lib/customizer.php`.
- SA Bullion additions: `config/site.php`, `config/dbconnect.php`, `config/mailer.php`, `helpers/`, `templates/investing/`, `templates/savings/`, `templates/partner/`, `partials/`, page templates below, WooCommerce hooks in `functions.php`.
- Status: **Implemented** in the tree. Active theme: **Unknown**.

### F-002 — Child theme `sabullion-child`

- Path: `wp-content/themes/sabullion-child/`
- Header: Rocket Theme Child, Version 1.2, `Template: sabullion`.
- Account CSS, `js/functions.js`, WooCommerce overrides for cart, my-account, checkout, and order details.
- Registration redirect, account menu, and Cc on WooCommerce emails in `functions.php`.
- Status: **Implemented** in the tree. Active theme: **Unknown**.

### F-003 — Plugin SA Bullion Custom API Handler

- Path: `wp-content/plugins/sab-api/sab-api.php`
- Header: Version 1.0, Author Silicon Overdrive, Plugin URI `https://sabullion.co.za/`, license GPL2.
- Description in the header: "Plugin to Integrate SA Bullion calculators & Charts into WP".
- Also `sab-api.php2021old` (not loaded by WordPress).
- Status: **Implemented** in the tree. Active: **Unknown**.

### F-004 — Page templates

Each file is `wp-content/themes/sabullion/template-*.php` with a `Template Name` header.

| Template Name | File |
|---|---|
| About | `template-about.php` |
| Buy Request | `template-buy-request.php` |
| Buy | `template-buy.php` |
| Capital Investment Illustration | `template-capital_invest_illustration.php` |
| Contact | `template-contact.php` |
| Custom Template | `template-custom.php` |
| Deal SA - Sell | `template-deal-int.php` |
| Deal SA Selling | `template-deal-sa-sell.php` |
| Deal SA Silver Selling | `template-deal-sa-silver-sell.php` |
| Wholesalers | `template-deal-sa-wholesalers.php` |
| Deal SA | `template-deal-sa.php` |
| Deal Silver SA | `template-deal-silver-sa.php` |
| Documents | `template-documents.php` |
| Download | `template-download.php` |
| FAQs | `template-faq.php` |
| Gold Price | `template-gold-price.php` |
| Gold Recycle | `template-gold-recycle.php` |
| Invest International | `template-internation-gold.php` |
| Invest in Gold | `template-invest.php` |
| Investment Illustration | `template-invest_illustration.php` |
| International Investment Illustration | `template-invest_illustration2.php` |
| Merged Investment Illustration | `template-merged_invest_illustration.php` |
| Minted Bar Illustration | `template-minted_bar_illustration.php` |
| Page | `template-page.php` |
| Partnership | `template-partnership.php` |
| Invest SA | `template-sa-gold.php` |
| Schedule | `template-schedule.php` |
| Sell | `template-sell.php` |
| Seller Details | `template-seller-details.php` |
| Services | `template-services.php` |
| Silver Seller Details | `template-silver-seller-details.php` |
| Our Story | `template-story.php` |

`template-deal-int.php` is the file whose header says "Deal SA - Sell". The file name and the header do not describe the same thing. Provenance: **Implemented**.

Category templates: `category-company-news.php`, `category-gold-nuggets.php`, `category-goldnuggets.php`, `category-position-papers.php`, `category-press-coverage.php`, `category-press-releases.php`, `category-quarterly-report.php`, `category-updates.php`, `category-videos.php`.

### F-005 — WooCommerce shop behaviour in the theme

Stock labels, Buy / Read More links, login gate, cart copy, breadcrumb, metal/premium/VAT fields, card fee, delivery fee, order-notes removal, place-order label, bank-PDF attachment, identity shortcodes. Detail is in `prd.md` WF-002 through WF-004 and WF-007. Status: **Implemented** in `functions.php` and child cart templates.

### F-006 — Gold chart and Krugerrand figure

REST `gold/index` and the gold-price page scripts. Status: **Implemented** in `sab-api`. See PRD WF-005.

### F-007 — Investment, savings, and minted-bar calculators

REST calc and upload routes plus the page-slug scripts in PRD WF-006. PHPExcel and mPDF trees are vendored inside `sab-api/api/plugins/` for spreadsheet and PDF output. Status: **Implemented** as files. The numeric formulas inside each calculator file were not transcribed one by one. A reader who needs a formula should open the matching `api/calc/` or `js/` file. Provenance: **Implemented**, formula-level detail **not fully extracted** in this document.

### F-008 — Illustration emails

`api/email/index.php`, `silver-index.php`, `minted-bar-email.php`. Status: **Implemented**. See PRD WF-006.

### F-009 — Customer file upload endpoints

POST customer file, POST customer ID file, GET status. Scripts on the `identity-verification` slug. Status: **Implemented** as routes. Validation rules inside the upload PHP files were not fully extracted.

### F-010 — Google Analytics snippet file

`wp-content/themes/sabullion/analyticstracking.php` sends a pageview for `UA-1288630-36`. Status: **Implemented** as a file. Whether a template includes it is **Unknown**.

## Current — third-party code present in the tree

Versions are the `Version:` header, or the readme stable tag when the header was not on the first root PHP file. Activation is **Unknown** for every row.

| Directory | Name | Version |
|---|---|---|
| `advanced-custom-fields-pro` | Advanced Custom Fields PRO | 5.8.1 |
| `acf-repeater-flexible-content-collapser` | ACF Repeater & Flexible Content Collapser | 1.2.4 |
| `ajax-load-more` | Ajax Load More | 5.5.4.1 |
| `akismet` | Akismet Anti-Spam | 5.0.1 |
| `all-in-one-wp-migration` | All-in-One WP Migration | 7.65 |
| `backupwordpress` | BackUpWordPress | 3.13 |
| `bulk-page-creator` | Bulk Page Creator | 1.1.4 |
| `classic-editor` | Classic Editor | 1.6.2 |
| `custom-post-type-ui` | Custom Post Type UI | 1.13.1 |
| `duplicate-post` | Yoast Duplicate Post | 4.5 |
| `elementor` | Elementor | 3.7.7 |
| `elementor-pro` | Elementor Pro | 3.7.7 |
| `facebook-for-woocommerce` | Facebook for WooCommerce | 2.6.24 |
| `gravityforms` | Gravity Forms | 2.6.7 |
| `gravity-forms-css-ready-selector` | Gravity Forms CSS Ready Class Selector | 1.1 |
| `jetpack` | Jetpack | 11.3.2 |
| `makewebbetter-hubspot-for-woocommerce` | MWB HubSpot for WooCommerce | 1.3.3 |
| `order-delivery-date-for-woocommerce` | Order Delivery Date for WooCommerce (Lite) | 3.18.0 |
| `themify-wc-product-filter` | Themify - WooCommerce Product Filter | 1.3.9 |
| `webtoffee-product-feed` | Product Catalog Sync for WooCommerce | 1.2.1 |
| `woocommerce` | WooCommerce | 6.9.4 |
| `woocommerce-checkout-manager` | Checkout Fields Manager for WooCommerce | 6.2.8 |
| `woocommerce-email-attachments` | WooCommerce E-Mail Attachments (by Inoplugs) | 3.0.12 |
| `woocommerce-google-analytics-integration` | WooCommerce Google Analytics Integration | 1.5.14 |
| `woocommerce-multistep-checkout` | Multi-Step Checkout for WooCommerce (Pro) | 2.0.2 |
| `woocommerce-payments` | WooCommerce Payments | 4.4.0 (readme stable tag). No root plugin PHP file |
| `woocommerce-pdf-invoices` | Invoices for WooCommerce | 3.1.9 |
| `woocommerce-pdf-invoices-premium` | WooCommerce PDF Invoices Premium | 2.0.12 |
| `woocommerce-product-feeds` | WooCommerce Google Product Feed | 9.4.0 |
| `wordfence` | Wordfence Security | 7.6.2 |
| `wordpress-importer` | WordPress Importer | 0.8 |
| `wp-mail-smtp` | WP Mail SMTP | 3.5.2 |
| `yith-woocommerce-wishlist` | YITH WooCommerce Wishlist | 3.13.0 |
| `advanced-product-labels-for-woocommerce` | Header not read from `main.php` in this pass | **Unknown** |
| `moosend-email-marketing` | Root file `MooTracker.php`; header not parsed | **Unknown** |
| `side-cart-woocommerce` | Root file `index.php`; header not parsed | **Unknown** |
| `widget-google-reviews` | Root file `autoloader.php`; header not parsed | **Unknown** |
| `wordpress-seo` | Yoast SEO package layout (`wp-seo-main.php`, `vendor_prefixed`). Version header not parsed | **Unknown** |
| `hello.php` | WordPress hello plugin file | not extracted |

`woo-eftsecure-gateway` is an empty blob at `wp-content/plugins/woo-eftsecure-gateway`, not a directory. It cannot load as a plugin. Provenance: **Implemented**.

WordPress core is 6.0.2 (`wp-includes/version.php`). Default themes `twentytwenty`, `twentytwentyone`, and `twentytwentytwo` are in `wp-content/themes/`. Provenance: **Implemented**.

## Media and logs present as directories

- `wp-content/uploads/` years 2016, 2017, 2018, 2019, 2020, 2021, 2022, plus `alm_templates`, `elementor`, `facebook_for_woocommerce`, `wc-logs`, `wc_email_attachment_files`, `woocommerce-pdf-invoices`, `woocommerce_uploads`, and WooCommerce placeholder images.
- `wp-content/wflogs/` including `config.php`, `rules.php`, and `attack-data.php`. Contents were not copied into Silicon Ark.
- `wp-content/ai1wm-backups/` guard files only at the top of that tree.
- `wp-content/backupwordpress-623de44a27-backups/` contains `.files`, `.htaccess`, `index.html`.

Provenance: **Implemented** as paths. Binary contents were not reviewed.

## Disabled or leftover in the tree

| Item | Evidence | Status |
|---|---|---|
| PDF download REST route | Commented `register_rest_route` and commented `require_once` for `api/pdf-and-email/download.php` | **Implemented** as commented code. Not registered |
| Pickup-location checkout field | Commented `bbloomer_display_pickup_locations` in `functions.php` (options named Melbourne Road Shop and Perth Road Shop) | Commented. Not active |
| Shipping-calculator hide on cart | Commented filter on `woocommerce_cart_ready_to_calc_shipping` | Commented |
| Child parent-style enqueue | First `enqueue_parent_styles` function is inside a comment | Commented |
| `sab-api.php2021old`, `api/calc/index.php20211203`, `api/altcalc/index.php20211203` | Sibling files WordPress will not load | Leftover files |
| `cart.php2000` | Sibling of the child cart template | Leftover file |
| `mpdf_new_version_donotuse` | Directory name under `sab-api/api/plugins/` | Present, name says do not use |
| Gravity Forms next-button filter | Commented `gform_next_button_4` | Commented |

## Planned

No TODO, roadmap, or open-issue file describes planned SA Bullion work. Planned features: **Unknown**.

## Recently changed

Not establishable. The remote has one commit, dated 2022-10-01, message "initial commit".

## Deprecated or removed

Nothing in Git shows a feature being removed after release, because there is no earlier commit. Commented blocks above are the only in-file retirements.

## Not features of this repository

- A root Sonar scanner (`sonar-project.properties`, `sonarqube_scan.bat`) was listed on the scan host and is not in `6cbf6777`.
- The application at `/dashboard/login.php` is linked from email and is not a file in this commit.
- The Silicon Ark project `sabullion` documents a different Git remote.
