PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 14.2
Jetpack – WP Security, Backup, Speed, & Growth v14.2
16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 All 501 releases
jetpack / modules / comments / admin.php

admin.php in Jetpack – WP Security, Backup, Speed, & Growth 14.2, at modules/comments/admin.php

234 lines 5.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php //phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2 /**
3 * Jetpack comments admin menu file.
4 *
5 * @package automattic/jetpack
6 */
7 /**
8 * Class Jetpack_Comments_Settings
9 * This class represents the comments settings functionality.
10 */
11 class Jetpack_Comments_Settings {
12
13 /** Variables *************************************************************/
14
15 /**
16 * The Jetpack Comments singleton
17 *
18 * @var Highlander_Comments_Base
19 */
20 public $jetpack_comments;
21
22 /**
23 * The default comment form greeting - blank to start with
24 *
25 * @var string
26 */
27 public $default_greeting = ''; // Set in constructor.
28
29 /**
30 * The default comment form color scheme - an empty array to start with
31 *
32 * @var array
33 */
34 public $color_schemes = array();
35
36 /**
37 * Initialize class
38 */
39 public static function init() {
40 static $instance = false;
41
42 if ( ! $instance ) {
43 $instance = new Jetpack_Comments_Settings( Jetpack_Comments::init() );
44 }
45
46 return $instance;
47 }
48
49 /**
50 * Constructor
51 *
52 * @param Highlander_Comments_Base $jetpack_comments The Jetpack Comments singleton.
53 */
54 public function __construct( Highlander_Comments_Base $jetpack_comments ) {
55 $this->jetpack_comments = $jetpack_comments;
56
57 // Setup settings.
58 add_action( 'admin_init', array( $this, 'add_settings' ) );
59 $this->setup_globals();
60 }
61
62 /** Private Methods ****************************************************** */
63
64 /**
65 * Set any global variables or class variables
66 *
67 * @since 1.4
68 */
69 protected function setup_globals() {
70 // Default option values.
71 $this->default_greeting = __( 'Leave a Reply', 'jetpack' );
72
73 // Possible color schemes.
74 $this->color_schemes = array(
75 'light' => __( 'Light', 'jetpack' ),
76 'dark' => __( 'Dark', 'jetpack' ),
77 'transparent' => __( 'Transparent', 'jetpack' ),
78 );
79 }
80
81 /** Settings ************************************************************* */
82
83 /**
84 * Add the Jetpack settings to WordPress's discussions page
85 *
86 * @since 1.4
87 */
88 public function add_settings() {
89
90 // Create the section.
91 add_settings_section(
92 'jetpack_comment_form',
93 __( 'Comments', 'jetpack' ),
94 array( $this, 'comment_form_settings_section' ),
95 'discussion'
96 );
97
98 /**
99 * Clever Greeting
100 */
101 add_settings_field(
102 'highlander_comment_form_prompt',
103 __( 'Greeting Text', 'jetpack' ),
104 array( $this, 'comment_form_greeting_setting' ),
105 'discussion',
106 'jetpack_comment_form'
107 );
108
109 register_setting(
110 'discussion',
111 'highlander_comment_form_prompt',
112 array( $this, 'comment_form_greeting_sanitize' )
113 );
114
115 /**
116 * Color Scheme
117 */
118 add_settings_field(
119 'jetpack_comment_form_color_scheme',
120 __( 'Color Scheme', 'jetpack' ),
121 array( $this, 'comment_form_color_scheme_setting' ),
122 'discussion',
123 'jetpack_comment_form'
124 );
125
126 register_setting(
127 'discussion',
128 'jetpack_comment_form_color_scheme',
129 array( $this, 'comment_form_color_scheme_sanitize' )
130 );
131 }
132
133 /**
134 * Discussions setting section blurb
135 *
136 * @since 1.4
137 */
138 public function comment_form_settings_section() {
139 ?>
140
141 <p id="jetpack-comments-settings"><?php esc_html_e( 'Adjust your Comments form with a clever greeting and color-scheme.', 'jetpack' ); ?></p>
142
143 <?php
144 }
145
146 /**
147 * Custom Comment Greeting Text
148 *
149 * @since 1.4
150 */
151 public function comment_form_greeting_setting() {
152
153 // The greeting.
154 $greeting = get_option( 'highlander_comment_form_prompt', $this->default_greeting );
155 ?>
156
157 <input type="text" name="highlander_comment_form_prompt" id="jetpack-comment-form-greeting" value="<?php echo esc_attr( $greeting ); ?>" class="regular-text">
158 <p class="description"><?php esc_html_e( 'A few catchy words to motivate your readers to comment', 'jetpack' ); ?></p>
159
160 <?php
161 }
162
163 /**
164 * Sanitize the clever comment greeting
165 *
166 * @since 1.4
167 * @param string $val The contact form greeting string.
168 * @return string
169 */
170 public function comment_form_greeting_sanitize( $val ) {
171
172 // Delete if empty or the default.
173 if ( empty( $val ) || ( $this->default_greeting === $val ) ) {
174 delete_option( 'highlander_comment_form_prompt' );
175 return false;
176 }
177
178 return wp_kses( $val, array() );
179 }
180
181 /**
182 * Comment Form Color Scheme Setting
183 *
184 * @since 1.4
185 */
186 public function comment_form_color_scheme_setting() {
187
188 // The color scheme.
189 $scheme = get_option( 'jetpack_comment_form_color_scheme', $this->jetpack_comments->default_color_scheme );
190 ?>
191
192 <fieldset>
193 <legend class="screen-reader-text"><?php esc_html_e( 'Color Scheme', 'jetpack' ); ?></legend>
194
195 <?php foreach ( $this->color_schemes as $key => $label ) : ?>
196
197 <label>
198 <input type="radio" name="jetpack_comment_form_color_scheme" id="jetpack-comment-form-color-scheme" value="<?php echo esc_attr( $key ); ?>" <?php checked( $scheme, $key ); ?>>
199 <?php echo esc_attr( $label ); ?>
200 </label>
201 <br />
202
203 <?php endforeach; ?>
204
205 </fieldset>
206
207 <?php
208 }
209
210 /**
211 * Sanitize the color scheme
212 *
213 * @since 1.4
214 * @param string $val The color scheme string.
215 * @return string
216 */
217 public function comment_form_color_scheme_sanitize( $val ) {
218
219 // Delete the option if it's unknown, or the default.
220 if (
221 empty( $val ) || ! array_key_exists( $val, $this->color_schemes )
222 ||
223 $val === $this->jetpack_comments->default_color_scheme
224 ) {
225 delete_option( 'jetpack_comment_form_color_scheme' );
226 return false;
227 }
228
229 return $val;
230 }
231 }
232
233 Jetpack_Comments_Settings::init();
234