Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 8
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
Jetpack_Portfolio
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 3
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
 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_project_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_project
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
 edit_admin_columns
n/a
0 / 0
n/a
0 / 0
1
 image_column
n/a
0 / 0
n/a
0 / 0
1
 enqueue_admin_styles
n/a
0 / 0
n/a
0 / 0
1
 customize_register
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
 infinite_scroll_results
n/a
0 / 0
n/a
0 / 0
1
 add_to_sitemap
n/a
0 / 0
n/a
0 / 0
1
 allow_portfolio_rest_api_type
n/a
0 / 0
n/a
0 / 0
1
 portfolio_shortcode
n/a
0 / 0
n/a
0 / 0
1
1<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2/**
3 * Register a portfolio post type and handle displaying it anywhere on the site.
4 *
5 * @package automattic/jetpack
6 */
7
8if ( ! class_exists( 'Jetpack_Portfolio' ) ) {
9    /**
10     * Jetpack Portfolio.
11     */
12    class Jetpack_Portfolio {
13
14        /**
15         * Store an instance of the new class
16         *
17         * @var Automattic\Jetpack\Classic_Theme_Helper\Jetpack_Portfolio
18         */
19        protected $new_instance;
20
21        /**
22         * Initialize class.
23         *
24         * @deprecated 13.9 Moved to Classic Theme Helper package.
25         */
26        public static function init() {
27            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
28            return Automattic\Jetpack\Classic_Theme_Helper\Jetpack_Portfolio::init();
29        }
30
31        /**
32         * Conditionally hook into WordPress.
33         *
34         * Setup user option for enabling CPT
35         * If user has CPT enabled, show in admin
36         */
37        public function __construct() {
38            $this->new_instance = new Automattic\Jetpack\Classic_Theme_Helper\Jetpack_Portfolio();
39        }
40
41        /**
42         * Forward all method calls to the Jetpack_Portfolio class.
43         *
44         * @param string $name The name of the method.
45         * @param array  $arguments The arguments to pass to the method.
46         *
47         * @throws Exception If the method is not found.
48         */
49        public function __call( $name, $arguments ) {
50            if ( method_exists( $this->new_instance, $name ) ) {
51                return call_user_func_array( array( $this->new_instance, $name ), $arguments );
52            } else {
53                // Handle cases where the method is not found
54                throw new Exception( sprintf( 'Undefined method: %s', esc_html( $name ) ) );
55            }
56        }
57
58        /**
59         * Forward all static method calls to the Jetpack_Portfolio class.
60         *
61         * @param string $name The name of the method.
62         * @param array  $arguments The arguments to pass to the method.
63         *
64         * @throws Exception If the method is not found.
65         */
66        public static function __callStatic( $name, $arguments ) {
67            if ( method_exists( Automattic\Jetpack\Classic_Theme_Helper\Jetpack_Portfolio::class, $name ) ) {
68                return call_user_func_array( array( Automattic\Jetpack\Classic_Theme_Helper\Jetpack_Portfolio::class, $name ), $arguments );
69            } else {
70                // Handle cases where the method is not found
71                throw new Exception( sprintf( 'Undefined static method: %s', esc_html( $name ) ) );
72            }
73        }
74
75        /**
76         * Registers the custom post types and adds action/filter handlers, but
77         * only if the site supports it
78         *
79         * @deprecated 13.9 Moved to Classic Theme Helper package.
80         */
81        public function maybe_register_cpt() {
82            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
83            $this->new_instance->maybe_register_cpt();
84        }
85
86        /**
87         * Add a checkbox field in 'Settings' > 'Writing'
88         * for enabling CPT functionality.
89         *
90         * @deprecated 13.9 Moved to Classic Theme Helper package.
91         *
92         * @return void
93         */
94        public function settings_api_init() {
95            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
96            $this->new_instance->settings_api_init();
97        }
98
99        /**
100         * HTML code to display a checkbox true/false option
101         * for the Portfolio CPT setting.
102         *
103         * @deprecated 13.9 Moved to Classic Theme Helper package.
104         *
105         * @return void
106         */
107        public function setting_html() {
108            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
109            $this->new_instance->setting_html();
110        }
111
112        /**
113         * Bump Portfolio > New Activation stat.
114         *
115         * @deprecated 13.9 Moved to Classic Theme Helper package.
116         */
117        public function new_activation_stat_bump() {
118            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
119            $this->new_instance->new_activation_stat_bump();
120        }
121
122        /**
123         * Bump Portfolio > Option On/Off stats to get total active.
124         *
125         * @deprecated 13.9 Moved to Classic Theme Helper package.
126         * @param mixed $old The old option value.
127         * @param mixed $new The new option value.
128         */
129        public function update_option_stat_bump( $old, $new ) {
130            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
131            $this->new_instance->update_option_stat_bump( $old, $new );
132        }
133
134        /**
135         * Bump Portfolio > Published Projects stat when projects are published.
136         *
137         * @deprecated 13.9 Moved to Classic Theme Helper package.
138         */
139        public function new_project_stat_bump() {
140            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
141            $this->new_instance->new_project_stat_bump();
142        }
143
144        /**
145         * Flush permalinks when CPT option is turned on/off
146         *
147         * @deprecated 13.9 Moved to Classic Theme Helper package.
148         */
149        public function flush_rules_on_enable() {
150            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
151            $this->new_instance->flush_rules_on_enable();
152        }
153
154        /**
155         * Count published projects and flush permalinks when first projects is published
156         *
157         * @deprecated 13.9 Moved to Classic Theme Helper package.
158         */
159        public function flush_rules_on_first_project() {
160            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
161            $this->new_instance->flush_rules_on_first_project();
162        }
163
164        /**
165         * Flush permalinks when CPT supported theme is activated
166         *
167         * @deprecated 13.9 Moved to Classic Theme Helper package.
168         */
169        public function flush_rules_on_switch() {
170            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
171            $this->new_instance->flush_rules_on_switch();
172        }
173
174        /**
175         * On plugin/theme activation, check if current theme supports CPT
176         *
177         * @deprecated 13.9 Moved to Classic Theme Helper package.
178         */
179        public static function activation_post_type_support() {
180            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
181            Automattic\Jetpack\Classic_Theme_Helper\Jetpack_Portfolio::activation_post_type_support();
182        }
183
184        /**
185         * On theme switch, check if CPT item exists and disable if not
186         *
187         * @deprecated 13.9 Moved to Classic Theme Helper package.
188         */
189        public function deactivation_post_type_support() {
190            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
191            $this->new_instance->deactivation_post_type_support();
192        }
193
194        /**
195         * Register Post Type
196         *
197         * @deprecated 13.9 Moved to Classic Theme Helper package.
198         */
199        public function register_post_types() {
200            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
201            $this->new_instance->register_post_types();
202        }
203
204        /**
205         * Update messages for the Portfolio admin.
206         *
207         * @deprecated 13.9 Moved to Classic Theme Helper package.
208         * @param array $messages Existing post update messages.
209         */
210        public function updated_messages( $messages ) {
211            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
212            $this->new_instance->updated_messages( $messages );
213        }
214
215        /**
216         * Change ‘Title’ column label
217         * Add Featured Image column
218         *
219         * @deprecated 13.9 Moved to Classic Theme Helper package.
220         *
221         * @param array $columns An array of column names.
222         */
223        public function edit_admin_columns( $columns ) {
224            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
225            $this->new_instance->edit_admin_columns( $columns );
226        }
227
228        /**
229         * Add featured image to column
230         *
231         * @deprecated 13.9 Moved to Classic Theme Helper package.
232         *
233         * @param string $column  The name of the column to display.
234         * @param int    $post_id The current post ID.
235         */
236        public function image_column( $column, $post_id ) {
237            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
238            $this->new_instance->image_column( $column, $post_id );
239        }
240
241        /**
242         * Adjust image column width
243         *
244         * @deprecated 13.9 Moved to Classic Theme Helper package.
245         *
246         * @param string $hook Page hook.
247         */
248        public function enqueue_admin_styles( $hook ) {
249            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
250            $this->new_instance->enqueue_admin_styles( $hook );
251        }
252
253        /**
254         * Adds portfolio section to the Customizer.
255         *
256         * @deprecated 13.9 Moved to Classic Theme Helper package.
257         *
258         * @param WP_Customize_Manager $wp_customize Customizer instance.
259         */
260        public function customize_register( $wp_customize ) {
261            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
262            $this->new_instance->customize_register( $wp_customize );
263        }
264
265        /**
266         * Follow CPT reading setting on CPT archive and taxonomy pages
267         *
268         * @deprecated 13.9 Moved to Classic Theme Helper package.
269         *  @param WP_Query $query A WP_Query instance.
270         */
271        public function query_reading_setting( $query ) {
272            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
273            $this->new_instance->query_reading_setting( $query );
274        }
275
276        /**
277         * If Infinite Scroll is set to 'click', use our custom reading setting instead of core's `posts_per_page`.
278         *
279         * @deprecated 13.9 Moved to Classic Theme Helper package.
280         * @param array $settings Array of Infinite Scroll settings.
281         */
282        public function infinite_scroll_click_posts_per_page( $settings ) {
283            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
284            $this->new_instance->infinite_scroll_click_posts_per_page( $settings );
285        }
286
287        /**
288         * Filter the results of infinite scroll to make sure we get `lastbatch` right.
289         *
290         * @deprecated 13.9 Moved to Classic Theme Helper package.
291         * @param array    $results    Array of Infinite Scroll results.
292         * @param array    $query_args Array of main query arguments.
293         * @param WP_Query $query      WP Query.
294         */
295        public function infinite_scroll_results( $results, $query_args, $query ) {
296            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
297            $this->new_instance->infinite_scroll_results( $results, $query_args, $query );
298        }
299
300        /**
301         * Add CPT to Dotcom sitemap
302         *
303         * @deprecated 13.9 Moved to Classic Theme Helper package.
304         * @param array $post_types Array of post types included in sitemap.
305         */
306        public function add_to_sitemap( $post_types ) {
307            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
308            $this->new_instance->add_to_sitemap( $post_types );
309        }
310
311        /**
312         * Add to REST API post type allowed list.
313         *
314         * @deprecated 13.9 Moved to Classic Theme Helper package.
315         * @param array $post_types Array of post types to add to the allowed list. Default to `array( 'post', 'page', 'revision' )`.
316         */
317        public function allow_portfolio_rest_api_type( $post_types ) {
318            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
319            $this->new_instance->allow_portfolio_rest_api_type( $post_types );
320        }
321
322        /**
323         * Our [portfolio] shortcode.
324         * Prints Portfolio data styled to look good on *any* theme.
325         *
326         * @deprecated 13.9 Moved to Classic Theme Helper package.
327         * @param array $atts Shortcode attributes.
328         *
329         * @return string html
330         */
331        public static function portfolio_shortcode( $atts ) {
332            _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
333            return Automattic\Jetpack\Classic_Theme_Helper\Jetpack_Portfolio::portfolio_shortcode( $atts );
334        }
335    }
336}