scripts->register_style('wu-whitelabel', wu_get_asset('whitelabel.css', 'css')); wp_enqueue_style('wu-whitelabel'); } /** * Replaces the terms on the translated strings. * * @since 2.0.0 * * @param string $translation The translation. * @param string $text The original text before translation. * @param string $domain The gettext domain. * @return string */ public function replace_text($translation, $text, $domain) { if ($this->allowed_domains === null) { $this->allowed_domains = apply_filters( 'wu_replace_text_allowed_domains', array( 'default', 'wp-ultimo', ) ); } if ( ! in_array($domain, $this->allowed_domains, true)) { return $translation; } /** * Prevent replacement when dealing with URLs. * * WordPress uses translation functions to allow for its own URLs to * be changed to the different locales. This means that if we try to * edit those URLs, we might break things. PHP 8.0 is specially * unforgiving in that scenario. * * @since 2.1.0 */ if (strncmp($translation, 'http', strlen('http')) === 0) { return $translation; } if ($this->init === false) { $search_and_replace = array(); $site_plural = wu_get_setting('rename_site_plural'); if ($site_plural) { $search_and_replace['sites'] = strtolower((string) $site_plural); $search_and_replace['Sites'] = ucfirst((string) $site_plural); } $site_singular = wu_get_setting('rename_site_singular'); if ($site_singular) { $search_and_replace['site'] = strtolower((string) $site_singular); $search_and_replace['Site'] = ucfirst((string) $site_singular); } $wordpress = wu_get_setting('rename_wordpress'); if ($wordpress) { $search_and_replace['wordpress'] = strtolower((string) $wordpress); $search_and_replace['WordPress'] = ucfirst((string) $wordpress); $search_and_replace['Wordpress'] = ucfirst((string) $wordpress); $search_and_replace['wordPress'] = ucfirst((string) $wordpress); } if ($search_and_replace) { $this->search = array_keys($search_and_replace); $this->replace = array_values($search_and_replace); } $this->init = true; } if ( ! empty($this->search)) { return str_replace($this->search, $this->replace, $translation); } return $translation; } /** * Adds the whitelabel options. * * @since 2.0.0 * * @return void */ public function add_settings() { wu_register_settings_section( 'whitelabel', array( 'title' => __('Whitelabel', 'wp-ultimo'), 'desc' => __('Basic Whitelabel', 'wp-ultimo'), 'icon' => 'dashicons-wu-eye', ) ); wu_register_settings_field( 'whitelabel', 'whitelabel_header', array( 'title' => __('Whitelabel', 'wp-ultimo'), 'desc' => __('Hide a couple specific WordPress elements and rename others.', 'wp-ultimo'), 'type' => 'header', ) ); $preview_image = wu_preview_image(wu_get_asset('settings/settings-hide-wp-logo-preview.png')); wu_register_settings_field( 'whitelabel', 'hide_wordpress_logo', array( 'title' => __('Hide WordPress Logo', 'wp-ultimo') . $preview_image, 'desc' => __('Hide the WordPress logo from the top-bar and replace the same logo on the My Sites top-bar item with a more generic icon.', 'wp-ultimo'), 'type' => 'toggle', 'default' => 1, ) ); wu_register_settings_field( 'whitelabel', 'hide_sites_menu', array( 'title' => __('Hide Sites Admin Menu', 'wp-ultimo'), 'desc' => __('We recommend that you manage all of your sites using the WP Multisite WaaS → Sites page. To avoid confusion, you can hide the default "Sites" item from the WordPress admin menu by toggling this option.', 'wp-ultimo'), 'type' => 'toggle', 'default' => 0, ) ); wu_register_settings_field( 'whitelabel', 'rename_wordpress', array( 'title' => __('Replace the word "WordPress"', 'wp-ultimo'), 'placeholder' => __('e.g. My App', 'wp-ultimo'), 'desc' => __('Replace all occurrences of the word "WordPress" with a different word.', 'wp-ultimo'), 'type' => 'text', 'default' => '', ) ); wu_register_settings_field( 'whitelabel', 'rename_site_singular', array( 'title' => __('Replace the word "Site" (singular)', 'wp-ultimo'), 'placeholder' => __('e.g. App', 'wp-ultimo'), 'desc' => __('Replace all occurrences of the word "Site" with a different word.', 'wp-ultimo'), 'type' => 'text', 'default' => '', 'wrapper_classes' => 'wu-w-1/2', ) ); wu_register_settings_field( 'whitelabel', 'rename_site_plural', array( 'title' => __('Replace the word "Sites" (plural)', 'wp-ultimo'), 'placeholder' => __('e.g. Apps', 'wp-ultimo'), 'desc' => __('Replace all occurrences of the word "Sites" with a different word.', 'wp-ultimo'), 'type' => 'text', 'default' => '', 'wrapper_classes' => 'wu-w-1/2', ) ); } /** * Removes the WordPress original logo from the top-bar. * * @since 2.0.0 * @return void */ public function wp_logo_admin_bar_remove() { global $wp_admin_bar; $wp_admin_bar->remove_menu('wp-logo'); } /** * Remove the default widgets from the user panel. * * @since 2.0.0 * @return void */ public function remove_dashboard_widgets() { global $wp_meta_boxes; unset($wp_meta_boxes['dashboard-user']['side']['core']['dashboard_quick_press']); unset($wp_meta_boxes['dashboard-user']['normal']['core']['dashboard_incoming_links']); unset($wp_meta_boxes['dashboard-user']['normal']['core']['dashboard_right_now']); unset($wp_meta_boxes['dashboard-user']['normal']['core']['dashboard_plugins']); unset($wp_meta_boxes['dashboard-user']['normal']['core']['dashboard_recent_drafts']); unset($wp_meta_boxes['dashboard-user']['normal']['core']['dashboard_recent_comments']); unset($wp_meta_boxes['dashboard-user']['side']['core']['dashboard_primary']); unset($wp_meta_boxes['dashboard-user']['side']['core']['dashboard_secondary']); } /** * Removes the WordPress credits from the admin footer. * * @since 2.0.0 * @return void */ public function clear_footer_texts() { if (current_user_can('manage_network')) { return; } add_filter('admin_footer_text', '__return_empty_string', 11); add_filter('update_footer', '__return_empty_string', 11); } /** * Remove the sites admin menu, if the option is selected. * * @since 2.0.0 * @return void */ public function remove_sites_admin_menu() { global $menu; $index = ''; foreach ($menu as $i => $menu_item) { if ($menu_item[2] === 'sites.php') { $index = $i; continue; } } unset($menu[ $index ]); } }