Plugin file => name. */ private static function discount_candidates(): array { /** * Filters the discount rule plugins Strikewise warns about. * * @param array $plugins Plugin file => name. */ return (array) apply_filters( 'strikewise_discount_plugins', array( 'woo-discount-rules/woo-discount-rules.php' => 'Discount Rules for WooCommerce', 'advanced-dynamic-pricing-for-woocommerce/advanced-dynamic-pricing-for-woocommerce.php' => 'Advanced Dynamic Pricing for WooCommerce', 'woocommerce-dynamic-pricing/woocommerce-dynamic-pricing.php' => 'WooCommerce Dynamic Pricing', 'yith-woocommerce-dynamic-pricing-and-discounts-premium/init.php' => 'YITH WooCommerce Dynamic Pricing and Discounts', 'wc-dynamic-pricing-and-discounts/wc-dynamic-pricing-and-discounts.php' => 'WooCommerce Dynamic Pricing & Discounts', ) ); } /** * @return array Plugin file => name. */ private static function currency_candidates(): array { /** * Filters the multi-currency plugins Strikewise warns about. * * @param array $plugins Plugin file => name. */ return (array) apply_filters( 'strikewise_currency_plugins', array( 'woocommerce-multilingual/wpml-woocommerce.php' => 'WooCommerce Multilingual & Multicurrency', 'woo-multi-currency/woo-multi-currency.php' => 'CURCY Multi Currency', 'woocommerce-multi-currency/woocommerce-multi-currency.php' => 'CURCY Multi Currency', 'woocommerce-currency-switcher/index.php' => 'FOX Currency Switcher', 'woocommerce-aelia-currencyswitcher/woocommerce-aelia-currencyswitcher.php' => 'Aelia Currency Switcher', ) ); } /** * @return string[] Names of the active discount rule plugins. */ public static function discount_plugins(): array { return self::active( self::discount_candidates() ); } /** * @return string[] Names of the active multi-currency plugins. */ public static function currency_plugins(): array { return self::active( self::currency_candidates() ); } /** * @param array $candidates * @return string[] */ private static function active( array $candidates ): array { $active = array_merge( (array) get_option( 'active_plugins', array() ), array_keys( (array) get_site_option( 'active_sitewide_plugins', array() ) ) ); return array_values( array_unique( array_intersect_key( $candidates, array_flip( $active ) ) ) ); } }