PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.2
Jetpack – WP Security, Backup, Speed, & Growth v16.2
16.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 All 502 releases
jetpack / modules / custom-post-types / testimonial.php

testimonial.php in Jetpack – WP Security, Backup, Speed, & Growth 16.2, at modules/custom-post-types/testimonial.php

410 lines 12.5 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 * Register a Testimonial post type and handle displaying it anywhere on the site.
4 *
5 * @package automattic/jetpack
6 *
7 * @phpcs:disable Generic.Files.OneObjectStructurePerFile.MultipleFound
8 */
9
10 // phpcs:disable Universal.Files.SeparateFunctionsFromOO.Mixed -- TODO: Move classes to appropriately-named class files.
11
12 if ( ! class_exists( 'Jetpack_Testimonial' ) ) {
13 /**
14 * Add a Testimonial CPT, and display it with a shortcode
15 */
16 class Jetpack_Testimonial {
17
18 /**
19 * Store an instance of the new class
20 *
21 * @var Automattic\Jetpack\Classic_Theme_Helper\Jetpack_Testimonial
22 */
23 protected $new_instance;
24
25 /**
26 * Initialize class.
27 *
28 * @deprecated 14.2 Moved to Classic Theme Helper package.
29 */
30 public static function init() {
31 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
32 return Automattic\Jetpack\Classic_Theme_Helper\Jetpack_Testimonial::init();
33 }
34
35 /**
36 * Conditionally hook into WordPress.
37 *
38 * Setup user option for enabling CPT.
39 * If user has CPT enabled, show in admin.
40 */
41 public function __construct() {
42 $this->new_instance = new Automattic\Jetpack\Classic_Theme_Helper\Jetpack_Testimonial();
43 }
44
45 /**
46 * Forward all method calls to the Jetpack_Testimonial class.
47 *
48 * @param string $name The name of the method.
49 * @param array $arguments The arguments to pass to the method.
50 *
51 * @throws Exception If the method is not found.
52 */
53 public function __call( $name, $arguments ) {
54 if ( method_exists( $this->new_instance, $name ) ) {
55 return call_user_func_array( array( $this->new_instance, $name ), $arguments );
56 } else {
57 // Handle cases where the method is not found
58 throw new Exception( sprintf( 'Undefined method: %s', esc_html( $name ) ) );
59 }
60 }
61
62 /**
63 * Forward all static method calls to the Jetpack_Testimonial class.
64 *
65 * @param string $name The name of the method.
66 * @param array $arguments The arguments to pass to the method.
67 *
68 * @throws Exception If the method is not found.
69 */
70 public static function __callStatic( $name, $arguments ) {
71 if ( method_exists( Automattic\Jetpack\Classic_Theme_Helper\Jetpack_Testimonial::class, $name ) ) {
72 return call_user_func_array( array( Automattic\Jetpack\Classic_Theme_Helper\Jetpack_Testimonial::class, $name ), $arguments );
73 } else {
74 // Handle cases where the method is not found
75 throw new Exception( sprintf( 'Undefined static method: %s', esc_html( $name ) ) );
76 }
77 }
78
79 /**
80 * Registers the custom post types and adds action/filter handlers, but
81 * only if the site supports it.
82 *
83 * @deprecated 14.2 Moved to Classic Theme Helper package.
84 */
85 public function maybe_register_cpt() {
86 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
87 $this->new_instance->maybe_register_cpt();
88 }
89
90 /**
91 * Add a checkbox field in 'Settings' > 'Writing'
92 * for enabling CPT functionality.
93 *
94 * @deprecated 14.2 Moved to Classic Theme Helper package.
95 *
96 * @return void
97 */
98 public function settings_api_init() {
99 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
100 $this->new_instance->settings_api_init();
101 }
102
103 /**
104 * HTML code to display a checkbox true/false option
105 * for the CPT setting.
106 *
107 * @deprecated 14.2 Moved to Classic Theme Helper package.
108 *
109 * @return void
110 */
111 public function setting_html() {
112 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
113 $this->new_instance->setting_html();
114 }
115
116 /**
117 * Add to REST API post type allowed list.
118 *
119 * @param array $post_types Array of allowed post types.
120 * @return array `$post_types` with our type added.
121 */
122 public function allow_cpt_rest_api_type( $post_types ) {
123 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
124 return $this->new_instance->allow_cpt_rest_api_type( $post_types );
125 }
126
127 /**
128 * Bump Testimonial > New Activation stat
129 *
130 * @deprecated 14.2 Moved to Classic Theme Helper package.
131 */
132 public function new_activation_stat_bump() {
133 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
134 $this->new_instance->new_activation_stat_bump();
135 }
136
137 /**
138 * Bump Testimonial > Option On/Off stats to get total active
139 *
140 * @deprecated 14.2 Moved to Classic Theme Helper package.
141 *
142 * @param mixed $old The old option value.
143 * @param mixed $new The new option value.
144 */
145 public function update_option_stat_bump( $old, $new ) {
146 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
147 $this->new_instance->update_option_stat_bump( $old, $new );
148 }
149
150 /**
151 * Bump Testimonial > Published Testimonials stat when testimonials are published
152 *
153 * @deprecated 14.2 Moved to Classic Theme Helper package.
154 */
155 public function new_testimonial_stat_bump() {
156 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
157 $this->new_instance->new_testimonial_stat_bump();
158 }
159
160 /**
161 * Flush permalinks when CPT option is turned on/off
162 *
163 * @deprecated 14.2 Moved to Classic Theme Helper package.
164 */
165 public function flush_rules_on_enable() {
166 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
167 $this->new_instance->flush_rules_on_enable();
168 }
169
170 /**
171 * Count published testimonials and flush permalinks when first testimonial is published
172 *
173 * @deprecated 14.2 Moved to Classic Theme Helper package.
174 */
175 public function flush_rules_on_first_testimonial() {
176 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
177 $this->new_instance->flush_rules_on_first_testimonial();
178 }
179
180 /**
181 * Flush permalinks when CPT supported theme is activated
182 *
183 * @deprecated 14.2 Moved to Classic Theme Helper package.
184 */
185 public function flush_rules_on_switch() {
186 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
187 $this->new_instance->flush_rules_on_switch();
188 }
189
190 /**
191 * On plugin/theme activation, check if current theme supports CPT
192 *
193 * @deprecated 14.2 Moved to Classic Theme Helper package.
194 */
195 public static function activation_post_type_support() {
196 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
197 Automattic\Jetpack\Classic_Theme_Helper\Jetpack_Testimonial::activation_post_type_support();
198 }
199
200 /**
201 * On theme switch, check if CPT item exists and disable if not
202 *
203 * @deprecated 14.2 Moved to Classic Theme Helper package.
204 */
205 public function deactivation_post_type_support() {
206 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
207 $this->new_instance->deactivation_post_type_support();
208 }
209
210 /**
211 * Register Post Type
212 *
213 * @deprecated 14.2 Moved to Classic Theme Helper package.
214 */
215 public function register_post_types() {
216 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
217 $this->new_instance->register_post_types();
218 }
219
220 /**
221 * Update messages for the Testimonial admin.
222 *
223 * @deprecated 14.2 Moved to Classic Theme Helper package.
224 *
225 * @param array $messages Existing post update messages.
226 * @return array Updated `$messages`.
227 */
228 public function updated_messages( $messages ) {
229 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
230 return $this->new_instance->updated_messages( $messages );
231 }
232
233 /**
234 * Change ‘Enter Title Here’ text for the Testimonial.
235 *
236 * @deprecated 14.2 Moved to Classic Theme Helper package.
237 *
238 * @param string $title Placeholder text. Default 'Add title'.
239 * @return string Replacement title.
240 */
241 public function change_default_title( $title ) {
242 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
243 return $this->new_instance->change_default_title( $title );
244 }
245
246 /**
247 * Change ‘Title’ column label on all Testimonials page.
248 *
249 * @deprecated 14.2 Moved to Classic Theme Helper package.
250 *
251 * @param array $columns An array of column names.
252 * @return array Updated array.
253 */
254 public function edit_title_column_label( $columns ) {
255 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
256 return $this->new_instance->edit_title_column_label( $columns );
257 }
258
259 /**
260 * Follow CPT reading setting on CPT archive page
261 *
262 * @deprecated 14.2 Moved to Classic Theme Helper package.
263 *
264 * @param WP_Query $query A WP_Query instance.
265 */
266 public function query_reading_setting( $query ) {
267 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
268 $this->new_instance->query_reading_setting( $query );
269 }
270
271 /**
272 * If Infinite Scroll is set to 'click', use our custom reading setting instead of core's `posts_per_page`.
273 *
274 * @deprecated 14.2 Moved to Classic Theme Helper package.
275 *
276 * @param array $settings Array of Infinite Scroll settings.
277 * @return array Updated `$settings`.
278 */
279 public function infinite_scroll_click_posts_per_page( $settings ) {
280 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
281 return $this->new_instance->infinite_scroll_click_posts_per_page( $settings );
282 }
283
284 /**
285 * Add CPT to Dotcom sitemap
286 *
287 * @deprecated 14.2 Moved to Classic Theme Helper package.
288 *
289 * @param array $post_types Array of post types included in sitemap.
290 * @return array Updated `$post_types`.
291 */
292 public function add_to_sitemap( $post_types ) {
293 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
294 return $this->new_instance->add_to_sitemap( $post_types );
295 }
296
297 /**
298 * Adds a submenu link to the Customizer.
299 *
300 * @deprecated 14.2 Moved to Classic Theme Helper package.
301 */
302 public function add_customize_page() {
303 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
304 $this->new_instance->add_customize_page();
305 }
306
307 /**
308 * Adds testimonial section to the Customizer.
309 *
310 * @deprecated 14.2 Moved to Classic Theme Helper package.
311 *
312 * @param WP_Customize_Manager $wp_customize Customizer instance.
313 */
314 public function customize_register( $wp_customize ) {
315 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
316 $this->new_instance->customize_register( $wp_customize );
317 }
318
319 /**
320 * Add Featured image to theme mod if necessary.
321 *
322 * @deprecated 14.2 Moved to Classic Theme Helper package.
323 *
324 * @param array $opt The value of the current theme modification.
325 * @return array Updated `$opt`.
326 */
327 public function coerce_testimonial_image_to_url( $opt ) {
328 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
329 return $this->new_instance->coerce_testimonial_image_to_url( $opt );
330 }
331
332 /**
333 * Our [testimonial] shortcode.
334 * Prints Testimonial data styled to look good on *any* theme.
335 *
336 * @deprecated 14.2 Moved to Classic Theme Helper package.
337 *
338 * @param array $atts Shortcode attributes.
339 *
340 * @return string HTML from `self::jetpack_testimonial_shortcode_html()`.
341 */
342 public static function jetpack_testimonial_shortcode( $atts ) {
343 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
344 return Automattic\Jetpack\Classic_Theme_Helper\Jetpack_Testimonial::jetpack_testimonial_shortcode( $atts );
345 }
346 }
347
348 /**
349 * Additional Testimonial customizer options.
350 *
351 * @deprecated 14.2 Moved to Classic Theme Helper package.
352 */
353 function jetpack_testimonial_custom_control_classes() {
354 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
355 /**
356 * Clean the title parameter.
357 */
358 class Jetpack_Testimonial_Title_Control extends WP_Customize_Control {
359 /**
360 * Sanitize content passed to control.
361 *
362 * @deprecated 14.2 Moved to Classic Theme Helper package.
363 *
364 * @param string $value Control value.
365 * @return string Sanitized value.
366 */
367 public static function sanitize_content( $value ) {
368 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
369 return Automattic\Jetpack\Classic_Theme_Helper\Jetpack_Testimonial_Title_Control::sanitize_content( $value );
370 }
371 }
372
373 /**
374 * Clean textarea content.
375 */
376 class Jetpack_Testimonial_Textarea_Control extends WP_Customize_Control {
377 /**
378 * Control type.
379 *
380 * @var string
381 */
382 public $type = 'textarea';
383
384 /**
385 * Render the control's content.
386 *
387 * @deprecated 14.2 Moved to Classic Theme Helper package.
388 */
389 public function render_content() {
390 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
391 $testimonial_textarea_control = new Automattic\Jetpack\Classic_Theme_Helper\Jetpack_Testimonial_Textarea_Control( $this->manager, $this->id, $this->args );
392 $testimonial_textarea_control->render_content();
393 }
394
395 /**
396 * Sanitize content passed to control.
397 *
398 * @deprecated 14.2 Moved to Classic Theme Helper package.
399 *
400 * @param string $value Control value.
401 * @return string Sanitized value.
402 */
403 public static function sanitize_content( $value ) {
404 _deprecated_function( __FUNCTION__, 'jetpack-14.2' );
405 return Automattic\Jetpack\Classic_Theme_Helper\Jetpack_Testimonial_Textarea_Control::sanitize_content( $value );
406 }
407 }
408 }
409 }
410