Passed
Push — add/multiplan ( b90a6b...55423f )
by Virginia
10:34
created
classes/post-types/class-exercise.php 1 patch
Indentation   +419 added lines, -419 removed lines patch added patch discarded remove patch
@@ -8,424 +8,424 @@
 block discarded – undo
8 8
  */
9 9
 class Exercise {
10 10
 
11
-	/**
12
-	 * Holds class instance
13
-	 *
14
-	 * @since 1.0.0
15
-	 *
16
-	 * @var      object \lsx_health_plan\classes\Exercise()
17
-	 */
18
-	protected static $instance = null;
19
-
20
-	/**
21
-	 * Holds post_type slug used as an index
22
-	 *
23
-	 * @since 1.0.0
24
-	 *
25
-	 * @var      string
26
-	 */
27
-	public $slug = 'exercise';
28
-
29
-	/**
30
-	 * Constructor
31
-	 */
32
-	public function __construct() {
33
-
34
-		if ( false !== \lsx_health_plan\functions\get_option( 'exercise_enabled', false ) ) {
35
-			// Post Type and Taxonomies.
36
-			add_action( 'init', array( $this, 'register_post_type' ) );
37
-			add_action( 'init', array( $this, 'exercise_type_taxonomy_setup' ) );
38
-			add_action( 'init', array( $this, 'equipment_taxonomy_setup' ) );
39
-			add_action( 'init', array( $this, 'muscle_group_taxonomy_setup' ) );
40
-			add_action( 'admin_menu', array( $this, 'register_menus' ) );
41
-
42
-			// Custom Fields.
43
-			add_action( 'cmb2_admin_init', array( $this, 'exercise_details' ), 8 );
44
-			add_action( 'cmb2_admin_init', array( $this, 'gallery_metabox' ), 9 );
45
-			add_filter( 'lsx_health_plan_connections', array( $this, 'enable_connections' ), 10, 1 );
46
-
47
-			// Template Redirects.
48
-			add_filter( 'lsx_health_plan_archive_template', array( $this, 'enable_post_type' ), 10, 1 );
49
-			add_filter( 'lsx_health_plan_single_template', array( $this, 'enable_post_type' ), 10, 1 );
50
-
51
-			//Breadcrumbs
52
-			add_filter( 'woocommerce_get_breadcrumb', array( $this, 'exercise_breadcrumb_filter' ), 30, 1 );
53
-
54
-		}
55
-
56
-	}
57
-
58
-
59
-	/**
60
-	 * Return an instance of this class.
61
-	 *
62
-	 * @since 1.0.0
63
-	 *
64
-	 * @return    object \lsx_health_plan\classes\Exercise()    A single instance of this class.
65
-	 */
66
-	public static function get_instance() {
67
-		// If the single instance hasn't been set, set it now.
68
-		if ( null === self::$instance ) {
69
-			self::$instance = new self();
70
-		}
71
-		return self::$instance;
72
-	}
73
-	/**
74
-	 * Register the post type.
75
-	 */
76
-	public function register_post_type() {
77
-		$labels = array(
78
-			'name'               => esc_html__( 'Exercises', 'lsx-health-plan' ),
79
-			'singular_name'      => esc_html__( 'Exercise', 'lsx-health-plan' ),
80
-			'add_new'            => esc_html_x( 'Add New', 'post type general name', 'lsx-health-plan' ),
81
-			'add_new_item'       => esc_html__( 'Add New', 'lsx-health-plan' ),
82
-			'edit_item'          => esc_html__( 'Edit', 'lsx-health-plan' ),
83
-			'new_item'           => esc_html__( 'New', 'lsx-health-plan' ),
84
-			'all_items'          => esc_html__( 'All Exercises', 'lsx-health-plan' ),
85
-			'view_item'          => esc_html__( 'View', 'lsx-health-plan' ),
86
-			'search_items'       => esc_html__( 'Search', 'lsx-health-plan' ),
87
-			'not_found'          => esc_html__( 'None found', 'lsx-health-plan' ),
88
-			'not_found_in_trash' => esc_html__( 'None found in Trash', 'lsx-health-plan' ),
89
-			'parent_item_colon'  => '',
90
-			'menu_name'          => esc_html__( 'Exercises', 'lsx-health-plan' ),
91
-		);
92
-		$args   = array(
93
-			'labels'             => $labels,
94
-			'public'             => true,
95
-			'publicly_queryable' => true,
96
-			'show_ui'            => true,
97
-			'show_in_menu'       => false,
98
-			'show_in_rest'       => true,
99
-			'menu_icon'          => 'dashicons-universal-access',
100
-			'query_var'          => true,
101
-			'rewrite'            => array(
102
-				'slug' => \lsx_health_plan\functions\get_option( 'endpoint_exercise_single', 'exercise' ),
103
-			),
104
-			'capability_type'    => 'page',
105
-			'has_archive'        => \lsx_health_plan\functions\get_option( 'endpoint_exercise_archive', 'exercises' ),
106
-			'hierarchical'       => false,
107
-			'menu_position'      => null,
108
-			'supports'           => array(
109
-				'title',
110
-				'thumbnail',
111
-				'editor',
112
-				'excerpt',
113
-				'custom-fields',
114
-			),
115
-		);
116
-		register_post_type( 'exercise', $args );
117
-	}
118
-
119
-	/**
120
-	 * Register the Exercise taxonomy.
121
-	 *
122
-	 * @return void
123
-	 */
124
-	public function exercise_type_taxonomy_setup() {
125
-		$labels = array(
126
-			'name'              => esc_html_x( 'Exercise Type', 'taxonomy general name', 'lsx-health-plan' ),
127
-			'singular_name'     => esc_html_x( 'Exercise Type', 'taxonomy singular name', 'lsx-health-plan' ),
128
-			'search_items'      => esc_html__( 'Search', 'lsx-health-plan' ),
129
-			'all_items'         => esc_html__( 'All', 'lsx-health-plan' ),
130
-			'parent_item'       => esc_html__( 'Parent', 'lsx-health-plan' ),
131
-			'parent_item_colon' => esc_html__( 'Parent:', 'lsx-health-plan' ),
132
-			'edit_item'         => esc_html__( 'Edit', 'lsx-health-plan' ),
133
-			'update_item'       => esc_html__( 'Update', 'lsx-health-plan' ),
134
-			'add_new_item'      => esc_html__( 'Add New', 'lsx-health-plan' ),
135
-			'new_item_name'     => esc_html__( 'New Name', 'lsx-health-plan' ),
136
-			'menu_name'         => esc_html__( 'Exercise Types', 'lsx-health-plan' ),
137
-		);
138
-
139
-		$args = array(
140
-			'hierarchical'      => true,
141
-			'labels'            => $labels,
142
-			'show_ui'           => true,
143
-			'show_admin_column' => true,
144
-			'query_var'         => true,
145
-			'rewrite'           => array(
146
-				'slug' => \lsx_health_plan\functions\get_option( 'endpoint_exercise_type', 'exercise-type' ),
147
-			),
148
-			'show_in_rest'      => true,
149
-		);
150
-
151
-		register_taxonomy( 'exercise-type', array( 'exercise' ), $args );
152
-	}
153
-
154
-	/**
155
-	 * Register the Exercise taxonomy.
156
-	 *
157
-	 * @return void
158
-	 */
159
-	public function equipment_taxonomy_setup() {
160
-		$labels = array(
161
-			'name'              => esc_html_x( 'Equipment', 'taxonomy general name', 'lsx-health-plan' ),
162
-			'singular_name'     => esc_html_x( 'Equipment', 'taxonomy singular name', 'lsx-health-plan' ),
163
-			'search_items'      => esc_html__( 'Search', 'lsx-health-plan' ),
164
-			'all_items'         => esc_html__( 'All', 'lsx-health-plan' ),
165
-			'parent_item'       => esc_html__( 'Parent', 'lsx-health-plan' ),
166
-			'parent_item_colon' => esc_html__( 'Parent:', 'lsx-health-plan' ),
167
-			'edit_item'         => esc_html__( 'Edit', 'lsx-health-plan' ),
168
-			'update_item'       => esc_html__( 'Update', 'lsx-health-plan' ),
169
-			'add_new_item'      => esc_html__( 'Add New', 'lsx-health-plan' ),
170
-			'new_item_name'     => esc_html__( 'New Name', 'lsx-health-plan' ),
171
-			'menu_name'         => esc_html__( 'Equipment', 'lsx-health-plan' ),
172
-		);
173
-
174
-		$args = array(
175
-			'hierarchical'      => true,
176
-			'labels'            => $labels,
177
-			'show_ui'           => true,
178
-			'show_admin_column' => true,
179
-			'query_var'         => true,
180
-			'rewrite'           => array(
181
-				'slug' => \lsx_health_plan\functions\get_option( 'endpoint_exercise_equipment', 'equipment' ),
182
-			),
183
-			'show_in_rest'      => true,
184
-		);
185
-
186
-		register_taxonomy( 'equipment', array( 'exercise' ), $args );
187
-	}
188
-
189
-	/**
190
-	 * Register the Muscle Group taxonomy.
191
-	 *
192
-	 * @return void
193
-	 */
194
-	public function muscle_group_taxonomy_setup() {
195
-		$labels = array(
196
-			'name'              => esc_html_x( 'Muscle Groups', 'taxonomy general name', 'lsx-health-plan' ),
197
-			'singular_name'     => esc_html_x( 'Muscle Group', 'taxonomy singular name', 'lsx-health-plan' ),
198
-			'search_items'      => esc_html__( 'Search', 'lsx-health-plan' ),
199
-			'all_items'         => esc_html__( 'All', 'lsx-health-plan' ),
200
-			'parent_item'       => esc_html__( 'Parent', 'lsx-health-plan' ),
201
-			'parent_item_colon' => esc_html__( 'Parent:', 'lsx-health-plan' ),
202
-			'edit_item'         => esc_html__( 'Edit', 'lsx-health-plan' ),
203
-			'update_item'       => esc_html__( 'Update', 'lsx-health-plan' ),
204
-			'add_new_item'      => esc_html__( 'Add New', 'lsx-health-plan' ),
205
-			'new_item_name'     => esc_html__( 'New Name', 'lsx-health-plan' ),
206
-			'menu_name'         => esc_html__( 'Muscle Groups', 'lsx-health-plan' ),
207
-		);
208
-
209
-		$args = array(
210
-			'hierarchical'      => true,
211
-			'labels'            => $labels,
212
-			'show_ui'           => true,
213
-			'show_admin_column' => true,
214
-			'query_var'         => true,
215
-			'rewrite'           => array(
216
-				'slug' => \lsx_health_plan\functions\get_option( 'endpoint_exercise_muscle_group', 'muscle-group' ),
217
-			),
218
-			'show_in_rest'      => true,
219
-		);
220
-
221
-		register_taxonomy( 'muscle-group', array( 'exercise' ), $args );
222
-	}
223
-
224
-	/**
225
-	 * Registers the Recipes under the Meals Post type menu.
226
-	 *
227
-	 * @return void
228
-	 */
229
-	public function register_menus() {
230
-		add_submenu_page( 'edit.php?post_type=workout', esc_html__( 'Exercises', 'lsx-health-plan' ), esc_html__( 'Exercises', 'lsx-health-plan' ), 'edit_posts', 'edit.php?post_type=exercise' );
231
-		add_submenu_page( 'edit.php?post_type=workout', esc_html__( 'Exercise Types', 'lsx-health-plan' ), esc_html__( 'Exercise Types', 'lsx-health-plan' ), 'edit_posts', 'edit-tags.php?taxonomy=exercise-type&post_type=exercise' );
232
-		add_submenu_page( 'edit.php?post_type=workout', esc_html__( 'Equipment', 'lsx-health-plan' ), esc_html__( 'Equipment', 'lsx-health-plan' ), 'edit_posts', 'edit-tags.php?taxonomy=equipment&post_type=exercise' );
233
-		add_submenu_page( 'edit.php?post_type=workout', esc_html__( 'Muscle Groups', 'lsx-health-plan' ), esc_html__( 'Muscle Groups', 'lsx-health-plan' ), 'edit_posts', 'edit-tags.php?taxonomy=muscle-group&post_type=exercise' );
234
-	}
235
-
236
-	/**
237
-	 * Adds the post type to the different arrays.
238
-	 *
239
-	 * @param array $post_types
240
-	 * @return array
241
-	 */
242
-	public function enable_post_type( $post_types = array() ) {
243
-		$post_types[] = $this->slug;
244
-		return $post_types;
245
-	}
246
-
247
-	/**
248
-	 * Enables the Bi Directional relationships
249
-	 *
250
-	 * @param array $connections
251
-	 * @return void
252
-	 */
253
-	public function enable_connections( $connections = array() ) {
254
-		$connections['exercise']['connected_workouts'] = 'connected_exercises';
255
-		$connections['workout']['connected_exercises'] = 'connected_workouts';
256
-		return $connections;
257
-	}
258
-
259
-	/**
260
-	 * Define the metabox and field configurations.
261
-	 */
262
-	public function gallery_metabox() {
263
-		$cmb = new_cmb2_box(
264
-			array(
265
-				'id'           => $this->slug . '_gallery_details_metabox',
266
-				'title'        => __( 'Exercise Gallery', 'lsx-health-plan' ),
267
-				'object_types' => array( $this->slug ),
268
-				'context'      => 'normal',
269
-				'priority'     => 'low',
270
-				'show_names'   => true,
271
-			)
272
-		);
273
-
274
-		$cmb->add_field(
275
-			array(
276
-				'name'    => __( 'Layout', 'lsx-health-plan' ),
277
-				'id'      => $this->slug . '_gallery_layout',
278
-				'type'    => 'radio',
279
-				'options' => array(
280
-					'slider' => __( 'Slider', 'lsx-health-plan' ) . ' {#}', // {#} gets replaced by row number
281
-					'grid'   => __( 'Grid', 'lsx-health-plan' ),
282
-				),
283
-				'default' => 'grid',
284
-			)
285
-		);
286
-
287
-		$cmb->add_field(
288
-			array(
289
-				'name'    => __( 'Grid Columns', 'lsx-health-plan' ),
290
-				'id'      => $this->slug . '_gallery_columns',
291
-				'type'    => 'text',
292
-				'default' => '1',
293
-			)
294
-		);
295
-
296
-		// Repeatable group.
297
-		$gallery_group = $cmb->add_field(
298
-			array(
299
-				'id'      => $this->slug . '_gallery',
300
-				'type'    => 'group',
301
-				'options' => array(
302
-					'group_title'   => __( 'Gallery', 'lsx-health-plan' ) . ' {#}', // {#} gets replaced by row number
303
-					'add_button'    => __( 'Add Item', 'lsx-health-plan' ),
304
-					'remove_button' => __( 'Remove Item', 'lsx-health-plan' ),
305
-					'sortable'      => true,
306
-				),
307
-				'classes' => 'lsx-admin-row',
308
-			)
309
-		);
310
-
311
-		// Title.
312
-		$cmb->add_group_field(
313
-			$gallery_group,
314
-			array(
315
-				'name'       => __( 'Image', 'lsx-health-plan' ),
316
-				'id'         => $this->slug . '_gallery_image',
317
-				'type'       => 'file',
318
-				'text'       => array(
319
-					'add_upload_file_text' => __( 'Add File', 'lsx-health-plan' ),
320
-				),
321
-				'desc'       => __( 'Upload an image a minimum of 800px x 600px in size.', 'lsx-health-plan' ),
322
-				'query_args' => array(
323
-					'type' => array(
324
-						'image/gif',
325
-						'image/jpeg',
326
-						'image/png',
327
-					),
328
-				),
329
-				'preview_size' => 'lsx-thumbnail-wide',
330
-			)
331
-		);
332
-
333
-		// Title.
334
-		$cmb->add_group_field(
335
-			$gallery_group,
336
-			array(
337
-				'name'         => __( 'oEmbed', 'lsx-health-plan' ),
338
-				'id'           => $this->slug . '_gallery_embed',
339
-				'type'         => 'text',
340
-				'desc'         => __( 'Drop in the embed url for your video from YouTube, Vimeo or DailyMotion, e.g: "https://www.youtube.com/watch?v=9xwazD5SyVg". A full list of supports formats can be found at <a href="https://make.wordpress.org/support/user-manual/content/media/adding-media-to-your-pages-and-posts/embedding-media-from-other-sites/">WordPress</a>', 'lsx-health-plan' ),
341
-			)
342
-		);
343
-
344
-		$cmb->add_group_field(
345
-			$gallery_group,
346
-			array(
347
-				'name'         => __( 'External Media', 'lsx-health-plan' ),
348
-				'id'           => $this->slug . '_gallery_external',
349
-				'type'         => 'textarea_code',
350
-				'desc'         => __( 'Drop in the iFrame embed code from Giphy in this field, i.e: &lt;iframe src="https://giphy.com/embed/3o7527Rn1HxXWqgxuo" width="480" height="270" frameborder="0" class="giphy-embed" allowfullscreen&gt;&lt;/iframe&gt;', 'lsx-health-plan' ),
351
-			)
352
-		);
353
-	}
354
-
355
-	/**
356
-	 * Registers the general settings for the exercise.
357
-	 *
358
-	 * @return void
359
-	 */
360
-	public function exercise_details() {
361
-		$cmb = new_cmb2_box(
362
-			array(
363
-				'id'           => $this->slug . '_general_details_metabox',
364
-				'title'        => __( 'Details', 'lsx-health-plan' ),
365
-				'object_types' => array( $this->slug ),
366
-				'context'      => 'normal',
367
-				'priority'     => 'high',
368
-				'show_names'   => true,
369
-			)
370
-		);
371
-
372
-		$cmb->add_field(
373
-			array(
374
-				'name'    => __( 'Side', 'lsx-health-plan' ),
375
-				'id'      => $this->slug . '_side',
376
-				'type'    => 'select',
377
-				'options' => array(
378
-					''      => __( 'Select', 'lsx-health-plan' ),
379
-					'left'  => __( 'Left', 'lsx-health-plan' ),
380
-					'right' => __( 'Right', 'lsx-health-plan' ),
381
-				),
382
-				'desc'    => __( 'Select which side this exercise uses. ', 'lsx-health-plan' ),
383
-			)
384
-		);
385
-	}
386
-
387
-	/**
388
-	 * Holds the array for the single exercise breadcrumbs.
389
-	 *
390
-	 * @var array $crumbs
391
-	 * @return array
392
-	 */
393
-	public function exercise_breadcrumb_filter( $crumbs ) {
394
-		$exercise  = \lsx_health_plan\functions\get_option( 'endpoint_exercise', 'exercise' );
395
-		$exercises = \lsx_health_plan\functions\get_option( 'endpoint_exercise_archive', 'exercise' );
396
-		$url       = get_post_type_archive_link( $exercise );
397
-
398
-		if ( is_singular( 'exercise' ) ) {
399
-			$exercise_name     = get_the_title();	
400
-			$term_obj_list     = get_the_terms( get_the_ID(), 'exercise-type' );
401
-			$exercise_type     = $term_obj_list[0]->name;
402
-			$exercise_type_url = get_term_link( $term_obj_list[0]->term_id );
11
+     /**
12
+      * Holds class instance
13
+      *
14
+      * @since 1.0.0
15
+      *
16
+      * @var      object \lsx_health_plan\classes\Exercise()
17
+      */
18
+     protected static $instance = null;
19
+
20
+     /**
21
+      * Holds post_type slug used as an index
22
+      *
23
+      * @since 1.0.0
24
+      *
25
+      * @var      string
26
+      */
27
+     public $slug = 'exercise';
28
+
29
+     /**
30
+      * Constructor
31
+      */
32
+     public function __construct() {
33
+
34
+          if ( false !== \lsx_health_plan\functions\get_option( 'exercise_enabled', false ) ) {
35
+               // Post Type and Taxonomies.
36
+               add_action( 'init', array( $this, 'register_post_type' ) );
37
+               add_action( 'init', array( $this, 'exercise_type_taxonomy_setup' ) );
38
+               add_action( 'init', array( $this, 'equipment_taxonomy_setup' ) );
39
+               add_action( 'init', array( $this, 'muscle_group_taxonomy_setup' ) );
40
+               add_action( 'admin_menu', array( $this, 'register_menus' ) );
41
+
42
+               // Custom Fields.
43
+               add_action( 'cmb2_admin_init', array( $this, 'exercise_details' ), 8 );
44
+               add_action( 'cmb2_admin_init', array( $this, 'gallery_metabox' ), 9 );
45
+               add_filter( 'lsx_health_plan_connections', array( $this, 'enable_connections' ), 10, 1 );
46
+
47
+               // Template Redirects.
48
+               add_filter( 'lsx_health_plan_archive_template', array( $this, 'enable_post_type' ), 10, 1 );
49
+               add_filter( 'lsx_health_plan_single_template', array( $this, 'enable_post_type' ), 10, 1 );
50
+
51
+               //Breadcrumbs
52
+               add_filter( 'woocommerce_get_breadcrumb', array( $this, 'exercise_breadcrumb_filter' ), 30, 1 );
53
+
54
+          }
55
+
56
+     }
57
+
58
+
59
+     /**
60
+      * Return an instance of this class.
61
+      *
62
+      * @since 1.0.0
63
+      *
64
+      * @return    object \lsx_health_plan\classes\Exercise()    A single instance of this class.
65
+      */
66
+     public static function get_instance() {
67
+          // If the single instance hasn't been set, set it now.
68
+          if ( null === self::$instance ) {
69
+               self::$instance = new self();
70
+          }
71
+          return self::$instance;
72
+     }
73
+     /**
74
+      * Register the post type.
75
+      */
76
+     public function register_post_type() {
77
+          $labels = array(
78
+               'name'               => esc_html__( 'Exercises', 'lsx-health-plan' ),
79
+               'singular_name'      => esc_html__( 'Exercise', 'lsx-health-plan' ),
80
+               'add_new'            => esc_html_x( 'Add New', 'post type general name', 'lsx-health-plan' ),
81
+               'add_new_item'       => esc_html__( 'Add New', 'lsx-health-plan' ),
82
+               'edit_item'          => esc_html__( 'Edit', 'lsx-health-plan' ),
83
+               'new_item'           => esc_html__( 'New', 'lsx-health-plan' ),
84
+               'all_items'          => esc_html__( 'All Exercises', 'lsx-health-plan' ),
85
+               'view_item'          => esc_html__( 'View', 'lsx-health-plan' ),
86
+               'search_items'       => esc_html__( 'Search', 'lsx-health-plan' ),
87
+               'not_found'          => esc_html__( 'None found', 'lsx-health-plan' ),
88
+               'not_found_in_trash' => esc_html__( 'None found in Trash', 'lsx-health-plan' ),
89
+               'parent_item_colon'  => '',
90
+               'menu_name'          => esc_html__( 'Exercises', 'lsx-health-plan' ),
91
+          );
92
+          $args   = array(
93
+               'labels'             => $labels,
94
+               'public'             => true,
95
+               'publicly_queryable' => true,
96
+               'show_ui'            => true,
97
+               'show_in_menu'       => false,
98
+               'show_in_rest'       => true,
99
+               'menu_icon'          => 'dashicons-universal-access',
100
+               'query_var'          => true,
101
+               'rewrite'            => array(
102
+                    'slug' => \lsx_health_plan\functions\get_option( 'endpoint_exercise_single', 'exercise' ),
103
+               ),
104
+               'capability_type'    => 'page',
105
+               'has_archive'        => \lsx_health_plan\functions\get_option( 'endpoint_exercise_archive', 'exercises' ),
106
+               'hierarchical'       => false,
107
+               'menu_position'      => null,
108
+               'supports'           => array(
109
+                    'title',
110
+                    'thumbnail',
111
+                    'editor',
112
+                    'excerpt',
113
+                    'custom-fields',
114
+               ),
115
+          );
116
+          register_post_type( 'exercise', $args );
117
+     }
118
+
119
+     /**
120
+      * Register the Exercise taxonomy.
121
+      *
122
+      * @return void
123
+      */
124
+     public function exercise_type_taxonomy_setup() {
125
+          $labels = array(
126
+               'name'              => esc_html_x( 'Exercise Type', 'taxonomy general name', 'lsx-health-plan' ),
127
+               'singular_name'     => esc_html_x( 'Exercise Type', 'taxonomy singular name', 'lsx-health-plan' ),
128
+               'search_items'      => esc_html__( 'Search', 'lsx-health-plan' ),
129
+               'all_items'         => esc_html__( 'All', 'lsx-health-plan' ),
130
+               'parent_item'       => esc_html__( 'Parent', 'lsx-health-plan' ),
131
+               'parent_item_colon' => esc_html__( 'Parent:', 'lsx-health-plan' ),
132
+               'edit_item'         => esc_html__( 'Edit', 'lsx-health-plan' ),
133
+               'update_item'       => esc_html__( 'Update', 'lsx-health-plan' ),
134
+               'add_new_item'      => esc_html__( 'Add New', 'lsx-health-plan' ),
135
+               'new_item_name'     => esc_html__( 'New Name', 'lsx-health-plan' ),
136
+               'menu_name'         => esc_html__( 'Exercise Types', 'lsx-health-plan' ),
137
+          );
138
+
139
+          $args = array(
140
+               'hierarchical'      => true,
141
+               'labels'            => $labels,
142
+               'show_ui'           => true,
143
+               'show_admin_column' => true,
144
+               'query_var'         => true,
145
+               'rewrite'           => array(
146
+                    'slug' => \lsx_health_plan\functions\get_option( 'endpoint_exercise_type', 'exercise-type' ),
147
+               ),
148
+               'show_in_rest'      => true,
149
+          );
150
+
151
+          register_taxonomy( 'exercise-type', array( 'exercise' ), $args );
152
+     }
153
+
154
+     /**
155
+      * Register the Exercise taxonomy.
156
+      *
157
+      * @return void
158
+      */
159
+     public function equipment_taxonomy_setup() {
160
+          $labels = array(
161
+               'name'              => esc_html_x( 'Equipment', 'taxonomy general name', 'lsx-health-plan' ),
162
+               'singular_name'     => esc_html_x( 'Equipment', 'taxonomy singular name', 'lsx-health-plan' ),
163
+               'search_items'      => esc_html__( 'Search', 'lsx-health-plan' ),
164
+               'all_items'         => esc_html__( 'All', 'lsx-health-plan' ),
165
+               'parent_item'       => esc_html__( 'Parent', 'lsx-health-plan' ),
166
+               'parent_item_colon' => esc_html__( 'Parent:', 'lsx-health-plan' ),
167
+               'edit_item'         => esc_html__( 'Edit', 'lsx-health-plan' ),
168
+               'update_item'       => esc_html__( 'Update', 'lsx-health-plan' ),
169
+               'add_new_item'      => esc_html__( 'Add New', 'lsx-health-plan' ),
170
+               'new_item_name'     => esc_html__( 'New Name', 'lsx-health-plan' ),
171
+               'menu_name'         => esc_html__( 'Equipment', 'lsx-health-plan' ),
172
+          );
173
+
174
+          $args = array(
175
+               'hierarchical'      => true,
176
+               'labels'            => $labels,
177
+               'show_ui'           => true,
178
+               'show_admin_column' => true,
179
+               'query_var'         => true,
180
+               'rewrite'           => array(
181
+                    'slug' => \lsx_health_plan\functions\get_option( 'endpoint_exercise_equipment', 'equipment' ),
182
+               ),
183
+               'show_in_rest'      => true,
184
+          );
185
+
186
+          register_taxonomy( 'equipment', array( 'exercise' ), $args );
187
+     }
188
+
189
+     /**
190
+      * Register the Muscle Group taxonomy.
191
+      *
192
+      * @return void
193
+      */
194
+     public function muscle_group_taxonomy_setup() {
195
+          $labels = array(
196
+               'name'              => esc_html_x( 'Muscle Groups', 'taxonomy general name', 'lsx-health-plan' ),
197
+               'singular_name'     => esc_html_x( 'Muscle Group', 'taxonomy singular name', 'lsx-health-plan' ),
198
+               'search_items'      => esc_html__( 'Search', 'lsx-health-plan' ),
199
+               'all_items'         => esc_html__( 'All', 'lsx-health-plan' ),
200
+               'parent_item'       => esc_html__( 'Parent', 'lsx-health-plan' ),
201
+               'parent_item_colon' => esc_html__( 'Parent:', 'lsx-health-plan' ),
202
+               'edit_item'         => esc_html__( 'Edit', 'lsx-health-plan' ),
203
+               'update_item'       => esc_html__( 'Update', 'lsx-health-plan' ),
204
+               'add_new_item'      => esc_html__( 'Add New', 'lsx-health-plan' ),
205
+               'new_item_name'     => esc_html__( 'New Name', 'lsx-health-plan' ),
206
+               'menu_name'         => esc_html__( 'Muscle Groups', 'lsx-health-plan' ),
207
+          );
208
+
209
+          $args = array(
210
+               'hierarchical'      => true,
211
+               'labels'            => $labels,
212
+               'show_ui'           => true,
213
+               'show_admin_column' => true,
214
+               'query_var'         => true,
215
+               'rewrite'           => array(
216
+                    'slug' => \lsx_health_plan\functions\get_option( 'endpoint_exercise_muscle_group', 'muscle-group' ),
217
+               ),
218
+               'show_in_rest'      => true,
219
+          );
220
+
221
+          register_taxonomy( 'muscle-group', array( 'exercise' ), $args );
222
+     }
223
+
224
+     /**
225
+      * Registers the Recipes under the Meals Post type menu.
226
+      *
227
+      * @return void
228
+      */
229
+     public function register_menus() {
230
+          add_submenu_page( 'edit.php?post_type=workout', esc_html__( 'Exercises', 'lsx-health-plan' ), esc_html__( 'Exercises', 'lsx-health-plan' ), 'edit_posts', 'edit.php?post_type=exercise' );
231
+          add_submenu_page( 'edit.php?post_type=workout', esc_html__( 'Exercise Types', 'lsx-health-plan' ), esc_html__( 'Exercise Types', 'lsx-health-plan' ), 'edit_posts', 'edit-tags.php?taxonomy=exercise-type&post_type=exercise' );
232
+          add_submenu_page( 'edit.php?post_type=workout', esc_html__( 'Equipment', 'lsx-health-plan' ), esc_html__( 'Equipment', 'lsx-health-plan' ), 'edit_posts', 'edit-tags.php?taxonomy=equipment&post_type=exercise' );
233
+          add_submenu_page( 'edit.php?post_type=workout', esc_html__( 'Muscle Groups', 'lsx-health-plan' ), esc_html__( 'Muscle Groups', 'lsx-health-plan' ), 'edit_posts', 'edit-tags.php?taxonomy=muscle-group&post_type=exercise' );
234
+     }
235
+
236
+     /**
237
+      * Adds the post type to the different arrays.
238
+      *
239
+      * @param array $post_types
240
+      * @return array
241
+      */
242
+     public function enable_post_type( $post_types = array() ) {
243
+          $post_types[] = $this->slug;
244
+          return $post_types;
245
+     }
246
+
247
+     /**
248
+      * Enables the Bi Directional relationships
249
+      *
250
+      * @param array $connections
251
+      * @return void
252
+      */
253
+     public function enable_connections( $connections = array() ) {
254
+          $connections['exercise']['connected_workouts'] = 'connected_exercises';
255
+          $connections['workout']['connected_exercises'] = 'connected_workouts';
256
+          return $connections;
257
+     }
258
+
259
+     /**
260
+      * Define the metabox and field configurations.
261
+      */
262
+     public function gallery_metabox() {
263
+          $cmb = new_cmb2_box(
264
+               array(
265
+                    'id'           => $this->slug . '_gallery_details_metabox',
266
+                    'title'        => __( 'Exercise Gallery', 'lsx-health-plan' ),
267
+                    'object_types' => array( $this->slug ),
268
+                    'context'      => 'normal',
269
+                    'priority'     => 'low',
270
+                    'show_names'   => true,
271
+               )
272
+          );
273
+
274
+          $cmb->add_field(
275
+               array(
276
+                    'name'    => __( 'Layout', 'lsx-health-plan' ),
277
+                    'id'      => $this->slug . '_gallery_layout',
278
+                    'type'    => 'radio',
279
+                    'options' => array(
280
+                         'slider' => __( 'Slider', 'lsx-health-plan' ) . ' {#}', // {#} gets replaced by row number
281
+                         'grid'   => __( 'Grid', 'lsx-health-plan' ),
282
+                    ),
283
+                    'default' => 'grid',
284
+               )
285
+          );
286
+
287
+          $cmb->add_field(
288
+               array(
289
+                    'name'    => __( 'Grid Columns', 'lsx-health-plan' ),
290
+                    'id'      => $this->slug . '_gallery_columns',
291
+                    'type'    => 'text',
292
+                    'default' => '1',
293
+               )
294
+          );
295
+
296
+          // Repeatable group.
297
+          $gallery_group = $cmb->add_field(
298
+               array(
299
+                    'id'      => $this->slug . '_gallery',
300
+                    'type'    => 'group',
301
+                    'options' => array(
302
+                         'group_title'   => __( 'Gallery', 'lsx-health-plan' ) . ' {#}', // {#} gets replaced by row number
303
+                         'add_button'    => __( 'Add Item', 'lsx-health-plan' ),
304
+                         'remove_button' => __( 'Remove Item', 'lsx-health-plan' ),
305
+                         'sortable'      => true,
306
+                    ),
307
+                    'classes' => 'lsx-admin-row',
308
+               )
309
+          );
310
+
311
+          // Title.
312
+          $cmb->add_group_field(
313
+               $gallery_group,
314
+               array(
315
+                    'name'       => __( 'Image', 'lsx-health-plan' ),
316
+                    'id'         => $this->slug . '_gallery_image',
317
+                    'type'       => 'file',
318
+                    'text'       => array(
319
+                         'add_upload_file_text' => __( 'Add File', 'lsx-health-plan' ),
320
+                    ),
321
+                    'desc'       => __( 'Upload an image a minimum of 800px x 600px in size.', 'lsx-health-plan' ),
322
+                    'query_args' => array(
323
+                         'type' => array(
324
+                              'image/gif',
325
+                              'image/jpeg',
326
+                              'image/png',
327
+                         ),
328
+                    ),
329
+                    'preview_size' => 'lsx-thumbnail-wide',
330
+               )
331
+          );
332
+
333
+          // Title.
334
+          $cmb->add_group_field(
335
+               $gallery_group,
336
+               array(
337
+                    'name'         => __( 'oEmbed', 'lsx-health-plan' ),
338
+                    'id'           => $this->slug . '_gallery_embed',
339
+                    'type'         => 'text',
340
+                    'desc'         => __( 'Drop in the embed url for your video from YouTube, Vimeo or DailyMotion, e.g: "https://www.youtube.com/watch?v=9xwazD5SyVg". A full list of supports formats can be found at <a href="https://make.wordpress.org/support/user-manual/content/media/adding-media-to-your-pages-and-posts/embedding-media-from-other-sites/">WordPress</a>', 'lsx-health-plan' ),
341
+               )
342
+          );
343
+
344
+          $cmb->add_group_field(
345
+               $gallery_group,
346
+               array(
347
+                    'name'         => __( 'External Media', 'lsx-health-plan' ),
348
+                    'id'           => $this->slug . '_gallery_external',
349
+                    'type'         => 'textarea_code',
350
+                    'desc'         => __( 'Drop in the iFrame embed code from Giphy in this field, i.e: &lt;iframe src="https://giphy.com/embed/3o7527Rn1HxXWqgxuo" width="480" height="270" frameborder="0" class="giphy-embed" allowfullscreen&gt;&lt;/iframe&gt;', 'lsx-health-plan' ),
351
+               )
352
+          );
353
+     }
354
+
355
+     /**
356
+      * Registers the general settings for the exercise.
357
+      *
358
+      * @return void
359
+      */
360
+     public function exercise_details() {
361
+          $cmb = new_cmb2_box(
362
+               array(
363
+                    'id'           => $this->slug . '_general_details_metabox',
364
+                    'title'        => __( 'Details', 'lsx-health-plan' ),
365
+                    'object_types' => array( $this->slug ),
366
+                    'context'      => 'normal',
367
+                    'priority'     => 'high',
368
+                    'show_names'   => true,
369
+               )
370
+          );
371
+
372
+          $cmb->add_field(
373
+               array(
374
+                    'name'    => __( 'Side', 'lsx-health-plan' ),
375
+                    'id'      => $this->slug . '_side',
376
+                    'type'    => 'select',
377
+                    'options' => array(
378
+                         ''      => __( 'Select', 'lsx-health-plan' ),
379
+                         'left'  => __( 'Left', 'lsx-health-plan' ),
380
+                         'right' => __( 'Right', 'lsx-health-plan' ),
381
+                    ),
382
+                    'desc'    => __( 'Select which side this exercise uses. ', 'lsx-health-plan' ),
383
+               )
384
+          );
385
+     }
386
+
387
+     /**
388
+      * Holds the array for the single exercise breadcrumbs.
389
+      *
390
+      * @var array $crumbs
391
+      * @return array
392
+      */
393
+     public function exercise_breadcrumb_filter( $crumbs ) {
394
+          $exercise  = \lsx_health_plan\functions\get_option( 'endpoint_exercise', 'exercise' );
395
+          $exercises = \lsx_health_plan\functions\get_option( 'endpoint_exercise_archive', 'exercise' );
396
+          $url       = get_post_type_archive_link( $exercise );
397
+
398
+          if ( is_singular( 'exercise' ) ) {
399
+               $exercise_name     = get_the_title();	
400
+               $term_obj_list     = get_the_terms( get_the_ID(), 'exercise-type' );
401
+               $exercise_type     = $term_obj_list[0]->name;
402
+               $exercise_type_url = get_term_link( $term_obj_list[0]->term_id );
403 403
 		
404
-			$crumbs[1] = array(
405
-				0 => $exercises,
406
-				1 => $url,
407
-			);
408
-			$crumbs[2] = array(
409
-				0 => $exercise_type,
410
-				1 => $exercise_type_url,
411
-			);
412
-			$crumbs[3] = array(
413
-				0 => $exercise_name,
414
-			);
415
-		}
416
-		if ( is_tax( 'exercise-type' ) || is_tax( 'muscle-group' ) || is_tax( 'equipment' ) ) {
417
-			$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); 
418
-
419
-			$single_term_title = str_replace( '-', ' ', $term->taxonomy ) . ': ' . $term->name;
420
-
421
-			$crumbs[1] = array(
422
-				0 => $exercises,
423
-				1 => $url,
424
-			);
425
-			$crumbs[2] = array(
426
-				0 => $single_term_title,
427
-			);
428
-		}
429
-		return $crumbs;
430
-	}
404
+               $crumbs[1] = array(
405
+                    0 => $exercises,
406
+                    1 => $url,
407
+               );
408
+               $crumbs[2] = array(
409
+                    0 => $exercise_type,
410
+                    1 => $exercise_type_url,
411
+               );
412
+               $crumbs[3] = array(
413
+                    0 => $exercise_name,
414
+               );
415
+          }
416
+          if ( is_tax( 'exercise-type' ) || is_tax( 'muscle-group' ) || is_tax( 'equipment' ) ) {
417
+               $term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); 
418
+
419
+               $single_term_title = str_replace( '-', ' ', $term->taxonomy ) . ': ' . $term->name;
420
+
421
+               $crumbs[1] = array(
422
+                    0 => $exercises,
423
+                    1 => $url,
424
+               );
425
+               $crumbs[2] = array(
426
+                    0 => $single_term_title,
427
+               );
428
+          }
429
+          return $crumbs;
430
+     }
431 431
 }
