<?php namespace Tribe\Service_Providers; use Tribe\Utils\Body_Classes as Body_Class_Object; use TEC\Common\Contracts\Service_Provider; /** * Class Body_Classes * * @since 4.12.6 * * Handles the registration and creation of our async process handlers. */ class Body_Classes extends Service_Provider { /** * Binds and sets up implementations. * * @since 4.12.6 */ public function register() { tribe_singleton( Body_Class_Object::class, Body_Class_Object::class ); tribe_singleton( 'common.service_providers.body_classes', $this ); /** * Allows plugins to hook into the register action to register views, etc. * * @since 4.12.6 * * @param Tribe\Service_Providers\Dialog $dialog */ do_action( 'tribe_body_classes_register', $this ); $this->hooks(); } /** * Set up hooks for classes. * * @since 4.12.6 */ private function hooks() { add_filter( 'body_class', [ $this, 'add_body_classes' ] ); add_filter( 'admin_body_class', [ $this, 'add_admin_body_classes' ] ); /** * Allows plugins to hook into the hooks action to register their own hooks. * * @since 4.12.6 * * @param Tribe\Service_Providers\Dialog $dialog */ do_action( 'tribe_body_classes_hooks', $this ); } /** * Hook in and add FE body classes. * * @since 4.12.6 * * @param array $classes An array of body class names. * @return array The modified array of body class names. */ public function add_body_classes( $classes = [] ) { /** @var Body_Class_Object $body_classes */ $body_classes = tribe( Body_Class_Object::class ); return $body_classes->add_body_classes( $classes ); } /** * Hook in and add admin body classes. * * @since 4.12.6 * * @param array $classes An array of body class names. * @return array The modified array of body class names. */ public function add_admin_body_classes( $classes = [] ) { /** @var Body_Class_Object $body_classes */ $body_classes = tribe( Body_Class_Object::class ); return $body_classes->add_admin_body_classes( $classes ); } }