__['wp-fail2ban-proxies'] = __('Proxies', 'wp-fail2ban'); $this->__['remote-ips-proxies'] = __('Trusted IPs', 'wp-fail2ban'); // phpcs:enable parent::__construct('remote-ips', __('Remote IPs', 'wp-fail2ban')); } /** * {@inheritDoc} * * @since 4.4.0 Add return type * @since 4.0.0 * * @return void */ public function admin_init(): void { do_action(__METHOD__.'.before'); // phpcs:disable Generic.Functions.FunctionCallArgumentSpacing add_settings_section('wp-fail2ban-proxies', $this->__['wp-fail2ban-proxies'], [$this, 'section'], self::SETTINGS_PAGE); add_settings_field('remote-ips-proxies', $this->__['remote-ips-proxies'], [$this, 'proxies'], self::SETTINGS_PAGE, 'wp-fail2ban-proxies'); // phpcs:enable do_action(__METHOD__.'.after'); } /** * {@inheritDoc} * * @since 4.4.0 Add return type * @since 4.3.3.0 Refactor * @since 4.3.0 * * @return void */ public function current_screen(): void { $this->add_help_tab('wp-fail2ban-proxies', [ $this->help_entry('remote-ips-proxies', [ sprintf( /* translators: 1, 2: internals, links to Cloudflare IP lists */ __('A list of IP addresses in full CIDR notation. The list of Cloudflare IPs can be found here (IPv4) and here (IPv6).', 'wp-fail2ban'), 'href="https://www.cloudflare.com/ips-v4" rel="noopener" target="_blank"', 'href="https://www.cloudflare.com/ips-v6" rel="noopener" target="_blank"' ), __('N.B. Abbreviated IPv4 CIDR like 127/8 is not supported.', 'wp-fail2ban'), $this->doc_link('WP_FAIL2BAN_PROXIES') ]) ]); parent::current_screen(); } /** * Section blurb. * * @since 4.4.0 Add return type * @since 4.0.0 * * @return void */ public function section(): void { echo ''; } /** * Proxies. * * @since 4.4.0 Add return type * @since 4.3.0 Refactored. * @since 4.0.0 * * @return void */ public function proxies(): void { printf( '
', esc_html($this->proxies_value()) ); $this->description('WP_FAIL2BAN_PROXIES'); } /** * Helper - multi-line string from proxies list. * * @since 4.4.0 Add return type * @since 4.3.0 * * @return string */ protected function proxies_value(): string { $proxies = Config::get('WP_FAIL2BAN_PROXIES'); return (is_array($proxies)) ? join("\n", $proxies) : join("\n", array_map('trim', explode(',', $proxies))); } }