Please login to merge, or discard this patch.
classes/post-types/class-recipe.php 1 patch
Indentation   +410 added lines, -410 removed lines patch added patch discarded remove patch
@@ -8,245 +8,245 @@  discard block
 block discarded – undo
8 8
  */
9 9
 class Recipe {
10 10
 
11
-	/**
12
-	 * Holds class instance
13
-	 *
14
-	 * @since 1.0.0
15
-	 *
16
-	 * @var      object \lsx_health_plan\classes\Recipe()
17
-	 */
18
-	protected static $instance = null;
11
+     /**
12
+      * Holds class instance
13
+      *
14
+      * @since 1.0.0
15
+      *
16
+      * @var      object \lsx_health_plan\classes\Recipe()
17
+      */
18
+     protected static $instance = null;
19 19
 
20
-	/**
21
-	 * Holds post_type slug used as an index
22
-	 *
23
-	 * @since 1.0.0
24
-	 *
25
-	 * @var      string
26
-	 */
27
-	public $slug = 'recipe';
20
+     /**
21
+      * Holds post_type slug used as an index
22
+      *
23
+      * @since 1.0.0
24
+      *
25
+      * @var      string
26
+      */
27
+     public $slug = 'recipe';
28 28
 
29
-	/**
30
-	 * Holds post_type labels
31
-	 *
32
-	 * @since 1.0.0
33
-	 *
34
-	 * @var      string
35
-	 */
36
-	public $labels = array();
29
+     /**
30
+      * Holds post_type labels
31
+      *
32
+      * @since 1.0.0
33
+      *
34
+      * @var      string
35
+      */
36
+     public $labels = array();
37 37
 
38
-	/**
39
-	 * Constructor
40
-	 */
41
-	public function __construct() {
42
-		add_action( 'init', array( $this, 'register_post_type' ) );
43
-		add_action( 'init', array( $this, 'taxonomy_setup' ) );
44
-		add_action( 'admin_menu', array( $this, 'register_menus' ) );
38
+     /**
39
+      * Constructor
40
+      */
41
+     public function __construct() {
42
+          add_action( 'init', array( $this, 'register_post_type' ) );
43
+          add_action( 'init', array( $this, 'taxonomy_setup' ) );
44
+          add_action( 'admin_menu', array( $this, 'register_menus' ) );
45 45
 
46
-		// Frontend Actions and Filters.
47
-		add_action( 'wp_head', array( $this, 'remove_archive_original_header' ), 99 );
48
-		add_action( 'lsx_content_wrap_before', array( $this, 'hp_lsx_archive_header' ) );
46
+          // Frontend Actions and Filters.
47
+          add_action( 'wp_head', array( $this, 'remove_archive_original_header' ), 99 );
48
+          add_action( 'lsx_content_wrap_before', array( $this, 'hp_lsx_archive_header' ) );
49 49
 
50
-		add_filter( 'lsx_health_plan_archive_template', array( $this, 'enable_post_type' ), 10, 1 );
51
-		add_filter( 'lsx_health_plan_single_template', array( $this, 'enable_post_type' ), 10, 1 );
52
-		add_filter( 'lsx_health_plan_connections', array( $this, 'enable_connections' ), 10, 1 );
53
-		add_filter( 'get_the_archive_title', array( $this, 'get_the_archive_title' ), 100 );
54
-		add_filter( 'lsx_display_global_header_description', array( $this, 'disable_global_header_description' ), 100 );
55
-		add_filter( 'woocommerce_get_breadcrumb', array( $this, 'recipes_breadcrumb_filter' ), 30, 1 );
50
+          add_filter( 'lsx_health_plan_archive_template', array( $this, 'enable_post_type' ), 10, 1 );
51
+          add_filter( 'lsx_health_plan_single_template', array( $this, 'enable_post_type' ), 10, 1 );
52
+          add_filter( 'lsx_health_plan_connections', array( $this, 'enable_connections' ), 10, 1 );
53
+          add_filter( 'get_the_archive_title', array( $this, 'get_the_archive_title' ), 100 );
54
+          add_filter( 'lsx_display_global_header_description', array( $this, 'disable_global_header_description' ), 100 );
55
+          add_filter( 'woocommerce_get_breadcrumb', array( $this, 'recipes_breadcrumb_filter' ), 30, 1 );
56 56
 
57
-		// Backend Actions and Filters.
58
-		add_action( 'cmb2_admin_init', array( $this, 'featured_metabox' ) );
59
-		add_action( 'cmb2_admin_init', array( $this, 'details_metaboxes' ) );
60
-	}
57
+          // Backend Actions and Filters.
58
+          add_action( 'cmb2_admin_init', array( $this, 'featured_metabox' ) );
59
+          add_action( 'cmb2_admin_init', array( $this, 'details_metaboxes' ) );
60
+     }
61 61
 
62
-	/**
63
-	 * Return an instance of this class.
64
-	 *
65
-	 * @since 1.0.0
66
-	 *
67
-	 * @return    object \lsx_health_plan\classes\Recipe()    A single instance of this class.
68
-	 */
69
-	public static function get_instance() {
62
+     /**
63
+      * Return an instance of this class.
64
+      *
65
+      * @since 1.0.0
66
+      *
67
+      * @return    object \lsx_health_plan\classes\Recipe()    A single instance of this class.
68
+      */
69
+     public static function get_instance() {
70 70
 
71
-		// If the single instance hasn't been set, set it now.
72
-		if ( null === self::$instance ) {
73
-			self::$instance = new self();
74
-		}
71
+          // If the single instance hasn't been set, set it now.
72
+          if ( null === self::$instance ) {
73
+               self::$instance = new self();
74
+          }
75 75
 
76
-		return self::$instance;
76
+          return self::$instance;
77 77
 
78
-	}
78
+     }
79 79
 
80
-	/**
81
-	 * Register the post type.
82
-	 */
83
-	public function register_post_type() {
84
-		$this->labels = array(
85
-			'name'               => esc_html__( 'Recipes', 'lsx-health-plan' ),
86
-			'singular_name'      => esc_html__( 'Recipe', 'lsx-health-plan' ),
87
-			'add_new'            => esc_html_x( 'Add New', 'post type general name', 'lsx-health-plan' ),
88
-			'add_new_item'       => esc_html__( 'Add New', 'lsx-health-plan' ),
89
-			'edit_item'          => esc_html__( 'Edit', 'lsx-health-plan' ),
90
-			'new_item'           => esc_html__( 'New', 'lsx-health-plan' ),
91
-			'all_items'          => esc_html__( 'All Recipes', 'lsx-health-plan' ),
92
-			'view_item'          => esc_html__( 'View', 'lsx-health-plan' ),
93
-			'search_items'       => esc_html__( 'Search', 'lsx-health-plan' ),
94
-			'not_found'          => esc_html__( 'None found', 'lsx-health-plan' ),
95
-			'not_found_in_trash' => esc_html__( 'None found in Trash', 'lsx-health-plan' ),
96
-			'parent_item_colon'  => '',
97
-			'menu_name'          => esc_html__( 'Recipes', 'lsx-health-plan' ),
98
-		);
99
-		$args         = array(
100
-			'labels'             => $this->labels,
101
-			'public'             => true,
102
-			'publicly_queryable' => true,
103
-			'show_ui'            => true,
104
-			'show_in_menu'       => false,
105
-			'show_in_rest'       => true,
106
-			'menu_icon'          => 'dashicons-editor-ul',
107
-			'query_var'          => true,
108
-			'rewrite'            => array(
109
-				'slug' => 'recipe',
110
-			),
111
-			'capability_type'    => 'post',
112
-			'has_archive'        => 'recipes',
113
-			'hierarchical'       => false,
114
-			'menu_position'      => null,
115
-			'supports'           => array(
116
-				'title',
117
-				'editor',
118
-				'thumbnail',
119
-				'custom-fields',
120
-			),
121
-		);
122
-		register_post_type( 'recipe', $args );
123
-	}
80
+     /**
81
+      * Register the post type.
82
+      */
83
+     public function register_post_type() {
84
+          $this->labels = array(
85
+               'name'               => esc_html__( 'Recipes', 'lsx-health-plan' ),
86
+               'singular_name'      => esc_html__( 'Recipe', 'lsx-health-plan' ),
87
+               'add_new'            => esc_html_x( 'Add New', 'post type general name', 'lsx-health-plan' ),
88
+               'add_new_item'       => esc_html__( 'Add New', 'lsx-health-plan' ),
89
+               'edit_item'          => esc_html__( 'Edit', 'lsx-health-plan' ),
90
+               'new_item'           => esc_html__( 'New', 'lsx-health-plan' ),
91
+               'all_items'          => esc_html__( 'All Recipes', 'lsx-health-plan' ),
92
+               'view_item'          => esc_html__( 'View', 'lsx-health-plan' ),
93
+               'search_items'       => esc_html__( 'Search', 'lsx-health-plan' ),
94
+               'not_found'          => esc_html__( 'None found', 'lsx-health-plan' ),
95
+               'not_found_in_trash' => esc_html__( 'None found in Trash', 'lsx-health-plan' ),
96
+               'parent_item_colon'  => '',
97
+               'menu_name'          => esc_html__( 'Recipes', 'lsx-health-plan' ),
98
+          );
99
+          $args         = array(
100
+               'labels'             => $this->labels,
101
+               'public'             => true,
102
+               'publicly_queryable' => true,
103
+               'show_ui'            => true,
104
+               'show_in_menu'       => false,
105
+               'show_in_rest'       => true,
106
+               'menu_icon'          => 'dashicons-editor-ul',
107
+               'query_var'          => true,
108
+               'rewrite'            => array(
109
+                    'slug' => 'recipe',
110
+               ),
111
+               'capability_type'    => 'post',
112
+               'has_archive'        => 'recipes',
113
+               'hierarchical'       => false,
114
+               'menu_position'      => null,
115
+               'supports'           => array(
116
+                    'title',
117
+                    'editor',
118
+                    'thumbnail',
119
+                    'custom-fields',
120
+               ),
121
+          );
122
+          register_post_type( 'recipe', $args );
123
+     }
124 124
 
125
-	/**
126
-	 * Registers the Recipes under the Meals Post type menu.
127
-	 *
128
-	 * @return void
129
-	 */
130
-	public function register_menus() {
131
-		add_submenu_page( 'edit.php?post_type=meal', esc_html__( 'Recipes', 'lsx-health-plan' ), esc_html__( 'Recipes', 'lsx-health-plan' ), 'edit_posts', 'edit.php?post_type=recipe' );
132
-		add_submenu_page( 'edit.php?post_type=meal', esc_html__( 'Recipe Types', 'lsx-health-plan' ), esc_html__( 'Recipe Types', 'lsx-health-plan' ), 'edit_posts', 'edit-tags.php?taxonomy=recipe-type&post_type=recipe' );
133
-		add_submenu_page( 'edit.php?post_type=meal', esc_html__( 'Cuisines', 'lsx-health-plan' ), esc_html__( 'Cuisines', 'lsx-health-plan' ), 'edit_posts', 'edit-tags.php?taxonomy=recipe-cuisine&post_type=recipe' );
134
-	}
125
+     /**
126
+      * Registers the Recipes under the Meals Post type menu.
127
+      *
128
+      * @return void
129
+      */
130
+     public function register_menus() {
131
+          add_submenu_page( 'edit.php?post_type=meal', esc_html__( 'Recipes', 'lsx-health-plan' ), esc_html__( 'Recipes', 'lsx-health-plan' ), 'edit_posts', 'edit.php?post_type=recipe' );
132
+          add_submenu_page( 'edit.php?post_type=meal', esc_html__( 'Recipe Types', 'lsx-health-plan' ), esc_html__( 'Recipe Types', 'lsx-health-plan' ), 'edit_posts', 'edit-tags.php?taxonomy=recipe-type&post_type=recipe' );
133
+          add_submenu_page( 'edit.php?post_type=meal', esc_html__( 'Cuisines', 'lsx-health-plan' ), esc_html__( 'Cuisines', 'lsx-health-plan' ), 'edit_posts', 'edit-tags.php?taxonomy=recipe-cuisine&post_type=recipe' );
134
+     }
135 135
 
136
-	/**
137
-	 * Register the Week taxonomy.
138
-	 */
139
-	public function taxonomy_setup() {
140
-		$labels = array(
141
-			'name'              => esc_html_x( 'Cuisine', 'taxonomy general name', 'lsx-health-plan' ),
142
-			'singular_name'     => esc_html_x( 'Cuisines', 'taxonomy singular name', 'lsx-health-plan' ),
143
-			'search_items'      => esc_html__( 'Search', 'lsx-health-plan' ),
144
-			'all_items'         => esc_html__( 'All', 'lsx-health-plan' ),
145
-			'parent_item'       => esc_html__( 'Parent', 'lsx-health-plan' ),
146
-			'parent_item_colon' => esc_html__( 'Parent:', 'lsx-health-plan' ),
147
-			'edit_item'         => esc_html__( 'Edit', 'lsx-health-plan' ),
148
-			'update_item'       => esc_html__( 'Update', 'lsx-health-plan' ),
149
-			'add_new_item'      => esc_html__( 'Add New', 'lsx-health-plan' ),
150
-			'new_item_name'     => esc_html__( 'New Name', 'lsx-health-plan' ),
151
-			'menu_name'         => esc_html__( 'Cuisines', 'lsx-health-plan' ),
152
-		);
153
-		$args   = array(
154
-			'hierarchical'      => true,
155
-			'labels'            => $labels,
156
-			'show_ui'           => true,
157
-			'show_admin_column' => true,
158
-			'show_in_menu'      => 'edit.php?post_type=meal',
159
-			'query_var'         => true,
160
-			'rewrite'           => array(
161
-				'slug' => 'recipe-cuisine',
162
-			),
163
-		);
164
-		register_taxonomy( 'recipe-cuisine', array( $this->slug ), $args );
136
+     /**
137
+      * Register the Week taxonomy.
138
+      */
139
+     public function taxonomy_setup() {
140
+          $labels = array(
141
+               'name'              => esc_html_x( 'Cuisine', 'taxonomy general name', 'lsx-health-plan' ),
142
+               'singular_name'     => esc_html_x( 'Cuisines', 'taxonomy singular name', 'lsx-health-plan' ),
143
+               'search_items'      => esc_html__( 'Search', 'lsx-health-plan' ),
144
+               'all_items'         => esc_html__( 'All', 'lsx-health-plan' ),
145
+               'parent_item'       => esc_html__( 'Parent', 'lsx-health-plan' ),
146
+               'parent_item_colon' => esc_html__( 'Parent:', 'lsx-health-plan' ),
147
+               'edit_item'         => esc_html__( 'Edit', 'lsx-health-plan' ),
148
+               'update_item'       => esc_html__( 'Update', 'lsx-health-plan' ),
149
+               'add_new_item'      => esc_html__( 'Add New', 'lsx-health-plan' ),
150
+               'new_item_name'     => esc_html__( 'New Name', 'lsx-health-plan' ),
151
+               'menu_name'         => esc_html__( 'Cuisines', 'lsx-health-plan' ),
152
+          );
153
+          $args   = array(
154
+               'hierarchical'      => true,
155
+               'labels'            => $labels,
156
+               'show_ui'           => true,
157
+               'show_admin_column' => true,
158
+               'show_in_menu'      => 'edit.php?post_type=meal',
159
+               'query_var'         => true,
160
+               'rewrite'           => array(
161
+                    'slug' => 'recipe-cuisine',
162
+               ),
163
+          );
164
+          register_taxonomy( 'recipe-cuisine', array( $this->slug ), $args );
165 165
 
166
-		$labels = array(
167
-			'name'              => esc_html_x( 'Recipe Type', 'taxonomy general name', 'lsx-health-plan' ),
168
-			'singular_name'     => esc_html_x( 'Recipe Types', 'taxonomy singular name', 'lsx-health-plan' ),
169
-			'search_items'      => esc_html__( 'Search', 'lsx-health-plan' ),
170
-			'all_items'         => esc_html__( 'All', 'lsx-health-plan' ),
171
-			'parent_item'       => esc_html__( 'Parent', 'lsx-health-plan' ),
172
-			'parent_item_colon' => esc_html__( 'Parent:', 'lsx-health-plan' ),
173
-			'edit_item'         => esc_html__( 'Edit', 'lsx-health-plan' ),
174
-			'update_item'       => esc_html__( 'Update', 'lsx-health-plan' ),
175
-			'add_new_item'      => esc_html__( 'Add New', 'lsx-health-plan' ),
176
-			'new_item_name'     => esc_html__( 'New Name', 'lsx-health-plan' ),
177
-			'menu_name'         => esc_html__( 'Types', 'lsx-health-plan' ),
178
-		);
179
-		$args   = array(
180
-			'hierarchical'      => true,
181
-			'labels'            => $labels,
182
-			'show_ui'           => true,
183
-			'show_in_menu'      => 'edit.php?post_type=meal',
184
-			'show_admin_column' => true,
185
-			'query_var'         => true,
186
-			'rewrite'           => array(
187
-				'slug' => 'recipe-type',
188
-			),
189
-		);
190
-		register_taxonomy( 'recipe-type', array( $this->slug ), $args );
191
-	}
166
+          $labels = array(
167
+               'name'              => esc_html_x( 'Recipe Type', 'taxonomy general name', 'lsx-health-plan' ),
168
+               'singular_name'     => esc_html_x( 'Recipe Types', 'taxonomy singular name', 'lsx-health-plan' ),
169
+               'search_items'      => esc_html__( 'Search', 'lsx-health-plan' ),
170
+               'all_items'         => esc_html__( 'All', 'lsx-health-plan' ),
171
+               'parent_item'       => esc_html__( 'Parent', 'lsx-health-plan' ),
172
+               'parent_item_colon' => esc_html__( 'Parent:', 'lsx-health-plan' ),
173
+               'edit_item'         => esc_html__( 'Edit', 'lsx-health-plan' ),
174
+               'update_item'       => esc_html__( 'Update', 'lsx-health-plan' ),
175
+               'add_new_item'      => esc_html__( 'Add New', 'lsx-health-plan' ),
176
+               'new_item_name'     => esc_html__( 'New Name', 'lsx-health-plan' ),
177
+               'menu_name'         => esc_html__( 'Types', 'lsx-health-plan' ),
178
+          );
179
+          $args   = array(
180
+               'hierarchical'      => true,
181
+               'labels'            => $labels,
182
+               'show_ui'           => true,
183
+               'show_in_menu'      => 'edit.php?post_type=meal',
184
+               'show_admin_column' => true,
185
+               'query_var'         => true,
186
+               'rewrite'           => array(
187
+                    'slug' => 'recipe-type',
188
+               ),
189
+          );
190
+          register_taxonomy( 'recipe-type', array( $this->slug ), $args );
191
+     }
192 192
 
193
-	/**
194
-	 * Adds the post type to the different arrays.
195
-	 *
196
-	 * @param array $post_types
197
-	 * @return array
198
-	 */
199
-	public function enable_post_type( $post_types = array() ) {
200
-		$post_types[] = $this->slug;
201
-		return $post_types;
202
-	}
193
+     /**
194
+      * Adds the post type to the different arrays.
195
+      *
196
+      * @param array $post_types
197
+      * @return array
198
+      */
199
+     public function enable_post_type( $post_types = array() ) {
200
+          $post_types[] = $this->slug;
201
+          return $post_types;
202
+     }
203 203
 
204
-	/**
205
-	 * Enables the Bi Directional relationships
206
-	 *
207
-	 * @param array $connections
208
-	 * @return void
209
-	 */
210
-	public function enable_connections( $connections = array() ) {
211
-		$connections['recipe']['connected_plans'] = 'connected_recipes';
212
-		$connections['plan']['connected_recipes'] = 'connected_plans';
213
-		return $connections;
214
-	}
204
+     /**
205
+      * Enables the Bi Directional relationships
206
+      *
207
+      * @param array $connections
208
+      * @return void
209
+      */
210
+     public function enable_connections( $connections = array() ) {
211
+          $connections['recipe']['connected_plans'] = 'connected_recipes';
212
+          $connections['plan']['connected_recipes'] = 'connected_plans';
213
+          return $connections;
214
+     }
215 215
 
216
-	/**
217
-	 * Remove the "Archives:" from the post type recipes.
218
-	 *
219
-	 * @param string $title the term title.
220
-	 * @return string
221
-	 */
222
-	public function get_the_archive_title( $title ) {
223
-		if ( is_post_type_archive( 'recipe' ) ) {
224
-			$title = __( 'Recipes', 'lsx-health-plan' );
225
-		}
226
-		if ( is_post_type_archive( 'exercise' ) ) {
227
-			$title = __( 'Exercises', 'lsx-health-plan' );
228
-		}
229
-		if ( is_tax( 'recipe-type' ) ) {
230
-			$queried_object = get_queried_object();
231
-			if ( isset( $queried_object->name ) ) {
232
-				$title = $queried_object->name . ' ' . __( 'Recipes', 'lsx-health-plan' );
233
-			}
234
-		}
235
-		return $title;
236
-	}
216
+     /**
217
+      * Remove the "Archives:" from the post type recipes.
218
+      *
219
+      * @param string $title the term title.
220
+      * @return string
221
+      */
222
+     public function get_the_archive_title( $title ) {
223
+          if ( is_post_type_archive( 'recipe' ) ) {
224
+               $title = __( 'Recipes', 'lsx-health-plan' );
225
+          }
226
+          if ( is_post_type_archive( 'exercise' ) ) {
227
+               $title = __( 'Exercises', 'lsx-health-plan' );
228
+          }
229
+          if ( is_tax( 'recipe-type' ) ) {
230
+               $queried_object = get_queried_object();
231
+               if ( isset( $queried_object->name ) ) {
232
+                    $title = $queried_object->name . ' ' . __( 'Recipes', 'lsx-health-plan' );
233
+               }
234
+          }
235
+          return $title;
236
+     }
237 237
 
238
-	public function remove_archive_original_header() {
239
-		if ( is_post_type_archive( 'recipe' ) || is_post_type_archive( 'exercise' ) ) {
240
-			remove_action( 'lsx_content_wrap_before', 'lsx_global_header' );
241
-		}
242
-		if ( ! is_post_type_archive() ) {
243
-			add_action( 'lsx_content_wrap_before', 'lsx_health_plan_recipe_archive_description', 11 );
244
-		}
245
-	}
238
+     public function remove_archive_original_header() {
239
+          if ( is_post_type_archive( 'recipe' ) || is_post_type_archive( 'exercise' ) ) {
240
+               remove_action( 'lsx_content_wrap_before', 'lsx_global_header' );
241
+          }
242
+          if ( ! is_post_type_archive() ) {
243
+               add_action( 'lsx_content_wrap_before', 'lsx_health_plan_recipe_archive_description', 11 );
244
+          }
245
+     }
246 246
 
247
-	public function hp_lsx_archive_header() {
248
-		if ( is_post_type_archive( 'recipe' ) || is_post_type_archive( 'exercise' ) ) {
249
-		?>
247
+     public function hp_lsx_archive_header() {
248
+          if ( is_post_type_archive( 'recipe' ) || is_post_type_archive( 'exercise' ) ) {
249
+          ?>
250 250
 			<div class="archive-header-wrapper banner-archive">
251 251
 				<?php lsx_global_header_inner_bottom(); ?>
252 252
 				<header class="archive-header">
@@ -259,205 +259,205 @@  discard block
 block discarded – undo
259 259
 					</h1>
260 260
 
261 261
 					<?php
262
-					lsx_health_plan_recipe_archive_description();
263
-					?>
262
+                         lsx_health_plan_recipe_archive_description();
263
+                         ?>
264 264
 				</header>
265 265
 			</div>
266 266
 		<?php
267
-		}
268
-	}
267
+          }
268
+     }
269 269
 
270
-	/**
271
-	 * Disables the global header description
272
-	 *
273
-	 * @param boolean $disable
274
-	 * @return boolean
275
-	 */
276
-	public function disable_global_header_description( $disable ) {
277
-		if ( is_tax( 'recipe-type' ) ) {
278
-			$disable = true;
279
-		}
280
-		return $disable;
281
-	}
270
+     /**
271
+      * Disables the global header description
272
+      *
273
+      * @param boolean $disable
274
+      * @return boolean
275
+      */
276
+     public function disable_global_header_description( $disable ) {
277
+          if ( is_tax( 'recipe-type' ) ) {
278
+               $disable = true;
279
+          }
280
+          return $disable;
281
+     }
282 282
 
283
-	/**
284
-	 * Holds the array for the breadcrumbs.
285
-	 *
286
-	 * @var array $crumbs
287
-	 * @return array
288
-	 */
289
-	public function recipes_breadcrumb_filter( $crumbs ) {
290
-		$recipe  = \lsx_health_plan\functions\get_option( 'endpoint_recipe', 'recipe' );
291
-		$recipes = \lsx_health_plan\functions\get_option( 'endpoint_recipe_archive', 'recipes' );
292
-		$url     = get_post_type_archive_link( 'recipe' );
283
+     /**
284
+      * Holds the array for the breadcrumbs.
285
+      *
286
+      * @var array $crumbs
287
+      * @return array
288
+      */
289
+     public function recipes_breadcrumb_filter( $crumbs ) {
290
+          $recipe  = \lsx_health_plan\functions\get_option( 'endpoint_recipe', 'recipe' );
291
+          $recipes = \lsx_health_plan\functions\get_option( 'endpoint_recipe_archive', 'recipes' );
292
+          $url     = get_post_type_archive_link( 'recipe' );
293 293
 
294
-		if ( is_singular( 'recipe' ) ) {
295
-			$recipe_name     = get_the_title();
296
-			$term_obj_list   = get_the_terms( get_the_ID(), 'recipe-type' );
297
-			$recipe_type     = $term_obj_list[0]->name;
298
-			$recipe_type_url = get_term_link( $term_obj_list[0]->term_id );
294
+          if ( is_singular( 'recipe' ) ) {
295
+               $recipe_name     = get_the_title();
296
+               $term_obj_list   = get_the_terms( get_the_ID(), 'recipe-type' );
297
+               $recipe_type     = $term_obj_list[0]->name;
298
+               $recipe_type_url = get_term_link( $term_obj_list[0]->term_id );
299 299
 		
300
-			$crumbs[1] = array(
301
-				0 => $recipes,
302
-				1 => $url,
303
-			);
304
-			$crumbs[2] = array(
305
-				0 => $recipe_type,
306
-				1 => $recipe_type_url,
307
-			);
308
-			$crumbs[3] = array(
309
-				0 => $recipe_name,
310
-			);
311
-		}
312
-		if ( is_tax( 'recipe-type' ) || is_tax( 'recipe-cuisine' ) ) {
313
-			$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); 
300
+               $crumbs[1] = array(
301
+                    0 => $recipes,
302
+                    1 => $url,
303
+               );
304
+               $crumbs[2] = array(
305
+                    0 => $recipe_type,
306
+                    1 => $recipe_type_url,
307
+               );
308
+               $crumbs[3] = array(
309
+                    0 => $recipe_name,
310
+               );
311
+          }
312
+          if ( is_tax( 'recipe-type' ) || is_tax( 'recipe-cuisine' ) ) {
313
+               $term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); 
314 314
 
315
-			$single_term_title = str_replace( '-', ' ', $term->taxonomy ) . ': ' . $term->name;
315
+               $single_term_title = str_replace( '-', ' ', $term->taxonomy ) . ': ' . $term->name;
316 316
 
317
-			$crumbs[1] = array(
318
-				0 => $recipes,
319
-				1 => $url,
320
-			);
321
-			$crumbs[2] = array(
322
-				0 => $single_term_title,
323
-			);
324
-		}
325
-		return $crumbs;
326
-	}
317
+               $crumbs[1] = array(
318
+                    0 => $recipes,
319
+                    1 => $url,
320
+               );
321
+               $crumbs[2] = array(
322
+                    0 => $single_term_title,
323
+               );
324
+          }
325
+          return $crumbs;
326
+     }
327 327
 
