Skip to main content

Suma Elementor Theme

The Suma Elementor theme is the core of the Dealers Site. It is a custom theme built on top of Hello Elementor (a minimal Elementor-compatible base theme). Almost all dealer-specific business logic is implemented as PHP class modules within this theme.


Theme Details

PropertyValue
Theme NameSuma Elementor
AuthorRhino Group
Version2.2.1
Base ThemeHello Elementor
PHP Requirement5.4+ (runs on 8.1+)
NamespaceSuma / Suma\Theme / Suma\Theme\WooCommerce etc.

Entry Point

functions.php instantiates and initialises the theme:

( new Suma\Theme() )->init();

Theme::init() in inc/class-theme.php:

  1. Loads utility functions from inc/utils.php
  2. Calls queue_hooks() — registers all WordPress hooks
  3. Calls load_dependencies() — instantiates all module classes

Module System

Each feature area is encapsulated in its own class that extends ModuleBase. ModuleBase provides add_action() and add_filter() helper wrappers. Modules are registered in Theme::load_dependencies().


Core Modules

ClassFileDescription
Theme\Customizerclass-customizer.phpWordPress Customizer options
Theme\Layoutclass-layout.phpBody classes, page layout helpers
Theme\Adminclass-admin.phpAdmin panel customisations
Theme\Elementorclass-elementor.phpElementor integration & location registration
Theme\ElementorWidgetsclass-elementor-widgets.phpCustom widget registration
Theme\FacetWPclass-facetwp.phpFacetWP filtering integration
Theme\Algoliaclass-algolia.phpAlgolia custom integration
Theme\AlgoliaCustomSearchclass-algolia-custom-search.phpCustom Algolia index for non-product posts
Theme\MetalPricingclass-metal-pricing.phpSpot price retrieval and markup calculation
Theme\DealerLocatorclass-dealer-locator.phpDealer locator taxonomy label overrides
Theme\GravityFormsclass-gravity-forms.phpGravity Forms customisations
Theme\KlaviyoCreateProfileclass-klaviyo-create-profile.phpKlaviyo profile creation on registration
Theme\Loginclass-login.phpLogin page customisations and redirects
Theme\ProductSyncclass-product-sync.phpProduct data sync helpers
Theme\Settingsclass-settings.phpSite-wide settings
Theme\Sandboxclass-sandbox.phpDevelopment/debug sandbox utilities
Theme\WebhookRoutesclass-webhook-routes.phpCustom webhook route registration

WooCommerce Modules

All WooCommerce-specific logic is in Suma\Theme\WooCommerce\*:

ClassFileDescription
WooCommerceclass-woocommerce.phpCore WC integration and setup
WooCommerce\Addressclass-woocommerce-address.phpAddress customisations
WooCommerce\Attributesclass-woocommerce-attributes.phpProduct attribute management
WooCommerce\Cartclass-woocommerce-cart.phpCart logic and customisations
WooCommerce\Couponsclass-woocommerce-coupons.phpCoupon system extensions
WooCommerce\Emailclass-woocommerce-email.phpTransactional email customisations
WooCommerce\Invoiceclass-woocommerce-invoice.phpPDF invoice customisations
WooCommerce\Orderclass-woocommerce-order.phpCustom order statuses and management
WooCommerce\OrderEditclass-woocommerce-order-edit.phpAdmin order edit enhancements
WooCommerce\OrderListclass-woocommerce-order-list.phpAdmin orders list enhancements
WooCommerce\OrderViewclass-woocommerce-order-view.phpFrontend order view customisations
WooCommerce\Prefsclass-woocommerce-prefs.phpPer-user WooCommerce preferences
WooCommerce\Productclass-woocommerce-product.phpProduct display and pricing logic
WooCommerce\RestAPIclass-woocommerce-rest-api.phpWooCommerce REST API extensions
WooCommerce\ShipStationclass-woocommerce-shipstation.phpShipStation integration
WooCommerce\Tariffclass-woocommerce-tariff.phpHS code / tariff data for international orders
WooCommerce\Userclass-woocommerce-user.phpUser management, company taxonomy, capabilities
WooCommerce\UserStatsclass-woocommerce-user-stats.phpPer-user purchase statistics
WooCommerce\Webhookclass-woocommerce-webhook.phpWooCommerce outbound webhook registration
WooCommerce\Yithclass-yith.phpYITH plugin integrations