File manager - Edit - /home/monara/public_html/test.athavaneng.com/Marketing.tar
Back
MarketingChannelInterface.php 0000644 00000004377 15073234677 0012341 0 ustar 00 <?php /** * Represents a marketing channel for the multichannel-marketing feature. * * This interface will be implemented by third-party extensions to register themselves as marketing channels. */ namespace Automattic\WooCommerce\Admin\Marketing; /** * MarketingChannelInterface interface * * @since x.x.x */ interface MarketingChannelInterface { public const PRODUCT_LISTINGS_NOT_APPLICABLE = 'not-applicable'; public const PRODUCT_LISTINGS_SYNC_IN_PROGRESS = 'sync-in-progress'; public const PRODUCT_LISTINGS_SYNC_FAILED = 'sync-failed'; public const PRODUCT_LISTINGS_SYNCED = 'synced'; /** * Returns the unique identifier string for the marketing channel extension, also known as the plugin slug. * * @return string */ public function get_slug(): string; /** * Returns the name of the marketing channel. * * @return string */ public function get_name(): string; /** * Returns the description of the marketing channel. * * @return string */ public function get_description(): string; /** * Returns the path to the channel icon. * * @return string */ public function get_icon_url(): string; /** * Returns the setup status of the marketing channel. * * @return bool */ public function is_setup_completed(): bool; /** * Returns the URL to the settings page, or the link to complete the setup/onboarding if the channel has not been set up yet. * * @return string */ public function get_setup_url(): string; /** * Returns the status of the marketing channel's product listings. * * @return string */ public function get_product_listings_status(): string; /** * Returns the number of channel issues/errors (e.g. account-related errors, product synchronization issues, etc.). * * @return int The number of issues to resolve, or 0 if there are no issues with the channel. */ public function get_errors_count(): int; /** * Returns an array of marketing campaign types that the channel supports. * * @return MarketingCampaignType[] Array of marketing campaign type objects. */ public function get_supported_campaign_types(): array; /** * Returns an array of the channel's marketing campaigns. * * @return MarketingCampaign[] */ public function get_campaigns(): array; } MarketingCampaignType.php 0000644 00000005577 15073234677 0011534 0 ustar 00 <?php /** * Represents a marketing campaign type supported by a marketing channel. * * Marketing channels (implementing MarketingChannelInterface) can use this class to define what kind of campaigns they support. */ namespace Automattic\WooCommerce\Admin\Marketing; /** * MarketingCampaignType class * * @since x.x.x */ class MarketingCampaignType { /** * The unique identifier. * * @var string */ protected $id; /** * The marketing channel that this campaign type belongs to. * * @var MarketingChannelInterface */ protected $channel; /** * Name of the marketing campaign type. * * @var string */ protected $name; /** * Description of the marketing campaign type. * * @var string */ protected $description; /** * The URL to the create campaign page. * * @var string */ protected $create_url; /** * The URL to an image/icon for the campaign type. * * @var string */ protected $icon_url; /** * MarketingCampaignType constructor. * * @param string $id A unique identifier for the campaign type. * @param MarketingChannelInterface $channel The marketing channel that this campaign type belongs to. * @param string $name Name of the marketing campaign type. * @param string $description Description of the marketing campaign type. * @param string $create_url The URL to the create campaign page. * @param string $icon_url The URL to an image/icon for the campaign type. */ public function __construct( string $id, MarketingChannelInterface $channel, string $name, string $description, string $create_url, string $icon_url ) { $this->id = $id; $this->channel = $channel; $this->name = $name; $this->description = $description; $this->create_url = $create_url; $this->icon_url = $icon_url; } /** * Returns the marketing campaign's unique identifier. * * @return string */ public function get_id(): string { return $this->id; } /** * Returns the marketing channel that this campaign type belongs to. * * @return MarketingChannelInterface */ public function get_channel(): MarketingChannelInterface { return $this->channel; } /** * Returns the name of the marketing campaign type. * * @return string */ public function get_name(): string { return $this->name; } /** * Returns the description of the marketing campaign type. * * @return string */ public function get_description(): string { return $this->description; } /** * Returns the URL to the create campaign page. * * @return string */ public function get_create_url(): string { return $this->create_url; } /** * Returns the URL to an image/icon for the campaign type. * * @return string */ public function get_icon_url(): string { return $this->icon_url; } } MarketingChannels.php 0000644 00000003130 15073234677 0010665 0 ustar 00 <?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 ); } } InstalledExtensions.php 0000644 00000042337 15073234677 0011303 0 ustar 00 <?php /** * InstalledExtensions class file. */ namespace Automattic\WooCommerce\Admin\Marketing; use Automattic\WooCommerce\Admin\PluginsHelper; /** * Installed Marketing Extensions class. */ class InstalledExtensions { /** * Gets an array of plugin data for the "Installed marketing extensions" card. * * Valid extensions statuses are: installed, activated, configured */ public static function get_data() { $data = []; $automatewoo = self::get_automatewoo_extension_data(); $aw_referral = self::get_aw_referral_extension_data(); $aw_birthdays = self::get_aw_birthdays_extension_data(); $mailchimp = self::get_mailchimp_extension_data(); $facebook = self::get_facebook_extension_data(); $pinterest = self::get_pinterest_extension_data(); $google = self::get_google_extension_data(); $amazon_ebay = self::get_amazon_ebay_extension_data(); $mailpoet = self::get_mailpoet_extension_data(); $klaviyo = self::get_klaviyo_extension_data(); $creative_mail = self::get_creative_mail_extension_data(); $tiktok = self::get_tiktok_extension_data(); $jetpack_crm = self::get_jetpack_crm_extension_data(); $zapier = self::get_zapier_extension_data(); $salesforce = self::get_salesforce_extension_data(); $vimeo = self::get_vimeo_extension_data(); $trustpilot = self::get_trustpilot_extension_data(); if ( $automatewoo ) { $data[] = $automatewoo; } if ( $aw_referral ) { $data[] = $aw_referral; } if ( $aw_birthdays ) { $data[] = $aw_birthdays; } if ( $mailchimp ) { $data[] = $mailchimp; } if ( $facebook ) { $data[] = $facebook; } if ( $pinterest ) { $data[] = $pinterest; } if ( $google ) { $data[] = $google; } if ( $amazon_ebay ) { $data[] = $amazon_ebay; } if ( $mailpoet ) { $data[] = $mailpoet; } if ( $klaviyo ) { $data[] = $klaviyo; } if ( $creative_mail ) { $data[] = $creative_mail; } if ( $tiktok ) { $data[] = $tiktok; } if ( $jetpack_crm ) { $data[] = $jetpack_crm; } if ( $zapier ) { $data[] = $zapier; } if ( $salesforce ) { $data[] = $salesforce; } if ( $vimeo ) { $data[] = $vimeo; } if ( $trustpilot ) { $data[] = $trustpilot; } return $data; } /** * Get allowed plugins. * * @return array */ public static function get_allowed_plugins() { return [ 'automatewoo', 'mailchimp-for-woocommerce', 'creative-mail-by-constant-contact', 'facebook-for-woocommerce', 'pinterest-for-woocommerce', 'google-listings-and-ads', 'hubspot-for-woocommerce', 'woocommerce-amazon-ebay-integration', 'mailpoet', ]; } /** * Get AutomateWoo extension data. * * @return array|bool */ protected static function get_automatewoo_extension_data() { $slug = 'automatewoo'; if ( ! PluginsHelper::is_plugin_installed( $slug ) ) { return false; } $data = self::get_extension_base_data( $slug ); $data['icon'] = WC_ADMIN_IMAGES_FOLDER_URL . '/marketing/automatewoo.svg'; if ( 'activated' === $data['status'] && function_exists( 'AW' ) ) { $data['settingsUrl'] = admin_url( 'admin.php?page=automatewoo-settings' ); $data['docsUrl'] = 'https://automatewoo.com/docs/'; $data['status'] = 'configured'; // Currently no configuration step. } return $data; } /** * Get AutomateWoo Refer a Friend extension data. * * @return array|bool */ protected static function get_aw_referral_extension_data() { $slug = 'automatewoo-referrals'; if ( ! PluginsHelper::is_plugin_installed( $slug ) ) { return false; } $data = self::get_extension_base_data( $slug ); $data['icon'] = WC_ADMIN_IMAGES_FOLDER_URL . '/marketing/automatewoo.svg'; if ( 'activated' === $data['status'] ) { $data['docsUrl'] = 'https://automatewoo.com/docs/refer-a-friend/'; $data['status'] = 'configured'; if ( function_exists( 'AW_Referrals' ) ) { $data['settingsUrl'] = admin_url( 'admin.php?page=automatewoo-settings&tab=referrals' ); } } return $data; } /** * Get AutomateWoo Birthdays extension data. * * @return array|bool */ protected static function get_aw_birthdays_extension_data() { $slug = 'automatewoo-birthdays'; if ( ! PluginsHelper::is_plugin_installed( $slug ) ) { return false; } $data = self::get_extension_base_data( $slug ); $data['icon'] = WC_ADMIN_IMAGES_FOLDER_URL . '/marketing/automatewoo.svg'; if ( 'activated' === $data['status'] ) { $data['docsUrl'] = 'https://automatewoo.com/docs/getting-started-with-birthdays/'; $data['status'] = 'configured'; if ( function_exists( 'AW_Birthdays' ) ) { $data['settingsUrl'] = admin_url( 'admin.php?page=automatewoo-settings&tab=birthdays' ); } } return $data; } /** * Get MailChimp extension data. * * @return array|bool */ protected static function get_mailchimp_extension_data() { $slug = 'mailchimp-for-woocommerce'; if ( ! PluginsHelper::is_plugin_installed( $slug ) ) { return false; } $data = self::get_extension_base_data( $slug ); $data['icon'] = WC_ADMIN_IMAGES_FOLDER_URL . '/marketing/mailchimp.svg'; if ( 'activated' === $data['status'] && function_exists( 'mailchimp_is_configured' ) ) { $data['docsUrl'] = 'https://mailchimp.com/help/connect-or-disconnect-mailchimp-for-woocommerce/'; $data['settingsUrl'] = admin_url( 'admin.php?page=mailchimp-woocommerce' ); if ( mailchimp_is_configured() ) { $data['status'] = 'configured'; } } return $data; } /** * Get Facebook extension data. * * @return array|bool */ protected static function get_facebook_extension_data() { $slug = 'facebook-for-woocommerce'; if ( ! PluginsHelper::is_plugin_installed( $slug ) ) { return false; } $data = self::get_extension_base_data( $slug ); $data['icon'] = WC_ADMIN_IMAGES_FOLDER_URL . '/marketing/facebook-icon.svg'; if ( 'activated' === $data['status'] && function_exists( 'facebook_for_woocommerce' ) ) { $integration = facebook_for_woocommerce()->get_integration(); if ( $integration->is_configured() ) { $data['status'] = 'configured'; } $data['settingsUrl'] = facebook_for_woocommerce()->get_settings_url(); $data['docsUrl'] = facebook_for_woocommerce()->get_documentation_url(); } return $data; } /** * Get Pinterest extension data. * * @return array|bool */ protected static function get_pinterest_extension_data() { $slug = 'pinterest-for-woocommerce'; if ( ! PluginsHelper::is_plugin_installed( $slug ) ) { return false; } $data = self::get_extension_base_data( $slug ); $data['icon'] = WC_ADMIN_IMAGES_FOLDER_URL . '/marketing/pinterest.svg'; $data['docsUrl'] = 'https://woo.com/document/pinterest-for-woocommerce/?utm_medium=product'; if ( 'activated' === $data['status'] && class_exists( 'Pinterest_For_Woocommerce' ) ) { $pinterest_onboarding_completed = Pinterest_For_Woocommerce()::is_setup_complete(); if ( $pinterest_onboarding_completed ) { $data['status'] = 'configured'; $data['settingsUrl'] = admin_url( 'admin.php?page=wc-admin&path=/pinterest/settings' ); } else { $data['settingsUrl'] = admin_url( 'admin.php?page=wc-admin&path=/pinterest/landing' ); } } return $data; } /** * Get Google extension data. * * @return array|bool */ protected static function get_google_extension_data() { $slug = 'google-listings-and-ads'; if ( ! PluginsHelper::is_plugin_installed( $slug ) ) { return false; } $data = self::get_extension_base_data( $slug ); $data['icon'] = WC_ADMIN_IMAGES_FOLDER_URL . '/marketing/google.svg'; if ( 'activated' === $data['status'] && function_exists( 'woogle_get_container' ) && class_exists( '\Automattic\WooCommerce\GoogleListingsAndAds\MerchantCenter\MerchantCenterService' ) ) { $merchant_center = woogle_get_container()->get( \Automattic\WooCommerce\GoogleListingsAndAds\MerchantCenter\MerchantCenterService::class ); if ( $merchant_center->is_setup_complete() ) { $data['status'] = 'configured'; $data['settingsUrl'] = admin_url( 'admin.php?page=wc-admin&path=/google/settings' ); } else { $data['settingsUrl'] = admin_url( 'admin.php?page=wc-admin&path=/google/start' ); } $data['docsUrl'] = 'https://woo.com/document/google-listings-and-ads/?utm_medium=product'; } return $data; } /** * Get Amazon / Ebay extension data. * * @return array|bool */ protected static function get_amazon_ebay_extension_data() { $slug = 'woocommerce-amazon-ebay-integration'; if ( ! PluginsHelper::is_plugin_installed( $slug ) ) { return false; } $data = self::get_extension_base_data( $slug ); $data['icon'] = WC_ADMIN_IMAGES_FOLDER_URL . '/marketing/amazon-ebay.svg'; if ( 'activated' === $data['status'] && class_exists( '\CodistoConnect' ) ) { $codisto_merchantid = get_option( 'codisto_merchantid' ); // Use same check as codisto admin tabs. if ( is_numeric( $codisto_merchantid ) ) { $data['status'] = 'configured'; } $data['settingsUrl'] = admin_url( 'admin.php?page=codisto-settings' ); $data['docsUrl'] = 'https://woo.com/document/multichannel-for-woocommerce-google-amazon-ebay-walmart-integration/?utm_medium=product'; } return $data; } /** * Get MailPoet extension data. * * @return array|bool */ protected static function get_mailpoet_extension_data() { $slug = 'mailpoet'; if ( ! PluginsHelper::is_plugin_installed( $slug ) ) { return false; } $data = self::get_extension_base_data( $slug ); $data['icon'] = WC_ADMIN_IMAGES_FOLDER_URL . '/marketing/mailpoet.svg'; if ( 'activated' === $data['status'] && class_exists( '\MailPoet\API\API' ) ) { $mailpoet_api = \MailPoet\API\API::MP( 'v1' ); if ( ! method_exists( $mailpoet_api, 'isSetupComplete' ) || $mailpoet_api->isSetupComplete() ) { $data['status'] = 'configured'; $data['settingsUrl'] = admin_url( 'admin.php?page=mailpoet-settings' ); } else { $data['settingsUrl'] = admin_url( 'admin.php?page=mailpoet-newsletters' ); } $data['docsUrl'] = 'https://kb.mailpoet.com/'; $data['supportUrl'] = 'https://www.mailpoet.com/support/'; } return $data; } /** * Get Klaviyo extension data. * * @return array|bool */ protected static function get_klaviyo_extension_data() { $slug = 'klaviyo'; if ( ! PluginsHelper::is_plugin_installed( $slug ) ) { return false; } $data = self::get_extension_base_data( $slug ); $data['icon'] = plugins_url( 'assets/images/marketing/klaviyo.png', WC_PLUGIN_FILE ); if ( 'activated' === $data['status'] ) { $klaviyo_options = get_option( 'klaviyo_settings' ); if ( isset( $klaviyo_options['klaviyo_public_api_key'] ) ) { $data['status'] = 'configured'; } $data['settingsUrl'] = admin_url( 'admin.php?page=klaviyo_settings' ); } return $data; } /** * Get Creative Mail for WooCommerce extension data. * * @return array|bool */ protected static function get_creative_mail_extension_data() { $slug = 'creative-mail-by-constant-contact'; if ( ! PluginsHelper::is_plugin_installed( $slug ) ) { return false; } $data = self::get_extension_base_data( $slug ); $data['icon'] = WC_ADMIN_IMAGES_FOLDER_URL . '/marketing/creative-mail-by-constant-contact.png'; if ( 'activated' === $data['status'] && class_exists( '\CreativeMail\Helpers\OptionsHelper' ) ) { if ( ! method_exists( '\CreativeMail\Helpers\OptionsHelper', 'get_instance_id' ) || \CreativeMail\Helpers\OptionsHelper::get_instance_id() !== null ) { $data['status'] = 'configured'; $data['settingsUrl'] = admin_url( 'admin.php?page=creativemail_settings' ); } else { $data['settingsUrl'] = admin_url( 'admin.php?page=creativemail' ); } $data['docsUrl'] = 'https://app.creativemail.com/kb/help/WooCommerce'; $data['supportUrl'] = 'https://app.creativemail.com/kb/help/'; } return $data; } /** * Get TikTok for WooCommerce extension data. * * @return array|bool */ protected static function get_tiktok_extension_data() { $slug = 'tiktok-for-business'; if ( ! PluginsHelper::is_plugin_installed( $slug ) ) { return false; } $data = self::get_extension_base_data( $slug ); $data['icon'] = WC_ADMIN_IMAGES_FOLDER_URL . '/marketing/tiktok.jpg'; if ( 'activated' === $data['status'] ) { if ( false !== get_option( 'tt4b_access_token' ) ) { $data['status'] = 'configured'; } $data['settingsUrl'] = admin_url( 'admin.php?page=tiktok' ); $data['docsUrl'] = 'https://woo.com/document/tiktok-for-woocommerce/'; $data['supportUrl'] = 'https://ads.tiktok.com/athena/user-feedback/?identify_key=6a1e079024806640c5e1e695d13db80949525168a052299b4970f9c99cb5ac78'; } return $data; } /** * Get Jetpack CRM for WooCommerce extension data. * * @return array|bool */ protected static function get_jetpack_crm_extension_data() { $slug = 'zero-bs-crm'; if ( ! PluginsHelper::is_plugin_installed( $slug ) ) { return false; } $data = self::get_extension_base_data( $slug ); $data['icon'] = WC_ADMIN_IMAGES_FOLDER_URL . '/marketing/jetpack-crm.png'; if ( 'activated' === $data['status'] ) { $data['status'] = 'configured'; $data['settingsUrl'] = admin_url( 'admin.php?page=zerobscrm-plugin-settings' ); $data['docsUrl'] = 'https://kb.jetpackcrm.com/'; $data['supportUrl'] = 'https://kb.jetpackcrm.com/crm-support/'; } return $data; } /** * Get WooCommerce Zapier extension data. * * @return array|bool */ protected static function get_zapier_extension_data() { $slug = 'woocommerce-zapier'; if ( ! PluginsHelper::is_plugin_installed( $slug ) ) { return false; } $data = self::get_extension_base_data( $slug ); $data['icon'] = WC_ADMIN_IMAGES_FOLDER_URL . '/marketing/zapier.png'; if ( 'activated' === $data['status'] ) { $data['status'] = 'configured'; $data['settingsUrl'] = admin_url( 'admin.php?page=wc-settings&tab=wc_zapier' ); $data['docsUrl'] = 'https://docs.om4.io/woocommerce-zapier/'; } return $data; } /** * Get Salesforce extension data. * * @return array|bool */ protected static function get_salesforce_extension_data() { $slug = 'integration-with-salesforce'; if ( ! PluginsHelper::is_plugin_installed( $slug ) ) { return false; } $data = self::get_extension_base_data( $slug ); $data['icon'] = WC_ADMIN_IMAGES_FOLDER_URL . '/marketing/salesforce.jpg'; if ( 'activated' === $data['status'] && class_exists( '\Integration_With_Salesforce_Admin' ) ) { if ( ! method_exists( '\Integration_With_Salesforce_Admin', 'get_connection_status' ) || \Integration_With_Salesforce_Admin::get_connection_status() ) { $data['status'] = 'configured'; } $data['settingsUrl'] = admin_url( 'admin.php?page=integration-with-salesforce' ); $data['docsUrl'] = 'https://woo.com/document/salesforce-integration/'; $data['supportUrl'] = 'https://wpswings.com/submit-query/'; } return $data; } /** * Get Vimeo extension data. * * @return array|bool */ protected static function get_vimeo_extension_data() { $slug = 'vimeo'; if ( ! PluginsHelper::is_plugin_installed( $slug ) ) { return false; } $data = self::get_extension_base_data( $slug ); $data['icon'] = WC_ADMIN_IMAGES_FOLDER_URL . '/marketing/vimeo.png'; if ( 'activated' === $data['status'] && class_exists( '\Tribe\Vimeo_WP\Vimeo\Vimeo_Auth' ) ) { if ( method_exists( '\Tribe\Vimeo_WP\Vimeo\Vimeo_Auth', 'has_access_token' ) ) { $vimeo_auth = new \Tribe\Vimeo_WP\Vimeo\Vimeo_Auth(); if ( $vimeo_auth->has_access_token() ) { $data['status'] = 'configured'; } } else { $data['status'] = 'configured'; } $data['settingsUrl'] = admin_url( 'options-general.php?page=vimeo_settings' ); $data['docsUrl'] = 'https://woo.com/document/vimeo/'; $data['supportUrl'] = 'https://vimeo.com/help/contact'; } return $data; } /** * Get Trustpilot extension data. * * @return array|bool */ protected static function get_trustpilot_extension_data() { $slug = 'trustpilot-reviews'; if ( ! PluginsHelper::is_plugin_installed( $slug ) ) { return false; } $data = self::get_extension_base_data( $slug ); $data['icon'] = WC_ADMIN_IMAGES_FOLDER_URL . '/marketing/trustpilot.png'; if ( 'activated' === $data['status'] ) { $data['status'] = 'configured'; $data['settingsUrl'] = admin_url( 'admin.php?page=woocommerce-trustpilot-settings-page' ); $data['docsUrl'] = 'https://woo.com/document/trustpilot-reviews/'; $data['supportUrl'] = 'https://support.trustpilot.com/hc/en-us/requests/new'; } return $data; } /** * Get an array of basic data for a given extension. * * @param string $slug Plugin slug. * * @return array|false */ protected static function get_extension_base_data( $slug ) { $status = PluginsHelper::is_plugin_active( $slug ) ? 'activated' : 'installed'; $plugin_data = PluginsHelper::get_plugin_data( $slug ); if ( ! $plugin_data ) { return false; } return [ 'slug' => $slug, 'status' => $status, 'name' => $plugin_data['Name'], 'description' => html_entity_decode( wp_trim_words( $plugin_data['Description'], 20 ) ), 'supportUrl' => 'https://woo.com/my-account/create-a-ticket/?utm_medium=product', ]; } } MarketingCampaign.php 0000644 00000004537 15073234677 0010665 0 ustar 00 <?php /** * Represents a marketing/ads campaign for marketing channels. * * Marketing channels (implementing MarketingChannelInterface) can use this class to map their campaign data and present it to WooCommerce core. */ namespace Automattic\WooCommerce\Admin\Marketing; /** * MarketingCampaign class * * @since x.x.x */ class MarketingCampaign { /** * The unique identifier. * * @var string */ protected $id; /** * The marketing campaign type. * * @var MarketingCampaignType */ protected $type; /** * Title of the marketing campaign. * * @var string */ protected $title; /** * The URL to the channel's campaign management page. * * @var string */ protected $manage_url; /** * The cost of the marketing campaign with the currency. * * @var Price */ protected $cost; /** * MarketingCampaign constructor. * * @param string $id The marketing campaign's unique identifier. * @param MarketingCampaignType $type The marketing campaign type. * @param string $title The title of the marketing campaign. * @param string $manage_url The URL to the channel's campaign management page. * @param Price|null $cost The cost of the marketing campaign with the currency. */ public function __construct( string $id, MarketingCampaignType $type, string $title, string $manage_url, Price $cost = null ) { $this->id = $id; $this->type = $type; $this->title = $title; $this->manage_url = $manage_url; $this->cost = $cost; } /** * Returns the marketing campaign's unique identifier. * * @return string */ public function get_id(): string { return $this->id; } /** * Returns the marketing campaign type. * * @return MarketingCampaignType */ public function get_type(): MarketingCampaignType { return $this->type; } /** * Returns the title of the marketing campaign. * * @return string */ public function get_title(): string { return $this->title; } /** * Returns the URL to manage the marketing campaign. * * @return string */ public function get_manage_url(): string { return $this->manage_url; } /** * Returns the cost of the marketing campaign with the currency. * * @return Price|null */ public function get_cost(): ?Price { return $this->cost; } } Price.php 0000644 00000001523 15073234677 0006336 0 ustar 00 <?php /** * Represents a price with a currency. */ namespace Automattic\WooCommerce\Admin\Marketing; /** * Price class * * @since x.x.x */ class Price { /** * The price. * * @var string */ protected $value; /** * The currency of the price. * * @var string */ protected $currency; /** * Price constructor. * * @param string $value The value of the price. * @param string $currency The currency of the price. */ public function __construct( string $value, string $currency ) { $this->value = $value; $this->currency = $currency; } /** * Get value of the price. * * @return string */ public function get_value(): string { return $this->value; } /** * Get the currency of the price. * * @return string */ public function get_currency(): string { return $this->currency; } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0 |
proxy
|
phpinfo
|
Settings