328
-	/**
329
-	 * Define the metabox and field configurations.
330
-	 */
331
-	public function featured_metabox() {
332
-		$cmb = new_cmb2_box(
333
-			array(
334
-				'id'           => $this->slug . '_featured_metabox',
335
-				'title'        => __( 'Featured', 'lsx-health-plan' ),
336
-				'object_types' => array( $this->slug ),
337
-				'context'      => 'side',
338
-				'priority'     => 'high',
339
-				'show_names'   => true,
340
-			)
341
-		);
342
-		$cmb->add_field(
343
-			array(
344
-				'name'       => __( 'Featured', 'lsx-health-plan' ),
345
-				'desc'       => __( 'Enable the checkbox to feature this recipe, featured recipes display in any page that has the recipe shortcode: [lsx_health_plan_featured_recipes_block]', 'lsx-health-plan' ),
346
-				'id'         => $this->slug . '_featured',
347
-				'type'       => 'checkbox',
348
-				'show_on_cb' => 'cmb2_hide_if_no_cats',
349
-			)
350
-		);
351
-	}
328
+     /**
329
+      * Define the metabox and field configurations.
330
+      */
331
+     public function featured_metabox() {
332
+          $cmb = new_cmb2_box(
333
+               array(
334
+                    'id'           => $this->slug . '_featured_metabox',
335
+                    'title'        => __( 'Featured', 'lsx-health-plan' ),
336
+                    'object_types' => array( $this->slug ),
337
+                    'context'      => 'side',
338
+                    'priority'     => 'high',
339
+                    'show_names'   => true,
340
+               )
341
+          );
342
+          $cmb->add_field(
343
+               array(
344
+                    'name'       => __( 'Featured', 'lsx-health-plan' ),
345
+                    'desc'       => __( 'Enable the checkbox to feature this recipe, featured recipes display in any page that has the recipe shortcode: [lsx_health_plan_featured_recipes_block]', 'lsx-health-plan' ),
346
+                    'id'         => $this->slug . '_featured',
347
+                    'type'       => 'checkbox',
348
+                    'show_on_cb' => 'cmb2_hide_if_no_cats',
349
+               )
350
+          );
351
+     }
352 352
 
