Managed_Email_Types_Config::class, ); public function register( Service_Container $container ) { parent::register( $container ); $container->add( self::EMAIL_STOPPER, function () use ( $container ) { return new Email_Stopper( $container->get( Connector_Service_Provider::DATA_STORE_ROUTER ), $container->get( Connector_Service_Provider::DATA_STORE_PLUGIN_OPTS ) ); } ); $container->add( self::MANAGED_EMAIL_TYPES, function () { $emails = new Managed_Email_Types(); return $emails->types(); } ); } public function init( \Gravity_Forms\Gravity_Tools\Service_Container $container ) { $email_types = $container->get( self::MANAGED_EMAIL_TYPES ); /** * @var Email_Stopper $stopper */ $stopper = $container->get( self::EMAIL_STOPPER ); add_action( 'init', function () use ( $stopper, $email_types ) { foreach ( $email_types as $values ) { $type = new Managed_Email( $values['key'], $values['label'], $values['description'], $values['category'], $values['disable_callback'] ); $stopper->add( $type ); } }, 11 ); add_action( 'init', function() use ( $container ) { $container->get( self::EMAIL_STOPPER )->stop_all(); }, 12 ); } }