<?php /** * Gets a list of fallback methods if remote fetching is disabled. */ namespace Automattic\WooCommerce\Internal\Admin\RemoteFreeExtensions; use Automattic\WooCommerce\Admin\Features\PaymentGatewaySuggestions\DefaultPaymentGateways; defined( 'ABSPATH' ) || exit; /** * Default Free Extensions */ class DefaultFreeExtensions { /** * Get default specs. * * @return array Default specs. */ public static function get_all() { $bundles = array( array( 'key' => 'obw/basics', 'title' => __( 'Get the basics', 'woocommerce' ), 'plugins' => array( self::get_plugin( 'woocommerce-payments' ), self::get_plugin( 'woocommerce-services:shipping' ), self::get_plugin( 'woocommerce-services:tax' ), self::get_plugin( 'jetpack' ), ), ), array( 'key' => 'obw/grow', 'title' => __( 'Grow your store', 'woocommerce' ), 'plugins' => array( self::get_plugin( 'mailpoet' ), self::get_plugin( 'google-listings-and-ads' ), self::get_plugin( 'pinterest-for-woocommerce' ), self::get_plugin( 'facebook-for-woocommerce' ), ), ), array( 'key' => 'task-list/reach', 'title' => __( 'Reach out to customers', 'woocommerce' ), 'plugins' => array( self::get_plugin( 'mailpoet:alt' ), self::get_plugin( 'mailchimp-for-woocommerce' ), self::get_plugin( 'klaviyo' ), ), ), array( 'key' => 'task-list/grow', 'title' => __( 'Grow your store', 'woocommerce' ), 'plugins' => array( self::get_plugin( 'google-listings-and-ads:alt' ), self::get_plugin( 'tiktok-for-business' ), self::get_plugin( 'pinterest-for-woocommerce:alt' ), self::get_plugin( 'facebook-for-woocommerce:alt' ), ), ), array( 'key' => 'obw/core-profiler', 'title' => __( 'Grow your store', 'woocommerce' ), 'plugins' => self::with_core_profiler_fields( array( self::get_plugin( 'woocommerce-payments' ), self::get_plugin( 'woocommerce-services:shipping' ), self::get_plugin( 'jetpack' ), self::get_plugin( 'pinterest-for-woocommerce' ), self::get_plugin( 'mailpoet' ), self::get_plugin( 'google-listings-and-ads' ), self::get_plugin( 'woocommerce-services:tax' ), self::get_plugin( 'tiktok-for-business' ), ) ), ), ); $bundles = wp_json_encode( $bundles ); return json_decode( $bundles ); } /** * Get the plugin arguments by slug. * * @param string $slug Slug. * @return array */ public static function get_plugin( $slug ) { $plugins = array( 'google-listings-and-ads' => array( 'min_php_version' => '7.4', 'name' => __( 'Google Listings & Ads', 'woocommerce' ), 'description' => sprintf( /* translators: 1: opening product link tag. 2: closing link tag */ __( 'Drive sales with %1$sGoogle Listings and Ads%2$s', 'woocommerce' ), '<a href="https://woo.com/products/google-listings-and-ads" target="_blank">', '</a>' ), 'image_url' => plugins_url( '/assets/images/onboarding/google.svg', WC_PLUGIN_FILE ), 'manage_url' => 'admin.php?page=wc-admin&path=%2Fgoogle%2Fstart', 'is_built_by_wc' => true, 'is_visible' => array( array( 'type' => 'not', 'operand' => array( array( 'type' => 'plugins_activated', 'plugins' => array( 'google-listings-and-ads' ), ), ), ), ), ), 'google-listings-and-ads:alt' => array( 'name' => __( 'Google Listings & Ads', 'woocommerce' ), 'description' => __( 'Reach more shoppers and drive sales for your store. Integrate with Google to list your products for free and launch paid ad campaigns.', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/onboarding/google.svg', WC_PLUGIN_FILE ), 'manage_url' => 'admin.php?page=wc-admin&path=%2Fgoogle%2Fstart', 'is_built_by_wc' => true, ), 'facebook-for-woocommerce' => array( 'name' => __( 'Facebook for WooCommerce', 'woocommerce' ), 'description' => __( 'List products and create ads on Facebook and Instagram with <a href="https://woo.com/products/facebook/">Facebook for WooCommerce</a>', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/onboarding/facebook.png', WC_PLUGIN_FILE ), 'manage_url' => 'admin.php?page=wc-facebook', 'is_visible' => false, 'is_built_by_wc' => false, ), 'facebook-for-woocommerce:alt' => array( 'name' => __( 'Facebook for WooCommerce', 'woocommerce' ), 'description' => __( 'List products and create ads on Facebook and Instagram.', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/onboarding/facebook.png', WC_PLUGIN_FILE ), 'manage_url' => 'admin.php?page=wc-facebook', 'is_visible' => false, 'is_built_by_wc' => false, ), 'pinterest-for-woocommerce' => array( 'name' => __( 'Pinterest for WooCommerce', 'woocommerce' ), 'description' => __( 'Get your products in front of Pinners searching for ideas and things to buy.', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/onboarding/pinterest.png', WC_PLUGIN_FILE ), 'manage_url' => 'admin.php?page=wc-admin&path=%2Fpinterest%2Flanding', 'is_built_by_wc' => true, 'min_php_version' => '7.3', ), 'pinterest-for-woocommerce:alt' => array( 'name' => __( 'Pinterest for WooCommerce', 'woocommerce' ), 'description' => __( 'Get your products in front of Pinterest users searching for ideas and things to buy. Get started with Pinterest and make your entire product catalog browsable.', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/onboarding/pinterest.png', WC_PLUGIN_FILE ), 'manage_url' => 'admin.php?page=wc-admin&path=%2Fpinterest%2Flanding', 'is_built_by_wc' => true, ), 'mailpoet' => array( 'name' => __( 'MailPoet', 'woocommerce' ), 'description' => __( 'Create and send purchase follow-up emails, newsletters, and promotional campaigns straight from your dashboard.', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/onboarding/mailpoet.png', WC_PLUGIN_FILE ), 'manage_url' => 'admin.php?page=mailpoet-newsletters', 'is_built_by_wc' => true, ), 'mailchimp-for-woocommerce' => array( 'name' => __( 'Mailchimp', 'woocommerce' ), 'description' => __( 'Send targeted campaigns, recover abandoned carts and much more with Mailchimp.', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/onboarding/mailchimp-for-woocommerce.png', WC_PLUGIN_FILE ), 'manage_url' => 'admin.php?page=mailchimp-woocommerce', 'is_built_by_wc' => false, ), 'klaviyo' => array( 'name' => __( 'Klaviyo', 'woocommerce' ), 'description' => __( 'Grow and retain customers with intelligent, impactful email and SMS marketing automation and a consolidated view of customer interactions.', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/onboarding/klaviyo.png', WC_PLUGIN_FILE ), 'manage_url' => 'admin.php?page=klaviyo_settings', 'is_built_by_wc' => false, ), 'woocommerce-payments' => array( 'name' => __( 'WooPayments', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/onboarding/wcpay.svg', WC_PLUGIN_FILE ), 'description' => sprintf( /* translators: 1: opening product link tag. 2: closing link tag */ __( 'Accept credit cards and other popular payment methods with %1$sWooPayments%2$s', 'woocommerce' ), '<a href="https://woo.com/products/woocommerce-payments" target="_blank">', '</a>' ), 'is_visible' => array( array( 'type' => 'or', 'operands' => array( array( 'type' => 'base_location_country', 'value' => 'US', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'PR', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'AU', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'CA', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'DE', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'ES', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'FR', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'GB', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'IE', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'IT', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'NZ', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'AT', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'BE', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'NL', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'PL', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'PT', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'CH', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'HK', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'SG', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'CY', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'DK', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'EE', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'FI', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'GR', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'LU', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'LT', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'LV', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'NO', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'MT', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'SI', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'SK', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'BG', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'CZ', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'HR', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'HU', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'RO', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'SE', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'JP', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'AE', 'operation' => '=', ), ), ), DefaultPaymentGateways::get_rules_for_cbd( false ), ), 'is_built_by_wc' => true, 'min_wp_version' => '5.9', ), 'woocommerce-services:shipping' => array( 'name' => __( 'WooCommerce Shipping', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/onboarding/woo.svg', WC_PLUGIN_FILE ), 'description' => sprintf( /* translators: 1: opening product link tag. 2: closing link tag */ __( 'Print shipping labels with %1$sWooCommerce Shipping%2$s', 'woocommerce' ), '<a href="https://woo.com/products/shipping" target="_blank">', '</a>' ), 'is_visible' => array( array( 'type' => 'base_location_country', 'value' => 'US', 'operation' => '=', ), array( 'type' => 'not', 'operand' => array( array( 'type' => 'plugins_activated', 'plugins' => array( 'woocommerce-services' ), ), ), ), array( 'type' => 'or', 'operands' => array( array( array( 'type' => 'option', 'transformers' => array( array( 'use' => 'dot_notation', 'arguments' => array( 'path' => 'product_types', ), ), array( 'use' => 'count', ), ), 'option_name' => 'woocommerce_onboarding_profile', 'value' => 1, 'default' => array(), 'operation' => '!=', ), ), array( array( 'type' => 'option', 'transformers' => array( array( 'use' => 'dot_notation', 'arguments' => array( 'path' => 'product_types.0', ), ), ), 'option_name' => 'woocommerce_onboarding_profile', 'value' => 'downloads', 'default' => '', 'operation' => '!=', ), ), ), ), ), 'is_built_by_wc' => true, ), 'woocommerce-services:tax' => array( 'name' => __( 'WooCommerce Tax', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/onboarding/woo.svg', WC_PLUGIN_FILE ), 'description' => sprintf( /* translators: 1: opening product link tag. 2: closing link tag */ __( 'Get automated sales tax with %1$sWooCommerce Tax%2$s', 'woocommerce' ), '<a href="https://woo.com/products/tax" target="_blank">', '</a>' ), 'is_visible' => array( array( 'type' => 'or', 'operands' => array( array( 'type' => 'base_location_country', 'value' => 'US', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'FR', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'GB', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'DE', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'CA', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'AU', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'GR', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'BE', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'PT', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'DK', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'SE', 'operation' => '=', ), ), ), array( 'type' => 'not', 'operand' => array( array( 'type' => 'plugins_activated', 'plugins' => array( 'woocommerce-services' ), ), ), ), ), 'is_built_by_wc' => true, ), 'jetpack' => array( 'name' => __( 'Jetpack', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/onboarding/jetpack.svg', WC_PLUGIN_FILE ), 'description' => sprintf( /* translators: 1: opening product link tag. 2: closing link tag */ __( 'Enhance speed and security with %1$sJetpack%2$s', 'woocommerce' ), '<a href="https://woo.com/products/jetpack" target="_blank">', '</a>' ), 'is_visible' => array( array( 'type' => 'not', 'operand' => array( array( 'type' => 'plugins_activated', 'plugins' => array( 'jetpack' ), ), ), ), ), 'is_built_by_wc' => false, 'min_wp_version' => '6.0', ), 'mailpoet' => array( 'name' => __( 'MailPoet', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/onboarding/mailpoet.png', WC_PLUGIN_FILE ), 'description' => sprintf( /* translators: 1: opening product link tag. 2: closing link tag */ __( 'Level up your email marketing with %1$sMailPoet%2$s', 'woocommerce' ), '<a href="https://woo.com/products/mailpoet" target="_blank">', '</a>' ), 'manage_url' => 'admin.php?page=mailpoet-newsletters', 'is_visible' => array( array( 'type' => 'not', 'operand' => array( array( 'type' => 'plugins_activated', 'plugins' => array( 'mailpoet' ), ), ), ), ), 'is_built_by_wc' => true, ), 'mailpoet:alt' => array( 'name' => __( 'MailPoet', 'woocommerce' ), 'description' => __( 'Create and send purchase follow-up emails, newsletters, and promotional campaigns straight from your dashboard.', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/onboarding/mailpoet.png', WC_PLUGIN_FILE ), 'manage_url' => 'admin.php?page=mailpoet-newsletters', 'is_built_by_wc' => true, ), 'tiktok-for-business' => array( 'name' => __( 'TikTok for WooCommerce', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/onboarding/tiktok.svg', WC_PLUGIN_FILE ), 'description' => __( 'Grow your online sales by promoting your products on TikTok to over one billion monthly active users around the world.', 'woocommerce' ), 'manage_url' => 'admin.php?page=tiktok', 'is_visible' => array( array( 'type' => 'or', 'operands' => array( array( 'type' => 'base_location_country', 'value' => 'US', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'CA', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'MX', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'AT', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'BE', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'CZ', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'DK', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'FI', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'FR', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'DE', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'GR', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'HU', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'IE', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'IT', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'NL', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'PL', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'PT', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'RO', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'ES', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'SE', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'GB', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'CH', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'NO', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'AU', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'NZ', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'SG', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'MY', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'PH', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'ID', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'VN', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'TH', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'KR', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'IL', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'AE', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'RU', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'UA', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'TR', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'SA', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'BR', 'operation' => '=', ), array( 'type' => 'base_location_country', 'value' => 'JP', 'operation' => '=', ), ), ), ), 'is_built_by_wc' => false, ), 'tiktok-for-business:alt' => array( 'name' => __( 'TikTok for WooCommerce', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/onboarding/tiktok.svg', WC_PLUGIN_FILE ), 'description' => sprintf( /* translators: 1: opening product link tag. 2: closing link tag */ __( 'Create ad campaigns and reach one billion global users with %1$sTikTok for WooCommerce%2$s', 'woocommerce' ), '<a href="https://woo.com/products/tiktok-for-woocommerce" target="_blank">', '</a>' ), 'manage_url' => 'admin.php?page=tiktok', 'is_built_by_wc' => false, 'is_visible' => false, ), ); $plugin = $plugins[ $slug ]; $plugin['key'] = $slug; return $plugin; } /** * Decorate plugin data with core profiler fields. * * - Updated description for the core-profiler. * - Adds learn_more_link and label. * - Adds install_priority, which is used to sort the plugins. The value is determined by the plugin size. Lower = smaller. * * @param array $plugins Array of plugins. * * @return array */ public static function with_core_profiler_fields( array $plugins ) { $_plugins = array( 'woocommerce-payments' => array( 'label' => __( 'Get paid with WooPayments', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/core-profiler/logo-woo.svg', WC_PLUGIN_FILE ), 'description' => __( "Securely accept payments and manage payment activity straight from your store's dashboard", 'woocommerce' ), 'learn_more_link' => 'https://woo.com/products/woocommerce-payments', 'install_priority' => 5, ), 'woocommerce-services:shipping' => array( 'label' => __( 'Print shipping labels with WooCommerce Shipping', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/core-profiler/logo-woo.svg', WC_PLUGIN_FILE ), 'description' => __( 'Print USPS and DHL labels directly from your dashboard and save on shipping.', 'woocommerce' ), 'learn_more_link' => 'https://woo.com/woocommerce-shipping', 'install_priority' => 3, ), 'jetpack' => array( 'label' => __( 'Boost content creation with Jetpack AI Assistant', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/core-profiler/logo-jetpack.svg', WC_PLUGIN_FILE ), 'description' => __( 'Save time on content creation — unlock high-quality blog posts and pages using AI.', 'woocommerce' ), 'learn_more_link' => 'https://woo.com/products/jetpack', 'install_priority' => 8, ), 'pinterest-for-woocommerce' => array( 'label' => __( 'Showcase your products with Pinterest', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/core-profiler/logo-pinterest.svg', WC_PLUGIN_FILE ), 'description' => __( 'Get your products in front of a highly engaged audience.', 'woocommerce' ), 'learn_more_link' => 'https://woo.com/products/pinterest-for-woocommerce', 'install_priority' => 2, ), 'mailpoet' => array( 'label' => __( 'Reach your customers with MailPoet', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/core-profiler/logo-mailpoet.svg', WC_PLUGIN_FILE ), 'description' => __( 'Send purchase follow-up emails, newsletters, and promotional campaigns.', 'woocommerce' ), 'learn_more_link' => 'https://woo.com/products/mailpoet', 'install_priority' => 7, ), 'tiktok-for-business' => array( 'label' => __( 'Create ad campaigns with TikTok', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/core-profiler/logo-tiktok.svg', WC_PLUGIN_FILE ), 'description' => __( 'Create advertising campaigns and reach one billion global users.', 'woocommerce' ), 'learn_more_link' => 'https://woo.com/products/tiktok-for-woocommerce', 'install_priority' => 1, ), 'google-listings-and-ads' => array( 'label' => __( 'Drive sales with Google Listings & Ads', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/core-profiler/logo-google.svg', WC_PLUGIN_FILE ), 'description' => __( 'Reach millions of active shoppers across Google with free product listings and ads.', 'woocommerce' ), 'learn_more_link' => 'https://woo.com/products/google-listings-and-ads', 'install_priority' => 6, ), 'woocommerce-services:tax' => array( 'label' => __( 'Get automated tax rates with WooCommerce Tax', 'woocommerce' ), 'image_url' => plugins_url( '/assets/images/core-profiler/logo-woo.svg', WC_PLUGIN_FILE ), 'description' => __( 'Automatically calculate how much sales tax should be collected – by city, country, or state.', 'woocommerce' ), 'learn_more_link' => 'https://woo.com/products/tax', 'install_priority' => 4, ), ); // Copy shipping for the core-profiler and remove is_visible conditions, except for the country restriction. $_plugins['woocommerce-services:shipping']['is_visible'] = [ array( 'type' => 'base_location_country', 'value' => 'US', 'operation' => '=', ), ]; $remove_plugins_activated_rule = function( $is_visible ) { $is_visible = array_filter( array_map( function( $rule ) { if ( is_object( $rule ) || ! isset( $rule['operand'] ) ) { return $rule; } return array_filter( $rule['operand'], function( $operand ) { return 'plugins_activated' !== $operand['type']; } ); }, $is_visible ) ); return empty( $is_visible ) ? true : $is_visible; }; foreach ( $plugins as &$plugin ) { if ( isset( $_plugins[ $plugin['key'] ] ) ) { $plugin = array_merge( $plugin, $_plugins[ $plugin['key'] ] ); if ( isset( $plugin['is_visible'] ) && is_array( $plugin['is_visible'] ) ) { $plugin['is_visible'] = $remove_plugins_activated_rule( $plugin['is_visible'] ); } } } return $plugins; } }