353
-	/**
354
-	 * Define the metabox and field configurations.
355
-	 */
356
-	public function details_metaboxes() {
357
-		$cmb = new_cmb2_box(
358
-			array(
359
-				'id'           => $this->slug . '_details_metabox',
360
-				'title'        => __( 'Cooking Info', 'lsx-health-plan' ),
361
-				'object_types' => array( $this->slug ), // Post type
362
-				'context'      => 'normal',
363
-				'priority'     => 'high',
364
-				'show_names'   => true,
365
-			)
366
-		);
367
-		$cmb->add_field(
368
-			array(
369
-				'name'       => __( 'Prep Time', 'lsx-health-plan' ),
370
-				'id'         => $this->slug . '_prep_time',
371
-				'desc'       => __( 'Add the preparation time for the entire meal i.e: 25 mins', 'lsx-health-plan' ),
372
-				'type'       => 'text',
373
-				'show_on_cb' => 'cmb2_hide_if_no_cats',
374
-			)
375
-		);
376
-		$cmb->add_field(
377
-			array(
378
-				'name'       => __( 'Cooking Time', 'lsx-health-plan' ),
379
-				'id'         => $this->slug . '_cooking_time',
380
-				'desc'       => __( 'Add the cooking time i.e: 15 mins', 'lsx-health-plan' ),
381
-				'type'       => 'text',
382
-				'show_on_cb' => 'cmb2_hide_if_no_cats',
383
-			)
384
-		);
385
-		$cmb->add_field(
386
-			array(
387
-				'name'       => __( 'Serves', 'lsx-health-plan' ),
388
-				'id'         => $this->slug . '_serves',
389
-				'desc'       => __( 'Add the recommended serving size i.e: 6', 'lsx-health-plan' ),
390
-				'type'       => 'text',
391
-				'show_on_cb' => 'cmb2_hide_if_no_cats',
392
-				'attributes' => array(
393
-					'type'    => 'number',
394
-					'pattern' => '\d*',
395
-				),
396
-			)
397
-		);
398
-		$cmb->add_field(
399
-			array(
400
-				'name'       => __( 'Portion', 'lsx-health-plan' ),
401
-				'desc'       => __( 'Add the recommended portion size i.e: 200mg', 'lsx-health-plan' ),
402
-				'id'         => $this->slug . '_portion',
403
-				'type'       => 'text',
404
-				'show_on_cb' => 'cmb2_hide_if_no_cats',
405
-			)
406
-		);
407
-		$cmb = new_cmb2_box(
408
-			array(
409
-				'id'           => $this->slug . '_nutritional_metabox',
410
-				'title'        => __( 'Nutritional Info', 'lsx-health-plan' ),
411
-				'object_types' => array( $this->slug ), // Post type
412
-				'context'      => 'normal',
413
-				'priority'     => 'high',
414
-				'show_names'   => true,
415
-			)
416
-		);
417
-		$cmb->add_field(
418
-			array(
419
-				'name'       => __( 'Energy', 'lsx-health-plan' ),
420
-				'id'         => $this->slug . '_energy',
421
-				'desc'       => __( 'Add the energy amount for the entire meal i.e: 700 kj', 'lsx-health-plan' ),
422
-				'type'       => 'text',
423
-				'show_on_cb' => 'cmb2_hide_if_no_cats',
424
-			)
425
-		);
426
-		$cmb->add_field(
427
-			array(
428
-				'name'       => __( 'Protein', 'lsx-health-plan' ),
429
-				'id'         => $this->slug . '_protein',
430
-				'desc'       => __( 'Add the protein amount for the entire meal i.e: 50 g', 'lsx-health-plan' ),
431
-				'type'       => 'text',
432
-				'show_on_cb' => 'cmb2_hide_if_no_cats',
433
-			)
434
-		);
435
-		$cmb->add_field(
436
-			array(
437
-				'name'       => __( 'Carbohydrates', 'lsx-health-plan' ),
438
-				'id'         => $this->slug . '_carbohydrates',
439
-				'desc'       => __( 'Add the carbohydrates amount for the entire meal i.e: 5 g', 'lsx-health-plan' ),
440
-				'type'       => 'text',
441
-				'show_on_cb' => 'cmb2_hide_if_no_cats',
442
-			)
443
-		);
444
-		$cmb->add_field(
445
-			array(
446
-				'name'       => __( 'Fibre', 'lsx-health-plan' ),
447
-				'id'         => $this->slug . '_fibre',
448
-				'desc'       => __( 'Add the fibre amount for the entire meal i.e: 5 g', 'lsx-health-plan' ),
449
-				'type'       => 'text',
450
-				'show_on_cb' => 'cmb2_hide_if_no_cats',
451
-			)
452
-		);
453
-		$cmb->add_field(
454
-			array(
455
-				'name'       => __( 'Fat', 'lsx-health-plan' ),
456
-				'id'         => $this->slug . '_fat',
457
-				'desc'       => __( 'Add the fat amount for the entire meal i.e: 20 g', 'lsx-health-plan' ),
458
-				'type'       => 'text',
459
-				'show_on_cb' => 'cmb2_hide_if_no_cats',
460
-			)
461
-		);
462
-	}
353
+     /**
354
+      * Define the metabox and field configurations.
355
+      */
356
+     public function details_metaboxes() {
357
+          $cmb = new_cmb2_box(
358
+               array(
359
+                    'id'           => $this->slug . '_details_metabox',
360
+                    'title'        => __( 'Cooking Info', 'lsx-health-plan' ),
361
+                    'object_types' => array( $this->slug ), // Post type
362
+                    'context'      => 'normal',
363
+                    'priority'     => 'high',
364
+                    'show_names'   => true,
365
+               )
366
+          );
367
+          $cmb->add_field(
368
+               array(
369
+                    'name'       => __( 'Prep Time', 'lsx-health-plan' ),
370
+                    'id'         => $this->slug . '_prep_time',
371
+                    'desc'       => __( 'Add the preparation time for the entire meal i.e: 25 mins', 'lsx-health-plan' ),
372
+                    'type'       => 'text',
373
+                    'show_on_cb' => 'cmb2_hide_if_no_cats',
374
+               )
375
+          );
376
+          $cmb->add_field(
377
+               array(
378
+                    'name'       => __( 'Cooking Time', 'lsx-health-plan' ),
379
+                    'id'         => $this->slug . '_cooking_time',
380
+                    'desc'       => __( 'Add the cooking time i.e: 15 mins', 'lsx-health-plan' ),
381
+                    'type'       => 'text',
382
+                    'show_on_cb' => 'cmb2_hide_if_no_cats',
383
+               )
384
+          );
385
+          $cmb->add_field(
386
+               array(
387
+                    'name'       => __( 'Serves', 'lsx-health-plan' ),
388
+                    'id'         => $this->slug . '_serves',
389
+                    'desc'       => __( 'Add the recommended serving size i.e: 6', 'lsx-health-plan' ),
390
+                    'type'       => 'text',
391
+                    'show_on_cb' => 'cmb2_hide_if_no_cats',
392
+                    'attributes' => array(
393
+                         'type'    => 'number',
394
+                         'pattern' => '\d*',
395
+                    ),
396
+               )
397
+          );
398
+          $cmb->add_field(
399
+               array(
400
+                    'name'       => __( 'Portion', 'lsx-health-plan' ),
401
+                    'desc'       => __( 'Add the recommended portion size i.e: 200mg', 'lsx-health-plan' ),
402
+                    'id'         => $this->slug . '_portion',
403
+                    'type'       => 'text',
404
+                    'show_on_cb' => 'cmb2_hide_if_no_cats',
405
+               )
406
+          );
407
+          $cmb = new_cmb2_box(
408
+               array(
409
+                    'id'           => $this->slug . '_nutritional_metabox',
410
+                    'title'        => __( 'Nutritional Info', 'lsx-health-plan' ),
411
+                    'object_types' => array( $this->slug ), // Post type
412
+                    'context'      => 'normal',
413
+                    'priority'     => 'high',
414
+                    'show_names'   => true,
415
+               )
416
+          );
417
+          $cmb->add_field(
418
+               array(
419
+                    'name'       => __( 'Energy', 'lsx-health-plan' ),
420
+                    'id'         => $this->slug . '_energy',
421
+                    'desc'       => __( 'Add the energy amount for the entire meal i.e: 700 kj', 'lsx-health-plan' ),
422
+                    'type'       => 'text',
423
+                    'show_on_cb' => 'cmb2_hide_if_no_cats',
424
+               )
425
+          );
426
+          $cmb->add_field(
427
+               array(
428
+                    'name'       => __( 'Protein', 'lsx-health-plan' ),
429
+                    'id'         => $this->slug . '_protein',
430
+                    'desc'       => __( 'Add the protein amount for the entire meal i.e: 50 g', 'lsx-health-plan' ),
431
+                    'type'       => 'text',
432
+                    'show_on_cb' => 'cmb2_hide_if_no_cats',
433
+               )
434
+          );
435
+          $cmb->add_field(
436
+               array(
437
+                    'name'       => __( 'Carbohydrates', 'lsx-health-plan' ),
438
+                    'id'         => $this->slug . '_carbohydrates',
439
+                    'desc'       => __( 'Add the carbohydrates amount for the entire meal i.e: 5 g', 'lsx-health-plan' ),
440
+                    'type'       => 'text',
441
+                    'show_on_cb' => 'cmb2_hide_if_no_cats',
442
+               )
443
+          );
444
+          $cmb->add_field(
445
+               array(
446
+                    'name'       => __( 'Fibre', 'lsx-health-plan' ),
447
+                    'id'         => $this->slug . '_fibre',
448
+                    'desc'       => __( 'Add the fibre amount for the entire meal i.e: 5 g', 'lsx-health-plan' ),
449
+                    'type'       => 'text',
450
+                    'show_on_cb' => 'cmb2_hide_if_no_cats',
451
+               )
452
+          );
453
+          $cmb->add_field(
454
+               array(
455
+                    'name'       => __( 'Fat', 'lsx-health-plan' ),
456
+                    'id'         => $this->slug . '_fat',
457
+                    'desc'       => __( 'Add the fat amount for the entire meal i.e: 20 g', 'lsx-health-plan' ),
458
+                    'type'       => 'text',
459
+                    'show_on_cb' => 'cmb2_hide_if_no_cats',
460
+               )
461
+          );
462
+     }
463 463
 }
