self::ID, 'slug' => 'featherdash', 'premium_slug' => 'featherdash-pro', 'type' => 'plugin', 'public_key' => self::PUBLIC_KEY, 'is_premium' => false, 'premium_suffix' => 'Pro', 'has_addons' => false, 'has_paid_plans' => true, 'is_org_compliant' => true, 'menu' => [ 'slug' => 'featherdash', 'first-path' => 'options-general.php?page=featherdash', 'parent' => [ 'slug' => 'options-general.php', ], 'contact' => true, 'support' => false, ], 'is_live' => true, ] ); // Freemius runs WordPress' uninstall for us and reports it. self::$fs->add_action( 'after_uninstall', [Uninstall::class, 'run'] ); // Our icon on the pricing and opt-in screens, instead of the SDK's // default (it has no WordPress.org icon to fetch). The path goes // through WP_PLUGIN_DIR because Freemius turns it into a URL by // prefix, which fails for a symlinked plugin's real path. self::$fs->add_filter( 'plugin_icon', static fn(): string => WP_PLUGIN_DIR . '/' . dirname( plugin_basename( FEATHERDASH_FILE ) ) . '/assets/images/icon-256x256.png' ); do_action( 'featherdash_fs_loaded' ); return self::$fs; } /** * Agency mode: the DigitalBrew client sites need no licence. On when * FEATHERDASH_AGENCY is true, or (without the constant) when the * `.featherdash-agency` marker is present — it is in the git repository the * sites install from with Composer, and bin/release-zip.sh leaves it out * of the Freemius upload. Also on while the Freemius product isn't set up. */ public static function agency() : bool { if ( defined( 'FEATHERDASH_AGENCY' ) ) { return (bool) FEATHERDASH_AGENCY; } return self::ID === '' || self::PUBLIC_KEY === '' || file_exists( FEATHERDASH_DIR . '.featherdash-agency' ); } }