文件操作 - Menu.php
返回文件管理
返回主菜单
删除本文件
文件: /home/www/public/wp-content/plugins/ionos-loop/inc/Menu.php
编辑文件内容
<?php namespace Ionos\Loop\Controller; use Ionos\Libraryloop\Options; use Ionos\Libraryloop\Menu as Librarymenu; use function Ionos\Loop\get_loop_rest_api; use function Ionos\Loop\get_surveys; /** * Add the menu page for the Loop plugin. */ class Menu { /** * Adds the menu page and scripts. */ public function __construct() { add_action( 'admin_menu', [ $this, 'create_menu_page' ] ); } /** * Creates the menu page. */ public function create_menu_page() { $capability = 'manage_options'; $slug = 'loop'; $ionos_loop_badge = ''; if ( empty( get_option( 'ionos_loop_consent', null ) ) ) { $template = 'loop_no_consent_page_template'; add_action( 'admin_notices', [ $this, 'get_admin_notice' ] ); } else { $template = 'loop_page_template'; add_action( 'admin_enqueue_scripts', [ $this, 'load_script' ] ); $ionos_loop_open_surveys = count( $this->get_filtered_surveys( get_surveys() ) ); if ( $ionos_loop_open_surveys > 0 ) { $ionos_loop_badge = sprintf( '<span class="menu-counter"><span aria-hidden="true">%1$d</span><span class="screen-reader-text">%1$d %2$s</span></span>', $ionos_loop_open_surveys, esc_attr__( 'open surveys', 'ionos-loop' ) ); } } Librarymenu::add_submenu_page( __( 'Loop', 'loop' ), __( 'Loop', 'loop' ) . $ionos_loop_badge, $capability, $slug, [ $this, $template ], null ); } /** * Renders the page, if no consent is given */ public function loop_no_consent_page_template() { load_template( __DIR__ . '/views/no-consent.php' ); } /** * Renders the admin notice */ public function get_admin_notice() { global $current_screen; if ( $current_screen->base === 'ionos_page_loop' ) { return; } load_template( __DIR__ . '/views/admin-notice.php' ); } /** * Renders the menu page. */ public function loop_page_template() { load_template( __DIR__ . '/views/page.php' ); } /** * Loads the scripts for the menu page. * * @param string $hook_suffix The hook suffix of the current page. */ public function load_script( $hook_suffix ) { if ( $hook_suffix === Options::get_tenant_name() . '_page_loop' ) { $assets = require_once IONOS_LOOP_PATH . 'build/index.asset.php'; wp_enqueue_style( 'ionos-loop-script', IONOS_LOOP_URL . 'build/index.css', [], $assets['version'] ); wp_enqueue_script( 'ionos-loop-script', IONOS_LOOP_URL . 'build/index.js', $assets['dependencies'], $assets['version'], true ); wp_add_inline_script( 'ionos-loop-script', sprintf( "wp.data.dispatch('ionos/loop').__initialize(%s)", //phpcs:ignore WordPress.WP.AlternativeFunctions.json_encode_json_encode json_encode( [ 'language' => get_locale(), 'surveys' => $this->get_filtered_surveys( get_surveys() ), 'default_answer' => -1, 'enabledButton' => false, 'restBase' => get_loop_rest_api(), 'tenant' => Options::get_tenant_name(), ] ) ), 'after' ); \wp_set_script_translations( 'ionos-loop-script', 'ionos-loop', IONOS_LOOP_PATH . 'languages/' ); } } /** * Returns all surveys that have not yet been completed. * * @param array $surveys Array of all configs in the config. * * @return array */ private function get_filtered_surveys( $surveys ) { if ( ! is_array( $surveys ) || empty( $surveys ) ) { return []; } $answered_surveys = get_option( 'ionos_loop_survey_answers', [] ); $filtered_surveys = array_filter( $surveys, function ( $item ) use ( $answered_surveys ) { return isset( $item['id'] ) && ! array_key_exists( $item['id'], $answered_surveys ); } ); return array_values( $filtered_surveys ); } }
修改文件时间
将文件时间修改为当前时间的前一年
删除文件