PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3
Jetpack – WP Security, Backup, Speed, & Growth v16.3
16.3 16.3-beta 16.3-a.5 16.3-a.7 16.3-a.3 16.3-a.1 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 All 508 releases
← All changes | modules/custom-post-types/testimonial.php +409 -0 16.2-beta → 16.3 View file →
@@ -1,0 +1,409 @@
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 +}