| 1 |
<?php |
| 2 |
|
| 3 |
namespace WPEXtra; |
| 4 |
|
| 5 |
class WPEXtra |
| 6 |
{ |
| 7 |
private static $instance; |
| 8 |
|
| 9 |
public static function instance() |
| 10 |
{ |
| 11 |
if (! isset(self::$instance)) { |
| 12 |
self::$instance = new self; |
| 13 |
} |
| 14 |
|
| 15 |
return self::$instance; |
| 16 |
} |
| 17 |
|
| 18 |
public function __construct() |
| 19 |
{ |
| 20 |
$this->boot(); |
| 21 |
add_action('activated_plugin', [$this, 'activate_plugin_redirect']); |
| 22 |
add_action('plugins_loaded', [$this, 'loadTextDomain']); |
| 23 |
add_filter('plugin_action_links_' . plugin_basename(WPEX_FILE), [$this, 'plugin_action_links']); |
| 24 |
add_filter('plugin_row_meta', [$this, 'plugin_row_meta'], 10, 2 ); |
| 25 |
if (wp_extra_get_option('mode')) { |
| 26 |
add_action('admin_enqueue_scripts', [$this, 'admin_enqueue_scripts']); |
| 27 |
} |
| 28 |
} |
| 29 |
|
| 30 |
function admin_enqueue_scripts() { |
| 31 |
?><style>#nav-cop .nav-menu .nav-item span, .pro {display: none}</style><?php |
| 32 |
} |
| 33 |
|
| 34 |
public function activate_plugin_redirect( $plugin_file ) { |
| 35 |
if( !wp_doing_ajax() && $plugin_file == plugin_basename( WPEX_FILE ) ) { |
| 36 |
wp_safe_redirect( admin_url( 'admin.php?page=wp-extra' ) ); |
| 37 |
exit(); |
| 38 |
} |
| 39 |
} |
| 40 |
|
| 41 |
public function loadTextdomain() |
| 42 |
{ |
| 43 |
load_plugin_textdomain('wp-extra', false, dirname(plugin_basename(WPEX_FILE)) . '/languages/'); |
| 44 |
} |
| 45 |
|
| 46 |
public function plugin_action_links( $links ) { |
| 47 |
$action_links = array( |
| 48 |
'settings' => '<a href="' . admin_url( 'admin.php?page=wp-extra' ) . '">' .__( 'Settings' ) . '</a>', |
| 49 |
); |
| 50 |
return array_merge( $action_links, $links ); |
| 51 |
} |
| 52 |
|
| 53 |
public function plugin_row_meta($plugin_meta, $plugin_file) { |
| 54 |
if ((plugin_basename(WPEX_FILE) === $plugin_file) && !wp_extra_key()) { |
| 55 |
$row_meta = array( |
| 56 |
'<a href="https://wpvnteam.com/donate/" target="_blank">✪ ' .__('Donate to this plugin »') . '</a>', |
| 57 |
); |
| 58 |
|
| 59 |
$row_meta[] = '<a href="https://wpvnteam.com/downloads/wp-extra-pro/" target="_blank"><strong style="color:#d54e21;font-weight:bold">' .__('Go Premium') . '</strong></a>'; |
| 60 |
|
| 61 |
return array_merge($plugin_meta, $row_meta); |
| 62 |
} |
| 63 |
|
| 64 |
return $plugin_meta; |
| 65 |
} |
| 66 |
|
| 67 |
public function boot() |
| 68 |
{ |
| 69 |
new Settings(); |
| 70 |
$enabledModules = wp_extra_get_option('modules'); |
| 71 |
$modules = [ |
| 72 |
'dashboard' => Modules\WPEX_Dashboards::class, |
| 73 |
'posts' => Modules\WPEX_Posts::class, |
| 74 |
'media' => Modules\WPEX_Media::class, |
| 75 |
'code' => Modules\WPEX_Code::class, |
| 76 |
'admins' => Modules\WPEX_Admins::class, |
| 77 |
'logins' => Modules\WPEX_Logins::class, |
| 78 |
'comments' => Modules\WPEX_Comments::class, |
| 79 |
'security' => Modules\WPEX_Security::class, |
| 80 |
'optimize' => Modules\WPEX_Optimize::class, |
| 81 |
'tools' => Modules\WPEX_Tools::class, |
| 82 |
'smtp' => Modules\WPEX_SMTP::class, |
| 83 |
]; |
| 84 |
foreach ($modules as $key => $class) { |
| 85 |
if (is_string($key) && $enabledModules && in_array($key, $enabledModules)) { |
| 86 |
new $class; |
| 87 |
} |
| 88 |
} |
| 89 |
} |
| 90 |
|
| 91 |
} |