OwlCyberSecurity - MANAGER
Edit File: ExtraPluginsMng.php
<?php namespace Duplicator\Utils\ExtraPlugins; final class ExtraPluginsMng { /** @var ?self */ private static $instance = null; /** @var array<string, ExtraItem> key slug item */ protected $plugins = array(); /** * * @return self */ public static function getInstance() { if (is_null(self::$instance)) { self::$instance = new self(); } return self::$instance; } /** * Singleton constructor */ protected function __construct() { $this->plugins = self::getInitList(); } /** * Execute callback for each plugin * * @param callable $callback callback function * * @return void */ public function foreachCallback($callback) { if (!is_callable($callback)) { return; } foreach ($this->plugins as $plugin) { call_user_func($callback, $plugin); } } /** * Get all plugins * * @return ExtraItem[] All plugin items */ public function getAll() { return $this->plugins; } /** * Returns plugin by slug * * @param string $slug plugin slug * * @return false|ExtraItem plugin item or false if not found */ public function getBySlug($slug) { if (strlen($slug) === 0) { return false; } if (!isset($this->plugins[$slug])) { return false; } return (isset($this->plugins[$slug]) ? $this->plugins[$slug] : false); } /** * Install plugin slug * * @param string $slug plugin slug * @param string $message message * * @return bool true if plugin installed and activated or false on failure */ public function install($slug, &$message = '') { if (strlen($slug) === 0) { $message = __('Plugin slug is empty', 'duplicator'); return false; } if (($plugin = $this->getBySlug($slug)) == false) { $message = __('Plugin not found', 'duplicator'); return false; } $result = true; ob_start(); if ($plugin->install() == false) { $result = false; } elseif ($plugin->activate() == false) { $result = false; } $message = ob_get_clean(); return $result; } /** * Init addon plugins * * @return void */ private static function getInitList() { $result = array(); $item = new ExtraItem( __('OptinMonster', 'duplicator'), 'optinmonster/optin-monster-wp-api.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-om.png', __('Instantly get more subscribers, leads, and sales with the #1 conversion optimization toolkit. Create ' . 'high converting popups, announcement bars, spin a wheel, and more with smart targeting and personalization.', 'duplicator'), 'https://downloads.wordpress.org/plugin/optinmonster.zip', 'https://wordpress.org/plugins/optinmonster/' ); $result[$item->getSlug()] = $item; $item = new ExtraItem( __('MonsterInsights', 'duplicator'), 'google-analytics-for-wordpress/googleanalytics.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-mi.png', __( 'The leading WordPress analytics plugin that shows you how people find and use your website, so you can ' . 'make data driven decisions to grow your business. Properly set up Google Analytics without writing code.', 'duplicator' ), 'https://downloads.wordpress.org/plugin/google-analytics-for-wordpress.zip', 'https://wordpress.org/plugins/google-analytics-for-wordpress/' ); $item->setPro( __('MonsterInsights Pro', 'duplicator'), 'google-analytics-premium/googleanalytics-premium.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-mi.png', __( 'The leading WordPress analytics plugin that shows you how people find and use your website, so you ' . 'can make data driven decisions to grow your business. Properly set up Google Analytics without writing code.', 'duplicator' ), 'https://www.monsterinsights.com/?utm_source=duplicatorplugin&utm_medium=link&utm_campaign=About%20Duplicator' ); $result[$item->getSlug()] = $item; $item = new ExtraItem( __('WPForms', 'duplicator'), 'wpforms-lite/wpforms.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-wpforms.png', __( 'The best drag & drop WordPress form builder. Easily create beautiful contact forms, surveys, payment ' . 'forms, and more with our 100+ form templates. Trusted by over 4 million websites as the best forms plugin.', 'duplicator' ), 'https://downloads.wordpress.org/plugin/wpforms-lite.zip', 'https://wordpress.org/plugins/wpforms-lite/' ); $item->setPro( __('WPForms Pro', 'duplicator'), 'wpforms/wpforms.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-wpforms.png', __( 'The easiest drag & drop WordPress form builder plugin to create beautiful contact forms, subscription ' . 'forms, payment forms, and more in minutes. No coding skills required.', 'duplicator' ), 'https://wpforms.com/?utm_source=duplicatorplugin&utm_medium=link&utm_campaign=About%20Duplicator' ); $result[$item->getSlug()] = $item; $item = new ExtraItem( __('WP Mail SMTP', 'duplicator'), 'wp-mail-smtp/wp_mail_smtp.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-smtp.png', __( 'Improve your WordPress email deliverability and make sure that your website emails reach user\'s inbox ' . 'with the #1 SMTP plugin for WordPress. Over 3 million websites use it to fix WordPress email issues.', 'duplicator' ), 'https://downloads.wordpress.org/plugin/wp-mail-smtp.zip', 'https://wordpress.org/plugins/wp-mail-smtp/' ); $item->setPro( __('WP Mail SMTP Pro', 'duplicator'), 'wp-mail-smtp-pro/wp_mail_smtp.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-smtp.png', __( 'Improve your WordPress email deliverability and make sure that your website emails reach user\'s inbox ' . 'with the #1 SMTP plugin for WordPress. Over 3 million websites use it to fix WordPress email issues.', 'duplicator' ), 'https://wpmailsmtp.com/?utm_source=duplicatorplugin&utm_medium=link&utm_campaign=About%20Duplicator' ); $result[$item->getSlug()] = $item; $item = new ExtraItem( __('AIOSEO', 'duplicator'), 'all-in-one-seo-pack/all_in_one_seo_pack.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-aioseo.png', __( 'The original WordPress SEO plugin and toolkit that improves your website\'s search rankings. Comes with ' . 'all the SEO features like Local SEO, WooCommerce SEO, sitemaps, SEO optimizer, schema, and more.', 'duplicator' ), 'https://downloads.wordpress.org/plugin/all-in-one-seo-pack.zip', 'https://wordpress.org/plugins/all-in-one-seo-pack/' ); $item->setPro( __('AIOSEO Pro', 'duplicator'), 'all-in-one-seo-pack-pro/all_in_one_seo_pack.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-aioseo.png', __( 'The original WordPress SEO plugin and toolkit that improves your website\'s search rankings. Comes ' . 'with all the SEO features like Local SEO, WooCommerce SEO, sitemaps, SEO optimizer, schema, and more.', 'duplicator' ), 'https://aioseo.com/?utm_source=duplicatorplugin&utm_medium=link&utm_campaign=About%20Duplicator' ); $result[$item->getSlug()] = $item; $item = new ExtraItem( __('SeedProd', 'duplicator'), 'coming-soon/coming-soon.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-seedprod.png', __('The best WordPress coming soon page plugin to create a beautiful coming soon page, maintenance mode page, ' . 'or landing page. No coding skills required.', 'duplicator'), 'https://downloads.wordpress.org/plugin/coming-soon.zip', 'https://wordpress.org/plugins/coming-soon/' ); $item->setPro( __('SeedProd Pro', 'duplicator'), 'seedprod-coming-soon-pro-5/seedprod-coming-soon-pro-5.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-seedprod.png', __('The best WordPress coming soon page plugin to create a beautiful coming soon page, maintenance mode ' . 'page, or landing page. No coding skills required.', 'duplicator'), 'https://www.seedprod.com/?utm_source=duplicatorplugin&utm_medium=link&utm_campaign=About%20Duplicator' ); $result[$item->getSlug()] = $item; $item = new ExtraItem( __('RafflePress', 'duplicator'), 'rafflepress/rafflepress.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-rp.png', __( 'Turn your website visitors into brand ambassadors! Easily grow your email list, website traffic, and social ' . 'media followers with the most powerful giveaways & contests plugin for WordPress.', 'duplicator' ), 'https://downloads.wordpress.org/plugin/rafflepress.zip', 'https://wordpress.org/plugins/rafflepress/' ); $item->setPro( __('RafflePress Pro', 'duplicator'), 'rafflepress-pro/rafflepress-pro.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-rp.png', __( 'Turn your website visitors into brand ambassadors! Easily grow your email list, website traffic, and ' . 'social media followers with the most powerful giveaways & contests plugin for WordPress.', 'duplicator' ), 'https://rafflepress.com/?utm_source=duplicatorplugin&utm_medium=link&utm_campaign=About%20Duplicator' ); $result[$item->getSlug()] = $item; $item = new ExtraItem( __('PushEngage', 'duplicator'), 'pushengage/main.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-pushengage.png', __( 'Connect with your visitors after they leave your website with the leading web push notification software. ' . 'Over 10,000+ businesses worldwide use PushEngage to send 9 billion notifications each month.', 'duplicator' ), 'https://downloads.wordpress.org/plugin/pushengage.zip', 'https://wordpress.org/plugins/pushengage/' ); $result[$item->getSlug()] = $item; $item = new ExtraItem( __('Smash Balloon Instagram Feeds', 'duplicator'), 'instagram-feed/instagram-feed.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-sb-instagram.png', __( 'Easily display Instagram content on your WordPress site without writing any code. Comes with multiple templates, ' . 'ability to show content from multiple accounts, hashtags, and more. Trusted by 1 million websites.', 'duplicator' ), 'https://downloads.wordpress.org/plugin/instagram-feed.zip', 'https://wordpress.org/plugins/instagram-feed/' ); $item->setPro( __('Smash Balloon Instagram Feeds Pro', 'duplicator'), 'instagram-feed-pro/instagram-feed.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-sb-instagram.png', __( 'Easily display Instagram content on your WordPress site without writing any code. Comes with multiple ' . 'templates, ability to show content from multiple accounts, hashtags, and more. Trusted by 1 million websites.', 'duplicator' ), 'https://smashballoon.com/instagram-feed/?utm_source=duplicatorplugin&utm_medium=link&utm_campaign=About%20Duplicator' ); $result[$item->getSlug()] = $item; $item = new ExtraItem( __('Smash Balloon Facebook Feeds', 'duplicator'), 'custom-facebook-feed/custom-facebook-feed.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-sb-fb.png', __( 'Easily display Facebook content on your WordPress site without writing any code. Comes with multiple templates, ' . 'ability to embed albums, group content, reviews, live videos, comments, and reactions.', 'duplicator' ), 'https://downloads.wordpress.org/plugin/custom-facebook-feed.zip', 'https://wordpress.org/plugins/custom-facebook-feed/' ); $item->setPro( __('Smash Balloon Facebook Feeds Pro', 'duplicator'), 'custom-facebook-feed-pro/custom-facebook-feed.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-sb-fb.png', __( 'Easily display Facebook content on your WordPress site without writing any code. Comes with multiple templates, ' . 'ability to embed albums, group content, reviews, live videos, comments, and reactions.', 'duplicator' ), 'https://smashballoon.com/custom-facebook-feed/?utm_source=duplicatorplugin&utm_medium=link&utm_campaign=About%20Duplicator' ); $result[$item->getSlug()] = $item; $item = new ExtraItem( __('Smash Balloon Twitter Feeds', 'duplicator'), 'custom-twitter-feeds/custom-twitter-feed.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-sb-twitter.png', __( 'Easily display Twitter content in WordPress without writing any code. Comes with multiple layouts, ability ' . 'to combine multiple Twitter feeds, Twitter card support, tweet moderation, and more.', 'duplicator' ), 'https://downloads.wordpress.org/plugin/custom-twitter-feeds.zip', 'https://wordpress.org/plugins/custom-twitter-feeds/' ); $item->setPro( __('Smash Balloon Twitter Feeds Pro', 'duplicator'), 'custom-twitter-feeds-pro/custom-twitter-feeds.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-sb-twitter.png', __( 'Easily display Twitter content in WordPress without writing any code. Comes with multiple layouts, ' . 'ability to combine multiple Twitter feeds, Twitter card support, tweet moderation, and more.', 'duplicator' ), 'https://smashballoon.com/custom-twitter-feeds/?utm_source=duplicatorplugin&utm_medium=link&utm_campaign=About%20Duplicator' ); $result[$item->getSlug()] = $item; $item = new ExtraItem( __('Smash Balloon YouTube Feeds', 'duplicator'), 'feeds-for-youtube/youtube-feed.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-sb-youtube.png', __( 'Easily display YouTube videos on your WordPress site without writing any code. Comes with multiple layouts, ' . 'ability to embed live streams, video filtering, ability to combine multiple channel videos, and more.', 'duplicator' ), 'https://downloads.wordpress.org/plugin/feeds-for-youtube.zip', 'https://wordpress.org/plugins/feeds-for-youtube/' ); $item->setPro( __('Smash Balloon YouTube Feeds Pro', 'duplicator'), 'youtube-feed-pro/youtube-feed.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-sb-youtube.png', __( 'Easily display YouTube videos on your WordPress site without writing any code. Comes with multiple ' . 'layouts, ability to embed live streams, video filtering, ability to combine multiple channel videos, and more.', 'duplicator' ), 'https://smashballoon.com/youtube-feed/?utm_source=duplicatorplugin&utm_medium=link&utm_campaign=About%20Duplicator' ); $result[$item->getSlug()] = $item; $item = new ExtraItem( __('TrustPulse', 'duplicator'), 'trustpulse-api/trustpulse.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-trustpulse.png', __( 'Boost your sales and conversions by up to 15% with real-time social proof notifications. TrustPulse helps ' . 'you show live user activity and purchases to help convince other users to purchase.', 'duplicator' ), 'https://downloads.wordpress.org/plugin/trustpulse-api.zip', 'https://wordpress.org/plugins/trustpulse-api/' ); $result[$item->getSlug()] = $item; $item = new ExtraItem( __('SearchWP', 'duplicator'), 'searchwp/index.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-searchwp.png', __( 'The most advanced WordPress search plugin. Customize your WordPress search algorithm, reorder search results, ' . 'track search metrics, and everything you need to leverage search to grow your business.', 'duplicator' ), 'https://searchwp.com/?utm_source=duplicatorplugin&utm_medium=link&utm_campaign=About%20Duplicator' ); $result[$item->getSlug()] = $item; $item = new ExtraItem( __('AffiliateWP', 'duplicator'), 'affiliate-wp/affiliate-wp.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-affwp.png', __( 'The #1 affiliate management plugin for WordPress. Easily create an affiliate program for your eCommerce ' . 'store or membership site within minutes and start growing your sales with the power of referral marketing.', 'duplicator' ), 'https://affiliatewp.com/?utm_source=duplicatorplugin&utm_medium=link&utm_campaign=About%20Duplicator', false ); $result[$item->getSlug()] = $item; $item = new ExtraItem( __('WP Simple Pay', 'duplicator'), 'stripe/stripe-checkout.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-wp-simple-pay.png', __( 'The #1 Stripe payments plugin for WordPress. Start accepting one-time and recurring payments on your ' . 'WordPress site without setting up a shopping cart. No code required.', 'duplicator' ), 'https://downloads.wordpress.org/plugin/stripe.zip', 'https://wordpress.org/plugins/stripe/' ); $item->setPro( __('WP Simple Pay Pro', 'duplicator'), 'wp-simple-pay-pro-3/simple-pay.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-wp-simple-pay.png', __( 'The #1 Stripe payments plugin for WordPress. Start accepting one-time and recurring payments on your ' . 'WordPress site without setting up a shopping cart. No code required.', 'duplicator' ), 'https://wpsimplepay.com/lite-upgrade/?utm_source=duplicatorplugin&utm_medium=link&utm_campaign=About%20Duplicator' ); $result[$item->getSlug()] = $item; $item = new ExtraItem( __('Easy Digital Downloads', 'duplicator'), 'easy-digital-downloads/easy-digital-downloads.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-edd.png', __('The best WordPress eCommerce plugin for selling digital downloads. Start selling eBooks, software, music, ' . 'digital art, and more within minutes. Accept payments, manage subscriptions, advanced access control, and more.', 'duplicator'), 'https://downloads.wordpress.org/plugin/easy-digital-downloads.zip', 'https://wordpress.org/plugins/easy-digital-downloads/' ); $result[$item->getSlug()] = $item; $item = new ExtraItem( __('Sugar Calendar', 'duplicator'), 'sugar-calendar-lite/sugar-calendar-lite.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-sugarcalendar.png', __('A simple & powerful event calendar plugin for WordPress that comes with all the event management features ' . 'including payments, scheduling, timezones, ticketing, recurring events, and more.', 'duplicator'), 'https://downloads.wordpress.org/plugin/sugar-calendar-lite.zip', 'https://wordpress.org/plugins/sugar-calendar-lite/' ); $item->setPro( __('Sugar Calendar Pro', 'duplicator'), 'sugar-calendar/sugar-calendar.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-sugarcalendar.png', __('A simple & powerful event calendar plugin for WordPress that comes with all the event management features ' . 'including payments, scheduling, timezones, ticketing, recurring events, and more.', 'duplicator'), 'https://sugarcalendar.com/?utm_source=duplicatorplugin&utm_medium=link&utm_campaign=About%20Duplicator' ); $result[$item->getSlug()] = $item; $item = new ExtraItem( __('WPCode', 'duplicator'), 'insert-headers-and-footers/ihaf.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-wpcode.png', __('Future proof your WordPress customizations with the most popular code snippet management plugin for WordPress. ' . 'Trusted by over 1,500,000+ websites for easily adding code to WordPress right from the admin area.', 'duplicator'), 'https://downloads.wordpress.org/plugin/insert-headers-and-footers.zip', 'https://wordpress.org/plugins/insert-headers-and-footers/' ); $result[$item->getSlug()] = $item; $item = new ExtraItem( __('Search & Replace Everything', 'duplicator'), 'search-replace-wpcode/wsrw.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-search-and-replace.png', __('Efficiently manage your website’s content directly from the WordPress admin with Search & Replace Everything by WPCode. ' . 'This tool is essential for site migrations, content updates, or any situation where batch text and image replacements are needed.', 'duplicator'), 'https://downloads.wordpress.org/plugin/search-replace-wpcode.zip', 'https://wordpress.org/plugins/search-replace-wpcode/' ); $result[$item->getSlug()] = $item; $item = new ExtraItem( __('Uncanny Automator', 'duplicator'), 'uncanny-automator/uncanny-automator.php', DUPLICATOR_PLUGIN_URL . 'assets/img/about/plugin-uncanny-automator.png', __('Uncanny Automator is the easiest and most powerful way to automate your WordPress site with no code. ' . 'Build automations in minutes that connect your WordPress plugins, sites and apps together using billions of recipe combinations.', 'duplicator'), 'https://downloads.wordpress.org/plugin/uncanny-automator.zip', 'https://wordpress.org/plugins/uncanny-automator/' ); $result[$item->getSlug()] = $item; return $result; } }