Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 10
20.00% covered (danger)
20.00%
1 / 5
CRAP
0.00% covered (danger)
0.00%
0 / 1
jetpack_testimonial_custom_control_classes
n/a
0 / 0
n/a
0 / 0
1
Jetpack_Testimonial
0.00% covered (danger)
0.00%
0 / 9
0.00% covered (danger)
0.00%
0 / 4
870
0.00% covered (danger)
0.00%
0 / 1
 init
n/a
0 / 0
n/a
0 / 0
1
 __construct
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 __call
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
6
 __callStatic
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
6
 maybe_register_cpt
n/a
0 / 0
n/a
0 / 0
1
 settings_api_init
n/a
0 / 0
n/a
0 / 0
1
 setting_html
n/a
0 / 0
n/a
0 / 0
1
 allow_cpt_rest_api_type
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 new_activation_stat_bump
n/a
0 / 0
n/a
0 / 0
1
 update_option_stat_bump
n/a
0 / 0
n/a
0 / 0
1
 new_testimonial_stat_bump
n/a
0 / 0
n/a
0 / 0
1
 flush_rules_on_enable
n/a
0 / 0
n/a
0 / 0
1
 flush_rules_on_first_testimonial
n/a
0 / 0
n/a
0 / 0
1
 flush_rules_on_switch
n/a
0 / 0
n/a
0 / 0
1
 activation_post_type_support
n/a
0 / 0
n/a
0 / 0
1
 deactivation_post_type_support
n/a
0 / 0
n/a
0 / 0
1
 register_post_types
n/a
0 / 0
n/a
0 / 0
1
 updated_messages
n/a
0 / 0
n/a
0 / 0
1
 change_default_title
n/a
0 / 0
n/a
0 / 0
1
 edit_title_column_label
n/a
0 / 0
n/a
0 / 0
1
 query_reading_setting
n/a
0 / 0
n/a
0 / 0
1
 infinite_scroll_click_posts_per_page
n/a
0 / 0
n/a
0 / 0
1
 add_to_sitemap
n/a
0 / 0
n/a
0 / 0
1
 add_customize_page
n/a
0 / 0
n/a
0 / 0
1
 customize_register
n/a
0 / 0
n/a
0 / 0
1
 coerce_testimonial_image_to_url
n/a
0 / 0
n/a
0 / 0
1
 jetpack_testimonial_shortcode
n/a
0 / 0
n/a
0 / 0
1
Jetpack_Testimonial_Title_Control
n/a
0 / 0
n/a
0 / 0
1
n/a
0 / 0
 sanitize_content
n/a
0 / 0
n/a
0 / 0
1
Jetpack_Testimonial_Textarea_Control
n/a
0 / 0
n/a
0 / 0
2
n/a
0 / 0
 render_content
n/a
0 / 0
n/a
0 / 0
1
 sanitize_content
n/a
0 / 0
n/a
0 / 0
1
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
12if ( ! 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}