Please login to merge, or discard this patch.
templates/archive-workout.php 1 patch
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -10,8 +10,8 @@  discard block
 block discarded – undo
10 10
 <?php lsx_content_wrap_before(); ?>
11 11
 
12 12
 <?php
13
-	$page_id  = get_the_ID();
14
-	$redirect = '/content-restricted/?r=' . $page_id . '&wcm_redirect_to=archive&wcm_redirect_id=' . $page_id;
13
+     $page_id  = get_the_ID();
14
+     $redirect = '/content-restricted/?r=' . $page_id . '&wcm_redirect_to=archive&wcm_redirect_id=' . $page_id;
15 15
 ?>
16 16
 
17 17
 	<div id="primary" class="content-area <?php echo esc_attr( lsx_main_class() ); ?>">
@@ -20,8 +20,8 @@  discard block
 block discarded – undo
20 20
 
21 21
 		<!-- Begining restricted content -->
22 22
 		<?php
23
-		if ( current_user_can( 'administrator', $page_id ) || current_user_can( 'wc_memberships_view_restricted_post_content', $page_id ) ) {
24
-			?>
23
+          if ( current_user_can( 'administrator', $page_id ) || current_user_can( 'wc_memberships_view_restricted_post_content', $page_id ) ) {
24
+               ?>
25 25
 			<main id="main" role="main">
26 26
 
27 27
 				<?php lsx_content_top(); ?>
@@ -30,9 +30,9 @@  discard block
 block discarded – undo
30 30
 					<div class="row">
31 31
 						<?php if ( have_posts() ) : ?>
32 32
 							<?php
33
-							while ( have_posts() ) :
34
-								the_post();
35
-								?>
33
+                                   while ( have_posts() ) :
34
+                                        the_post();
35
+                                        ?>
36 36
 
37 37
 								<?php include LSX_HEALTH_PLAN_PATH . '/templates/content-archive-workout.php'; ?>
38 38
 
@@ -51,11 +51,11 @@  discard block
 block discarded – undo
51 51
 			</main><!-- #main -->
52 52
 
53 53
 			<?php
54
-		} else {
55
-			wp_redirect( $redirect );
56
-			exit;
57
-		}
58
-		?>
54
+          } else {
55
+               wp_redirect( $redirect );
56
+               exit;
57
+          }
58
+          ?>
59 59
 
60 60
 <?php lsx_content_after(); ?>
61 61
 
Please login to merge, or discard this patch.
templates/archive-exercise.php 1 patch
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -10,8 +10,8 @@  discard block
 block discarded – undo
10 10
 <?php lsx_content_wrap_before(); ?>
11 11
 
12 12
 <?php
13
-	$page_id  = get_the_ID();
14
-	$redirect = '/content-restricted/?r=' . $page_id . '&wcm_redirect_to=archive&wcm_redirect_id=' . $page_id;
13
+     $page_id  = get_the_ID();
14
+     $redirect = '/content-restricted/?r=' . $page_id . '&wcm_redirect_to=archive&wcm_redirect_id=' . $page_id;
15 15
 ?>
16 16
 
17 17
 	<div id="primary" class="content-area <?php echo esc_attr( lsx_main_class() ); ?>">
@@ -20,8 +20,8 @@  discard block
 block discarded – undo
20 20
 
21 21
 		<!-- Begining restricted content -->
22 22
 		<?php
23
-		if ( current_user_can( 'administrator', $page_id ) || current_user_can( 'wc_memberships_view_restricted_post_content', $page_id ) ) {
24
-			?>
23
+          if ( current_user_can( 'administrator', $page_id ) || current_user_can( 'wc_memberships_view_restricted_post_content', $page_id ) ) {
24
+               ?>
25 25
 			<main id="main" role="main">
26 26
 
27 27
 				<?php lsx_content_top(); ?>
@@ -30,9 +30,9 @@  discard block
 block discarded – undo
30 30
 					<div class="row">
31 31
 						<?php if ( have_posts() ) : ?>
32 32
 							<?php
33
-							while ( have_posts() ) :
34
-								the_post();
35
-								?>
33
+                                   while ( have_posts() ) :
34
+                                        the_post();
35
+                                        ?>
36 36
 
37 37
 								<?php include LSX_HEALTH_PLAN_PATH . '/templates/content-archive-exercise.php'; ?>
38 38
 
@@ -51,11 +51,11 @@  discard block
 block discarded – undo
51 51
 			</main><!-- #main -->
52 52
 
53 53
 			<?php
54
-		} else {
55
-			wp_redirect( $redirect );
56
-			exit;
57
-		}
58
-		?>
54
+          } else {
55
+               wp_redirect( $redirect );
56
+               exit;
57
+          }
58
+          ?>
59 59
 
60 60
 <?php lsx_content_after(); ?>
61 61
 
Please login to merge, or discard this patch.
classes/admin/class-settings.php 1 patch
Indentation   +707 added lines, -707 removed lines patch added patch discarded remove patch
@@ -12,711 +12,711 @@
 block discarded – undo
12 12
  */
