/**
* Front-end orchestration shell.
*
* This class intentionally stays small. Feature logic lives in the trait files
* below so routing can remain stable without growing a new monolith.
*/
class SBF_Frontend {
/**
* When true, render_*_view methods should return ONLY the #sbfFeResults wrapper.
* Used by AJAX filter refresh to avoid brittle regex extraction.
*/
private static $ajax_only = false;
use SBF_Frontend_Core_Trait;
use SBF_Frontend_Rows_Trait;
use SBF_Frontend_Detail_Trait;
use SBF_Frontend_Browse_Trait;
use SBF_Frontend_Search_Trait;
use SBF_Frontend_Filters_Trait;
use SBF_Frontend_Sorting_Trait;
use SBF_Frontend_Access_Media_Trait;
}
Fatal error: Uncaught Error: Class "SBF_Frontend" not found in /home/u933349526/domains/thatsnotoem.com/public_html/wp-content/plugins/shop-locator/shop-locator.php:86
Stack trace:
#0 /home/u933349526/domains/thatsnotoem.com/public_html/wp-includes/class-wp-hook.php(341): {closure}()
#1 /home/u933349526/domains/thatsnotoem.com/public_html/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters()
#2 /home/u933349526/domains/thatsnotoem.com/public_html/wp-includes/plugin.php(522): WP_Hook->do_action()
#3 /home/u933349526/domains/thatsnotoem.com/public_html/wp-settings.php(742): do_action()
#4 /home/u933349526/domains/thatsnotoem.com/public_html/wp-config.php(113): require_once('/home/u93334952...')
#5 /home/u933349526/domains/thatsnotoem.com/public_html/wp-load.php(50): require_once('/home/u93334952...')
#6 /home/u933349526/domains/thatsnotoem.com/public_html/wp-blog-header.php(13): require_once('/home/u93334952...')
#7 /home/u933349526/domains/thatsnotoem.com/public_html/index.php(17): require('/home/u93334952...')
#8 {main}
thrown in /home/u933349526/domains/thatsnotoem.com/public_html/wp-content/plugins/shop-locator/shop-locator.php on line 86