PluginProbe
Premmerce / 1.3.12
Premmerce v1.3.12
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 / Settings.php

Settings.php in Premmerce 1.3.12, at src/Admin/Settings.php

81 lines 2.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Premmerce\Premmerce\Admin;
4
5 use Behat\Transliterator\Transliterator ;
6 class Settings
7 {
8 const OPTIONS_KEY = 'premmerce_additional_settings' ;
9 /**
10 * @var array
11 */
12 private $options ;
13 /**
14 * Register hooks
15 */
16 public function addActions()
17 {
18 add_action( 'admin_init', array( $this, 'initSettings' ) );
19 add_filter( 'sanitize_title', function ( $title ) {
20 if ( 'on' === $this->getOption( 'transliterate_slugs' ) ) {
21 return Transliterator::utf8ToAscii( $title );
22 }
23 return $title;
24 }, 9 );
25 }
26
27 /**
28 * Init settings
29 */
30 public function initSettings()
31 {
32 register_setting( 'premmerce_settings', self::OPTIONS_KEY );
33 add_settings_section(
34 'slugs',
35 __( 'Slugs', 'premmerce' ),
36 '',
37 'premmerce'
38 );
39 add_settings_field(
40 'transliterate_slugs',
41 '',
42 array( $this, 'checkboxCallback' ),
43 'premmerce',
44 'slugs',
45 array(
46 'label' => __( 'Enable slugs transliteration', 'premmerce' ),
47 'label_for' => 'transliterate_slugs',
48 )
49 );
50 }
51
52 /**
53 * @param array $args
54 */
55 public function checkBoxCallback( $args )
56 {
57 $checkbox = '<label ><input type="checkbox" name="premmerce_additional_settings[%s]" %s >%s</label>';
58 $checked = $this->getOption( $args['label_for'] );
59 printf(
60 $checkbox,
61 esc_attr( $args['label_for'] ),
62 checked( 'on', $checked, false ),
63 $args['label']
64 );
65 }
66
67 /**
68 * @param string $key
69 * @param null $default
70 *
71 * @return mixed|null
72 */
73 private function getOption( $key, $default = null )
74 {
75 if ( is_null( $this->options ) ) {
76 $this->options = get_option( self::OPTIONS_KEY );
77 }
78 return ( isset( $this->options[$key] ) ? $this->options[$key] : $default );
79 }
80
81 }