13 13
 class Settings {
14 14
 
15
-	/**
16
-	 * Holds class instance
17
-	 *
18
-	 * @since 1.0.0
19
-	 *
20
-	 * @var      object \lsx_health_plan\classes\admin\Settings()
21
-	 */
22
-	protected static $instance = null;
23
-
24
-	/**
25
-	 * Option key, and option page slug
26
-	 *
27
-	 * @var string
28
-	 */
29
-	protected $screen_id = 'lsx_health_plan_settings';
30
-
31
-	/**
32
-	 * An array of the post types for the Global Downloads field.
33
-	 *
34
-	 * @var array
35
-	 */
36
-	public $download_types = array();
37
-
38
-	/**
39
-	 * An array of the post types for the Global Defaults field.
40
-	 *
41
-	 * @var array
42
-	 */
43
-	public $default_types = array();
44
-
45
-	/**
46
-	 * An array of the endpoints for the Endpoint Translation field.
47
-	 *
48
-	 * @var array
49
-	 */
50
-	public $endpoints = array();
51
-
52
-	/**
53
-	 * Constructor
54
-	 */
55
-	public function __construct() {
56
-		$this->load_classes();
57
-		add_action( 'cmb2_admin_init', array( $this, 'register_settings_page' ) );
58
-		add_action( 'lsx_hp_settings_page', array( $this, 'generate_tabs' ), 1, 1 );
59
-
60
-		add_action( 'lsx_hp_settings_page_general_top', array( $this, 'general_settings' ), 1, 1 );
61
-		add_action( 'lsx_hp_settings_page', array( $this, 'global_defaults' ), 3, 1 );
62
-		add_action( 'lsx_hp_settings_page', array( $this, 'global_downloads' ), 5, 1 );
63
-		add_action( 'lsx_hp_settings_page', array( $this, 'stat_disable' ), 6, 1 );
64
-		add_action( 'lsx_hp_settings_page', array( $this, 'endpoint_translations' ), 7, 1 );
65
-		add_action( 'lsx_hp_settings_page', array( $this, 'exercise_translations' ), 7, 1 );
66
-		add_action( 'lsx_hp_settings_page', array( $this, 'post_type_toggles' ), 9, 1 );
67
-	}
68
-
69
-	/**
70
-	 * Return an instance of this class.
71
-	 *
72
-	 * @since 1.0.0
73
-	 *
74
-	 * @return    object \lsx_health_plan\classes\admin\Settings()    A single instance of this class.
75
-	 */
76
-	public static function get_instance() {
77
-		// If the single instance hasn't been set, set it now.
78
-		if ( null === self::$instance ) {
79
-			self::$instance = new self();
80
-		}
81
-		return self::$instance;
82
-	}
83
-
84
-	/**
85
-	 * Loads the variable classes and the static classes.
86
-	 */
87
-	private function load_classes() {
88
-
89
-		$this->post_types = array(
90
-			'plan',
91
-			'workout',
92
-			'exercise',
93
-			//'meal',
94
-			'recipe',
95
-			//'tip',
96
-		);
97
-
98
-		foreach ( $this->post_types as $post_type ) {
99
-			$this->$post_type = require_once LSX_HEALTH_PLAN_PATH . 'classes/admin/settings/class-' . $post_type . '.php';
100
-		}
101
-	}
102
-
103
-	/**
104
-	 * Sets the variables needed for the fields.
105
-	 *
106
-	 * @return void
107
-	 */
108
-	public function set_vars() {
109
-
110
-		$this->default_types  = array(
111
-			'page' => array(
112
-				'title'       => __( 'Warm Up', 'lsx-health-plan' ),
113
-				'description' => __( 'Set a default warm up routine.', 'lsx-health-plan' ),
114
-				'limit'       => 1,
115
-				'id'          => 'plan_warmup',
116
-			),
117
-		);
118
-		$this->download_types = array(
119
-			'page' => array(
120
-				'title'       => __( 'Warm Up', 'lsx-health-plan' ),
121
-				'description' => __( 'Set a default warm up routine.', 'lsx-health-plan' ),
122
-				'limit'       => 1,
123
-			),
124
-		);
125
-		$this->endpoints      = array(
126
-			'endpoint_warm_up' => array(
127
-				'title'       => __( 'Warm Up Endpoint', 'lsx-health-plan' ),
128
-				'default'     => 'warm-up',
129
-			),
130
-		);
131
-
132
-		if ( post_type_exists( 'meal' ) ) {
133
-			$this->download_types['meal']     = array(
134
-				'title'       => __( 'Meal Plan', 'lsx-health-plan' ),
135
-				'description' => __( 'Set a default meal plan.', 'lsx-health-plan' ),
136
-			);
137
-			$this->default_types['meal']      = array(
138
-				'title'       => __( 'Meal Plan', 'lsx-health-plan' ),
139
-				'description' => __( 'Set a default meal plan.', 'lsx-health-plan' ),
140
-				'id'          => 'connected_meals',
141
-			);
142
-			$this->endpoints['endpoint_meal'] = array(
143
-				'title'       => __( 'Meal Endpoint', 'lsx-health-plan' ),
144
-				'default'     => 'meal',
145
-				'description' => __( 'Define the tab slug which shows on the single plan page.', 'lsx-health-plan' ),
146
-			);
147
-			$this->endpoints['endpoint_meal_archive'] = array(
148
-				'title'   => __( 'Meals Archive Endpoint', 'lsx-health-plan' ),
149
-				'default' => 'meals',
150
-			);
151
-			$this->endpoints['meal_single_slug'] = array(
152
-				'title'   => __( 'Single Meal Slug', 'lsx-health-plan' ),
153
-				'default' => 'meal',
154
-			);
155
-		}
156
-		if ( post_type_exists( 'recipe' ) ) {
157
-			$this->download_types['recipe'] = array(
158
-				'title'       => __( 'Recipe', 'lsx-health-plan' ),
159
-				'description' => __( 'Set a default recipe.', 'lsx-health-plan' ),
160
-			);
161
-			$this->default_types['recipe'] = array(
162
-				'title'       => __( 'Recipe', 'lsx-health-plan' ),
163
-				'description' => __( 'Set a default recipe.', 'lsx-health-plan' ),
164
-				'id'          => 'connected_recipes',
165
-			);
166
-			$this->endpoints['endpoint_recipe'] = array(
167
-				'title'   => __( 'Recipes Endpoint', 'lsx-health-plan' ),
168
-				'default' => 'recipe',
169
-			);
170
-		}
171
-		if ( post_type_exists( 'workout' ) ) {
172
-			$this->download_types['workout'] = array(
173
-				'title'       => __( 'Workout', 'lsx-health-plan' ),
174
-				'description' => __( 'Set a default workout routine PDF.', 'lsx-health-plan' ),
175
-			);
176
-			$this->default_types['workout'] = array(
177
-				'title'       => __( 'Workout', 'lsx-health-plan' ),
178
-				'description' => __( 'Set a default workout routine.', 'lsx-health-plan' ),
179
-				'id'          => 'connected_workouts',
180
-			);
181
-			$this->endpoints['endpoint_workout_archive'] = array(
182
-				'title'   => __( 'Workouts Archive Endpoint', 'lsx-health-plan' ),
183
-				'default' => '',
184
-			);
185
-			$this->endpoints['endpoint_workout'] = array(
186
-				'title'   => __( 'Single Workout Endpoint', 'lsx-health-plan' ),
187
-				'default' => 'workout',
188
-			);
189
-		}
190
-
191
-		$this->endpoints['login_slug'] = array(
192
-			'title'   => __( 'Login Slug', 'lsx-health-plan' ),
193
-			'default' => 'login',
194
-		);
195
-		$this->endpoints['my_plan_slug'] = array(
196
-			'title'   => __( 'My Plan Slug', 'lsx-health-plan' ),
197
-			'default' => 'my-plan',
198
-		);
199
-		$this->endpoints['plan_single_slug'] = array(
200
-			'title'   => __( 'Single Plan Slug', 'lsx-health-plan' ),
201
-			'default' => 'plan',
202
-		);
203
-		$this->endpoints['endpoint_plan_archive'] = array(
204
-			'title'   => __( 'Plans Archive Endpoint', 'lsx-health-plan' ),
205
-			'default' => 'plans',
206
-		);
207
-
208
-		if ( false !== \lsx_health_plan\functions\get_option( 'exercise_enabled', false ) ) {
209
-			$this->endpoints['exercise'] = array(
210
-				'exercise_single' => array(
211
-					'title'   => __( 'Single Exercise Slug', 'lsx-health-plan' ),
212
-					'default' => 'exercise',
213
-				),
214
-				'exercise_archive' => array(
215
-					'title'   => __( 'Archive Exercise Slug', 'lsx-health-plan' ),
216
-					'default' => 'exercises',
217
-				),
218
-				'exercise_type' => array(
219
-					'title'   => __( 'Exercise Type Slug', 'lsx-health-plan' ),
220
-					'default' => 'exercise-type',
221
-				),
222
-				'exercise_equipment' => array(
223
-					'title'   => __( 'Equipment Slug', 'lsx-health-plan' ),
224
-					'default' => 'equipment',
225
-				),
226
-				'exercise_musclegroup' => array(
227
-					'title'   => __( 'Muscle Group Slug', 'lsx-health-plan' ),
228
-					'default' => 'muscle-group',
229
-				),
230
-			);
231
-		}
232
-	}
233
-
234
-	/**
235
-	 * Hook in and register a submenu options page for the Page post-type menu.
236
-	 */
237
-	public function register_settings_page() {
238
-		$this->set_vars();
239
-		$cmb = new_cmb2_box(
240
-			array(
241
-				'id'           => $this->screen_id,
242
-				'title'        => esc_html__( 'Settings', 'lsx-health-plan' ),
243
-				'object_types' => array( 'options-page' ),
244
-				'option_key'   => 'lsx_health_plan_options', // The option key and admin menu page slug.
245
-				'parent_slug'  => 'edit.php?post_type=plan', // Make options page a submenu item of the themes menu.
246
-				'capability'   => 'manage_options', // Cap required to view options-page.
247
-			)
248
-		);
249
-		do_action( 'lsx_hp_settings_page', $cmb );
250
-	}
251
-
252
-	/**
253
-	 * Registers the general settings.
254
-	 *
255
-	 * @param object $cmb new_cmb2_box().
256
-	 * @return void
257
-	 */
258
-	public function general_settings( $cmb ) {
259
-		$cmb->add_field(
260
-			array(
261
-				'name'       => __( 'Membership Product', 'lsx-health-plan' ),
262
-				'id'         => 'membership_product',
263
-				'type'       => 'post_search_ajax',
264
-				'limit'      => 1,
265
-				'sortable'   => false,
266
-				'query_args' => array(
267
-					'post_type'      => array( 'product' ),
268
-					'post_status'    => array( 'publish' ),
269
-					'posts_per_page' => -1,
270
-				),
271
-			)
272
-		);
273
-
274
-		$cmb->add_field(
275
-			array(
276
-				'name'    => __( 'Your Warm-up Intro', 'lsx-health-plan' ),
277
-				'id'      => 'warmup_intro',
278
-				'type'    => 'textarea_small',
279
-				'value'   => '',
280
-				'default' => __( "Don't forget your warm-up! It's a vital part of your daily workout routine.", 'lsx-health-plan' ),
281
-			)
282
-		);
283
-		if ( post_type_exists( 'workout' ) ) {
284
-			$cmb->add_field(
285
-				array(
286
-					'name'    => __( 'Your Workout Intro', 'lsx-health-plan' ),
287
-					'id'      => 'workout_intro',
288
-					'type'    => 'textarea_small',
289
-					'value'   => '',
290
-					'default' => __( "Let's do this! Smash your daily workout and reach your fitness goals.", 'lsx-health-plan' ),
291
-				)
292
-			);
293
-		}
294
-		if ( post_type_exists( 'meal' ) ) {
295
-			$cmb->add_field(
296
-				array(
297
-					'name'    => __( 'Your Meal Plan Intro', 'lsx-health-plan' ),
298
-					'id'      => 'meal_plan_intro',
299
-					'type'    => 'textarea_small',
300
-					'value'   => '',
301
-					'default' => __( 'Get the right mix of nutrients to keep muscles strong & healthy.', 'lsx-health-plan' ),
302
-				)
303
-			);
304
-		}
305
-		if ( post_type_exists( 'recipe' ) ) {
306
-			$cmb->add_field(
307
-				array(
308
-					'name'    => __( 'Recipes Intro', 'lsx-health-plan' ),
309
-					'id'      => 'recipes_intro',
310
-					'type'    => 'textarea_small',
311
-					'value'   => '',
312
-					'default' => __( "Let's get cooking! Delicious and easy to follow recipes.", 'lsx-health-plan' ),
313
-				)
314
-			);
315
-		}
316
-	}
317
-
318
-	/**
319
-	 * Registers the global default settings.
320
-	 *
321
-	 * @param object $cmb new_cmb2_box().
322
-	 * @return void
323
-	 */
324
-	public function global_defaults( $cmb ) {
325
-		$cmb->add_field(
326
-			array(
327
-				'id'      => 'global_defaults_title',
328
-				'type'    => 'title',
329
-				'name'    => __( 'Global Defaults', 'lsx-health-plan' ),
330
-				'default' => __( 'Global Defaults', 'lsx-health-plan' ),
331
-				'description' => __( 'If you have not connected a specific post to your day plan, set a default option below.', 'lsx-health-plan' ),
332
-			)
333
-		);
334
-
335
-		foreach ( $this->default_types as $type => $default_type ) {
336
-			$limit    = 5;
337
-			$sortable = false;
338
-			if ( isset( $default_type['limit'] ) ) {
339
-				$limit    = $default_type['limit'];
340
-				$sortable = true;
341
-			}
342
-
343
-			if ( 'page' === $type && false !== \lsx_health_plan\functions\get_option( 'exercise_enabled', false ) ) {
344
-				$type = array( 'page', 'workout' );
345
-			}
346
-
347
-			$cmb->add_field(
348
-				array(
349
-					'name'       => $default_type['title'],
350
-					'desc'       => $default_type['description'],
351
-					'id'         => $default_type['id'],
352
-					'type'       => 'post_search_ajax',
353
-					'limit'      => $limit,
354
-					'sortable'   => $sortable,
355
-					'query_args' => array(
356
-						'post_type'      => $type,
357
-						'post_status'    => array( 'publish' ),
358
-						'posts_per_page' => -1,
359
-					),
360
-				)
361
-			);
362
-		}
363
-
364
-		$cmb->add_field(
365
-			array(
366
-				'id'   => 'settings_global_defaults_closing',
367
-				'type' => 'tab_closing',
368
-			)
369
-		);
370
-	}
371
-
372
-	/**
373
-	 * Registers the global dowloads settings
374
-	 *
375
-	 * @param object $cmb new_cmb2_box().
376
-	 * @return void
377
-	 */
378
-	public function global_downloads( $cmb ) {
379
-		if ( ! function_exists( 'download_monitor' ) ) {
380
-			return;
381
-		}
382
-		$page_url    = 'https://wordpress.org/plugins/download-monitor/';
383
-		$plugin_name = 'Download Monitor';
384
-		$description = sprintf(
385
-			/* translators: %s: The subscription info */
386
-			__( 'If you are using <a target="_blank" href="%1$s">%2$s</a> you can set a default download file for your plan here.', 'lsx-search' ),
387
-			$page_url,
388
-			$plugin_name
389
-		);
390
-		$cmb->add_field(
391
-			array(
392
-				'id'          => 'global_downloads_title',
393
-				'type'        => 'title',
394
-				'name'        => __( 'Global Downloads', 'lsx-health-plan' ),
395
-				'default'     => __( 'Global Downloads', 'lsx-health-plan' ),
396
-				'description' => $description,
397
-			)
398
-		);
399
-
400
-		foreach ( $this->download_types as $type => $download_type ) {
401
-			$limit    = 5;
402
-			$sortable = false;
403
-			if ( isset( $download_type['limit'] ) ) {
404
-				$limit    = $download_type['limit'];
405
-				$sortable = true;
406
-			}
407
-
408
-			$cmb->add_field(
409
-				array(
410
-					'name'       => $download_type['title'],
411
-					'id'         => 'download_' . $type,
412
-					'type'       => 'post_search_ajax',
413
-					'limit'      => $limit,
414
-					'sortable'   => $sortable,
415
-					'query_args' => array(
416
-						'post_type'      => array( 'dlm_download' ),
417
-						'post_status'    => array( 'publish' ),
418
-						'posts_per_page' => -1,
419
-					),
420
-				)
421
-			);
422
-		}
423
-		$cmb->add_field(
424
-			array(
425
-				'id'   => 'settings_global_downloads_closing',
426
-				'type' => 'tab_closing',
427
-			)
428
-		);
429
-	}
430
-
431
-	/**
432
-	 * Registers the endpoint translation settings.
433
-	 *
434
-	 * @param object $cmb new_cmb2_box().
435
-	 * @return void
436
-	 */
437
-	public function endpoint_translations( $cmb ) {
438
-		$cmb->add_field(
439
-			array(
440
-				'id'          => 'endpoints_title',
441
-				'type'        => 'title',
442
-				'name'        => __( 'Set Endpoint Translations', 'lsx-health-plan' ),
443
-				'default'     => __( 'Set Endpoint Translations', 'lsx-health-plan' ),
444
-			)
445
-		);
446
-		foreach ( $this->endpoints as $slug => $endpoint_vars ) {
447
-			if ( 'exercise' === $slug ) {
448
-				continue;
449
-			}
450
-
451
-			$cmb->add_field(
452
-				array(
453
-					'name'    => $endpoint_vars['title'],
454
-					'id'      => $slug,
455
-					'type'    => 'input',
456
-					'value'   => '',
457
-					'default' => $endpoint_vars['default'],
458
-				)
459
-			);
460
-		}
461
-		$cmb->add_field(
462
-			array(
463
-				'id'            => 'settings_endpoints_closing',
464
-				'type'          => 'tab_closing',
465
-				'before_row'    => '<p style="margin-top:20px; font-style: italic;">Endpoint is a web address (URL) at which the user can gain access to it. You need to resave your permalinks after changing the endpoint settings.</p>',
466
-			)
467
-		);
468
-	}
469
-
470
-	/**
471
-	 * Registers the endpoint translation settings.
472
-	 *
473
-	 * @param object $cmb new_cmb2_box().
474
-	 * @return void
475
-	 */
476
-	public function exercise_translations( $cmb ) {
477
-		if ( isset( $this->endpoints['exercise'] ) && '' !== $this->endpoints['exercise'] && ! empty( $this->endpoints['exercise'] ) ) {
478
-			$cmb->add_field(
479
-				array(
480
-					'id'          => 'exercise_endpoints_title',
481
-					'type'        => 'title',
482
-					'name'        => __( 'Set Exercise Translations', 'lsx-health-plan' ),
483
-					'default'     => __( 'Set Exercise Translations', 'lsx-health-plan' ),
484
-					'description' => __( 'Change the exercise endpoints.', 'lsx-health-plan' ),
485
-				)
486
-			);
487
-
488
-			foreach ( $this->endpoints['exercise'] as $slug => $endpoint_vars ) {
489
-				$cmb->add_field(
490
-					array(
491
-						'name'    => $endpoint_vars['title'],
492
-						'id'      => 'endpoint_' . $slug,
493
-						'type'    => 'input',
494
-						'value'   => '',
495
-						'default' => $endpoint_vars['default'],
496
-					)
497
-				);
498
-			}
499
-
500
-			$cmb->add_field(
501
-				array(
502
-					'id'            => 'settings_exercise_endpoints_closing',
503
-					'type'          => 'tab_closing',
504
-					'before_row'    => '<p style="margin-top:20px; font-style: italic;">If you need to translate the exercise URL slugs, do so below.</p>',
505
-				)
506
-			);
507
-		}
508
-	}
509
-
510
-	/**
511
-	 * Registers the post type toggle settings
512
-	 *
513
-	 * @param object $cmb new_cmb2_box().
514
-	 * @return void
515
-	 */
516
-	public function post_type_toggles( $cmb ) {
517
-		$post_types = apply_filters( 'lsx_health_plan_post_types', isset( $this->post_types ) );
518
-
519
-		$cmb->add_field(
520
-			array(
521
-				'id'          => 'post_type_toggles_title',
522
-				'type'        => 'title',
523
-				'name'        => __( 'Disable Post Types', 'lsx-health-plan' ),
524
-				'default'     => __( 'Disable Post Types', 'lsx-health-plan' ),
525
-				'description' => __( 'Disable post types if you are wanting a minimal site.', 'lsx-health-plan' ),
526
-			)
527
-		);
528
-
529
-		foreach ( $post_types as $post_type ) {
530
-			if ( 'plan' === $post_type || 'exercise' === $post_type || ( 'video' === $post_type && false !== \lsx_health_plan\functions\get_option( 'exercise_enabled', false ) ) ) {
531
-				continue;
532
-			}
533
-
534
-			$cmb->add_field(
535
-				array(
536
-					'name'    => ucwords( $post_type ),
537
-					'id'      => $post_type . '_disabled',
538
-					'type'    => 'checkbox',
539
-					'value'   => 1,
540
-					'default' => 0,
541
-				)
542
-			);
543
-		}
544
-
545
-		$cmb->add_field(
546
-			array(
547
-				'id'   => 'settings_post_type_toggles_closing',
548
-				'type' => 'tab_closing',
549
-			)
550
-		);
551
-
552
-		$cmb->add_field(
553
-			array(
554
-				'id'          => 'post_type_toggles_enable_title',
555
-				'type'        => 'title',
556
-				'name'        => __( 'Enable Post Types', 'lsx-health-plan' ),
557
-				'default'     => __( 'Enable Post Types', 'lsx-health-plan' ),
558
-				'description' => __( 'Enable new functionality like the "exercise" post type.', 'lsx-health-plan' ),
559
-			)
560
-		);
561
-		$cmb->add_field(
562
-			array(
563
-				'name'        => __( 'Exercises', 'lsx-health-plan' ),
564
-				'id'          => 'exercise_enabled',
565
-				'type'        => 'checkbox',
566
-				'value'       => 1,
567
-				'default'     => 0,
568
-				'description' => __( 'Enabling the exercise post type will automatically replace the Video post type.', 'lsx-health-plan' ),
569
-			)
570
-		);
571
-		$cmb->add_field(
572
-			array(
573
-				'id'   => 'settings_post_type_toggles_enable_closing',
574
-				'type' => 'tab_closing',
575
-			)
576
-		);
577
-	}
578
-	/**
579
-	 * Registers the Profile Stat Toggle settings
580
-	 *
581
-	 * @param object $cmb new_cmb2_box().
582
-	 * @return void
583
-	 */
584
-
585
-	public function stat_disable( $cmb ) {
586
-		$cmb->add_field(
587
-			array(
588
-				'id'      => 'stat_disable_title',
589
-				'type'    => 'title',
590
-				'name'    => __( 'Disable Profile Stats', 'lsx-health-plan' ),
591
-				'default' => __( 'Disable Profile Stats', 'lsx-health-plan' ),
592
-			)
593
-		);
594
-		$cmb->add_field(
595
-			array(
596
-				'name'    => __( 'Disable All Stats', 'lsx-health-plan' ),
597
-				'desc'    => 'Disable All Stats',
598
-				'id'      => 'disable_all_stats',
599
-				'type'    => 'checkbox',
600
-				'value'   => 1,
601
-				'default' => 0,
602
-			)
603
-		);
604
-		$cmb->add_field(
605
-			array(
606
-				'name'    => __( 'Disable Weight', 'lsx-health-plan' ),
607
-				'id'      => 'disable_weight_checkbox',
608
-				'type'    => 'checkbox',
609
-				'value'   => 1,
610
-				'default' => 0,
611
-			)
612
-		);
613
-		$cmb->add_field(
614
-			array(
615
-				'name'    => __( 'Disable Height', 'lsx-health-plan' ),
616
-				'id'      => 'disable_height_checkbox',
617
-				'type'    => 'checkbox',
618
-				'value'   => 1,
619
-				'default' => 0,
620
-			)
621
-		);
622
-		$cmb->add_field(
623
-			array(
624
-				'name'    => __( 'Disable Waist', 'lsx-health-plan' ),
625
-				'id'      => 'disable_waist_checkbox',
626
-				'type'    => 'checkbox',
627
-				'value'   => 1,
628
-				'default' => 0,
629
-			)
630
-		);
631
-		$cmb->add_field(
632
-			array(
633
-				'name'    => __( 'Disable BMI', 'lsx-health-plan' ),
634
-				'id'      => 'disable_bmi_checkbox',
635
-				'type'    => 'checkbox',
636
-				'value'   => 1,
637
-				'default' => 0,
638
-			)
639
-		);
640
-		$cmb->add_field(
641
-			array(
642
-				'id'   => 'settings_stat_disable_closing',
643
-				'type' => 'tab_closing',
644
-			)
645
-		);
646
-	}
647
-
648
-	/**
649
-	 * Enable Business Directory Search settings only if LSX Search plugin is enabled.
650
-	 *
651
-	 * @param object $cmb The CMB2() class.
652
-	 * @param string $section either engine,archive or single.
653
-	 * @return void
654
-	 */
655
-	public function generate_tabs( $cmb ) {
656
-		$tabs = $this->get_settings_tabs();
657
-
658
-		foreach ( $tabs as $tab_key => $tab ) {
659
-			$cmb->add_field(
660
-				array(
661
-					'id'          => 'settings_' . $tab_key . '_title',
662
-					'type'        => 'title',
663
-					'name'        => $tab['title'],
664
-					'default'     => $tab['title'],
665
-					'description' => $tab['desc'],
666
-				)
667
-			);
668
-			do_action( 'lsx_hp_settings_page_' . $tab_key . '_top', $cmb );
669
-
670
-			do_action( 'lsx_hp_settings_page_' . $tab_key . '_middle', $cmb );
671
-
672
-			do_action( 'lsx_hp_settings_page_' . $tab_key . '_bottom', $cmb );
673
-
674
-			$cmb->add_field(
675
-				array(
676
-					'id'   => 'settings_' . $tab_key . '_closing',
677
-					'type' => 'tab_closing',
678
-				)
679
-			);
680
-		}
681
-	}
682
-
683
-
684
-	/**
685
-	 * Returns the tabs and their descriptions.
686
-	 *
687
-	 * @return array
688
-	 */
689
-	public function get_settings_tabs() {
690
-		$tabs = array(
691
-			'general' => array(
692
-				'title' => __( 'General', 'lsx-health-plan' ),
693
-				'desc'  => __( 'Control the sitewide settings for the LSX HP site.', 'lsx-health-plan' ),
694
-			),
695
-		);
696
-
697
-		foreach ( $this->post_types as $post_type ) {
698
-			switch ( $post_type ) {
699
-				default:
700
-					//if ( ! in_array( $post_type, \lsx\search\includes\get_restricted_post_types() ) ) {
701
-						$temp_post_type = get_post_type_object( $post_type );
702
-						if ( ! is_wp_error( $temp_post_type ) ) {
703
-							$page_url    = get_post_type_archive_link( $temp_post_type->name );
704
-							$description = sprintf(
705
-								/* translators: %s: The subscription info */
706
-								__( 'Control the settings for your <a target="_blank" href="%1$s">%2$s</a> archive.', 'lsx-search' ),
707
-								$page_url,
708
-								$temp_post_type->label
709
-							);
710
-
711
-							$tabs[ $post_type ] = array(
712
-								'title' => $temp_post_type->label,
713
-								'desc'  => $description,
714
-							);
715
-						}
716
-					//}
717
-					break;
718
-			}
719
-		}
720
-		return $tabs;
721
-	}
15
+     /**
16
+      * Holds class instance
17
+      *
18
+      * @since 1.0.0
19
+      *
20
+      * @var      object \lsx_health_plan\classes\admin\Settings()
21
+      */
22
+     protected static $instance = null;
23
+
24
+     /**
25
+      * Option key, and option page slug
26
+      *
27
+      * @var string
28
+      */
29
+     protected $screen_id = 'lsx_health_plan_settings';
30
+
31
+     /**
32
+      * An array of the post types for the Global Downloads field.
33
+      *
34
+      * @var array
35
+      */
36
+     public $download_types = array();
37
+
38
+     /**
39
+      * An array of the post types for the Global Defaults field.
40
+      *
41
+      * @var array
42
+      */
43
+     public $default_types = array();
44
+
45
+     /**
46
+      * An array of the endpoints for the Endpoint Translation field.
47
+      *
48
+      * @var array
49
+      */
50
+     public $endpoints = array();
51
+
52
+     /**
53
+      * Constructor
54
+      */
55
+     public function __construct() {
56
+          $this->load_classes();
57
+          add_action( 'cmb2_admin_init', array( $this, 'register_settings_page' ) );
58
+          add_action( 'lsx_hp_settings_page', array( $this, 'generate_tabs' ), 1, 1 );
59
+
60
+          add_action( 'lsx_hp_settings_page_general_top', array( $this, 'general_settings' ), 1, 1 );
61
+          add_action( 'lsx_hp_settings_page', array( $this, 'global_defaults' ), 3, 1 );
62
+          add_action( 'lsx_hp_settings_page', array( $this, 'global_downloads' ), 5, 1 );
63
+          add_action( 'lsx_hp_settings_page', array( $this, 'stat_disable' ), 6, 1 );
64
+          add_action( 'lsx_hp_settings_page', array( $this, 'endpoint_translations' ), 7, 1 );
65
+          add_action( 'lsx_hp_settings_page', array( $this, 'exercise_translations' ), 7, 1 );
66
+          add_action( 'lsx_hp_settings_page', array( $this, 'post_type_toggles' ), 9, 1 );
67
+     }
68
+
69
+     /**
70
+      * Return an instance of this class.
71
+      *
72
+      * @since 1.0.0
73
+      *
74
+      * @return    object \lsx_health_plan\classes\admin\Settings()    A single instance of this class.
75
+      */
76
+     public static function get_instance() {
77
+          // If the single instance hasn't been set, set it now.
78
+          if ( null === self::$instance ) {
79
+               self::$instance = new self();
80
+          }
81
+          return self::$instance;
82
+     }
83
+
84
+     /**
85
+      * Loads the variable classes and the static classes.
86
+      */
87
+     private function load_classes() {
88
+
89
+          $this->post_types = array(
90
+               'plan',
91
+               'workout',
92
+               'exercise',
93
+               //'meal',
94
+               'recipe',
95
+               //'tip',
96
+          );
97
+
98
+          foreach ( $this->post_types as $post_type ) {
99
+               $this->$post_type = require_once LSX_HEALTH_PLAN_PATH . 'classes/admin/settings/class-' . $post_type . '.php';
100
+          }
101
+     }
102
+
103
+     /**
104
+      * Sets the variables needed for the fields.
105
+      *
106
+      * @return void
107
+      */
108
+     public function set_vars() {
109
+
110
+          $this->default_types  = array(
111
+               'page' => array(
112
+                    'title'       => __( 'Warm Up', 'lsx-health-plan' ),
113
+                    'description' => __( 'Set a default warm up routine.', 'lsx-health-plan' ),
114
+                    'limit'       => 1,
115
+                    'id'          => 'plan_warmup',
116
+               ),
117
+          );
118
+          $this->download_types = array(
119
+               'page' => array(
120
+                    'title'       => __( 'Warm Up', 'lsx-health-plan' ),
121
+                    'description' => __( 'Set a default warm up routine.', 'lsx-health-plan' ),
122
+                    'limit'       => 1,
123
+               ),
124
+          );
125
+          $this->endpoints      = array(
126
+               'endpoint_warm_up' => array(
127
+                    'title'       => __( 'Warm Up Endpoint', 'lsx-health-plan' ),
128
+                    'default'     => 'warm-up',
129
+               ),
130
+          );
131
+
132
+          if ( post_type_exists( 'meal' ) ) {
133
+               $this->download_types['meal']     = array(
134
+                    'title'       => __( 'Meal Plan', 'lsx-health-plan' ),
135
+                    'description' => __( 'Set a default meal plan.', 'lsx-health-plan' ),
136
+               );
137
+               $this->default_types['meal']      = array(
138
+                    'title'       => __( 'Meal Plan', 'lsx-health-plan' ),
139
+                    'description' => __( 'Set a default meal plan.', 'lsx-health-plan' ),
140
+                    'id'          => 'connected_meals',
141
+               );
142
+               $this->endpoints['endpoint_meal'] = array(
143
+                    'title'       => __( 'Meal Endpoint', 'lsx-health-plan' ),
144
+                    'default'     => 'meal',
145
+                    'description' => __( 'Define the tab slug which shows on the single plan page.', 'lsx-health-plan' ),
146
+               );
147
+               $this->endpoints['endpoint_meal_archive'] = array(
148
+                    'title'   => __( 'Meals Archive Endpoint', 'lsx-health-plan' ),
149
+                    'default' => 'meals',
150
+               );
151
+               $this->endpoints['meal_single_slug'] = array(
152
+                    'title'   => __( 'Single Meal Slug', 'lsx-health-plan' ),
153
+                    'default' => 'meal',
154
+               );
155
+          }
156
+          if ( post_type_exists( 'recipe' ) ) {
157
+               $this->download_types['recipe'] = array(
158
+                    'title'       => __( 'Recipe', 'lsx-health-plan' ),
159
+                    'description' => __( 'Set a default recipe.', 'lsx-health-plan' ),
160
+               );
161
+               $this->default_types['recipe'] = array(
162
+                    'title'       => __( 'Recipe', 'lsx-health-plan' ),
163
+                    'description' => __( 'Set a default recipe.', 'lsx-health-plan' ),
164
+                    'id'          => 'connected_recipes',
165
+               );
166
+               $this->endpoints['endpoint_recipe'] = array(
167
+                    'title'   => __( 'Recipes Endpoint', 'lsx-health-plan' ),
168
+                    'default' => 'recipe',
169
+               );
170
+          }
171
+          if ( post_type_exists( 'workout' ) ) {
172
+               $this->download_types['workout'] = array(
173
+                    'title'       => __( 'Workout', 'lsx-health-plan' ),
174
+                    'description' => __( 'Set a default workout routine PDF.', 'lsx-health-plan' ),
175
+               );
176
+               $this->default_types['workout'] = array(
177
+                    'title'       => __( 'Workout', 'lsx-health-plan' ),
178
+                    'description' => __( 'Set a default workout routine.', 'lsx-health-plan' ),
179
+                    'id'          => 'connected_workouts',
180
+               );
181
+               $this->endpoints['endpoint_workout_archive'] = array(
182
+                    'title'   => __( 'Workouts Archive Endpoint', 'lsx-health-plan' ),
183
+                    'default' => '',
184
+               );
185
+               $this->endpoints['endpoint_workout'] = array(
186
+                    'title'   => __( 'Single Workout Endpoint', 'lsx-health-plan' ),
187
+                    'default' => 'workout',
188
+               );
189
+          }
190
+
191
+          $this->endpoints['login_slug'] = array(
192
+               'title'   => __( 'Login Slug', 'lsx-health-plan' ),
193
+               'default' => 'login',
194
+          );
195
+          $this->endpoints['my_plan_slug'] = array(
196
+               'title'   => __( 'My Plan Slug', 'lsx-health-plan' ),
197
+               'default' => 'my-plan',
198
+          );
199
+          $this->endpoints['plan_single_slug'] = array(
200
+               'title'   => __( 'Single Plan Slug', 'lsx-health-plan' ),
201
+               'default' => 'plan',
202
+          );
203
+          $this->endpoints['endpoint_plan_archive'] = array(
204
+               'title'   => __( 'Plans Archive Endpoint', 'lsx-health-plan' ),
205
+               'default' => 'plans',
206
+          );
207
+
208
+          if ( false !== \lsx_health_plan\functions\get_option( 'exercise_enabled', false ) ) {
209
+               $this->endpoints['exercise'] = array(
210
+                    'exercise_single' => array(
211
+                         'title'   => __( 'Single Exercise Slug', 'lsx-health-plan' ),
212
+                         'default' => 'exercise',
213
+                    ),
214
+                    'exercise_archive' => array(
215
+                         'title'   => __( 'Archive Exercise Slug', 'lsx-health-plan' ),
216
+                         'default' => 'exercises',
217
+                    ),
218
+                    'exercise_type' => array(
219
+                         'title'   => __( 'Exercise Type Slug', 'lsx-health-plan' ),
220
+                         'default' => 'exercise-type',
221
+                    ),
222
+                    'exercise_equipment' => array(
223
+                         'title'   => __( 'Equipment Slug', 'lsx-health-plan' ),
224
+                         'default' => 'equipment',
225
+                    ),
226
+                    'exercise_musclegroup' => array(
227
+                         'title'   => __( 'Muscle Group Slug', 'lsx-health-plan' ),
228
+                         'default' => 'muscle-group',
229
+                    ),
230
+               );
231
+          }
232
+     }
233
+
234
+     /**
235
+      * Hook in and register a submenu options page for the Page post-type menu.
236
+      */
237
+     public function register_settings_page() {
238
+          $this->set_vars();
239
+          $cmb = new_cmb2_box(
240
+               array(
241
+                    'id'           => $this->screen_id,
242
+                    'title'        => esc_html__( 'Settings', 'lsx-health-plan' ),
243
+                    'object_types' => array( 'options-page' ),
244
+                    'option_key'   => 'lsx_health_plan_options', // The option key and admin menu page slug.
245
+                    'parent_slug'  => 'edit.php?post_type=plan', // Make options page a submenu item of the themes menu.
246
+                    'capability'   => 'manage_options', // Cap required to view options-page.
247
+               )
248
+          );
249
+          do_action( 'lsx_hp_settings_page', $cmb );
250
+     }
251
+
252
+     /**
253
+      * Registers the general settings.
254
+      *
255
+      * @param object $cmb new_cmb2_box().
256
+      * @return void
257
+      */
258
+     public function general_settings( $cmb ) {
259
+          $cmb->add_field(
260
+               array(
261
+                    'name'       => __( 'Membership Product', 'lsx-health-plan' ),
262
+                    'id'         => 'membership_product',
263
+                    'type'       => 'post_search_ajax',
264
+                    'limit'      => 1,
265
+                    'sortable'   => false,
266
+                    'query_args' => array(
267
+                         'post_type'      => array( 'product' ),
268
+                         'post_status'    => array( 'publish' ),
269
+                         'posts_per_page' => -1,
270
+                    ),
271
+               )
272
+          );
273
+
274
+          $cmb->add_field(
275
+               array(
276
+                    'name'    => __( 'Your Warm-up Intro', 'lsx-health-plan' ),
277
+                    'id'      => 'warmup_intro',
278
+                    'type'    => 'textarea_small',
279
+                    'value'   => '',
280
+                    'default' => __( "Don't forget your warm-up! It's a vital part of your daily workout routine.", 'lsx-health-plan' ),
281
+               )
282
+          );
283
+          if ( post_type_exists( 'workout' ) ) {
284
+               $cmb->add_field(
285
+                    array(
286
+                         'name'    => __( 'Your Workout Intro', 'lsx-health-plan' ),
287
+                         'id'      => 'workout_intro',
288
+                         'type'    => 'textarea_small',
289
+                         'value'   => '',
290
+                         'default' => __( "Let's do this! Smash your daily workout and reach your fitness goals.", 'lsx-health-plan' ),
291
+                    )
292
+               );
293
+          }
294
+          if ( post_type_exists( 'meal' ) ) {
295
+               $cmb->add_field(
296
+                    array(
297
+                         'name'    => __( 'Your Meal Plan Intro', 'lsx-health-plan' ),
298
+                         'id'      => 'meal_plan_intro',
299
+                         'type'    => 'textarea_small',
300
+                         'value'   => '',
301
+                         'default' => __( 'Get the right mix of nutrients to keep muscles strong & healthy.', 'lsx-health-plan' ),
302
+                    )
303
+               );
304
+          }
305
+          if ( post_type_exists( 'recipe' ) ) {
306
+               $cmb->add_field(
307
+                    array(
308
+                         'name'    => __( 'Recipes Intro', 'lsx-health-plan' ),
309
+                         'id'      => 'recipes_intro',
310
+                         'type'    => 'textarea_small',
311
+                         'value'   => '',
312
+                         'default' => __( "Let's get cooking! Delicious and easy to follow recipes.", 'lsx-health-plan' ),
313
+                    )
314
+               );
315
+          }
316
+     }
317
+
318
+     /**
319
+      * Registers the global default settings.
320
+      *
321
+      * @param object $cmb new_cmb2_box().
322
+      * @return void
323
+      */
324
+     public function global_defaults( $cmb ) {
325
+          $cmb->add_field(
326
+               array(
327
+                    'id'      => 'global_defaults_title',
328
+                    'type'    => 'title',
329
+                    'name'    => __( 'Global Defaults', 'lsx-health-plan' ),
330
+                    'default' => __( 'Global Defaults', 'lsx-health-plan' ),
331
+                    'description' => __( 'If you have not connected a specific post to your day plan, set a default option below.', 'lsx-health-plan' ),
332
+               )
333
+          );
334
+
335
+          foreach ( $this->default_types as $type => $default_type ) {
336
+               $limit    = 5;
337
+               $sortable = false;
338
+               if ( isset( $default_type['limit'] ) ) {
339
+                    $limit    = $default_type['limit'];
340
+                    $sortable = true;
341
+               }
342
+
343
+               if ( 'page' === $type && false !== \lsx_health_plan\functions\get_option( 'exercise_enabled', false ) ) {
344
+                    $type = array( 'page', 'workout' );
345
+               }
346
+
347
+               $cmb->add_field(
348
+                    array(
349
+                         'name'       => $default_type['title'],
350
+                         'desc'       => $default_type['description'],
351
+                         'id'         => $default_type['id'],
352
+                         'type'       => 'post_search_ajax',
353
+                         'limit'      => $limit,
354
+                         'sortable'   => $sortable,
355
+                         'query_args' => array(
356
+                              'post_type'      => $type,
357
+                              'post_status'    => array( 'publish' ),
358
+                              'posts_per_page' => -1,
359
+                         ),
360
+                    )
361
+               );
362
+          }
363
+
364
+          $cmb->add_field(
365
+               array(
366
+                    'id'   => 'settings_global_defaults_closing',
367
+                    'type' => 'tab_closing',
368
+               )
369
+          );
370
+     }
371
+
372
+     /**
373
+      * Registers the global dowloads settings
374
+      *
375
+      * @param object $cmb new_cmb2_box().
376
+      * @return void
377
+      */
378
+     public function global_downloads( $cmb ) {
379
+          if ( ! function_exists( 'download_monitor' ) ) {
380
+               return;
381
+          }
382
+          $page_url    = 'https://wordpress.org/plugins/download-monitor/';
383
+          $plugin_name = 'Download Monitor';
384
+          $description = sprintf(
385
+               /* translators: %s: The subscription info */
386
+               __( 'If you are using <a target="_blank" href="%1$s">%2$s</a> you can set a default download file for your plan here.', 'lsx-search' ),
387
+               $page_url,
388
+               $plugin_name
389
+          );
390
+          $cmb->add_field(
391
+               array(
392
+                    'id'          => 'global_downloads_title',
393
+                    'type'        => 'title',
394
+                    'name'        => __( 'Global Downloads', 'lsx-health-plan' ),
395
+                    'default'     => __( 'Global Downloads', 'lsx-health-plan' ),
396
+                    'description' => $description,
397
+               )
398
+          );
399
+
400
+          foreach ( $this->download_types as $type => $download_type ) {
401
+               $limit    = 5;
402
+               $sortable = false;
403
+               if ( isset( $download_type['limit'] ) ) {
404
+                    $limit    = $download_type['limit'];
405
+                    $sortable = true;
406
+               }
407
+
408
+               $cmb->add_field(
409
+                    array(
410
+                         'name'       => $download_type['title'],
411
+                         'id'         => 'download_' . $type,
412
+                         'type'       => 'post_search_ajax',
413
+                         'limit'      => $limit,
414
+                         'sortable'   => $sortable,
415
+                         'query_args' => array(
416
+                              'post_type'      => array( 'dlm_download' ),
417
+                              'post_status'    => array( 'publish' ),
418
+                              'posts_per_page' => -1,
419
+                         ),
420
+                    )
421
+               );
422
+          }
423
+          $cmb->add_field(
424
+               array(
425
+                    'id'   => 'settings_global_downloads_closing',
426
+                    'type' => 'tab_closing',
427
+               )
428
+          );
429
+     }
430
+
431
+     /**
432
+      * Registers the endpoint translation settings.
433
+      *
434
+      * @param object $cmb new_cmb2_box().
435
+      * @return void
436
+      */
437
+     public function endpoint_translations( $cmb ) {
438
+          $cmb->add_field(
439
+               array(
440
+                    'id'          => 'endpoints_title',
441
+                    'type'        => 'title',
442
+                    'name'        => __( 'Set Endpoint Translations', 'lsx-health-plan' ),
443
+                    'default'     => __( 'Set Endpoint Translations', 'lsx-health-plan' ),
444
+               )
445
+          );
446
+          foreach ( $this->endpoints as $slug => $endpoint_vars ) {
447
+               if ( 'exercise' === $slug ) {
448
+                    continue;
449
+               }
450
+
451
+               $cmb->add_field(
452
+                    array(
453
+                         'name'    => $endpoint_vars['title'],
454
+                         'id'      => $slug,
455
+                         'type'    => 'input',
456
+                         'value'   => '',
457
+                         'default' => $endpoint_vars['default'],
458
+                    )
459
+               );
460
+          }
461
+          $cmb->add_field(
462
+               array(
463
+                    'id'            => 'settings_endpoints_closing',
464
+                    'type'          => 'tab_closing',
465
+                    'before_row'    => '<p style="margin-top:20px; font-style: italic;">Endpoint is a web address (URL) at which the user can gain access to it. You need to resave your permalinks after changing the endpoint settings.</p>',
466
+               )
467
+          );
468
+     }
469
+
470
+     /**
471
+      * Registers the endpoint translation settings.
472
+      *
473
+      * @param object $cmb new_cmb2_box().
474
+      * @return void
475
+      */
476
+     public function exercise_translations( $cmb ) {
477
+          if ( isset( $this->endpoints['exercise'] ) && '' !== $this->endpoints['exercise'] && ! empty( $this->endpoints['exercise'] ) ) {
478
+               $cmb->add_field(
479
+                    array(
480
+                         'id'          => 'exercise_endpoints_title',
481
+                         'type'        => 'title',
482
+                         'name'        => __( 'Set Exercise Translations', 'lsx-health-plan' ),
483
+                         'default'     => __( 'Set Exercise Translations', 'lsx-health-plan' ),
484
+                         'description' => __( 'Change the exercise endpoints.', 'lsx-health-plan' ),
485
+                    )
486
+               );
487
+
488
+               foreach ( $this->endpoints['exercise'] as $slug => $endpoint_vars ) {
489
+                    $cmb->add_field(
490
+                         array(
491
+                              'name'    => $endpoint_vars['title'],
492
+                              'id'      => 'endpoint_' . $slug,
493
+                              'type'    => 'input',
494
+                              'value'   => '',
495
+                              'default' => $endpoint_vars['default'],
496
+                         )
497
+                    );
498
+               }
499
+
500
+               $cmb->add_field(
501
+                    array(
502
+                         'id'            => 'settings_exercise_endpoints_closing',
503
+                         'type'          => 'tab_closing',
504
+                         'before_row'    => '<p style="margin-top:20px; font-style: italic;">If you need to translate the exercise URL slugs, do so below.</p>',
505
+                    )
506
+               );
507
+          }
508
+     }
509
+
510
+     /**
511
+      * Registers the post type toggle settings
512
+      *
513
+      * @param object $cmb new_cmb2_box().
514
+      * @return void
515
+      */
516
+     public function post_type_toggles( $cmb ) {
517
+          $post_types = apply_filters( 'lsx_health_plan_post_types', isset( $this->post_types ) );
518
+
519
+          $cmb->add_field(
520
+               array(
521
+                    'id'          => 'post_type_toggles_title',
522
+                    'type'        => 'title',
523
+                    'name'        => __( 'Disable Post Types', 'lsx-health-plan' ),
524
+                    'default'     => __( 'Disable Post Types', 'lsx-health-plan' ),
525
+                    'description' => __( 'Disable post types if you are wanting a minimal site.', 'lsx-health-plan' ),
526
+               )
527
+          );
528
+
529
+          foreach ( $post_types as $post_type ) {
530
+               if ( 'plan' === $post_type || 'exercise' === $post_type || ( 'video' === $post_type && false !== \lsx_health_plan\functions\get_option( 'exercise_enabled', false ) ) ) {
531
+                    continue;
532
+               }
533
+
534
+               $cmb->add_field(
535
+                    array(
536
+                         'name'    => ucwords( $post_type ),
537
+                         'id'      => $post_type . '_disabled',
538
+                         'type'    => 'checkbox',
539
+                         'value'   => 1,
540
+                         'default' => 0,
541
+                    )
542
+               );
543
+          }
544
+
545
+          $cmb->add_field(
546
+               array(
547
+                    'id'   => 'settings_post_type_toggles_closing',
548
+                    'type' => 'tab_closing',
549
+               )
550
+          );
551
+
552
+          $cmb->add_field(
553
+               array(
554
+                    'id'          => 'post_type_toggles_enable_title',
555
+                    'type'        => 'title',
556
+                    'name'        => __( 'Enable Post Types', 'lsx-health-plan' ),
557
+                    'default'     => __( 'Enable Post Types', 'lsx-health-plan' ),
558
+                    'description' => __( 'Enable new functionality like the "exercise" post type.', 'lsx-health-plan' ),
559
+               )
560
+          );
561
+          $cmb->add_field(
562
+               array(
563
+                    'name'        => __( 'Exercises', 'lsx-health-plan' ),
564
+                    'id'          => 'exercise_enabled',
565
+                    'type'        => 'checkbox',
566
+                    'value'       => 1,
567
+                    'default'     => 0,
568
+                    'description' => __( 'Enabling the exercise post type will automatically replace the Video post type.', 'lsx-health-plan' ),
569
+               )
570
+          );
571
+          $cmb->add_field(
572
+               array(
573
+                    'id'   => 'settings_post_type_toggles_enable_closing',
574
+                    'type' => 'tab_closing',
575
+               )
576
+          );
577
+     }
578
+     /**
579
+      * Registers the Profile Stat Toggle settings
580
+      *
581
+      * @param object $cmb new_cmb2_box().
582
+      * @return void
583
+      */
584
+
585
+     public function stat_disable( $cmb ) {
586
+          $cmb->add_field(
587
+               array(
588
+                    'id'      => 'stat_disable_title',
589
+                    'type'    => 'title',
590
+                    'name'    => __( 'Disable Profile Stats', 'lsx-health-plan' ),
591
+                    'default' => __( 'Disable Profile Stats', 'lsx-health-plan' ),
592
+               )
593
+          );
594
+          $cmb->add_field(
595
+               array(
596
+                    'name'    => __( 'Disable All Stats', 'lsx-health-plan' ),
597
+                    'desc'    => 'Disable All Stats',
598
+                    'id'      => 'disable_all_stats',
599
+                    'type'    => 'checkbox',
600
+                    'value'   => 1,
601
+                    'default' => 0,
602
+               )
603
+          );
604
+          $cmb->add_field(
605
+               array(
606
+                    'name'    => __( 'Disable Weight', 'lsx-health-plan' ),
607
+                    'id'      => 'disable_weight_checkbox',
608
+                    'type'    => 'checkbox',
609
+                    'value'   => 1,
610
+                    'default' => 0,
611
+               )
612
+          );
613
+          $cmb->add_field(
614
+               array(
615
+                    'name'    => __( 'Disable Height', 'lsx-health-plan' ),
616
+                    'id'      => 'disable_height_checkbox',
617
+                    'type'    => 'checkbox',
618
+                    'value'   => 1,
619
+                    'default' => 0,
620
+               )
621
+          );
622
+          $cmb->add_field(
623
+               array(
624
+                    'name'    => __( 'Disable Waist', 'lsx-health-plan' ),
625
+                    'id'      => 'disable_waist_checkbox',
626
+                    'type'    => 'checkbox',
627
+                    'value'   => 1,
628
+                    'default' => 0,
629
+               )
630
+          );
631
+          $cmb->add_field(
632
+               array(
633
+                    'name'    => __( 'Disable BMI', 'lsx-health-plan' ),
634
+                    'id'      => 'disable_bmi_checkbox',
635
+                    'type'    => 'checkbox',
636
+                    'value'   => 1,
637
+                    'default' => 0,
638
+               )
639
+          );
640
+          $cmb->add_field(
641
+               array(
642
+                    'id'   => 'settings_stat_disable_closing',
643
+                    'type' => 'tab_closing',
644
+               )
645
+          );
646
+     }
647
+
648
+     /**
649
+      * Enable Business Directory Search settings only if LSX Search plugin is enabled.
650
+      *
651
+      * @param object $cmb The CMB2() class.
652
+      * @param string $section either engine,archive or single.
653
+      * @return void
654
+      */
655
+     public function generate_tabs( $cmb ) {
656
+          $tabs = $this->get_settings_tabs();
657
+
658
+          foreach ( $tabs as $tab_key => $tab ) {
659
+               $cmb->add_field(
660
+                    array(
661
+                         'id'          => 'settings_' . $tab_key . '_title',
662
+                         'type'        => 'title',
663
+                         'name'        => $tab['title'],
664
+                         'default'     => $tab['title'],
665
+                         'description' => $tab['desc'],
666
+                    )
667
+               );
668
+               do_action( 'lsx_hp_settings_page_' . $tab_key . '_top', $cmb );
669
+
670
+               do_action( 'lsx_hp_settings_page_' . $tab_key . '_middle', $cmb );
671
+
672
+               do_action( 'lsx_hp_settings_page_' . $tab_key . '_bottom', $cmb );
673
+
674
+               $cmb->add_field(
675
+                    array(
676
+                         'id'   => 'settings_' . $tab_key . '_closing',
677
+                         'type' => 'tab_closing',
678
+                    )
679
+               );
680
+          }
681
+     }
682
+
683
+
684
+     /**
685
+      * Returns the tabs and their descriptions.
686
+      *
687
+      * @return array
688
+      */
689
+     public function get_settings_tabs() {
690
+          $tabs = array(
691
+               'general' => array(
692
+                    'title' => __( 'General', 'lsx-health-plan' ),
693
+                    'desc'  => __( 'Control the sitewide settings for the LSX HP site.', 'lsx-health-plan' ),
694
+               ),
695
+          );
696
+
697
+          foreach ( $this->post_types as $post_type ) {
698
+               switch ( $post_type ) {
699
+                    default:
700
+                         //if ( ! in_array( $post_type, \lsx\search\includes\get_restricted_post_types() ) ) {
701
+                              $temp_post_type = get_post_type_object( $post_type );
702
+                              if ( ! is_wp_error( $temp_post_type ) ) {
703
+                                   $page_url    = get_post_type_archive_link( $temp_post_type->name );
704
+                                   $description = sprintf(
705
+                                        /* translators: %s: The subscription info */
706
+                                        __( 'Control the settings for your <a target="_blank" href="%1$s">%2$s</a> archive.', 'lsx-search' ),
707
+                                        $page_url,
708
+                                        $temp_post_type->label
709
+                                   );
710
+
711
+                                   $tabs[ $post_type ] = array(
712
+                                        'title' => $temp_post_type->label,
713
+                                        'desc'  => $description,
714
+                                   );
715
+                              }
716
+                         //}
717
+                         break;
718
+               }
719
+          }
720
+          return $tabs;
721
+     }
722 722
 }
