license_manager = $license_manager;
$this->license_processor = $license_processor;
$this->system_info = $system_info;
$this->logs = $logs;
$this->template_renderer = $template_renderer;
}
/**
* Render the settings into the admin area.
*
* @hook init
* @since 0.9
*/
public function render()
{
do_action('aff_admin_options_before_render_affilicious_container');
/** @var Container $container */
$container = Carbon_Container::make('theme_options', 'Affilicious')
->set_icon('dashicons-admin-generic')
->add_tab(__('Licenses', 'affilicious'), $this->get_licenses_fields())
->add_tab(__('Scripts', 'affilicious'), $this->get_scripts_fields())
->add_tab(__('Notices', 'affilicious'), $this->get_notices_fields())
->add_tab(__('System', 'affilicious'), $this->get_system_fields())
->add_tab(__('Logs', 'affilicious'), $this->get_logs_fields())
;
$container = apply_filters('aff_admin_options_render_affilicious_container', $container);
do_action('aff_admin_options_after_render_affilicious_container', $container);
}
/**
* Get the licenses fields.
*
* @since 0.9.1
* @return Carbon_Field[]
*/
protected function get_licenses_fields()
{
$html = '';
if(isset($_GET['page']) && $_GET['page'] === 'crbn-affilicious.php') {
$html = $this->template_renderer->stringify('admin/licenses/licenses', [
'license_manager' => $this->license_manager,
'license_processor' => $this->license_processor,
]);
}
$help_text = count($this->license_manager->get_license_handlers()) > 0
? sprintf(__('More add-ons and themes can be found on the official website of Affilicious.', 'affilicious'), 'https://affilicious.de?utm_campaign=addons-and-themes&utm_source=wordpress-installation&utm_medium=licenses&utm_content=more-addons-and-themes')
: sprintf(__('It looks like you haven\'t got any add-on or theme yet. Visit our official website of Affilicious to see what you can start with.', 'affilicious'), 'https://affilicious.de?utm_campaign=addons-and-themes&utm_source=wordpress-installation&utm_medium=licenses&utm_content=no-addons-and-themes');
$fields = [
Carbon_Field::make('html', 'affilicious_options_affilicious_container_licenses_tab_licences_field')
->set_html($html)
->set_help_text($help_text)
];
return apply_filters('aff_admin_options_render_affilicious_container_licenses_fields', $fields);
}
/**
* Get the scripts fields.
*
* @since 0.9
* @return Carbon_Field[]
*/
protected function get_scripts_fields()
{
$fields = array(
Carbon_Field::make('header_scripts', 'affilicious_options_affilicious_container_scripts_tab_custom_header_scripts', __('Custom Header Scripts', 'affilicious'))
->set_help_text(__("Add your custom header scripts like CSS or JS with the proper <style> or <script> tags.", 'affilicious')),
Carbon_Field::make('footer_scripts', 'affilicious_options_affilicious_container_scripts_tab_custom_footer_scripts', __('Custom Footer Scripts', 'affilicious'))
->set_help_text(__("Add your custom footer scripts like Google Analytics tracking code, CSS or JS with the proper <style> or <script> tags.", 'affilicious')),
);
return apply_filters('aff_admin_options_render_affilicious_container_scripts_fields', $fields);
}
/**
* Get the notices fields.
*
* @since 0.9.16
* @return Carbon_Field[]
*/
protected function get_notices_fields()
{
$fields = [
Carbon_Field::make('checkbox', 'affilicious_options_affilicious_container_notices_tab_download_recommendations_disabled_field', __('Disable download recommendations', 'affilicious'))
->set_help_text(__("If you enable this option, download recommendation notices won't be shown after activation anymore.", 'affilicious'))
->set_option_value('yes')
];
return apply_filters('aff_admin_options_render_affilicious_container_notices_fields', $fields);
}
/**
* Get the system fields.
*
* @since 0.9.9
* @return Carbon_Field[]
*/
protected function get_system_fields()
{
$html = '';
if(isset($_GET['page']) && $_GET['page'] === 'crbn-affilicious.php') {
$html = $this->template_renderer->stringify('admin/system/info', [
'system_info' => $this->system_info->stringify(true),
'download_url' => sprintf(
admin_url('index.php?action=%1$s&nonce=%2$s'),
Download_System_Info_Action::ACTION,
wp_create_nonce(Download_System_Info_Action::ACTION)
),
]);
}
$fields = [
Carbon_Field::make('html', 'affilicious_options_affilicious_container_system_tab_info_field')
->set_html($html),
];
return apply_filters('aff_admin_options_render_affilicious_container_system_fields', $fields);
}
/**
* Get the logs fields.
*
* @since 0.9.18
* @return Carbon_Field[]
*/
protected function get_logs_fields()
{
$html = '';
if(isset($_GET['page']) && $_GET['page'] === 'crbn-affilicious.php') {
$html = $this->template_renderer->stringify('admin/logs/logs', [
'logs' => $this->logs->stringify(self::LOGS_LIMIT, true),
'download_url' => sprintf(
admin_url('index.php?action=%1$s&nonce=%2$s'),
Download_Logs_Action::ACTION,
wp_create_nonce(Download_Logs_Action::ACTION)
),
]);
}
$fields = [
Carbon_Field::make('html', 'affilicious_options_affilicious_container_logs_tab_logs_field')
->set_html($html),
];
return apply_filters('aff_admin_options_render_affilicious_container_logs_fields', $fields);
}
}