<?php
namespace KrokedilKlarnaPaymentsDeps\Krokedil\SettingsPage;
\defined('ABSPATH') || exit;
/**
* Navigation class to handle the navigation for the subsections of the settings page.
*/
class Navigation
{
/**
* The arguments for the page.
*
* @var array $args
*/
protected $args = array();
/**
* Class constructor.
*
* @param array $args Arguments for the page.
*
* @return void
*/
public function __construct($args)
{
$this->args = $args;
}
/**
* Get the current subsection we are on.
*
* @return string
*/
public function get_current_subsection()
{
// Verify the nonce.
wp_verify_nonce('__nonce');
$subsection = \filter_input(\INPUT_GET, 'subsection', \FILTER_SANITIZE_FULL_SPECIAL_CHARS);
if (!$subsection) {
$subsection = 'general';
}
return $subsection;
}
/**
* Output the Navigation HTML.
*
* @return void
*/
public function output()
{
$current_subsection = $this->get_current_subsection();
$extra_subsections = $this->args['extra_subsections'] ?? array();
$tabs = array('general' => __('General', 'krokedil-settings'));
if (!empty($this->args['support'] ?? array())) {
$tabs['support'] = __('Support', 'krokedil-settings');
}
if (!empty($this->args['addons'] ?? array())) {
$tabs['addons'] = __('Addons', 'krokedil-settings');
}
foreach ($extra_subsections as $key => $subsection) {
$tabs[$key] = $subsection['name'] ?? $key;
}
?>
<h2 class="nav-tab-wrapper">
<?php
foreach ($tabs as $tab => $label) {
?>
<a href="<?php
echo esc_url(add_query_arg('subsection', $tab));
?>" class="nav-tab <?php
echo $current_subsection === $tab ? 'nav-tab-active' : '';
?>"><?php
echo esc_html($label);
?></a>
<?php
}
?>
</h2>
<?php
}
}