Please login to merge, or discard this patch.
templates/tab-content-workout.php 1 patch
Indentation   +17 added lines, -17 removed lines patch added patch discarded remove patch
@@ -26,24 +26,24 @@  discard block
 block discarded – undo
26 26
 
27 27
 	<div class="entry-content">
28 28
 		<?php
29
-			wp_link_pages(
30
-				array(
31
-					'before'      => '<div class="lsx-postnav-wrapper"><div class="lsx-postnav">',
32
-					'after'       => '</div></div>',
33
-					'link_before' => '<span>',
34
-					'link_after'  => '</span>',
35
-				)
36
-			);
37
-		?>
29
+               wp_link_pages(
30
+                    array(
31
+                         'before'      => '<div class="lsx-postnav-wrapper"><div class="lsx-postnav">',
32
+                         'after'       => '</div></div>',
33
+                         'link_before' => '<span>',
34
+                         'link_after'  => '</span>',
35
+                    )
36
+               );
37
+          ?>
38 38
 		<div class="single-plan-inner workout-content">
39 39
 			<?php
40
-			if ( is_singular( 'workout' ) ) { ?>
40
+               if ( is_singular( 'workout' ) ) { ?>
41 41
 				<div class="single-plan-section-title workout title-lined">
42 42
 					<?php lsx_get_svg_icon( 'work.svg' ); ?>
43 43
 					<h2><?php the_title(); ?></h2>
44 44
 					<?php if ( class_exists( 'LSX_Sharing' ) ) {
45
-						lsx_content_sharing();
46
-					} ?>
45
+                              lsx_content_sharing();
46
+                         } ?>
47 47
 				</div>
48 48
 			<?php } else { ?>
49 49
 				<div class="single-plan-section-title workout title-lined">
@@ -52,8 +52,8 @@  discard block
 block discarded – undo
52 52
 				</div>
53 53
 			<?php } ?>
