PluginProbe
Premmerce / 1.2
Premmerce v1.2
trunk 1.0 1.1 1.2 1.2.1 1.3 1.3.10 1.3.11 1.3.12 1.3.13 1.3.14 1.3.15 1.3.16 1.3.17 1.3.18 1.3.19 1.3.2 1.3.20 1.3.21 1.3.22 1.3.23 1.3.3 1.3.4 1.3.5 1.3.6 All 28 releases
premmerce / src / Admin / AdditionalSettings.php

AdditionalSettings.php in Premmerce 1.2, at src/Admin/AdditionalSettings.php

87 lines 1.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php namespace Premmerce\Premmerce\Admin;
2
3
4 use Premmerce\Premmerce\Behat\Transliterator\Transliterator;
5
6 class AdditionalSettings{
7
8
9 const OPTIONS_KEY = 'premmerce_additional_settings';
10
11 public function addActions(){
12 add_action('admin_init', [$this, 'initSettings']);
13
14 add_filter('rocket_common_cache_logged_users', function($default){
15 $options = $this->getOptions();
16 if(isset($options['rocket_common_cache_logged_users']) && $options['rocket_common_cache_logged_users'] === 'on'){
17 return true;
18 }
19
20 return $default;
21 });
22 add_filter('sanitize_title', function($title){
23 $options = $this->getOptions();
24 if(isset($options['transliterate_slugs']) && $options['transliterate_slugs'] === 'on'){
25 return Transliterator::transliterate($title);
26 }
27
28 return $title;
29 }, 0);
30 }
31
32
33 public function initSettings(){
34
35 register_setting('premmerce_settings', self::OPTIONS_KEY);
36
37 add_settings_section(
38 'cache',
39 __('Cache', 'premmerce'),
40 '',
41 'premmerce'
42 );
43
44 add_settings_field(
45 'rocket_common_cache_logged_users',
46 __('Use the same cache for all logged inn users', 'premmerce'),
47 [$this, 'checkboxCallback'],
48 'premmerce',
49 'cache',
50 [
51 'label_for' => 'rocket_common_cache_logged_users',
52 ]
53 );
54
55 add_settings_section(
56 'slugs',
57 __('Slugs', 'premmerce'),
58 '',
59 'premmerce'
60 );
61
62
63 add_settings_field(
64 'transliterate_slugs',
65 __('Enable slugs transliteration', 'premmerce'),
66 [$this, 'checkboxCallback'],
67 'premmerce',
68 'slugs',
69 [
70 'label_for' => 'transliterate_slugs',
71 ]
72 );
73
74 }
75
76 public function checkBoxCallback($args){
77 $option = $this->getOptions();
78 ?>
79 <input type="checkbox" name="premmerce_additional_settings[<?=esc_attr($args['label_for']);?>]"
80 <?php checked('on', isset($option[ $args['label_for'] ])? $option[ $args['label_for'] ] : null) ?>>
81 <?php
82 }
83
84 private function getOptions(){
85 return get_option(self::OPTIONS_KEY);
86 }
87 }