芝麻web文件管理V1.00
编辑当前文件:/home/royashxg/public_html/wp-content/plugins/fluent-smtp/app/Hooks/Handlers/AdminMenuHandler.php
app = $application; } public function addFluentMailMenu() { add_action('admin_menu', array($this, 'addMenu')); if (isset($_GET['page']) && $_GET['page'] == 'fluent-mail' && is_admin()) { add_action('admin_enqueue_scripts', array($this, 'enqueueAssets')); if (isset($_REQUEST['sub_action']) && $_REQUEST['sub_action'] == 'slack_success') { add_action('admin_init', function () { $nonce = Arr::get($_REQUEST, '_slacK_nonce'); if (!wp_verify_nonce($nonce, 'fluent_smtp_slack_register_site')) { wp_redirect(admin_url('options-general.php?page=fluent-mail&slack_security_failed=1#/notification-settings')); die(); } $settings = (new Settings())->notificationSettings(); $token = Arr::get($_REQUEST, 'site_token'); if ($token && $token == Arr::get($settings, 'slack.token')) { $settings['slack'] = [ 'status' => 'yes', 'token' => sanitize_text_field($token), 'slack_team' => sanitize_text_field(Arr::get($_REQUEST, 'slack_team')), 'webhook_url' => sanitize_url(Arr::get($_REQUEST, 'slack_webhook')) ]; $settings['active_channel'] = 'slack'; update_option('_fluent_smtp_notify_settings', $settings); } wp_redirect(admin_url('options-general.php?page=fluent-mail#/notification-settings')); die(); }); } } add_action('admin_bar_menu', array($this, 'addSimulationBar'), 999); add_action('admin_init', array($this, 'initAdminWidget')); add_action('install_plugins_table_header', function () { if (!isset($_REQUEST['s']) || empty($_REQUEST['s']) || empty($_REQUEST['tab']) || $_REQUEST['tab'] != 'search') { return; } $search = str_replace(['%20', '_', '-'], ' ', $_REQUEST['s']); $search = trim(strtolower(sanitize_text_field($search))); $searchTerms = ['wp-mail-smtp', 'wp mail', 'wp mail smtp', 'post mailer', 'wp smtp', 'smtp mail', 'smtp', 'post smtp', 'easy smtp', 'easy wp smtp', 'smtp mailer', 'gmail smtp', 'offload ses']; if (!strpos($search, 'smtp')) { if (!in_array($search, $searchTerms)) { return; } } ?>
(
)
__('You do not have permission to see this data', 'fluent-smtp') ]); } wp_send_json([ 'html' => $this->getDashboardWidgetHtml() ]); }); } public function addMenu() { $title = $this->app->applyCustomFilters('admin-menu-title', __('FluentSMTP', 'fluent-smtp')); add_submenu_page( 'options-general.php', $title, $title, 'manage_options', 'fluent-mail', [$this, 'renderApp'], 16 ); } public function renderApp() { $dailyTaskHookName = 'fluentmail_do_daily_scheduled_tasks'; if (!wp_next_scheduled($dailyTaskHookName)) { wp_schedule_event(time(), 'daily', $dailyTaskHookName); } $this->app->view->render('admin.menu'); } public function enqueueAssets() { add_action('wp_print_scripts', function () { $isSkip = apply_filters('fluentsmtp_skip_no_conflict', false); if ($isSkip) { return; } global $wp_scripts; if (!$wp_scripts) { return; } $themeUrl = content_url('themes'); $pluginUrl = plugins_url(); foreach ($wp_scripts->queue as $script) { if (empty($wp_scripts->registered[$script]) || empty($wp_scripts->registered[$script]->src)) { continue; } $src = $wp_scripts->registered[$script]->src; $isMatched = strpos($src, $pluginUrl) !== false && !strpos($src, 'fluent-smtp') !== false; if (!$isMatched) { continue; } $isMatched = strpos($src, $themeUrl) !== false; if ($isMatched) { wp_dequeue_script($wp_scripts->registered[$script]->handle); } } }, 1); wp_enqueue_script( 'fluent_mail_admin_app_boot', fluentMailMix('admin/js/boot.js'), ['jquery'], FLUENTMAIL_PLUGIN_VERSION ); wp_enqueue_script('fluentmail-chartjs', fluentMailMix('libs/chartjs/Chart.min.js'), [], FLUENTMAIL_PLUGIN_VERSION); wp_enqueue_script('fluentmail-vue-chartjs', fluentMailMix('libs/chartjs/vue-chartjs.min.js'), [], FLUENTMAIL_PLUGIN_VERSION); wp_enqueue_script('dompurify', fluentMailMix('libs/purify/purify.min.js'), [], '2.4.3'); wp_enqueue_style( 'fluent_mail_admin_app', fluentMailMix('admin/css/fluent-mail-admin.css'), [], FLUENTMAIL_PLUGIN_VERSION ); $user = get_user_by('ID', get_current_user_id()); $disable_recommendation = defined('DISALLOW_FILE_MODS') && DISALLOW_FILE_MODS; $settings = $this->getMailerSettings(); $recommendedSettings = false; if (empty($settings['connections'])) { $recommendedSettings = (new Converter())->getSuggestedConnection(); } $displayName = trim($user->first_name . ' ' . $user->last_name); if (!$displayName) { $displayName = $user->display_name; } wp_localize_script('fluent_mail_admin_app_boot', 'FluentMailAdmin', [ 'slug' => FLUENTMAIL, 'brand_logo' => esc_url(fluentMailMix('images/logo.svg')), 'nonce' => wp_create_nonce(FLUENTMAIL), 'settings' => $settings, 'images_url' => esc_url(fluentMailMix('images/')), 'has_fluentcrm' => defined('FLUENTCRM'), 'has_fluentform' => defined('FLUENTFORM'), 'user_email' => $user->user_email, 'user_display_name' => $displayName, 'require_optin' => $this->isRequireOptin(), 'has_ninja_tables' => defined('NINJA_TABLES_VERSION'), 'disable_recommendation' => apply_filters('fluentmail_disable_recommendation', false), 'disable_installation' => $disable_recommendation, 'plugin_url' => 'https://fluentsmtp.com/?utm_source=wp&utm_medium=install&utm_campaign=dashboard', 'trans' => $this->getTrans(), 'recommended' => $recommendedSettings, 'is_disabled_defined' => defined('FLUENTMAIL_SIMULATE_EMAILS') && FLUENTMAIL_SIMULATE_EMAILS ]); do_action('fluent_mail_loading_app'); wp_enqueue_script( 'fluent_mail_admin_app', fluentMailMix('admin/js/fluent-mail-admin-app.js'), ['fluent_mail_admin_app_boot'], FLUENTMAIL_PLUGIN_VERSION, true ); add_filter('admin_footer_text', function ($text) { return sprintf( __('%1$s is a free plugin & it will be always free %2$s. %3$s', 'fluent-smtp'), '
FluentSMTP
', '
'. esc_html__('(Learn why it\'s free)', 'fluent-smtp') .'
', '
'. esc_html__('Write a review ★★★★★', 'fluent-smtp') .'
' ); }); } protected function getMailerSettings() { $settings = $this->app->make(Manager::class)->getMailerConfigAndSettings(true); if ($settings['mappings'] && $settings['connections']) { $validMappings = array_keys(Arr::get($settings, 'connections', [])); $settings['mappings'] = array_filter($settings['mappings'], function ($key) use ($validMappings) { return in_array($key, $validMappings); }); } $settings['providers']['outlook']['callback_url'] = rest_url('fluent-smtp/outlook_callback'); $settings = array_merge( $settings, [ 'user_email' => wp_get_current_user()->user_email ] ); return $settings; } public function maybeAdminNotice() { if (!current_user_can('manage_options')) { return; } $connections = $this->app->make(Manager::class)->getConfig('connections'); global $wp_version; $requireUpdate = version_compare($wp_version, '5.5', '<'); if ($requireUpdate) { ?>
app->make(Manager::class)->getConfig('misc'); if ((!empty($misc['simulate_emails']) && $misc['simulate_emails'] == 'yes') || (defined('FLUENTMAIL_SIMULATE_EMAILS') && FLUENTMAIL_SIMULATE_EMAILS)) { $args = [ 'parent' => 'top-secondary', 'id' => 'fluentsmtp_simulated', 'title' => __('Email Disabled', 'fluent-smtp'), 'href' => admin_url('options-general.php?page=fluent-mail#/connections'), 'meta' => false ]; echo ''; $adminBar->add_node($args); } } public function isRequireOptin() { $opted = get_option('_fluentsmtp_sub_update'); if ($opted) { return 'no'; } // check if dismissed $dismissedStamp = get_option('_fluentsmtp_dismissed_timestamp'); if ($dismissedStamp && (time() - $dismissedStamp) < 30 * 24 * 60 * 60) { return 'no'; } return 'yes'; } public function initAdminWidget() { // This widget should be displayed for certain high-level users only. if (!current_user_can('manage_options') || apply_filters('fluent_mail_disable_dashboard_widget', false)) { return; } add_action('wp_dashboard_setup', function () { $widget_key = 'fluentsmtp_reports_widget'; wp_add_dashboard_widget( $widget_key, esc_html__('Fluent SMTP', 'fluent-smtp'), [$this, 'dashWidgetContent'] ); }); } public function dashWidgetContent() { ?>
getStats(); $stats['today'] = [ 'title' => __('Today', 'fluent-smtp'), 'sent' => ($allTime['sent']) ? $logModel->getTotalCountStat('sent', $startToday) : 0, 'failed' => ($allTime['failed']) ? $logModel->getTotalCountStat('failed', $startToday) : 0 ]; $lastWeek = gmdate('Y-m-d 00:00:01', strtotime('-7 days')); $stats['week'] = [ 'title' => __('Last 7 days', 'fluent-smtp'), 'sent' => ($allTime['sent']) ? $logModel->getTotalCountStat('sent', $lastWeek) : 0, 'failed' => ($allTime['failed']) ? $logModel->getTotalCountStat('failed', $lastWeek) : 0, ]; $stats['all_time'] = [ 'title' => __('All', 'fluent-smtp'), 'sent' => $allTime['sent'], 'failed' => $allTime['failed'], ]; ob_start(); ?>