54 54
 			<?php
55
-			if ( lsx_health_plan_has_warmup() && ( ! is_singular( 'workout' ) ) ) {
56
-				?>
55
+               if ( lsx_health_plan_has_warmup() && ( ! is_singular( 'workout' ) ) ) {
56
+                    ?>
57 57
 				<div class="workout-instructions">
58 58
 					<div class="row">
59 59
 						<div class="col-md-12">
@@ -65,8 +65,8 @@  discard block
 block discarded – undo
65 65
 					</div>
66 66
 				</div>
67 67
 				<?php
68
-			}
69
-			?>
68
+               }
69
+               ?>
70 70
 
71 71
 			<?php lsx_health_plan_workout_sets(); ?>
72 72
 		</div>
@@ -82,5 +82,5 @@  discard block
 block discarded – undo
82 82
 <?php } ?>
83 83
 <?php
84 84
 if ( ! empty( $connected_articles ) ) {
85
-	lsx_hp_single_related( $connected_articles, __( 'Related articles', 'lsx-health-plan' ) );
85
+     lsx_hp_single_related( $connected_articles, __( 'Related articles', 'lsx-health-plan' ) );
86 86
 }
Please login to merge, or discard this patch.
templates/tab-content-plan.php 1 patch
Indentation   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -8,10 +8,10 @@  discard block
 block discarded – undo
8 8
 $section_key  = get_query_var( 'section' );
9 9
 $endpoint_key = get_query_var( 'endpoint' );
10 10
 if ( '' !== $section_key && '' === $endpoint && \lsx_health_plan\functions\plan\has_sections() ) {
11
-	$section_info = \lsx_health_plan\functions\plan\get_section_info( $section_key );
12
-	if ( isset( $section_info['description'] ) && '' !== $section_info['description'] ) {
13
-		global $shortcode_args;
14
-		?>
11
+     $section_info = \lsx_health_plan\functions\plan\get_section_info( $section_key );
12
+     if ( isset( $section_info['description'] ) && '' !== $section_info['description'] ) {
13
+          global $shortcode_args;
14
+          ?>
15 15
 		<?php lsx_entry_before(); ?>
16 16
 
17 17
 		<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
@@ -25,15 +25,15 @@  discard block
 block discarded – undo
25 25
 			<div class="entry-content">
26 26
 				<div class="overview">
27 27
 				<?php
28
-					echo wp_kses_post( apply_filters( 'the_content', $section_info['description'] ) );
29
-
30
-					wp_link_pages( array(
31
-						'before'      => '<div class="lsx-postnav-wrapper"><div class="lsx-postnav">',
32
-						'after'       => '</div></div>',
33
-						'link_before' => '<span>',
34
-						'link_after'  => '</span>',
35
-					) );
36
-				?>
28
+                         echo wp_kses_post( apply_filters( 'the_content', $section_info['description'] ) );
29
+
30
+                         wp_link_pages( array(
31
+                              'before'      => '<div class="lsx-postnav-wrapper"><div class="lsx-postnav">',
32
+                              'after'       => '</div></div>',
33
+                              'link_before' => '<span>',
34
+                              'link_after'  => '</span>',
35
+                         ) );
36
+                    ?>
37 37
 				</div>
38 38
 			</div><!-- .entry-content -->
39 39
 			<?php if ( null === $shortcode_args ) { ?>
@@ -51,6 +51,6 @@  discard block
 block discarded – undo
51 51
 		</article><!-- #post-## -->
52 52
 
53 53
 		<?php
54
-	}
54
+     }
55 55
 }
56 56
 ?>
Please login to merge, or discard this patch.
templates/tab-content-meal.php 1 patch
Indentation   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -26,13 +26,13 @@  discard block
 block discarded – undo
26 26
 	<div class="entry-content">
27 27
 		<div class="single-plan-inner meal-content">
28 28
 			<?php
29
-			if ( is_singular( 'meal' ) ) { ?>
29
+               if ( is_singular( 'meal' ) ) { ?>
30 30
 				<div class="single-plan-section-title meal-plan title-lined">
31 31
 					<?php lsx_get_svg_icon( 'meal.svg' ); ?>
32 32
 					<h2><?php the_title(); ?></h2>
33 33
 					<?php if ( class_exists( 'LSX_Sharing' ) ) {
34
-						lsx_content_sharing();
35
-					} ?>
34
+                              lsx_content_sharing();
35
+                         } ?>
36 36
 				</div>
37 37
 			<?php } else { ?>
38 38
 				<div class="single-plan-section-title meal-plan title-lined">
@@ -55,18 +55,18 @@  discard block
 block discarded – undo
55 55
 	<?php } ?>
56 56
 
57 57
 	<?php
58
-	// Shoping list
59
-	$shopping_list = get_post_meta( get_the_ID(), 'meal_shopping_list', true );
60
-	if ( ! empty( $shopping_list ) ) {
61
-		?>
58
+     // Shoping list
59
+     $shopping_list = get_post_meta( get_the_ID(), 'meal_shopping_list', true );
60
+     if ( ! empty( $shopping_list ) ) {
61
+          ?>
62 62
 		<a class="btn border-btn btn-shopping" href="<?php echo esc_url( get_page_link( $shopping_list ) ); ?>" target="_blank"><?php esc_html_e( 'Download Shopping List', 'lsx-health-plan' ); ?><i class="fa fa-download" aria-hidden="true"></i></a>
63 63
 	<?php
64
-	}
64
+     }
65 65
 
66
-	?>
66
+     ?>
67 67
 </div>
68 68
 
69 69
 <?php
70 70
 if ( ! empty( $connected_articles ) ) {
71
-	lsx_hp_single_related( $connected_articles, __( 'Related articles', 'lsx-health-plan' ) );
71
+     lsx_hp_single_related( $connected_articles, __( 'Related articles', 'lsx-health-plan' ) );
72 72
 }
Please login to merge, or discard this patch.
templates/tab-content-warm-up.php 1 patch
Indentation   +44 added lines, -44 removed lines patch added patch discarded remove patch
@@ -8,10 +8,10 @@  discard block
 block discarded – undo
8 8
 
9 9
 $warm_up = get_post_meta( get_the_ID(), 'plan_warmup', true );
10 10
 if ( false === $warm_up || '' === $warm_up ) {
11
-	$options = \lsx_health_plan\functions\get_option( 'all' );
12
-	if ( isset( $options['plan_warmup'] ) && '' !== $options['plan_warmup'] && ! empty( $options['plan_warmup'] ) ) {
13
-		$warm_up = $options['plan_warmup'];
14
-	}
11
+     $options = \lsx_health_plan\functions\get_option( 'all' );
12
+     if ( isset( $options['plan_warmup'] ) && '' !== $options['plan_warmup'] && ! empty( $options['plan_warmup'] ) ) {
13
+          $warm_up = $options['plan_warmup'];
14
+     }
15 15
 }
16 16
 
17 17
 ?>
@@ -19,25 +19,25 @@  discard block
 block discarded – undo
19 19
 <?php
20 20
 
21 21
 if ( false !== $warm_up && '' !== $warm_up ) {
22
-	if ( ! is_array( $warm_up ) ) {
23
-		$warm_up = array( $warm_up );
24
-	}
22
+     if ( ! is_array( $warm_up ) ) {
23
+          $warm_up = array( $warm_up );
24
+     }
25 25
 
26
-	$warmup_type  = array( 'page', 'workout', 'exercise' );
27
-	$warmup_query = new WP_Query(
28
-		array(
29
-			'post__in'  => $warm_up,
30
-			'post_type' => $warmup_type,
31
-		)
32
-	);
26
+     $warmup_type  = array( 'page', 'workout', 'exercise' );
27
+     $warmup_query = new WP_Query(
28
+          array(
29
+               'post__in'  => $warm_up,
30
+               'post_type' => $warmup_type,
31
+          )
32
+     );
33 33
 
34
-	if ( $warmup_query->have_posts() ) {
35
-		while ( $warmup_query->have_posts() ) {
36
-			$warmup_query->the_post();
37
-			lsx_entry_before();
38
-			if ( 'workout' === get_post_type() ) {
39
-				$connected_workouts = array( get_the_ID() );
40
-				?>
34
+     if ( $warmup_query->have_posts() ) {
35
+          while ( $warmup_query->have_posts() ) {
36
+               $warmup_query->the_post();
37
+               lsx_entry_before();
38
+               if ( 'workout' === get_post_type() ) {
39
+                    $connected_workouts = array( get_the_ID() );
40
+                    ?>
41 41
 				<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
42 42
 					<?php lsx_entry_top(); ?>
43 43
 					<div class="entry-content">
@@ -47,14 +47,14 @@  discard block
 block discarded – undo
47 47
 								<h2><?php esc_html_e( 'Warm Up', 'lsx-health-plan' ); ?></h2>
48 48
 							</div>
49 49
 						<?php
50
-							the_content();
51
-							wp_link_pages( array(
52
-								'before'      => '<div class="lsx-postnav-wrapper"><div class="lsx-postnav">',
53
-								'after'       => '</div></div>',
54
-								'link_before' => '<span>',
55
-								'link_after'  => '</span>',
56
-							) );
57
-						?>
50
+                                   the_content();
51
+                                   wp_link_pages( array(
52
+                                        'before'      => '<div class="lsx-postnav-wrapper"><div class="lsx-postnav">',
53
+                                        'after'       => '</div></div>',
54
+                                        'link_before' => '<span>',
55
+                                        'link_after'  => '</span>',
56
+                                   ) );
57
+                              ?>
58 58
 						</div>
59 59
 					</div><!-- .entry-content -->
60 60
 					<?php lsx_entry_bottom(); ?>
@@ -69,9 +69,9 @@  discard block
 block discarded – undo
69 69
 					<?php } ?>
70 70
 				</article><!-- #post-## -->
71 71
 				<?php
72
-				lsx_health_plan_workout_sets();
73
-			} else {
74
-				?>
72
+                    lsx_health_plan_workout_sets();
73
+               } else {
74
+                    ?>
75 75
 				<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
76 76
 					<?php lsx_entry_top(); ?>
77 77
 					<div class="entry-content">
@@ -81,24 +81,24 @@  discard block
 block discarded – undo
81 81
 								<h2><?php esc_html_e( 'Warm Up', 'lsx-health-plan' ); ?></h2>
82 82
 							</div>
83 83
 						<?php
84
-							the_content();
85
-							wp_link_pages( array(
86
-								'before'      => '<div class="lsx-postnav-wrapper"><div class="lsx-postnav">',
87
-								'after'       => '</div></div>',
88
-								'link_before' => '<span>',
89
-								'link_after'  => '</span>',
90
-							) );
91
-						?>
84
+                                   the_content();
85
+                                   wp_link_pages( array(
86
+                                        'before'      => '<div class="lsx-postnav-wrapper"><div class="lsx-postnav">',
87
+                                        'after'       => '</div></div>',
88
+                                        'link_before' => '<span>',
89
+                                        'link_after'  => '</span>',
90
+                                   ) );
91
+                              ?>
92 92
 						</div>
93 93
 					</div><!-- .entry-content -->
94 94
 					<?php lsx_entry_bottom(); ?>
95 95
 				</article><!-- #post-## -->
96 96
 				<?php
97
-			}
97
+               }
98 98
 
99
-		}
100
-		wp_reset_postdata();
101
-	}
99
+          }
100
+          wp_reset_postdata();
101
+     }
102 102
 }
103 103
 ?>
104 104
 </div>
Please login to merge, or discard this patch.