Server IP : 192.158.238.246 / Your IP : 18.119.136.220 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/jenniferflocom/www/wp-content/plugins/woocommerce/src/Admin/Marketing/ |
Upload File : |
<?php /** * Handles the registration of marketing channels and acts as their repository. */ namespace Automattic\WooCommerce\Admin\Marketing; use Exception; /** * MarketingChannels repository class * * @since x.x.x */ class MarketingChannels { /** * The registered marketing channels. * * @var MarketingChannelInterface[] */ private $registered_channels = []; /** * Registers a marketing channel. * * @param MarketingChannelInterface $channel The marketing channel to register. * * @return void * * @throws Exception If the given marketing channel is already registered. */ public function register( MarketingChannelInterface $channel ): void { if ( isset( $this->registered_channels[ $channel->get_slug() ] ) ) { throw new Exception( __( 'Marketing channel cannot be registered because there is already a channel registered with the same slug!', 'woocommerce' ) ); } $this->registered_channels[ $channel->get_slug() ] = $channel; } /** * Unregisters all marketing channels. * * @return void */ public function unregister_all(): void { unset( $this->registered_channels ); } /** * Returns an array of all registered marketing channels. * * @return MarketingChannelInterface[] */ public function get_registered_channels(): array { /** * Filter the list of registered marketing channels. * * @param MarketingChannelInterface[] $channels Array of registered marketing channels. * * @since x.x.x */ $channels = apply_filters( 'woocommerce_marketing_channels', $this->registered_channels ); return array_values( $channels ); } }