Passed
Push — add/multiplan ( 57784a...24f151 )
by Virginia
03:20
created
classes/admin/settings/class-workout.php 1 patch
Indentation   +107 added lines, -107 removed lines patch added patch discarded remove patch
@@ -12,115 +12,115 @@
 block discarded – undo
12 12
  */
13 13
 class Workout {
14 14
 
15
-	/**
16
-	 * Holds class instance
17
-	 *
18
-	 * @since 1.0.0
19
-	 *
20
-	 * @var      object \lsx_health_plan\classes\admin\Workout()
21
-	 */
22
-	protected static $instance = null;
15
+     /**
16
+      * Holds class instance
17
+      *
18
+      * @since 1.0.0
19
+      *
20
+      * @var      object \lsx_health_plan\classes\admin\Workout()
21
+      */
22
+     protected static $instance = null;
23 23
 
24
-	/**
25
-	 * Contructor
26
-	 */
27
-	public function __construct() {
28
-		add_action( 'lsx_hp_settings_page_workout_top', array( $this, 'settings' ), 1, 1 );
29
-	}
24
+     /**
25
+      * Contructor
26
+      */
27
+     public function __construct() {
28
+          add_action( 'lsx_hp_settings_page_workout_top', array( $this, 'settings' ), 1, 1 );
29
+     }
30 30
 
31
-	/**
32
-	 * Return an instance of this class.
33
-	 *
34
-	 * @since 1.0.0
35
-	 *
36
-	 * @return    object \lsx_health_plan\classes\admin\Workout()    A single instance of this class.
37
-	 */
38
-	public static function get_instance() {
39
-		// If the single instance hasn't been set, set it now.
40
-		if ( null === self::$instance ) {
41
-			self::$instance = new self();
42
-		}
43
-		return self::$instance;
44
-	}
31
+     /**
32
+      * Return an instance of this class.
33
+      *
34
+      * @since 1.0.0
35
+      *
36
+      * @return    object \lsx_health_plan\classes\admin\Workout()    A single instance of this class.
37
+      */
38
+     public static function get_instance() {
39
+          // If the single instance hasn't been set, set it now.
40
+          if ( null === self::$instance ) {
41
+               self::$instance = new self();
42
+          }
43
+          return self::$instance;
44
+     }
45 45
 
46
-	/**
47
-	 * Registers the general settings.
48
-	 *
49
-	 * @param object $cmb new_cmb2_box().
50
-	 * @return void
51
-	 */
52
-	public function settings( $cmb ) {
53
-		$cmb->add_field(
54
-			array(
55
-				'id'          => 'workout_tab_layout',
56
-				'type'        => 'select',
57
-				'name'        => __( 'Workout Tab Layout', 'lsx-health-plan' ),
58
-				'description' => __( 'Choose the layout for the workouts.', 'lsx-health-plan' ),
59
-				'options'     => array(
60
-					'table' => __( 'Table', 'lsx-health-plan' ),
61
-					'list'  => __( 'List', 'lsx-health-plan' ),
62
-					'grid'  => __( 'Grid', 'lsx-health-plan' ),
63
-				),
64
-			)
65
-		);
66
-		$cmb->add_field(
67
-			array(
68
-				'id'          => 'workout_tab_link',
69
-				'type'        => 'select',
70
-				'name'        => __( 'Workout Tab Link', 'lsx-health-plan' ),
71
-				'description' => __( 'Choose to show the excerpt, full content or nothing.', 'lsx-health-plan' ),
72
-				'options'     => array(
73
-					''       => __( 'None', 'lsx-health-plan' ),
74
-					'single' => __( 'Single', 'lsx-health-plan' ),
75
-					'modal'  => __( 'Modal', 'lsx-health-plan' ),
76
-				),
77
-				'default' => 'modal',
78
-			)
79
-		);
80
-		$cmb->add_field(
81
-			array(
82
-				'id'          => 'workout_tab_modal_content',
83
-				'type'        => 'select',
84
-				'name'        => __( 'Modal Content', 'lsx-health-plan' ),
85
-				'description' => __( 'Choose to show the excerpt, full content or nothing. For the modal content only', 'lsx-health-plan' ),
86
-				'options'     => array(
87
-					''        => __( 'None', 'lsx-health-plan' ),
88
-					'excerpt' => __( 'Excerpt', 'lsx-health-plan' ),
89
-					'full'    => __( 'Full Content', 'lsx-health-plan' ),
90
-				),
91
-				'default' => '',
92
-			)
93
-		);
94
-		$cmb->add_field(
95
-			array(
96
-				'id'          => 'workout_tab_columns',
97
-				'type'        => 'select',
98
-				'name'        => __( 'Grid Columns', 'lsx-health-plan' ),
99
-				'description' => __( 'If you are displaying a grid, set the amount of columns you want to use.', 'lsx-health-plan' ),
100
-				'options'     => array(
101
-					'12' => __( '1', 'lsx-health-plan' ),
102
-					'6'  => __( '2', 'lsx-health-plan' ),
103
-					'4'  => __( '3', 'lsx-health-plan' ),
104
-					'3'  => __( '4', 'lsx-health-plan' ),
105
-					'2'  => __( '6', 'lsx-health-plan' ),
106
-				),
107
-				'default' => '4',
108
-			)
109
-		);
110
-		$cmb->add_field(
111
-			array(
112
-				'id'          => 'workout_tab_content',
113
-				'type'        => 'select',
114
-				'name'        => __( 'Grid Content', 'lsx-health-plan' ),
115
-				'description' => __( 'Choose to show the excerpt, full content or nothing. For the grid layout only', 'lsx-health-plan' ),
116
-				'options'     => array(
117
-					''        => __( 'None', 'lsx-health-plan' ),
118
-					'excerpt' => __( 'Excerpt', 'lsx-health-plan' ),
119
-					'full'    => __( 'Full Content', 'lsx-health-plan' ),
120
-				),
121
-				'default' => '',
122
-			)
123
-		);
124
-	}
46
+     /**
47
+      * Registers the general settings.
48
+      *
49
+      * @param object $cmb new_cmb2_box().
50
+      * @return void
51
+      */
52
+     public function settings( $cmb ) {
53
+          $cmb->add_field(
54
+               array(
55
+                    'id'          => 'workout_tab_layout',
56
+                    'type'        => 'select',
57
+                    'name'        => __( 'Workout Tab Layout', 'lsx-health-plan' ),
58
+                    'description' => __( 'Choose the layout for the workouts.', 'lsx-health-plan' ),
59
+                    'options'     => array(
60
+                         'table' => __( 'Table', 'lsx-health-plan' ),
61
+                         'list'  => __( 'List', 'lsx-health-plan' ),
62
+                         'grid'  => __( 'Grid', 'lsx-health-plan' ),
63
+                    ),
64
+               )
65
+          );
66
+          $cmb->add_field(
67
+               array(
68
+                    'id'          => 'workout_tab_link',
69
+                    'type'        => 'select',
70
+                    'name'        => __( 'Workout Tab Link', 'lsx-health-plan' ),
71
+                    'description' => __( 'Choose to show the excerpt, full content or nothing.', 'lsx-health-plan' ),
72
+                    'options'     => array(
73
+                         ''       => __( 'None', 'lsx-health-plan' ),
74
+                         'single' => __( 'Single', 'lsx-health-plan' ),
75
+                         'modal'  => __( 'Modal', 'lsx-health-plan' ),
76
+                    ),
77
+                    'default' => 'modal',
78
+               )
79
+          );
80
+          $cmb->add_field(
81
+               array(
82
+                    'id'          => 'workout_tab_modal_content',
83
+                    'type'        => 'select',
84
+                    'name'        => __( 'Modal Content', 'lsx-health-plan' ),
85
+                    'description' => __( 'Choose to show the excerpt, full content or nothing. For the modal content only', 'lsx-health-plan' ),
86
+                    'options'     => array(
87
+                         ''        => __( 'None', 'lsx-health-plan' ),
88
+                         'excerpt' => __( 'Excerpt', 'lsx-health-plan' ),
89
+                         'full'    => __( 'Full Content', 'lsx-health-plan' ),
90
+                    ),
91
+                    'default' => '',
92
+               )
93
+          );
94
+          $cmb->add_field(
95
+               array(
96
+                    'id'          => 'workout_tab_columns',
97
+                    'type'        => 'select',
98
+                    'name'        => __( 'Grid Columns', 'lsx-health-plan' ),
99
+                    'description' => __( 'If you are displaying a grid, set the amount of columns you want to use.', 'lsx-health-plan' ),
100
+                    'options'     => array(
101
+                         '12' => __( '1', 'lsx-health-plan' ),
102
+                         '6'  => __( '2', 'lsx-health-plan' ),
103
+                         '4'  => __( '3', 'lsx-health-plan' ),
104
+                         '3'  => __( '4', 'lsx-health-plan' ),
105
+                         '2'  => __( '6', 'lsx-health-plan' ),
106
+                    ),
107
+                    'default' => '4',
108
+               )
109
+          );
110
+          $cmb->add_field(
111
+               array(
112
+                    'id'          => 'workout_tab_content',
113
+                    'type'        => 'select',
114
+                    'name'        => __( 'Grid Content', 'lsx-health-plan' ),
115
+                    'description' => __( 'Choose to show the excerpt, full content or nothing. For the grid layout only', 'lsx-health-plan' ),
116
+                    'options'     => array(
117
+                         ''        => __( 'None', 'lsx-health-plan' ),
118
+                         'excerpt' => __( 'Excerpt', 'lsx-health-plan' ),
119
+                         'full'    => __( 'Full Content', 'lsx-health-plan' ),
120
+                    ),
121
+                    'default' => '',
122
+               )
123
+          );
124
+     }
125 125
 }
126 126
 Workout::get_instance();
Please login to merge, or discard this patch.
classes/admin/settings/class-exercise.php 1 patch
Indentation   +44 added lines, -44 removed lines patch added patch discarded remove patch
@@ -12,52 +12,52 @@
 block discarded – undo
12 12
  */
13 13
 class Exercise {
14 14
 
15
-	/**
16
-	 * Holds class instance
17
-	 *
18
-	 * @since 1.0.0
19
-	 *
20
-	 * @var      object \lsx_health_plan\classes\admin\Exercise()
21
-	 */
22
-	protected static $instance = null;
15
+     /**
16
+      * Holds class instance
17
+      *
18
+      * @since 1.0.0
19
+      *
20
+      * @var      object \lsx_health_plan\classes\admin\Exercise()
21
+      */
22
+     protected static $instance = null;
23 23
 
24
-	/**
25
-	 * Contructor
26
-	 */
27
-	public function __construct() {
28
-		add_action( 'lsx_hp_settings_page_exercise_top', array( $this, 'settings' ), 1, 1 );
29
-	}
24
+     /**
25
+      * Contructor
26
+      */
27
+     public function __construct() {
28
+          add_action( 'lsx_hp_settings_page_exercise_top', array( $this, 'settings' ), 1, 1 );
29
+     }
30 30
 
31
-	/**
32
-	 * Return an instance of this class.
33
-	 *
34
-	 * @since 1.0.0
35
-	 *
36
-	 * @return    object \lsx_health_plan\classes\admin\Exercise()    A single instance of this class.
37
-	 */
38
-	public static function get_instance() {
39
-		// If the single instance hasn't been set, set it now.
40
-		if ( null === self::$instance ) {
41
-			self::$instance = new self();
42
-		}
43
-		return self::$instance;
44
-	}
31
+     /**
32
+      * Return an instance of this class.
33
+      *
34
+      * @since 1.0.0
35
+      *
36
+      * @return    object \lsx_health_plan\classes\admin\Exercise()    A single instance of this class.
37
+      */
38
+     public static function get_instance() {
39
+          // If the single instance hasn't been set, set it now.
40
+          if ( null === self::$instance ) {
41
+               self::$instance = new self();
42
+          }
43
+          return self::$instance;
44
+     }
45 45
 
46
-	/**
47
-	 * Registers the general settings.
48
-	 *
49
-	 * @param object $cmb new_cmb2_box().
50
-	 * @return void
51
-	 */
52
-	public function settings( $cmb ) {
53
-		$cmb->add_field(
54
-			array(
55
-				'id'          => 'exercise_archive_description',
56
-				'type'        => 'wysiwyg',
57
-				'name'        => __( 'Archive Description', 'lsx-health-plan' ),
58
-				'description' => __( 'This will show up on the post type archive.', 'lsx-health-plan' ),
59
-			)
60
-		);
61
-	}
46
+     /**
47
+      * Registers the general settings.
48
+      *
49
+      * @param object $cmb new_cmb2_box().
50
+      * @return void
51
+      */
52
+     public function settings( $cmb ) {
53
+          $cmb->add_field(
54
+               array(
55
+                    'id'          => 'exercise_archive_description',
56
+                    'type'        => 'wysiwyg',
57
+                    'name'        => __( 'Archive Description', 'lsx-health-plan' ),
58
+                    'description' => __( 'This will show up on the post type archive.', 'lsx-health-plan' ),
59
+               )
60
+          );
61
+     }
62 62
 }
63 63
 Exercise::get_instance();
Please login to merge, or discard this patch.
classes/admin/settings/class-recipe.php 1 patch
Indentation   +44 added lines, -44 removed lines patch added patch discarded remove patch
@@ -12,52 +12,52 @@
 block discarded – undo
12 12
  */
13 13
 class Recipe {
14 14
 
15
-	/**
16
-	 * Holds class instance
17
-	 *
18
-	 * @since 1.0.0
19
-	 *
20
-	 * @var      object \lsx_health_plan\classes\admin\Recipe()
21
-	 */
22
-	protected static $instance = null;
15
+     /**
16
+      * Holds class instance
17
+      *
18
+      * @since 1.0.0
19
+      *
20
+      * @var      object \lsx_health_plan\classes\admin\Recipe()
21
+      */
22
+     protected static $instance = null;
23 23
 
24
-	/**
25
-	 * Contructor
26
-	 */
27
-	public function __construct() {
28
-		add_action( 'lsx_hp_settings_page_recipe_top', array( $this, 'settings' ), 1, 1 );
29
-	}
24
+     /**
25
+      * Contructor
26
+      */
27
+     public function __construct() {
28
+          add_action( 'lsx_hp_settings_page_recipe_top', array( $this, 'settings' ), 1, 1 );
29
+     }
30 30
 
31
-	/**
32
-	 * Return an instance of this class.
33
-	 *
34
-	 * @since 1.0.0
35
-	 *
36
-	 * @return    object \lsx_health_plan\classes\admin\Recipe()    A single instance of this class.
37
-	 */
38
-	public static function get_instance() {
39
-		// If the single instance hasn't been set, set it now.
40
-		if ( null === self::$instance ) {
41
-			self::$instance = new self();
42
-		}
43
-		return self::$instance;
44
-	}
31
+     /**
32
+      * Return an instance of this class.
33
+      *
34
+      * @since 1.0.0
35
+      *
36
+      * @return    object \lsx_health_plan\classes\admin\Recipe()    A single instance of this class.
37
+      */
38
+     public static function get_instance() {
39
+          // If the single instance hasn't been set, set it now.
40
+          if ( null === self::$instance ) {
41
+               self::$instance = new self();
42
+          }
43
+          return self::$instance;
44
+     }
45 45
 
46
-	/**
47
-	 * Registers the general settings.
48
-	 *
49
-	 * @param object $cmb new_cmb2_box().
50
-	 * @return void
51
-	 */
52
-	public function settings( $cmb ) {
53
-		$cmb->add_field(
54
-			array(
55
-				'id'          => 'recipe_archive_description',
56
-				'type'        => 'wysiwyg',
57
-				'name'        => __( 'Archive Description', 'lsx-health-plan' ),
58
-				'description' => __( 'This will show up on the post type archive.', 'lsx-health-plan' ),
59
-			)
60
-		);
61
-	}
46
+     /**
47
+      * Registers the general settings.
48
+      *
49
+      * @param object $cmb new_cmb2_box().
50
+      * @return void
51
+      */
52
+     public function settings( $cmb ) {
53
+          $cmb->add_field(
54
+               array(
55
+                    'id'          => 'recipe_archive_description',
56
+                    'type'        => 'wysiwyg',
57
+                    'name'        => __( 'Archive Description', 'lsx-health-plan' ),
58
+                    'description' => __( 'This will show up on the post type archive.', 'lsx-health-plan' ),
59
+               )
60
+          );
61
+     }
62 62
 }
63 63
 Recipe::get_instance();
Please login to merge, or discard this patch.
classes/post-types/class-exercise.php 1 patch
Indentation   +372 added lines, -372 removed lines patch added patch discarded remove patch
@@ -8,376 +8,376 @@
 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
-	 * Contructor
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
-		}
52
-
53
-	}
54
-
55
-
56
-	/**
57
-	 * Return an instance of this class.
58
-	 *
59
-	 * @since 1.0.0
60
-	 *
61
-	 * @return    object \lsx_health_plan\classes\Exercise()    A single instance of this class.
62
-	 */
63
-	public static function get_instance() {
64
-		// If the single instance hasn't been set, set it now.
65
-		if ( null === self::$instance ) {
66
-			self::$instance = new self();
67
-		}
68
-		return self::$instance;
69
-	}
70
-	/**
71
-	 * Register the post type.
72
-	 */
73
-	public function register_post_type() {
74
-		$labels = array(
75
-			'name'               => esc_html__( 'Exercises', 'lsx-health-plan' ),
76
-			'singular_name'      => esc_html__( 'Exercise', 'lsx-health-plan' ),
77
-			'add_new'            => esc_html_x( 'Add New', 'post type general name', 'lsx-health-plan' ),
78
-			'add_new_item'       => esc_html__( 'Add New', 'lsx-health-plan' ),
79
-			'edit_item'          => esc_html__( 'Edit', 'lsx-health-plan' ),
80
-			'new_item'           => esc_html__( 'New', 'lsx-health-plan' ),
81
-			'all_items'          => esc_html__( 'All Exercises', 'lsx-health-plan' ),
82
-			'view_item'          => esc_html__( 'View', 'lsx-health-plan' ),
83
-			'search_items'       => esc_html__( 'Search', 'lsx-health-plan' ),
84
-			'not_found'          => esc_html__( 'None found', 'lsx-health-plan' ),
85
-			'not_found_in_trash' => esc_html__( 'None found in Trash', 'lsx-health-plan' ),
86
-			'parent_item_colon'  => '',
87
-			'menu_name'          => esc_html__( 'Exercises', 'lsx-health-plan' ),
88
-		);
89
-		$args   = array(
90
-			'labels'             => $labels,
91
-			'public'             => true,
92
-			'publicly_queryable' => true,
93
-			'show_ui'            => true,
94
-			'show_in_menu'       => false,
95
-			'show_in_rest'       => true,
96
-			'menu_icon'          => 'dashicons-universal-access',
97
-			'query_var'          => true,
98
-			'rewrite'            => array(
99
-				'slug' => \lsx_health_plan\functions\get_option( 'endpoint_exercise_single', 'exercise' ),
100
-			),
101
-			'capability_type'    => 'page',
102
-			'has_archive'        => \lsx_health_plan\functions\get_option( 'endpoint_exercise_archive', 'exercises' ),
103
-			'hierarchical'       => false,
104
-			'menu_position'      => null,
105
-			'supports'           => array(
106
-				'title',
107
-				'thumbnail',
108
-				'editor',
109
-				'excerpt',
110
-				'custom-fields',
111
-			),
112
-		);
113
-		register_post_type( 'exercise', $args );
114
-	}
115
-
116
-	/**
117
-	 * Register the Exercise taxonomy.
118
-	 *
119
-	 * @return void
120
-	 */
121
-	public function exercise_type_taxonomy_setup() {
122
-		$labels = array(
123
-			'name'              => esc_html_x( 'Exercise Type', 'taxonomy general name', 'lsx-health-plan' ),
124
-			'singular_name'     => esc_html_x( 'Exercise Type', 'taxonomy singular name', 'lsx-health-plan' ),
125
-			'search_items'      => esc_html__( 'Search', 'lsx-health-plan' ),
126
-			'all_items'         => esc_html__( 'All', 'lsx-health-plan' ),
127
-			'parent_item'       => esc_html__( 'Parent', 'lsx-health-plan' ),
128
-			'parent_item_colon' => esc_html__( 'Parent:', 'lsx-health-plan' ),
129
-			'edit_item'         => esc_html__( 'Edit', 'lsx-health-plan' ),
130
-			'update_item'       => esc_html__( 'Update', 'lsx-health-plan' ),
131
-			'add_new_item'      => esc_html__( 'Add New', 'lsx-health-plan' ),
132
-			'new_item_name'     => esc_html__( 'New Name', 'lsx-health-plan' ),
133
-			'menu_name'         => esc_html__( 'Exercise Types', 'lsx-health-plan' ),
134
-		);
135
-
136
-		$args = array(
137
-			'hierarchical'      => true,
138
-			'labels'            => $labels,
139
-			'show_ui'           => true,
140
-			'show_admin_column' => true,
141
-			'query_var'         => true,
142
-			'rewrite'           => array(
143
-				'slug' => \lsx_health_plan\functions\get_option( 'endpoint_exercise_type', 'exercise-type' ),
144
-			),
145
-			'show_in_rest'      => true,
146
-		);
147
-
148
-		register_taxonomy( 'exercise-type', array( 'exercise' ), $args );
149
-	}
150
-
151
-	/**
152
-	 * Register the Exercise taxonomy.
153
-	 *
154
-	 * @return void
155
-	 */
156
-	public function equipment_taxonomy_setup() {
157
-		$labels = array(
158
-			'name'              => esc_html_x( 'Equipment', 'taxonomy general name', 'lsx-health-plan' ),
159
-			'singular_name'     => esc_html_x( 'Equipment', 'taxonomy singular name', 'lsx-health-plan' ),
160
-			'search_items'      => esc_html__( 'Search', 'lsx-health-plan' ),
161
-			'all_items'         => esc_html__( 'All', 'lsx-health-plan' ),
162
-			'parent_item'       => esc_html__( 'Parent', 'lsx-health-plan' ),
163
-			'parent_item_colon' => esc_html__( 'Parent:', 'lsx-health-plan' ),
164
-			'edit_item'         => esc_html__( 'Edit', 'lsx-health-plan' ),
165
-			'update_item'       => esc_html__( 'Update', 'lsx-health-plan' ),
166
-			'add_new_item'      => esc_html__( 'Add New', 'lsx-health-plan' ),
167
-			'new_item_name'     => esc_html__( 'New Name', 'lsx-health-plan' ),
168
-			'menu_name'         => esc_html__( 'Equipment', 'lsx-health-plan' ),
169
-		);
170
-
171
-		$args = array(
172
-			'hierarchical'      => true,
173
-			'labels'            => $labels,
174
-			'show_ui'           => true,
175
-			'show_admin_column' => true,
176
-			'query_var'         => true,
177
-			'rewrite'           => array(
178
-				'slug' => \lsx_health_plan\functions\get_option( 'endpoint_exercise_equipment', 'equipment' ),
179
-			),
180
-			'show_in_rest'      => true,
181
-		);
182
-
183
-		register_taxonomy( 'equipment', array( 'exercise' ), $args );
184
-	}
185
-
186
-	/**
187
-	 * Register the Muscle Group taxonomy.
188
-	 *
189
-	 * @return void
190
-	 */
191
-	public function muscle_group_taxonomy_setup() {
192
-		$labels = array(
193
-			'name'              => esc_html_x( 'Muscle Groups', 'taxonomy general name', 'lsx-health-plan' ),
194
-			'singular_name'     => esc_html_x( 'Muscle Group', 'taxonomy singular name', 'lsx-health-plan' ),
195
-			'search_items'      => esc_html__( 'Search', 'lsx-health-plan' ),
196
-			'all_items'         => esc_html__( 'All', 'lsx-health-plan' ),
197
-			'parent_item'       => esc_html__( 'Parent', 'lsx-health-plan' ),
198
-			'parent_item_colon' => esc_html__( 'Parent:', 'lsx-health-plan' ),
199
-			'edit_item'         => esc_html__( 'Edit', 'lsx-health-plan' ),
200
-			'update_item'       => esc_html__( 'Update', 'lsx-health-plan' ),
201
-			'add_new_item'      => esc_html__( 'Add New', 'lsx-health-plan' ),
202
-			'new_item_name'     => esc_html__( 'New Name', 'lsx-health-plan' ),
203
-			'menu_name'         => esc_html__( 'Muscle Groups', 'lsx-health-plan' ),
204
-		);
205
-
206
-		$args = array(
207
-			'hierarchical'      => true,
208
-			'labels'            => $labels,
209
-			'show_ui'           => true,
210
-			'show_admin_column' => true,
211
-			'query_var'         => true,
212
-			'rewrite'           => array(
213
-				'slug' => \lsx_health_plan\functions\get_option( 'endpoint_exercise_muscle_group', 'muscle-group' ),
214
-			),
215
-			'show_in_rest'      => true,
216
-		);
217
-
218
-		register_taxonomy( 'muscle-group', array( 'exercise' ), $args );
219
-	}
220
-
221
-	/**
222
-	 * Registers the Recipes under the Meals Post type menu.
223
-	 *
224
-	 * @return void
225
-	 */
226
-	public function register_menus() {
227
-		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' );
228
-		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' );
229
-		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' );
230
-		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' );
231
-	}
232
-
233
-	/**
234
-	 * Adds the post type to the different arrays.
235
-	 *
236
-	 * @param array $post_types
237
-	 * @return array
238
-	 */
239
-	public function enable_post_type( $post_types = array() ) {
240
-		$post_types[] = $this->slug;
241
-		return $post_types;
242
-	}
243
-
244
-	/**
245
-	 * Enables the Bi Directional relationships
246
-	 *
247
-	 * @param array $connections
248
-	 * @return void
249
-	 */
250
-	public function enable_connections( $connections = array() ) {
251
-		$connections['exercise']['connected_workouts'] = 'connected_exercises';
252
-		$connections['workout']['connected_exercises'] = 'connected_workouts';
253
-		return $connections;
254
-	}
255
-
256
-	/**
257
-	 * Define the metabox and field configurations.
258
-	 */
259
-	public function gallery_metabox() {
260
-		$cmb = new_cmb2_box(
261
-			array(
262
-				'id'           => $this->slug . '_gallery_details_metabox',
263
-				'title'        => __( 'Exercise Gallery', 'lsx-health-plan' ),
264
-				'object_types' => array( $this->slug ),
265
-				'context'      => 'normal',
266
-				'priority'     => 'low',
267
-				'show_names'   => true,
268
-			)
269
-		);
270
-
271
-		$cmb->add_field(
272
-			array(
273
-				'name'    => __( 'Layout', 'lsx-health-plan' ),
274
-				'id'      => $this->slug . '_gallery_layout',
275
-				'type'    => 'radio',
276
-				'options' => array(
277
-					'slider' => __( 'Slider', 'lsx-health-plan' ) . ' {#}', // {#} gets replaced by row number
278
-					'grid'   => __( 'Grid', 'lsx-health-plan' ),
279
-				),
280
-				'default' => 'grid',
281
-			)
282
-		);
283
-
284
-		$cmb->add_field(
285
-			array(
286
-				'name'    => __( 'Grid Columns', 'lsx-health-plan' ),
287
-				'id'      => $this->slug . '_gallery_columns',
288
-				'type'    => 'text',
289
-				'default' => '1',
290
-			)
291
-		);
292
-
293
-		// Repeatable group.
294
-		$gallery_group = $cmb->add_field(
295
-			array(
296
-				'id'      => $this->slug . '_gallery',
297
-				'type'    => 'group',
298
-				'options' => array(
299
-					'group_title'   => __( 'Gallery', 'lsx-health-plan' ) . ' {#}', // {#} gets replaced by row number
300
-					'add_button'    => __( 'Add Item', 'lsx-health-plan' ),
301
-					'remove_button' => __( 'Remove Item', 'lsx-health-plan' ),
302
-					'sortable'      => true,
303
-				),
304
-				'classes' => 'lsx-admin-row',
305
-			)
306
-		);
307
-
308
-		// Title.
309
-		$cmb->add_group_field(
310
-			$gallery_group,
311
-			array(
312
-				'name'       => __( 'Image', 'lsx-health-plan' ),
313
-				'id'         => $this->slug . '_gallery_image',
314
-				'type'       => 'file',
315
-				'text'       => array(
316
-					'add_upload_file_text' => __( 'Add File', 'lsx-health-plan' ),
317
-				),
318
-				'desc'       => __( 'Upload an image a minimum of 800px x 600px in size.', 'lsx-health-plan' ),
319
-				'query_args' => array(
320
-					'type' => array(
321
-						'image/gif',
322
-						'image/jpeg',
323
-						'image/png',
324
-					),
325
-				),
326
-				'preview_size' => 'lsx-thumbnail-wide',
327
-			)
328
-		);
329
-
330
-		// Title.
331
-		$cmb->add_group_field(
332
-			$gallery_group,
333
-			array(
334
-				'name'         => __( 'oEmbed', 'lsx-health-plan' ),
335
-				'id'           => $this->slug . '_gallery_embed',
336
-				'type'         => 'text',
337
-				'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' ),
338
-			)
339
-		);
340
-
341
-		$cmb->add_group_field(
342
-			$gallery_group,
343
-			array(
344
-				'name'         => __( 'External Media', 'lsx-health-plan' ),
345
-				'id'           => $this->slug . '_gallery_external',
346
-				'type'         => 'textarea_code',
347
-				'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' ),
348
-			)
349
-		);
350
-	}
351
-
352
-	/**
353
-	 * Registers the general settings for the exercise.
354
-	 *
355
-	 * @return void
356
-	 */
357
-	public function exercise_details() {
358
-		$cmb = new_cmb2_box(
359
-			array(
360
-				'id'           => $this->slug . '_general_details_metabox',
361
-				'title'        => __( 'Details', 'lsx-health-plan' ),
362
-				'object_types' => array( $this->slug ),
363
-				'context'      => 'normal',
364
-				'priority'     => 'high',
365
-				'show_names'   => true,
366
-			)
367
-		);
368
-
369
-		$cmb->add_field(
370
-			array(
371
-				'name'    => __( 'Side', 'lsx-health-plan' ),
372
-				'id'      => $this->slug . '_side',
373
-				'type'    => 'select',
374
-				'options' => array(
375
-					''      => __( 'Select', 'lsx-health-plan' ),
376
-					'left'  => __( 'Left', 'lsx-health-plan' ),
377
-					'right' => __( 'Right', 'lsx-health-plan' ),
378
-				),
379
-				'desc'    => __( 'Select which side this exercise uses. ', 'lsx-health-plan' ),
380
-			)
381
-		);
382
-	}
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
+      * Contructor
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
+          }
52
+
53
+     }
54
+
55
+
56
+     /**
57
+      * Return an instance of this class.
58
+      *
59
+      * @since 1.0.0
60
+      *
61
+      * @return    object \lsx_health_plan\classes\Exercise()    A single instance of this class.
62
+      */
63
+     public static function get_instance() {
64
+          // If the single instance hasn't been set, set it now.
65
+          if ( null === self::$instance ) {
66
+               self::$instance = new self();
67
+          }
68
+          return self::$instance;
69
+     }
70
+     /**
71
+      * Register the post type.
72
+      */
73
+     public function register_post_type() {
74
+          $labels = array(
75
+               'name'               => esc_html__( 'Exercises', 'lsx-health-plan' ),
76
+               'singular_name'      => esc_html__( 'Exercise', 'lsx-health-plan' ),
77
+               'add_new'            => esc_html_x( 'Add New', 'post type general name', 'lsx-health-plan' ),
78
+               'add_new_item'       => esc_html__( 'Add New', 'lsx-health-plan' ),
79
+               'edit_item'          => esc_html__( 'Edit', 'lsx-health-plan' ),
80
+               'new_item'           => esc_html__( 'New', 'lsx-health-plan' ),
81
+               'all_items'          => esc_html__( 'All Exercises', 'lsx-health-plan' ),
82
+               'view_item'          => esc_html__( 'View', 'lsx-health-plan' ),
83
+               'search_items'       => esc_html__( 'Search', 'lsx-health-plan' ),
84
+               'not_found'          => esc_html__( 'None found', 'lsx-health-plan' ),
85
+               'not_found_in_trash' => esc_html__( 'None found in Trash', 'lsx-health-plan' ),
86
+               'parent_item_colon'  => '',
87
+               'menu_name'          => esc_html__( 'Exercises', 'lsx-health-plan' ),
88
+          );
89
+          $args   = array(
90
+               'labels'             => $labels,
91
+               'public'             => true,
92
+               'publicly_queryable' => true,
93
+               'show_ui'            => true,
94
+               'show_in_menu'       => false,
95
+               'show_in_rest'       => true,
96
+               'menu_icon'          => 'dashicons-universal-access',
97
+               'query_var'          => true,
98
+               'rewrite'            => array(
99
+                    'slug' => \lsx_health_plan\functions\get_option( 'endpoint_exercise_single', 'exercise' ),
100
+               ),
101
+               'capability_type'    => 'page',
102
+               'has_archive'        => \lsx_health_plan\functions\get_option( 'endpoint_exercise_archive', 'exercises' ),
103
+               'hierarchical'       => false,
104
+               'menu_position'      => null,
105
+               'supports'           => array(
106
+                    'title',
107
+                    'thumbnail',
108
+                    'editor',
109
+                    'excerpt',
110
+                    'custom-fields',
111
+               ),
112
+          );
113
+          register_post_type( 'exercise', $args );
114
+     }
115
+
116
+     /**
117
+      * Register the Exercise taxonomy.
118
+      *
119
+      * @return void
120
+      */
121
+     public function exercise_type_taxonomy_setup() {
122
+          $labels = array(
123
+               'name'              => esc_html_x( 'Exercise Type', 'taxonomy general name', 'lsx-health-plan' ),
124
+               'singular_name'     => esc_html_x( 'Exercise Type', 'taxonomy singular name', 'lsx-health-plan' ),
125
+               'search_items'      => esc_html__( 'Search', 'lsx-health-plan' ),
126
+               'all_items'         => esc_html__( 'All', 'lsx-health-plan' ),
127
+               'parent_item'       => esc_html__( 'Parent', 'lsx-health-plan' ),
128
+               'parent_item_colon' => esc_html__( 'Parent:', 'lsx-health-plan' ),
129
+               'edit_item'         => esc_html__( 'Edit', 'lsx-health-plan' ),
130
+               'update_item'       => esc_html__( 'Update', 'lsx-health-plan' ),
131
+               'add_new_item'      => esc_html__( 'Add New', 'lsx-health-plan' ),
132
+               'new_item_name'     => esc_html__( 'New Name', 'lsx-health-plan' ),
133
+               'menu_name'         => esc_html__( 'Exercise Types', 'lsx-health-plan' ),
134
+          );
135
+
136
+          $args = array(
137
+               'hierarchical'      => true,
138
+               'labels'            => $labels,
139
+               'show_ui'           => true,
140
+               'show_admin_column' => true,
141
+               'query_var'         => true,
142
+               'rewrite'           => array(
143
+                    'slug' => \lsx_health_plan\functions\get_option( 'endpoint_exercise_type', 'exercise-type' ),
144
+               ),
145
+               'show_in_rest'      => true,
146
+          );
147
+
148
+          register_taxonomy( 'exercise-type', array( 'exercise' ), $args );
149
+     }
150
+
151
+     /**
152
+      * Register the Exercise taxonomy.
153
+      *
154
+      * @return void
155
+      */
156
+     public function equipment_taxonomy_setup() {
157
+          $labels = array(
158
+               'name'              => esc_html_x( 'Equipment', 'taxonomy general name', 'lsx-health-plan' ),
159
+               'singular_name'     => esc_html_x( 'Equipment', 'taxonomy singular name', 'lsx-health-plan' ),
160
+               'search_items'      => esc_html__( 'Search', 'lsx-health-plan' ),
161
+               'all_items'         => esc_html__( 'All', 'lsx-health-plan' ),
162
+               'parent_item'       => esc_html__( 'Parent', 'lsx-health-plan' ),
163
+               'parent_item_colon' => esc_html__( 'Parent:', 'lsx-health-plan' ),
164
+               'edit_item'         => esc_html__( 'Edit', 'lsx-health-plan' ),
165
+               'update_item'       => esc_html__( 'Update', 'lsx-health-plan' ),
166
+               'add_new_item'      => esc_html__( 'Add New', 'lsx-health-plan' ),
167
+               'new_item_name'     => esc_html__( 'New Name', 'lsx-health-plan' ),
168
+               'menu_name'         => esc_html__( 'Equipment', 'lsx-health-plan' ),
169
+          );
170
+
171
+          $args = array(
172
+               'hierarchical'      => true,
173
+               'labels'            => $labels,
174
+               'show_ui'           => true,
175
+               'show_admin_column' => true,
176
+               'query_var'         => true,
177
+               'rewrite'           => array(
178
+                    'slug' => \lsx_health_plan\functions\get_option( 'endpoint_exercise_equipment', 'equipment' ),
179
+               ),
180
+               'show_in_rest'      => true,
181
+          );
182
+
183
+          register_taxonomy( 'equipment', array( 'exercise' ), $args );
184
+     }
185
+
186
+     /**
187
+      * Register the Muscle Group taxonomy.
188
+      *
189
+      * @return void
190
+      */
191
+     public function muscle_group_taxonomy_setup() {
192
+          $labels = array(
193
+               'name'              => esc_html_x( 'Muscle Groups', 'taxonomy general name', 'lsx-health-plan' ),
194
+               'singular_name'     => esc_html_x( 'Muscle Group', 'taxonomy singular name', 'lsx-health-plan' ),
195
+               'search_items'      => esc_html__( 'Search', 'lsx-health-plan' ),
196
+               'all_items'         => esc_html__( 'All', 'lsx-health-plan' ),
197
+               'parent_item'       => esc_html__( 'Parent', 'lsx-health-plan' ),
198
+               'parent_item_colon' => esc_html__( 'Parent:', 'lsx-health-plan' ),
199
+               'edit_item'         => esc_html__( 'Edit', 'lsx-health-plan' ),
200
+               'update_item'       => esc_html__( 'Update', 'lsx-health-plan' ),
201
+               'add_new_item'      => esc_html__( 'Add New', 'lsx-health-plan' ),
202
+               'new_item_name'     => esc_html__( 'New Name', 'lsx-health-plan' ),
203
+               'menu_name'         => esc_html__( 'Muscle Groups', 'lsx-health-plan' ),
204
+          );
205
+
206
+          $args = array(
207
+               'hierarchical'      => true,
208
+               'labels'            => $labels,
209
+               'show_ui'           => true,
210
+               'show_admin_column' => true,
211
+               'query_var'         => true,
212
+               'rewrite'           => array(
213
+                    'slug' => \lsx_health_plan\functions\get_option( 'endpoint_exercise_muscle_group', 'muscle-group' ),
214
+               ),
215
+               'show_in_rest'      => true,
216
+          );
217
+
218
+          register_taxonomy( 'muscle-group', array( 'exercise' ), $args );
219
+     }
220
+
221
+     /**
222
+      * Registers the Recipes under the Meals Post type menu.
223
+      *
224
+      * @return void
225
+      */
226
+     public function register_menus() {
227
+          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' );
228
+          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' );
229
+          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' );
230
+          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' );
231
+     }
232
+
233
+     /**
234
+      * Adds the post type to the different arrays.
235
+      *
236
+      * @param array $post_types
237
+      * @return array
238
+      */
239
+     public function enable_post_type( $post_types = array() ) {
240
+          $post_types[] = $this->slug;
241
+          return $post_types;
242
+     }
243
+
244
+     /**
245
+      * Enables the Bi Directional relationships
246
+      *
247
+      * @param array $connections
248
+      * @return void
249
+      */
250
+     public function enable_connections( $connections = array() ) {
251
+          $connections['exercise']['connected_workouts'] = 'connected_exercises';
252
+          $connections['workout']['connected_exercises'] = 'connected_workouts';
253
+          return $connections;
254
+     }
255
+
256
+     /**
257
+      * Define the metabox and field configurations.
258
+      */
259
+     public function gallery_metabox() {
260
+          $cmb = new_cmb2_box(
261
+               array(
262
+                    'id'           => $this->slug . '_gallery_details_metabox',
263
+                    'title'        => __( 'Exercise Gallery', 'lsx-health-plan' ),
264
+                    'object_types' => array( $this->slug ),
265
+                    'context'      => 'normal',
266
+                    'priority'     => 'low',
267
+                    'show_names'   => true,
268
+               )
269
+          );
270
+
271
+          $cmb->add_field(
272
+               array(
273
+                    'name'    => __( 'Layout', 'lsx-health-plan' ),
274
+                    'id'      => $this->slug . '_gallery_layout',
275
+                    'type'    => 'radio',
276
+                    'options' => array(
277
+                         'slider' => __( 'Slider', 'lsx-health-plan' ) . ' {#}', // {#} gets replaced by row number
278
+                         'grid'   => __( 'Grid', 'lsx-health-plan' ),
279
+                    ),
280
+                    'default' => 'grid',
281
+               )
282
+          );
283
+
284
+          $cmb->add_field(
285
+               array(
286
+                    'name'    => __( 'Grid Columns', 'lsx-health-plan' ),
287
+                    'id'      => $this->slug . '_gallery_columns',
288
+                    'type'    => 'text',
289
+                    'default' => '1',
290
+               )
291
+          );
292
+
293
+          // Repeatable group.
294
+          $gallery_group = $cmb->add_field(
295
+               array(
296
+                    'id'      => $this->slug . '_gallery',
297
+                    'type'    => 'group',
298
+                    'options' => array(
299
+                         'group_title'   => __( 'Gallery', 'lsx-health-plan' ) . ' {#}', // {#} gets replaced by row number
300
+                         'add_button'    => __( 'Add Item', 'lsx-health-plan' ),
301
+                         'remove_button' => __( 'Remove Item', 'lsx-health-plan' ),
302
+                         'sortable'      => true,
303
+                    ),
304
+                    'classes' => 'lsx-admin-row',
305
+               )
306
+          );
307
+
308
+          // Title.
309
+          $cmb->add_group_field(
310
+               $gallery_group,
311
+               array(
312
+                    'name'       => __( 'Image', 'lsx-health-plan' ),
313
+                    'id'         => $this->slug . '_gallery_image',
314
+                    'type'       => 'file',
315
+                    'text'       => array(
316
+                         'add_upload_file_text' => __( 'Add File', 'lsx-health-plan' ),
317
+                    ),
318
+                    'desc'       => __( 'Upload an image a minimum of 800px x 600px in size.', 'lsx-health-plan' ),
319
+                    'query_args' => array(
320
+                         'type' => array(
321
+                              'image/gif',
322
+                              'image/jpeg',
323
+                              'image/png',
324
+                         ),
325
+                    ),
326
+                    'preview_size' => 'lsx-thumbnail-wide',
327
+               )
328
+          );
329
+
330
+          // Title.
331
+          $cmb->add_group_field(
332
+               $gallery_group,
333
+               array(
334
+                    'name'         => __( 'oEmbed', 'lsx-health-plan' ),
335
+                    'id'           => $this->slug . '_gallery_embed',
336
+                    'type'         => 'text',
337
+                    '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' ),
338
+               )
339
+          );
340
+
341
+          $cmb->add_group_field(
342
+               $gallery_group,
343
+               array(
344
+                    'name'         => __( 'External Media', 'lsx-health-plan' ),
345
+                    'id'           => $this->slug . '_gallery_external',
346
+                    'type'         => 'textarea_code',
347
+                    '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' ),
348
+               )
349
+          );
350
+     }
351
+
352
+     /**
353
+      * Registers the general settings for the exercise.
354
+      *
355
+      * @return void
356
+      */
357
+     public function exercise_details() {
358
+          $cmb = new_cmb2_box(
359
+               array(
360
+                    'id'           => $this->slug . '_general_details_metabox',
361
+                    'title'        => __( 'Details', 'lsx-health-plan' ),
362
+                    'object_types' => array( $this->slug ),
363
+                    'context'      => 'normal',
364
+                    'priority'     => 'high',
365
+                    'show_names'   => true,
366
+               )
367
+          );
368
+
369
+          $cmb->add_field(
370
+               array(
371
+                    'name'    => __( 'Side', 'lsx-health-plan' ),
372
+                    'id'      => $this->slug . '_side',
373
+                    'type'    => 'select',
374
+                    'options' => array(
375
+                         ''      => __( 'Select', 'lsx-health-plan' ),
376
+                         'left'  => __( 'Left', 'lsx-health-plan' ),
377
+                         'right' => __( 'Right', 'lsx-health-plan' ),
378
+                    ),
379
+                    'desc'    => __( 'Select which side this exercise uses. ', 'lsx-health-plan' ),
380
+               )
381
+          );
382
+     }
383 383
 }
Please login to merge, or discard this patch.
classes/post-types/class-recipe.php 1 patch
Indentation   +378 added lines, -378 removed lines patch added patch discarded remove patch
@@ -8,402 +8,402 @@
 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
-	 * Contructor
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
+      * Contructor
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( 'lsx_content_wrap_before', 'lsx_health_plan_recipe_archive_description', 11 );
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
-		add_filter( 'lsx_health_plan_connections', array( $this, 'enable_connections' ), 10, 1 );
51
-		add_filter( 'get_the_archive_title', array( $this, 'get_the_archive_title' ), 100 );
52
-		add_filter( 'lsx_display_global_header_description', array( $this, 'disable_global_header_description' ), 100 );
53
-		add_filter( 'woocommerce_get_breadcrumb', array( $this, 'recipes_breadcrumb_filter' ), 30, 1 );
46
+          // Frontend Actions and Filters.
47
+          add_action( 'lsx_content_wrap_before', 'lsx_health_plan_recipe_archive_description', 11 );
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
+          add_filter( 'lsx_health_plan_connections', array( $this, 'enable_connections' ), 10, 1 );
51
+          add_filter( 'get_the_archive_title', array( $this, 'get_the_archive_title' ), 100 );
52
+          add_filter( 'lsx_display_global_header_description', array( $this, 'disable_global_header_description' ), 100 );
53
+          add_filter( 'woocommerce_get_breadcrumb', array( $this, 'recipes_breadcrumb_filter' ), 30, 1 );
54 54
 
55
-		// Backend Actions and Filters.
56
-		add_action( 'cmb2_admin_init', array( $this, 'featured_metabox' ) );
57
-		add_action( 'cmb2_admin_init', array( $this, 'details_metaboxes' ) );
58
-	}
55
+          // Backend Actions and Filters.
56
+          add_action( 'cmb2_admin_init', array( $this, 'featured_metabox' ) );
57
+          add_action( 'cmb2_admin_init', array( $this, 'details_metaboxes' ) );
58
+     }
59 59
 
60
-	/**
61
-	 * Return an instance of this class.
62
-	 *
63
-	 * @since 1.0.0
64
-	 *
65
-	 * @return    object \lsx_health_plan\classes\Recipe()    A single instance of this class.
66
-	 */
67
-	public static function get_instance() {
60
+     /**
61
+      * Return an instance of this class.
62
+      *
63
+      * @since 1.0.0
64
+      *
65
+      * @return    object \lsx_health_plan\classes\Recipe()    A single instance of this class.
66
+      */
67
+     public static function get_instance() {
68 68
 
69
-		// If the single instance hasn't been set, set it now.
70
-		if ( null === self::$instance ) {
71
-			self::$instance = new self();
72
-		}
69
+          // If the single instance hasn't been set, set it now.
70
+          if ( null === self::$instance ) {
71
+               self::$instance = new self();
72
+          }
73 73
 
74
-		return self::$instance;
74
+          return self::$instance;
75 75
 
76
-	}
76
+     }
77 77
 
78
-	/**
79
-	 * Register the post type.
80
-	 */
81
-	public function register_post_type() {
82
-		$this->labels = array(
83
-			'name'               => esc_html__( 'Recipes', 'lsx-health-plan' ),
84
-			'singular_name'      => esc_html__( 'Recipe', 'lsx-health-plan' ),
85
-			'add_new'            => esc_html_x( 'Add New', 'post type general name', 'lsx-health-plan' ),
86
-			'add_new_item'       => esc_html__( 'Add New', 'lsx-health-plan' ),
87
-			'edit_item'          => esc_html__( 'Edit', 'lsx-health-plan' ),
88
-			'new_item'           => esc_html__( 'New', 'lsx-health-plan' ),
89
-			'all_items'          => esc_html__( 'All Recipes', 'lsx-health-plan' ),
90
-			'view_item'          => esc_html__( 'View', 'lsx-health-plan' ),
91
-			'search_items'       => esc_html__( 'Search', 'lsx-health-plan' ),
92
-			'not_found'          => esc_html__( 'None found', 'lsx-health-plan' ),
93
-			'not_found_in_trash' => esc_html__( 'None found in Trash', 'lsx-health-plan' ),
94
-			'parent_item_colon'  => '',
95
-			'menu_name'          => esc_html__( 'Recipes', 'lsx-health-plan' ),
96
-		);
97
-		$args         = array(
98
-			'labels'             => $this->labels,
99
-			'public'             => true,
100
-			'publicly_queryable' => true,
101
-			'show_ui'            => true,
102
-			'show_in_menu'       => false,
103
-			'show_in_rest'       => true,
104
-			'menu_icon'          => 'dashicons-editor-ul',
105
-			'query_var'          => true,
106
-			'rewrite'            => array(
107
-				'slug' => 'recipe',
108
-			),
109
-			'capability_type'    => 'post',
110
-			'has_archive'        => 'recipes',
111
-			'hierarchical'       => false,
112
-			'menu_position'      => null,
113
-			'supports'           => array(
114
-				'title',
115
-				'editor',
116
-				'thumbnail',
117
-				'custom-fields',
118
-			),
119
-		);
120
-		register_post_type( 'recipe', $args );
121
-	}
78
+     /**
79
+      * Register the post type.
80
+      */
81
+     public function register_post_type() {
82
+          $this->labels = array(
83
+               'name'               => esc_html__( 'Recipes', 'lsx-health-plan' ),
84
+               'singular_name'      => esc_html__( 'Recipe', 'lsx-health-plan' ),
85
+               'add_new'            => esc_html_x( 'Add New', 'post type general name', 'lsx-health-plan' ),
86
+               'add_new_item'       => esc_html__( 'Add New', 'lsx-health-plan' ),
87
+               'edit_item'          => esc_html__( 'Edit', 'lsx-health-plan' ),
88
+               'new_item'           => esc_html__( 'New', 'lsx-health-plan' ),
89
+               'all_items'          => esc_html__( 'All Recipes', 'lsx-health-plan' ),
90
+               'view_item'          => esc_html__( 'View', 'lsx-health-plan' ),
91
+               'search_items'       => esc_html__( 'Search', 'lsx-health-plan' ),
92
+               'not_found'          => esc_html__( 'None found', 'lsx-health-plan' ),
93
+               'not_found_in_trash' => esc_html__( 'None found in Trash', 'lsx-health-plan' ),
94
+               'parent_item_colon'  => '',
95
+               'menu_name'          => esc_html__( 'Recipes', 'lsx-health-plan' ),
96
+          );
97
+          $args         = array(
98
+               'labels'             => $this->labels,
99
+               'public'             => true,
100
+               'publicly_queryable' => true,
101
+               'show_ui'            => true,
102
+               'show_in_menu'       => false,
103
+               'show_in_rest'       => true,
104
+               'menu_icon'          => 'dashicons-editor-ul',
105
+               'query_var'          => true,
106
+               'rewrite'            => array(
107
+                    'slug' => 'recipe',
108
+               ),
109
+               'capability_type'    => 'post',
110
+               'has_archive'        => 'recipes',
111
+               'hierarchical'       => false,
112
+               'menu_position'      => null,
113
+               'supports'           => array(
114
+                    'title',
115
+                    'editor',
116
+                    'thumbnail',
117
+                    'custom-fields',
118
+               ),
119
+          );
120
+          register_post_type( 'recipe', $args );
121
+     }
122 122
 
123
-	/**
124
-	 * Registers the Recipes under the Meals Post type menu.
125
-	 *
126
-	 * @return void
127
-	 */
128
-	public function register_menus() {
129
-		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' );
130
-		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' );
131
-		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' );
132
-	}
123
+     /**
124
+      * Registers the Recipes under the Meals Post type menu.
125
+      *
126
+      * @return void
127
+      */
128
+     public function register_menus() {
129
+          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' );
130
+          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' );
131
+          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' );
132
+     }
133 133
 
134
-	/**
135
-	 * Register the Week taxonomy.
136
-	 */
137
-	public function taxonomy_setup() {
138
-		$labels = array(
139
-			'name'              => esc_html_x( 'Cuisine', 'taxonomy general name', 'lsx-health-plan' ),
140
-			'singular_name'     => esc_html_x( 'Cuisines', 'taxonomy singular name', 'lsx-health-plan' ),
141
-			'search_items'      => esc_html__( 'Search', 'lsx-health-plan' ),
142
-			'all_items'         => esc_html__( 'All', 'lsx-health-plan' ),
143
-			'parent_item'       => esc_html__( 'Parent', 'lsx-health-plan' ),
144
-			'parent_item_colon' => esc_html__( 'Parent:', 'lsx-health-plan' ),
145
-			'edit_item'         => esc_html__( 'Edit', 'lsx-health-plan' ),
146
-			'update_item'       => esc_html__( 'Update', 'lsx-health-plan' ),
147
-			'add_new_item'      => esc_html__( 'Add New', 'lsx-health-plan' ),
148
-			'new_item_name'     => esc_html__( 'New Name', 'lsx-health-plan' ),
149
-			'menu_name'         => esc_html__( 'Cuisines', 'lsx-health-plan' ),
150
-		);
151
-		$args   = array(
152
-			'hierarchical'      => true,
153
-			'labels'            => $labels,
154
-			'show_ui'           => true,
155
-			'show_admin_column' => true,
156
-			'show_in_menu'      => 'edit.php?post_type=meal',
157
-			'query_var'         => true,
158
-			'rewrite'           => array(
159
-				'slug' => 'recipe-cuisine',
160
-			),
161
-		);
162
-		register_taxonomy( 'recipe-cuisine', array( $this->slug ), $args );
134
+     /**
135
+      * Register the Week taxonomy.
136
+      */
137
+     public function taxonomy_setup() {
138
+          $labels = array(
139
+               'name'              => esc_html_x( 'Cuisine', 'taxonomy general name', 'lsx-health-plan' ),
140
+               'singular_name'     => esc_html_x( 'Cuisines', 'taxonomy singular name', 'lsx-health-plan' ),
141
+               'search_items'      => esc_html__( 'Search', 'lsx-health-plan' ),
142
+               'all_items'         => esc_html__( 'All', 'lsx-health-plan' ),
143
+               'parent_item'       => esc_html__( 'Parent', 'lsx-health-plan' ),
144
+               'parent_item_colon' => esc_html__( 'Parent:', 'lsx-health-plan' ),
145
+               'edit_item'         => esc_html__( 'Edit', 'lsx-health-plan' ),
146
+               'update_item'       => esc_html__( 'Update', 'lsx-health-plan' ),
147
+               'add_new_item'      => esc_html__( 'Add New', 'lsx-health-plan' ),
148
+               'new_item_name'     => esc_html__( 'New Name', 'lsx-health-plan' ),
149
+               'menu_name'         => esc_html__( 'Cuisines', 'lsx-health-plan' ),
150
+          );
151
+          $args   = array(
152
+               'hierarchical'      => true,
153
+               'labels'            => $labels,
154
+               'show_ui'           => true,
155
+               'show_admin_column' => true,
156
+               'show_in_menu'      => 'edit.php?post_type=meal',
157
+               'query_var'         => true,
158
+               'rewrite'           => array(
159
+                    'slug' => 'recipe-cuisine',
160
+               ),
161
+          );
162
+          register_taxonomy( 'recipe-cuisine', array( $this->slug ), $args );
163 163
 
164
-		$labels = array(
165
-			'name'              => esc_html_x( 'Recipe Type', 'taxonomy general name', 'lsx-health-plan' ),
166
-			'singular_name'     => esc_html_x( 'Recipe Types', 'taxonomy singular name', 'lsx-health-plan' ),
167
-			'search_items'      => esc_html__( 'Search', 'lsx-health-plan' ),
168
-			'all_items'         => esc_html__( 'All', 'lsx-health-plan' ),
169
-			'parent_item'       => esc_html__( 'Parent', 'lsx-health-plan' ),
170
-			'parent_item_colon' => esc_html__( 'Parent:', 'lsx-health-plan' ),
171
-			'edit_item'         => esc_html__( 'Edit', 'lsx-health-plan' ),
172
-			'update_item'       => esc_html__( 'Update', 'lsx-health-plan' ),
173
-			'add_new_item'      => esc_html__( 'Add New', 'lsx-health-plan' ),
174
-			'new_item_name'     => esc_html__( 'New Name', 'lsx-health-plan' ),
175
-			'menu_name'         => esc_html__( 'Types', 'lsx-health-plan' ),
176
-		);
177
-		$args   = array(
178
-			'hierarchical'      => true,
179
-			'labels'            => $labels,
180
-			'show_ui'           => true,
181
-			'show_in_menu'      => 'edit.php?post_type=meal',
182
-			'show_admin_column' => true,
183
-			'query_var'         => true,
184
-			'rewrite'           => array(
185
-				'slug' => 'recipe-type',
186
-			),
187
-		);
188
-		register_taxonomy( 'recipe-type', array( $this->slug ), $args );
189
-	}
164
+          $labels = array(
165
+               'name'              => esc_html_x( 'Recipe Type', 'taxonomy general name', 'lsx-health-plan' ),
166
+               'singular_name'     => esc_html_x( 'Recipe Types', 'taxonomy singular name', 'lsx-health-plan' ),
167
+               'search_items'      => esc_html__( 'Search', 'lsx-health-plan' ),
168
+               'all_items'         => esc_html__( 'All', 'lsx-health-plan' ),
169
+               'parent_item'       => esc_html__( 'Parent', 'lsx-health-plan' ),
170
+               'parent_item_colon' => esc_html__( 'Parent:', 'lsx-health-plan' ),
171
+               'edit_item'         => esc_html__( 'Edit', 'lsx-health-plan' ),
172
+               'update_item'       => esc_html__( 'Update', 'lsx-health-plan' ),
173
+               'add_new_item'      => esc_html__( 'Add New', 'lsx-health-plan' ),
174
+               'new_item_name'     => esc_html__( 'New Name', 'lsx-health-plan' ),
175
+               'menu_name'         => esc_html__( 'Types', 'lsx-health-plan' ),
176
+          );
177
+          $args   = array(
178
+               'hierarchical'      => true,
179
+               'labels'            => $labels,
180
+               'show_ui'           => true,
181
+               'show_in_menu'      => 'edit.php?post_type=meal',
182
+               'show_admin_column' => true,
183
+               'query_var'         => true,
184
+               'rewrite'           => array(
185
+                    'slug' => 'recipe-type',
186
+               ),
187
+          );
188
+          register_taxonomy( 'recipe-type', array( $this->slug ), $args );
189
+     }
190 190
 
191
-	/**
192
-	 * Adds the post type to the different arrays.
193
-	 *
194
-	 * @param array $post_types
195
-	 * @return array
196
-	 */
197
-	public function enable_post_type( $post_types = array() ) {
198
-		$post_types[] = $this->slug;
199
-		return $post_types;
200
-	}
191
+     /**
192
+      * Adds the post type to the different arrays.
193
+      *
194
+      * @param array $post_types
195
+      * @return array
196
+      */
197
+     public function enable_post_type( $post_types = array() ) {
198
+          $post_types[] = $this->slug;
199
+          return $post_types;
200
+     }
201 201
 
202
-	/**
203
-	 * Enables the Bi Directional relationships
204
-	 *
205
-	 * @param array $connections
206
-	 * @return void
207
-	 */
208
-	public function enable_connections( $connections = array() ) {
209
-		$connections['recipe']['connected_plans'] = 'connected_recipes';
210
-		$connections['plan']['connected_recipes'] = 'connected_plans';
211
-		return $connections;
212
-	}
202
+     /**
203
+      * Enables the Bi Directional relationships
204
+      *
205
+      * @param array $connections
206
+      * @return void
207
+      */
208
+     public function enable_connections( $connections = array() ) {
209
+          $connections['recipe']['connected_plans'] = 'connected_recipes';
210
+          $connections['plan']['connected_recipes'] = 'connected_plans';
211
+          return $connections;
212
+     }
213 213
 
214
-	/**
215
-	 * Remove the "Archives:" from the post type recipes.
216
-	 *
217
-	 * @param string $title the term title.
218
-	 * @return string
219
-	 */
220
-	public function get_the_archive_title( $title ) {
221
-		if ( is_post_type_archive( 'recipe' ) ) {
222
-			$title = __( 'Recipes', 'lsx-health-plan' );
223
-		}
224
-		if ( is_post_type_archive( 'exercise' ) ) {
225
-			$title = __( 'Exercises', 'lsx-health-plan' );
226
-		}
227
-		if ( is_tax( 'recipe-type' ) ) {
228
-			$queried_object = get_queried_object();
229
-			if ( isset( $queried_object->name ) ) {
230
-				$title = $queried_object->name . ' ' . __( 'Recipes', 'lsx-health-plan' );
231
-			}
232
-		}
233
-		return $title;
234
-	}
214
+     /**
215
+      * Remove the "Archives:" from the post type recipes.
216
+      *
217
+      * @param string $title the term title.
218
+      * @return string
219
+      */
220
+     public function get_the_archive_title( $title ) {
221
+          if ( is_post_type_archive( 'recipe' ) ) {
222
+               $title = __( 'Recipes', 'lsx-health-plan' );
223
+          }
224
+          if ( is_post_type_archive( 'exercise' ) ) {
225
+               $title = __( 'Exercises', 'lsx-health-plan' );
226
+          }
227
+          if ( is_tax( 'recipe-type' ) ) {
228
+               $queried_object = get_queried_object();
229
+               if ( isset( $queried_object->name ) ) {
230
+                    $title = $queried_object->name . ' ' . __( 'Recipes', 'lsx-health-plan' );
231
+               }
232
+          }
233
+          return $title;
234
+     }
235 235
 
236
-	/**
237
-	 * Disables the global header description
238
-	 *
239
-	 * @param boolean $disable
240
-	 * @return boolean
241
-	 */
242
-	public function disable_global_header_description( $disable ) {
243
-		if ( is_tax( 'recipe-type' ) ) {
244
-			$disable = true;
245
-		}
246
-		return $disable;
247
-	}
236
+     /**
237
+      * Disables the global header description
238
+      *
239
+      * @param boolean $disable
240
+      * @return boolean
241
+      */
242
+     public function disable_global_header_description( $disable ) {
243
+          if ( is_tax( 'recipe-type' ) ) {
244
+               $disable = true;
245
+          }
246
+          return $disable;
247
+     }
248 248
 
249
-	/**
250
-	 * Holds the array for the breadcrumbs.
251
-	 *
252
-	 * @var array $crumbs
253
-	 * @return array
254
-	 */
255
-	public function recipes_breadcrumb_filter( $crumbs ) {
256
-		if ( is_tax( 'recipe-type' ) ) {
257
-			$text = $this->labels['singular_name'];
258
-			$url  = get_post_type_archive_link( 'recipe' );
259
-			if ( function_exists( 'woocommerce_breadcrumb' ) ) {
260
-				$crumbs[1] = array(
261
-					0 => $text,
262
-					1 => $url,
263
-				);
264
-			} else {
265
-				$crumbs[1] = array(
266
-					'text' => $text,
267
-					'url'  => $url,
268
-				);
269
-			}
270
-		}
271
-		return $crumbs;
272
-	}
249
+     /**
250
+      * Holds the array for the breadcrumbs.
251
+      *
252
+      * @var array $crumbs
253
+      * @return array
254
+      */
255
+     public function recipes_breadcrumb_filter( $crumbs ) {
256
+          if ( is_tax( 'recipe-type' ) ) {
257
+               $text = $this->labels['singular_name'];
258
+               $url  = get_post_type_archive_link( 'recipe' );
259
+               if ( function_exists( 'woocommerce_breadcrumb' ) ) {
260
+                    $crumbs[1] = array(
261
+                         0 => $text,
262
+                         1 => $url,
263
+                    );
264
+               } else {
265
+                    $crumbs[1] = array(
266
+                         'text' => $text,
267
+                         'url'  => $url,
268
+                    );
269
+               }
270
+          }
271
+          return $crumbs;
272
+     }
273 273
 
274
-	/**
275
-	 * Define the metabox and field configurations.
276
-	 */
277
-	public function featured_metabox() {
278
-		$cmb = new_cmb2_box(
279
-			array(
280
-				'id'           => $this->slug . '_featured_metabox',
281
-				'title'        => __( 'Featured', 'lsx-health-plan' ),
282
-				'object_types' => array( $this->slug ),
283
-				'context'      => 'side',
284
-				'priority'     => 'high',
285
-				'show_names'   => true,
286
-			)
287
-		);
288
-		$cmb->add_field(
289
-			array(
290
-				'name'       => __( 'Featured', 'lsx-health-plan' ),
291
-				'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' ),
292
-				'id'         => $this->slug . '_featured',
293
-				'type'       => 'checkbox',
294
-				'show_on_cb' => 'cmb2_hide_if_no_cats',
295
-			)
296
-		);
297
-	}
274
+     /**
275
+      * Define the metabox and field configurations.
276
+      */
277
+     public function featured_metabox() {
278
+          $cmb = new_cmb2_box(
279
+               array(
280
+                    'id'           => $this->slug . '_featured_metabox',
281
+                    'title'        => __( 'Featured', 'lsx-health-plan' ),
282
+                    'object_types' => array( $this->slug ),
283
+                    'context'      => 'side',
284
+                    'priority'     => 'high',
285
+                    'show_names'   => true,
286
+               )
287
+          );
288
+          $cmb->add_field(
289
+               array(
290
+                    'name'       => __( 'Featured', 'lsx-health-plan' ),
291
+                    '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' ),
292
+                    'id'         => $this->slug . '_featured',
293
+                    'type'       => 'checkbox',
294
+                    'show_on_cb' => 'cmb2_hide_if_no_cats',
295
+               )
296
+          );
297
+     }
298 298
 
299
-	/**
300
-	 * Define the metabox and field configurations.
301
-	 */
302
-	public function details_metaboxes() {
303
-		$cmb = new_cmb2_box(
304
-			array(
305
-				'id'           => $this->slug . '_details_metabox',
306
-				'title'        => __( 'Cooking Info', 'lsx-health-plan' ),
307
-				'object_types' => array( $this->slug ), // Post type
308
-				'context'      => 'normal',
309
-				'priority'     => 'high',
310
-				'show_names'   => true,
311
-			)
312
-		);
313
-		$cmb->add_field(
314
-			array(
315
-				'name'       => __( 'Prep Time', 'lsx-health-plan' ),
316
-				'id'         => $this->slug . '_prep_time',
317
-				'desc'       => __( 'Add the preparation time for the entire meal i.e: 25 mins', 'lsx-health-plan' ),
318
-				'type'       => 'text',
319
-				'show_on_cb' => 'cmb2_hide_if_no_cats',
320
-			)
321
-		);
322
-		$cmb->add_field(
323
-			array(
324
-				'name'       => __( 'Cooking Time', 'lsx-health-plan' ),
325
-				'id'         => $this->slug . '_cooking_time',
326
-				'desc'       => __( 'Add the cooking time i.e: 15 mins', 'lsx-health-plan' ),
327
-				'type'       => 'text',
328
-				'show_on_cb' => 'cmb2_hide_if_no_cats',
329
-			)
330
-		);
331
-		$cmb->add_field(
332
-			array(
333
-				'name'       => __( 'Serves', 'lsx-health-plan' ),
334
-				'id'         => $this->slug . '_serves',
335
-				'desc'       => __( 'Add the recommended serving size i.e: 6', 'lsx-health-plan' ),
336
-				'type'       => 'text',
337
-				'show_on_cb' => 'cmb2_hide_if_no_cats',
338
-				'attributes' => array(
339
-					'type'    => 'number',
340
-					'pattern' => '\d*',
341
-				),
342
-			)
343
-		);
344
-		$cmb->add_field(
345
-			array(
346
-				'name'       => __( 'Portion', 'lsx-health-plan' ),
347
-				'desc'       => __( 'Add the recommended portion size i.e: 200mg', 'lsx-health-plan' ),
348
-				'id'         => $this->slug . '_portion',
349
-				'type'       => 'text',
350
-				'show_on_cb' => 'cmb2_hide_if_no_cats',
351
-			)
352
-		);
353
-		$cmb = new_cmb2_box(
354
-			array(
355
-				'id'           => $this->slug . '_nutritional_metabox',
356
-				'title'        => __( 'Nutritional Info', 'lsx-health-plan' ),
357
-				'object_types' => array( $this->slug ), // Post type
358
-				'context'      => 'normal',
359
-				'priority'     => 'high',
360
-				'show_names'   => true,
361
-			)
362
-		);
363
-		$cmb->add_field(
364
-			array(
365
-				'name'       => __( 'Energy', 'lsx-health-plan' ),
366
-				'id'         => $this->slug . '_energy',
367
-				'desc'       => __( 'Add the energy amount for the entire meal i.e: 700 kj', 'lsx-health-plan' ),
368
-				'type'       => 'text',
369
-				'show_on_cb' => 'cmb2_hide_if_no_cats',
370
-			)
371
-		);
372
-		$cmb->add_field(
373
-			array(
374
-				'name'       => __( 'Protein', 'lsx-health-plan' ),
375
-				'id'         => $this->slug . '_protein',
376
-				'desc'       => __( 'Add the protein amount for the entire meal i.e: 50 g', 'lsx-health-plan' ),
377
-				'type'       => 'text',
378
-				'show_on_cb' => 'cmb2_hide_if_no_cats',
379
-			)
380
-		);
381
-		$cmb->add_field(
382
-			array(
383
-				'name'       => __( 'Carbohydrates', 'lsx-health-plan' ),
384
-				'id'         => $this->slug . '_carbohydrates',
385
-				'desc'       => __( 'Add the carbohydrates amount for the entire meal i.e: 5 g', 'lsx-health-plan' ),
386
-				'type'       => 'text',
387
-				'show_on_cb' => 'cmb2_hide_if_no_cats',
388
-			)
389
-		);
390
-		$cmb->add_field(
391
-			array(
392
-				'name'       => __( 'Fibre', 'lsx-health-plan' ),
393
-				'id'         => $this->slug . '_fibre',
394
-				'desc'       => __( 'Add the fibre amount for the entire meal i.e: 5 g', 'lsx-health-plan' ),
395
-				'type'       => 'text',
396
-				'show_on_cb' => 'cmb2_hide_if_no_cats',
397
-			)
398
-		);
399
-		$cmb->add_field(
400
-			array(
401
-				'name'       => __( 'Fat', 'lsx-health-plan' ),
402
-				'id'         => $this->slug . '_fat',
403
-				'desc'       => __( 'Add the fat amount for the entire meal i.e: 20 g', 'lsx-health-plan' ),
404
-				'type'       => 'text',
405
-				'show_on_cb' => 'cmb2_hide_if_no_cats',
406
-			)
407
-		);
408
-	}
299
+     /**
300
+      * Define the metabox and field configurations.
301
+      */
302
+     public function details_metaboxes() {
303
+          $cmb = new_cmb2_box(
304
+               array(
305
+                    'id'           => $this->slug . '_details_metabox',
306
+                    'title'        => __( 'Cooking Info', 'lsx-health-plan' ),
307
+                    'object_types' => array( $this->slug ), // Post type
308
+                    'context'      => 'normal',
309
+                    'priority'     => 'high',
310
+                    'show_names'   => true,
311
+               )
312
+          );
313
+          $cmb->add_field(
314
+               array(
315
+                    'name'       => __( 'Prep Time', 'lsx-health-plan' ),
316
+                    'id'         => $this->slug . '_prep_time',
317
+                    'desc'       => __( 'Add the preparation time for the entire meal i.e: 25 mins', 'lsx-health-plan' ),
318
+                    'type'       => 'text',
319
+                    'show_on_cb' => 'cmb2_hide_if_no_cats',
320
+               )
321
+          );
322
+          $cmb->add_field(
323
+               array(
324
+                    'name'       => __( 'Cooking Time', 'lsx-health-plan' ),
325
+                    'id'         => $this->slug . '_cooking_time',
326
+                    'desc'       => __( 'Add the cooking time i.e: 15 mins', 'lsx-health-plan' ),
327
+                    'type'       => 'text',
328
+                    'show_on_cb' => 'cmb2_hide_if_no_cats',
329
+               )
330
+          );
331
+          $cmb->add_field(
332
+               array(
333
+                    'name'       => __( 'Serves', 'lsx-health-plan' ),
334
+                    'id'         => $this->slug . '_serves',
335
+                    'desc'       => __( 'Add the recommended serving size i.e: 6', 'lsx-health-plan' ),
336
+                    'type'       => 'text',
337
+                    'show_on_cb' => 'cmb2_hide_if_no_cats',
338
+                    'attributes' => array(
339
+                         'type'    => 'number',
340
+                         'pattern' => '\d*',
341
+                    ),
342
+               )
343
+          );
344
+          $cmb->add_field(
345
+               array(
346
+                    'name'       => __( 'Portion', 'lsx-health-plan' ),
347
+                    'desc'       => __( 'Add the recommended portion size i.e: 200mg', 'lsx-health-plan' ),
348
+                    'id'         => $this->slug . '_portion',
349
+                    'type'       => 'text',
350
+                    'show_on_cb' => 'cmb2_hide_if_no_cats',
351
+               )
352
+          );
353
+          $cmb = new_cmb2_box(
354
+               array(
355
+                    'id'           => $this->slug . '_nutritional_metabox',
356
+                    'title'        => __( 'Nutritional Info', 'lsx-health-plan' ),
357
+                    'object_types' => array( $this->slug ), // Post type
358
+                    'context'      => 'normal',
359
+                    'priority'     => 'high',
360
+                    'show_names'   => true,
361
+               )
362
+          );
363
+          $cmb->add_field(
364
+               array(
365
+                    'name'       => __( 'Energy', 'lsx-health-plan' ),
366
+                    'id'         => $this->slug . '_energy',
367
+                    'desc'       => __( 'Add the energy amount for the entire meal i.e: 700 kj', 'lsx-health-plan' ),
368
+                    'type'       => 'text',
369
+                    'show_on_cb' => 'cmb2_hide_if_no_cats',
370
+               )
371
+          );
372
+          $cmb->add_field(
373
+               array(
374
+                    'name'       => __( 'Protein', 'lsx-health-plan' ),
375
+                    'id'         => $this->slug . '_protein',
376
+                    'desc'       => __( 'Add the protein amount for the entire meal i.e: 50 g', 'lsx-health-plan' ),
377
+                    'type'       => 'text',
378
+                    'show_on_cb' => 'cmb2_hide_if_no_cats',
379
+               )
380
+          );
381
+          $cmb->add_field(
382
+               array(
383
+                    'name'       => __( 'Carbohydrates', 'lsx-health-plan' ),
384
+                    'id'         => $this->slug . '_carbohydrates',
385
+                    'desc'       => __( 'Add the carbohydrates amount for the entire meal i.e: 5 g', 'lsx-health-plan' ),
386
+                    'type'       => 'text',
387
+                    'show_on_cb' => 'cmb2_hide_if_no_cats',
388
+               )
389
+          );
390
+          $cmb->add_field(
391
+               array(
392
+                    'name'       => __( 'Fibre', 'lsx-health-plan' ),
393
+                    'id'         => $this->slug . '_fibre',
394
+                    'desc'       => __( 'Add the fibre amount for the entire meal i.e: 5 g', 'lsx-health-plan' ),
395
+                    'type'       => 'text',
396
+                    'show_on_cb' => 'cmb2_hide_if_no_cats',
397
+               )
398
+          );
399
+          $cmb->add_field(
400
+               array(
401
+                    'name'       => __( 'Fat', 'lsx-health-plan' ),
402
+                    'id'         => $this->slug . '_fat',
403
+                    'desc'       => __( 'Add the fat amount for the entire meal i.e: 20 g', 'lsx-health-plan' ),
404
+                    'type'       => 'text',
405
+                    'show_on_cb' => 'cmb2_hide_if_no_cats',
406
+               )
407
+          );
408
+     }
409 409
 }
Please login to merge, or discard this patch.
templates/content-archive-workout.php 1 patch
Indentation   +17 added lines, -17 removed lines patch added patch discarded remove patch
@@ -22,17 +22,17 @@  discard block
 block discarded – undo
22 22
 			<?php } ?>
23 23
 			<a href="<?php echo esc_url( get_permalink() ); ?>">
24 24
 			<?php
25
-			$featured_image = get_the_post_thumbnail();
26
-			if ( ! empty( $featured_image ) && '' !== $featured_image ) {
27
-				the_post_thumbnail( 'lsx-thumbnail-square', array(
28
-					'class' => 'aligncenter',
29
-				) );
30
-			} else {
31
-				?>
25
+               $featured_image = get_the_post_thumbnail();
26
+               if ( ! empty( $featured_image ) && '' !== $featured_image ) {
27
+                    the_post_thumbnail( 'lsx-thumbnail-square', array(
28
+                         'class' => 'aligncenter',
29
+                    ) );
30
+               } else {
31
+                    ?>
32 32
 				<img loading="lazy" src="<?php echo esc_attr( plugin_dir_url( __FILE__ ) . '../assets/images/placeholder.jpg' ); ?>">
33 33
 				<?php
34
-			}
35
-			?>
34
+               }
35
+               ?>
36 36
 			</a>
37 37
 		</div>
38 38
 		<div class="content-box workout-content-box white-bg">
@@ -40,14 +40,14 @@  discard block
 block discarded – undo
40 40
 				<?php the_title( '<h3 class="workout-title">', '</h3>' ); ?>
41 41
 			</a>
42 42
 			<?php
43
-			if ( ! has_excerpt() ) {
44
-				$content = wp_trim_words( get_the_content(), 20 );
45
-				$content = '<p>' . $content . '</p>';
46
-			} else {
47
-				$content = apply_filters( 'the_excerpt', get_the_excerpt() );
48
-			}
49
-			echo wp_kses_post( $content );
50
-			?>
43
+               if ( ! has_excerpt() ) {
44
+                    $content = wp_trim_words( get_the_content(), 20 );
45
+                    $content = '<p>' . $content . '</p>';
46
+               } else {
47
+                    $content = apply_filters( 'the_excerpt', get_the_excerpt() );
48
+               }
49
+               echo wp_kses_post( $content );
50
+               ?>
51 51
 			<a href="<?php echo esc_url( get_permalink() ); ?>" class="btn border-btn"><?php esc_html_e( 'See workout', 'lsx-health-plan' ); ?></a>
52 52
 		</div>
53 53
 		<?php lsx_entry_bottom(); ?>
Please login to merge, or discard this patch.
templates/partials/workout-grid.php 1 patch
Indentation   +128 added lines, -128 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@  discard block
 block discarded – undo
8 8
 global $group_name,$shortcode_args;
9 9
 $groups = get_post_meta( get_the_ID(), $group_name, true );
10 10
 if ( is_singular( 'workout' ) ) {
11
-	$groups = get_post_meta( get_queried_object_id(), $group_name, true );
11
+     $groups = get_post_meta( get_queried_object_id(), $group_name, true );
12 12
 }
13 13
 
14 14
 $link_setting          = \lsx_health_plan\functions\get_option( 'workout_tab_link', 'single' );
@@ -18,167 +18,167 @@  discard block
 block discarded – undo
18 18
 
19 19
 // Check for shortcode overrides.
20 20
 if ( null !== $shortcode_args ) {
21
-	if ( isset( $shortcode_args['link'] ) ) {
22
-		$link_setting = $shortcode_args['link'];
23
-	}
24
-	if ( isset( $shortcode_args['description'] ) ) {
25
-		$content_setting = $shortcode_args['description'];
26
-	}
27
-	if ( isset( $shortcode_args['columns'] ) ) {
28
-		$column_setting = $shortcode_args['columns'];
29
-		$column_setting = \lsx_health_plan\functions\column_class( $column_setting );
30
-	}
31
-	if ( isset( $shortcode_args['modal_content'] ) ) {
32
-		$modal_content_setting = $shortcode_args['modal_content'];
33
-	}
21
+     if ( isset( $shortcode_args['link'] ) ) {
22
+          $link_setting = $shortcode_args['link'];
23
+     }
24
+     if ( isset( $shortcode_args['description'] ) ) {
25
+          $content_setting = $shortcode_args['description'];
26
+     }
27
+     if ( isset( $shortcode_args['columns'] ) ) {
28
+          $column_setting = $shortcode_args['columns'];
29
+          $column_setting = \lsx_health_plan\functions\column_class( $column_setting );
30
+     }
31
+     if ( isset( $shortcode_args['modal_content'] ) ) {
32
+          $modal_content_setting = $shortcode_args['modal_content'];
33
+     }
34 34
 }
35 35
 
36 36
 $modal_args = array(
37
-	'modal_content' => $modal_content_setting,
37
+     'modal_content' => $modal_content_setting,
38 38
 );
39 39
 
40 40
 $counter = 1;
41 41
 
42 42
 if ( ! empty( $groups ) ) {
43
-	?>
43
+     ?>
44 44
 	<div class="set-grid">
45 45
 		<div class="workout-grid row">
46 46
 			<?php
47
-			foreach ( $groups as $group ) {
48
-				$connected_exercise = false;
49
-				if ( isset( $group['connected_exercises'] ) && '' !== $group['connected_exercises'] ) {
50
-					$connected_exercise = true;
51
-				}
52
-
53
-				if ( ! $connected_exercise ) {
54
-					$group['connected_exercises'] = '';
55
-				}
56
-
57
-				if ( ( $connected_exercise ) || ( ( ! $connected_exercise ) && '' !== $group['alt_title'] && isset( $group['alt_title'] ) ) ) {
58
-
59
-					$alt_title = '';
60
-					if ( isset( $group['alt_title'] ) && '' !== $group['alt_title'] ) {
61
-						$alt_title = '<span class="alt-title">' . esc_html( $group['alt_title'] ) . '</span>';
62
-					}
63
-
64
-					$alt_description = '';
65
-					if ( isset( $group['alt_description'] ) && '' !== $group['alt_description'] ) {
66
-						$alt_description = '<span class="alt-description">' . esc_html( $group['alt_description'] ) . '</span>';
67
-					}
68
-
69
-					$alt_image = '';
70
-					if ( isset( $group['exercise_alt_thumbnail'] ) && '' !== $group['exercise_alt_thumbnail'] ) {
71
-						$alt_image = $group['exercise_alt_thumbnail'];
72
-					}
73
-
74
-					$reps = '';
75
-					if ( isset( $group['reps'] ) && '' !== $group['reps'] ) {
76
-						$reps = '<span class="reps">' . esc_html( $group['reps'] ) . '</span>';
77
-					}
78
-					$class_excerpt = 'no-excerpt';
79
-					if ( 'excerpt' === $content_setting ) {
80
-						$class_excerpt = 'has-excerpt';
81
-					}
82
-					// Setup our link and content.
83
-					switch ( $link_setting ) {
84
-						case 'single':
85
-							$link_html  = '<a href="' . get_permalink( $group['connected_exercises'] ) . '">';
86
-							$link_close = '</a>';
87
-							break;
88
-
89
-						case 'modal':
90
-							if ( ( '' !== $alt_title ) || ( '' !== $alt_description ) || ( '' !== $alt_image ) ) {
91
-								$link_html  = '<a class="alt-modal" data-toggle="modal" href="#workout-alt-exercise-modal-' . $group['connected_exercises'] . '">';
92
-								$link_close = '</a>';
93
-								// We call the button to register the alt modal, but we do not output it.
94
-								lsx_health_plan_workout_exercise_alt_button( $group['connected_exercises'], $group, false, $modal_args, $alt_title, $alt_description, $alt_image );
95
-							} else {
96
-								$link_html  = '<a data-toggle="modal" href="#workout-exercise-modal-' . $group['connected_exercises'] . '">';
97
-								$link_close = '</a>';
98
-								// We call the button to register the modal, but we do not output it.
99
-								lsx_health_plan_workout_exercise_button( $group['connected_exercises'], $group, false, $modal_args );
100
-							}
101
-
102
-							break;
103
-
104
-						case 'none':
105
-						default:
106
-							$link_html  = '';
107
-							$link_close = '';
108
-							break;
109
-					}
110
-					?>
47
+               foreach ( $groups as $group ) {
48
+                    $connected_exercise = false;
49
+                    if ( isset( $group['connected_exercises'] ) && '' !== $group['connected_exercises'] ) {
50
+                         $connected_exercise = true;
51
+                    }
52
+
53
+                    if ( ! $connected_exercise ) {
54
+                         $group['connected_exercises'] = '';
55
+                    }
56
+
57
+                    if ( ( $connected_exercise ) || ( ( ! $connected_exercise ) && '' !== $group['alt_title'] && isset( $group['alt_title'] ) ) ) {
58
+
59
+                         $alt_title = '';
60
+                         if ( isset( $group['alt_title'] ) && '' !== $group['alt_title'] ) {
61
+                              $alt_title = '<span class="alt-title">' . esc_html( $group['alt_title'] ) . '</span>';
62
+                         }
63
+
64
+                         $alt_description = '';
65
+                         if ( isset( $group['alt_description'] ) && '' !== $group['alt_description'] ) {
66
+                              $alt_description = '<span class="alt-description">' . esc_html( $group['alt_description'] ) . '</span>';
67
+                         }
68
+
69
+                         $alt_image = '';
70
+                         if ( isset( $group['exercise_alt_thumbnail'] ) && '' !== $group['exercise_alt_thumbnail'] ) {
71
+                              $alt_image = $group['exercise_alt_thumbnail'];
72
+                         }
73
+
74
+                         $reps = '';
75
+                         if ( isset( $group['reps'] ) && '' !== $group['reps'] ) {
76
+                              $reps = '<span class="reps">' . esc_html( $group['reps'] ) . '</span>';
77
+                         }
78
+                         $class_excerpt = 'no-excerpt';
79
+                         if ( 'excerpt' === $content_setting ) {
80
+                              $class_excerpt = 'has-excerpt';
81
+                         }
82
+                         // Setup our link and content.
83
+                         switch ( $link_setting ) {
84
+                              case 'single':
85
+                                   $link_html  = '<a href="' . get_permalink( $group['connected_exercises'] ) . '">';
86
+                                   $link_close = '</a>';
87
+                                   break;
88
+
89
+                              case 'modal':
90
+                                   if ( ( '' !== $alt_title ) || ( '' !== $alt_description ) || ( '' !== $alt_image ) ) {
91
+                                        $link_html  = '<a class="alt-modal" data-toggle="modal" href="#workout-alt-exercise-modal-' . $group['connected_exercises'] . '">';
92
+                                        $link_close = '</a>';
93
+                                        // We call the button to register the alt modal, but we do not output it.
94
+                                        lsx_health_plan_workout_exercise_alt_button( $group['connected_exercises'], $group, false, $modal_args, $alt_title, $alt_description, $alt_image );
95
+                                   } else {
96
+                                        $link_html  = '<a data-toggle="modal" href="#workout-exercise-modal-' . $group['connected_exercises'] . '">';
97
+                                        $link_close = '</a>';
98
+                                        // We call the button to register the modal, but we do not output it.
99
+                                        lsx_health_plan_workout_exercise_button( $group['connected_exercises'], $group, false, $modal_args );
100
+                                   }
101
+
102
+                                   break;
103
+
104
+                              case 'none':
105
+                              default:
106
+                                   $link_html  = '';
107
+                                   $link_close = '';
108
+                                   break;
109
+                         }
110
+                         ?>
111 111
 					<div class="col-xs-12 col-sm-6 col-md-<?php echo esc_attr( $column_setting ); ?>">
112 112
 						<article class="lsx-slot box-shadow">
113 113
 							<div class="exercise-feature-img">
114 114
 								<span class="exercise-counter"><?php echo esc_html( $counter ); ?>.</span>
115 115
 								<?php echo wp_kses_post( $link_html ); ?>
116 116
 									<?php
117
-									$thumbnail_args = array(
118
-										'class' => 'aligncenter',
119
-									);
120
-									$featured_image = get_the_post_thumbnail( $group['connected_exercises'], 'medium', $thumbnail_args );
121
-									if ( $alt_image ) {
122
-										$featured_image = '<img alt="thumbnail" loading="lazy" class="aligncenter wp-post-image" src="' . $alt_image . '">';
123
-									}
124
-									if ( ! empty( $featured_image ) && '' !== $featured_image ) {
125
-										echo wp_kses_post( $featured_image );
126
-									} else {
127
-										?>
117
+                                             $thumbnail_args = array(
118
+                                                  'class' => 'aligncenter',
119
+                                             );
120
+                                             $featured_image = get_the_post_thumbnail( $group['connected_exercises'], 'medium', $thumbnail_args );
121
+                                             if ( $alt_image ) {
122
+                                                  $featured_image = '<img alt="thumbnail" loading="lazy" class="aligncenter wp-post-image" src="' . $alt_image . '">';
123
+                                             }
124
+                                             if ( ! empty( $featured_image ) && '' !== $featured_image ) {
125
+                                                  echo wp_kses_post( $featured_image );
126
+                                             } else {
127
+                                                  ?>
128 128
 										<img loading="lazy" src="<?php echo esc_attr( plugin_dir_url( __DIR__ ) . '../assets/images/placeholder.jpg' ); ?>">
129 129
 										<?php
130
-									}
131
-									?>
130
+                                             }
131
+                                             ?>
132 132
 								<?php echo wp_kses_post( $link_close ); ?>
133 133
 							</div>
134 134
 							<div class="content-box exercise-content-box white-bg">
135 135
 								<h3 class="content-box-title <?php echo esc_html( $class_excerpt ); ?>">
136 136
 									<?php echo wp_kses_post( $link_html ); ?>
137 137
 											<?php
138
-											$exercise_title = lsx_health_plan_exercise_title( '', '', false, $group['connected_exercises'] );
139
-											if ( '' !== $alt_title ) {
140
-												$exercise_title = $alt_title;
141
-											}
142
-											echo wp_kses_post( $exercise_title );
143
-											?>
138
+                                                       $exercise_title = lsx_health_plan_exercise_title( '', '', false, $group['connected_exercises'] );
139
+                                                       if ( '' !== $alt_title ) {
140
+                                                            $exercise_title = $alt_title;
141
+                                                       }
142
+                                                       echo wp_kses_post( $exercise_title );
143
+                                                       ?>
144 144
 										</a>
145 145
 									<?php echo wp_kses_post( $link_close ); ?>
146 146
 								</h3>
147 147
 								<?php
148
-								if ( '' !== $content_setting ) {
149
-									?>
148
+                                        if ( '' !== $content_setting ) {
149
+                                             ?>
150 150
 									<p class="lsx-exercises-excerpt">
151 151
 										<?php
152
-										if ( 'excerpt' === $content_setting ) {
153
-											$excerpt = \lsx_health_plan\functions\hp_excerpt( $group['connected_exercises'] );
154
-
155
-											if ( '' !== $alt_description ) {
156
-												$excerpt = $alt_description;
157
-											}
158
-											echo wp_kses_post( $excerpt );
159
-										}
160
-										if ( 'full' === $content_setting ) {
161
-											echo wp_kses_post( get_the_content( null, null, $group['connected_exercises'] ) );
162
-										}
163
-										?>
152
+                                                  if ( 'excerpt' === $content_setting ) {
153
+                                                       $excerpt = \lsx_health_plan\functions\hp_excerpt( $group['connected_exercises'] );
154
+
155
+                                                       if ( '' !== $alt_description ) {
156
+                                                            $excerpt = $alt_description;
157
+                                                       }
158
+                                                       echo wp_kses_post( $excerpt );
159
+                                                  }
160
+                                                  if ( 'full' === $content_setting ) {
161
+                                                       echo wp_kses_post( get_the_content( null, null, $group['connected_exercises'] ) );
162
+                                                  }
163
+                                                  ?>
164 164
 									</p>
165 165
 									<?php
166
-								}
167
-								?>
166
+                                        }
167
+                                        ?>
168 168
 								<?php
169
-								$repsclass = '';
170
-								if ( '' !== $reps ) {
171
-									$repsclass = 'have-reps';
172
-								}
173
-								?>
169
+                                        $repsclass = '';
170
+                                        if ( '' !== $reps ) {
171
+                                             $repsclass = 'have-reps';
172
+                                        }
173
+                                        ?>
174 174
 								<div class="reps-container <?php echo esc_html( $repsclass ); ?>">
175 175
 									<?php
176
-									if ( '' !== $reps ) {
177
-									?>
176
+                                             if ( '' !== $reps ) {
177
+                                             ?>
178 178
 										<?php echo wp_kses_post( $reps ); ?>
179 179
 									<?php
180
-									}
181
-									?>
180
+                                             }
181
+                                             ?>
182 182
 									<?php if ( ( '' !== $link_html ) && ( $connected_exercise ) ) { ?>
183 183
 										<?php echo wp_kses_post( str_replace( '<a', '<a class="btn-simple" ', $link_html ) ); ?>
184 184
 										<?php echo wp_kses_post( $link_close ); ?>
@@ -188,10 +188,10 @@  discard block
 block discarded – undo
188 188
 						</article>
189 189
 					</div>
190 190
 					<?php
191
-					$counter ++;
192
-				}
193
-			}
194
-			?>
191
+                         $counter ++;
192
+                    }
193
+               }
194
+               ?>
195 195
 		</div>
196 196
 	</div>
197 197
 	<?php
Please login to merge, or discard this patch.
classes/post-types/class-workout.php 1 patch
Indentation   +346 added lines, -346 removed lines patch added patch discarded remove patch
@@ -10,375 +10,375 @@
 block discarded – undo
10 10
  */
11 11
 class Workout {
12 12
 
13
-	/**
14
-	 * Holds class instance
15
-	 *
16
-	 * @since 1.0.0
17
-	 *
18
-	 * @var      object \lsx_health_plan\classes\Workout()
19
-	 */
20
-	protected static $instance = null;
13
+     /**
14
+      * Holds class instance
15
+      *
16
+      * @since 1.0.0
17
+      *
18
+      * @var      object \lsx_health_plan\classes\Workout()
19
+      */
20
+     protected static $instance = null;
21 21
 
22
-	/**
23
-	 * Holds post_type slug used as an index
24
-	 *
25
-	 * @since 1.0.0
26
-	 *
27
-	 * @var      string
28
-	 */
29
-	public $slug = 'workout';
22
+     /**
23
+      * Holds post_type slug used as an index
24
+      *
25
+      * @since 1.0.0
26
+      *
27
+      * @var      string
28
+      */
29
+     public $slug = 'workout';
30 30
 
31
-	/**
32
-	 * Contructor
33
-	 */
34
-	public function __construct() {
35
-		add_action( 'init', array( $this, 'register_post_type' ) );
36
-		add_filter( 'lsx_health_plan_single_template', array( $this, 'enable_post_type' ), 10, 1 );
37
-		add_action( 'init', array( $this, 'recipe_type_taxonomy_setup' ) );
38
-		add_filter( 'lsx_health_plan_connections', array( $this, 'enable_connections' ), 10, 1 );
39
-		add_action( 'cmb2_admin_init', array( $this, 'featured_metabox' ), 5 );
40
-		add_action( 'cmb2_admin_init', array( $this, 'details_metaboxes' ) );
41
-		add_filter( 'get_the_archive_title', array( $this, 'get_the_archive_title' ), 100 );
31
+     /**
32
+      * Contructor
33
+      */
34
+     public function __construct() {
35
+          add_action( 'init', array( $this, 'register_post_type' ) );
36
+          add_filter( 'lsx_health_plan_single_template', array( $this, 'enable_post_type' ), 10, 1 );
37
+          add_action( 'init', array( $this, 'recipe_type_taxonomy_setup' ) );
38
+          add_filter( 'lsx_health_plan_connections', array( $this, 'enable_connections' ), 10, 1 );
39
+          add_action( 'cmb2_admin_init', array( $this, 'featured_metabox' ), 5 );
40
+          add_action( 'cmb2_admin_init', array( $this, 'details_metaboxes' ) );
41
+          add_filter( 'get_the_archive_title', array( $this, 'get_the_archive_title' ), 100 );
42 42
 
43
-		// Template Redirects.
44
-		add_filter( 'lsx_health_plan_archive_template', array( $this, 'enable_post_type' ), 10, 1 );
45
-	}
43
+          // Template Redirects.
44
+          add_filter( 'lsx_health_plan_archive_template', array( $this, 'enable_post_type' ), 10, 1 );
45
+     }
46 46
 
47
-	/**
48
-	 * Return an instance of this class.
49
-	 *
50
-	 * @since 1.0.0
51
-	 *
52
-	 * @return    object \lsx_health_plan\classes\Workout()    A single instance of this class.
53
-	 */
54
-	public static function get_instance() {
55
-		// If the single instance hasn't been set, set it now.
56
-		if ( null === self::$instance ) {
57
-			self::$instance = new self();
58
-		}
59
-		return self::$instance;
60
-	}
61
-	/**
62
-	 * Register the post type.
63
-	 */
64
-	public function register_post_type() {
65
-		$labels = array(
66
-			'name'               => esc_html__( 'Workouts', 'lsx-health-plan' ),
67
-			'singular_name'      => esc_html__( 'Workout', 'lsx-health-plan' ),
68
-			'add_new'            => esc_html_x( 'Add New', 'post type general name', 'lsx-health-plan' ),
69
-			'add_new_item'       => esc_html__( 'Add New', 'lsx-health-plan' ),
70
-			'edit_item'          => esc_html__( 'Edit', 'lsx-health-plan' ),
71
-			'new_item'           => esc_html__( 'New', 'lsx-health-plan' ),
72
-			'all_items'          => esc_html__( 'All Workouts', 'lsx-health-plan' ),
73
-			'view_item'          => esc_html__( 'View', 'lsx-health-plan' ),
74
-			'search_items'       => esc_html__( 'Search', 'lsx-health-plan' ),
75
-			'not_found'          => esc_html__( 'None found', 'lsx-health-plan' ),
76
-			'not_found_in_trash' => esc_html__( 'None found in Trash', 'lsx-health-plan' ),
77
-			'parent_item_colon'  => '',
78
-			'menu_name'          => esc_html__( 'Workouts', 'lsx-health-plan' ),
79
-		);
80
-		$args = array(
81
-			'labels'             => $labels,
82
-			'public'             => true,
83
-			'publicly_queryable' => true,
84
-			'show_ui'            => true,
85
-			'show_in_menu'       => true,
86
-			'show_in_rest'       => true,
87
-			'menu_icon'          => 'dashicons-universal-access',
88
-			'query_var'          => true,
89
-			'rewrite'            => array(
90
-				'slug' => \lsx_health_plan\functions\get_option( 'endpoint_workout', 'workout' ),
91
-			),
92
-			'capability_type'    => 'page',
93
-			'has_archive'        => \lsx_health_plan\functions\get_option( 'endpoint_workout_archive', 'workouts' ),
94
-			'hierarchical'       => true,
95
-			'menu_position'      => null,
96
-			'supports'           => array(
97
-				'title',
98
-				'thumbnail',
99
-				'editor',
100
-				'excerpt',
101
-				'page-attributes',
102
-				'custom-fields',
103
-			),
104
-		);
105
-		register_post_type( 'workout', $args );
106
-	}
47
+     /**
48
+      * Return an instance of this class.
49
+      *
50
+      * @since 1.0.0
51
+      *
52
+      * @return    object \lsx_health_plan\classes\Workout()    A single instance of this class.
53
+      */
54
+     public static function get_instance() {
55
+          // If the single instance hasn't been set, set it now.
56
+          if ( null === self::$instance ) {
57
+               self::$instance = new self();
58
+          }
59
+          return self::$instance;
60
+     }
61
+     /**
62
+      * Register the post type.
63
+      */
64
+     public function register_post_type() {
65
+          $labels = array(
66
+               'name'               => esc_html__( 'Workouts', 'lsx-health-plan' ),
67
+               'singular_name'      => esc_html__( 'Workout', 'lsx-health-plan' ),
68
+               'add_new'            => esc_html_x( 'Add New', 'post type general name', 'lsx-health-plan' ),
69
+               'add_new_item'       => esc_html__( 'Add New', 'lsx-health-plan' ),
70
+               'edit_item'          => esc_html__( 'Edit', 'lsx-health-plan' ),
71
+               'new_item'           => esc_html__( 'New', 'lsx-health-plan' ),
72
+               'all_items'          => esc_html__( 'All Workouts', 'lsx-health-plan' ),
73
+               'view_item'          => esc_html__( 'View', 'lsx-health-plan' ),
74
+               'search_items'       => esc_html__( 'Search', 'lsx-health-plan' ),
75
+               'not_found'          => esc_html__( 'None found', 'lsx-health-plan' ),
76
+               'not_found_in_trash' => esc_html__( 'None found in Trash', 'lsx-health-plan' ),
77
+               'parent_item_colon'  => '',
78
+               'menu_name'          => esc_html__( 'Workouts', 'lsx-health-plan' ),
79
+          );
80
+          $args = array(
81
+               'labels'             => $labels,
82
+               'public'             => true,
83
+               'publicly_queryable' => true,
84
+               'show_ui'            => true,
85
+               'show_in_menu'       => true,
86
+               'show_in_rest'       => true,
87
+               'menu_icon'          => 'dashicons-universal-access',
88
+               'query_var'          => true,
89
+               'rewrite'            => array(
90
+                    'slug' => \lsx_health_plan\functions\get_option( 'endpoint_workout', 'workout' ),
91
+               ),
92
+               'capability_type'    => 'page',
93
+               'has_archive'        => \lsx_health_plan\functions\get_option( 'endpoint_workout_archive', 'workouts' ),
94
+               'hierarchical'       => true,
95
+               'menu_position'      => null,
96
+               'supports'           => array(
97
+                    'title',
98
+                    'thumbnail',
99
+                    'editor',
100
+                    'excerpt',
101
+                    'page-attributes',
102
+                    'custom-fields',
103
+               ),
104
+          );
105
+          register_post_type( 'workout', $args );
106
+     }
107 107
 
108
-	/**
109
-	 * Register the Type taxonomy.
110
-	 */
111
-	public function recipe_type_taxonomy_setup() {
112
-		$labels = array(
113
-			'name'              => esc_html_x( 'Workout Type', 'taxonomy general name', 'lsx-health-plan' ),
114
-			'singular_name'     => esc_html_x( 'Workout Type', 'taxonomy singular name', 'lsx-health-plan' ),
115
-			'search_items'      => esc_html__( 'Search', 'lsx-health-plan' ),
116
-			'all_items'         => esc_html__( 'All', 'lsx-health-plan' ),
117
-			'parent_item'       => esc_html__( 'Parent', 'lsx-health-plan' ),
118
-			'parent_item_colon' => esc_html__( 'Parent:', 'lsx-health-plan' ),
119
-			'edit_item'         => esc_html__( 'Edit', 'lsx-health-plan' ),
120
-			'update_item'       => esc_html__( 'Update', 'lsx-health-plan' ),
121
-			'add_new_item'      => esc_html__( 'Add New', 'lsx-health-plan' ),
122
-			'new_item_name'     => esc_html__( 'New Name', 'lsx-health-plan' ),
123
-			'menu_name'         => esc_html__( 'Workout Types', 'lsx-health-plan' ),
124
-		);
108
+     /**
109
+      * Register the Type taxonomy.
110
+      */
111
+     public function recipe_type_taxonomy_setup() {
112
+          $labels = array(
113
+               'name'              => esc_html_x( 'Workout Type', 'taxonomy general name', 'lsx-health-plan' ),
114
+               'singular_name'     => esc_html_x( 'Workout Type', 'taxonomy singular name', 'lsx-health-plan' ),
115
+               'search_items'      => esc_html__( 'Search', 'lsx-health-plan' ),
116
+               'all_items'         => esc_html__( 'All', 'lsx-health-plan' ),
117
+               'parent_item'       => esc_html__( 'Parent', 'lsx-health-plan' ),
118
+               'parent_item_colon' => esc_html__( 'Parent:', 'lsx-health-plan' ),
119
+               'edit_item'         => esc_html__( 'Edit', 'lsx-health-plan' ),
120
+               'update_item'       => esc_html__( 'Update', 'lsx-health-plan' ),
121
+               'add_new_item'      => esc_html__( 'Add New', 'lsx-health-plan' ),
122
+               'new_item_name'     => esc_html__( 'New Name', 'lsx-health-plan' ),
123
+               'menu_name'         => esc_html__( 'Workout Types', 'lsx-health-plan' ),
124
+          );
125 125
 
126
-		$args = array(
127
-			'hierarchical'      => true,
128
-			'labels'            => $labels,
129
-			'show_ui'           => true,
130
-			'show_admin_column' => true,
131
-			'query_var'         => true,
132
-			'rewrite'           => array(
133
-				'slug' => 'workout-type',
134
-			),
135
-		);
126
+          $args = array(
127
+               'hierarchical'      => true,
128
+               'labels'            => $labels,
129
+               'show_ui'           => true,
130
+               'show_admin_column' => true,
131
+               'query_var'         => true,
132
+               'rewrite'           => array(
133
+                    'slug' => 'workout-type',
134
+               ),
135
+          );
136 136
 
137
-		register_taxonomy( 'workout-type', array( 'workout' ), $args );
138
-	}
137
+          register_taxonomy( 'workout-type', array( 'workout' ), $args );
138
+     }
139 139
 
140
-	/**
141
-	 * Adds the post type to the different arrays.
142
-	 *
143
-	 * @param array $post_types
144
-	 * @return array
145
-	 */
146
-	public function enable_post_type( $post_types = array() ) {
147
-		$post_types[] = $this->slug;
148
-		return $post_types;
149
-	}
140
+     /**
141
+      * Adds the post type to the different arrays.
142
+      *
143
+      * @param array $post_types
144
+      * @return array
145
+      */
146
+     public function enable_post_type( $post_types = array() ) {
147
+          $post_types[] = $this->slug;
148
+          return $post_types;
149
+     }
150 150
 
151
-	/**
152
-	 * Enables the Bi Directional relationships
153
-	 *
154
-	 * @param array $connections
155
-	 * @return void
156
-	 */
157
-	public function enable_connections( $connections = array() ) {
158
-		$connections['workout']['connected_plans'] = 'connected_workouts';
159
-		$connections['plan']['connected_workouts'] = 'connected_plans';
151
+     /**
152
+      * Enables the Bi Directional relationships
153
+      *
154
+      * @param array $connections
155
+      * @return void
156
+      */
157
+     public function enable_connections( $connections = array() ) {
158
+          $connections['workout']['connected_plans'] = 'connected_workouts';
159
+          $connections['plan']['connected_workouts'] = 'connected_plans';
160 160
 
161
-		$connections['workout']['connected_videos'] = 'connected_workouts';
162
-		$connections['video']['connected_workouts'] = 'connected_videos';
161
+          $connections['workout']['connected_videos'] = 'connected_workouts';
162
+          $connections['video']['connected_workouts'] = 'connected_videos';
163 163
 
164
-		$connections['workout']['connected_posts'] = 'connected_workouts';
165
-		$connections['post']['connected_workouts'] = 'connected_posts';
166
-		return $connections;
167
-	}
164
+          $connections['workout']['connected_posts'] = 'connected_workouts';
165
+          $connections['post']['connected_workouts'] = 'connected_posts';
166
+          return $connections;
167
+     }
168 168
 
169
-	/**
170
-	 * Remove the "Archives:" from the post type workouts.
171
-	 *
172
-	 * @param string $title the term title.
173
-	 * @return string
174
-	 */
175
-	public function get_the_archive_title( $title ) {
176
-		if ( is_post_type_archive( 'workout' ) ) {
177
-			$title = __( 'Workouts', 'lsx-health-plan' );
178
-		}
179
-		return $title;
180
-	}
169
+     /**
170
+      * Remove the "Archives:" from the post type workouts.
171
+      *
172
+      * @param string $title the term title.
173
+      * @return string
174
+      */
175
+     public function get_the_archive_title( $title ) {
176
+          if ( is_post_type_archive( 'workout' ) ) {
177
+               $title = __( 'Workouts', 'lsx-health-plan' );
178
+          }
179
+          return $title;
180
+     }
181 181
 
182
-	/**
183
-	 * Define the metabox and field configurations.
184
-	 */
185
-	public function featured_metabox() {
186
-		$cmb = new_cmb2_box(
187
-			array(
188
-				'id'           => $this->slug . '_featured_metabox_workout',
189
-				'title'        => __( 'Featured Workout', 'lsx-health-plan' ),
190
-				'object_types' => array( $this->slug ), // Post type
191
-				'context'      => 'side',
192
-				'priority'     => 'high',
193
-				'show_names'   => true,
194
-			)
195
-		);
196
-		$cmb->add_field(
197
-			array(
198
-				'name'       => __( 'Featured Workout', 'lsx-health-plan' ),
199
-				'desc'       => __( 'Enable a featured workout' ),
200
-				'id'         => $this->slug . '_featured_workout',
201
-				'type'       => 'checkbox',
202
-				'show_on_cb' => 'cmb2_hide_if_no_cats',
203
-			)
204
-		);
205
-	}
182
+     /**
183
+      * Define the metabox and field configurations.
184
+      */
185
+     public function featured_metabox() {
186
+          $cmb = new_cmb2_box(
187
+               array(
188
+                    'id'           => $this->slug . '_featured_metabox_workout',
189
+                    'title'        => __( 'Featured Workout', 'lsx-health-plan' ),
190
+                    'object_types' => array( $this->slug ), // Post type
191
+                    'context'      => 'side',
192
+                    'priority'     => 'high',
193
+                    'show_names'   => true,
194
+               )
195
+          );
196
+          $cmb->add_field(
197
+               array(
198
+                    'name'       => __( 'Featured Workout', 'lsx-health-plan' ),
199
+                    'desc'       => __( 'Enable a featured workout' ),
200
+                    'id'         => $this->slug . '_featured_workout',
201
+                    'type'       => 'checkbox',
202
+                    'show_on_cb' => 'cmb2_hide_if_no_cats',
203
+               )
204
+          );
205
+     }
206 206
 
207
-	/**
208
-	 * Define the metabox and field configurations.
209
-	 */
210
-	public function details_metaboxes() {
207
+     /**
208
+      * Define the metabox and field configurations.
209
+      */
210
+     public function details_metaboxes() {
211 211
 
212
-		$cmb = new_cmb2_box( array(
213
-			'id'           => $this->slug . '_details_metabox',
214
-			'title'        => __( 'Workout Details', 'lsx-health-plan' ),
215
-			'object_types' => array( $this->slug ), // Post type
216
-			'context'      => 'normal',
217
-			'priority'     => 'high',
218
-			'show_names'   => true,
219
-		) );
212
+          $cmb = new_cmb2_box( array(
213
+               'id'           => $this->slug . '_details_metabox',
214
+               'title'        => __( 'Workout Details', 'lsx-health-plan' ),
215
+               'object_types' => array( $this->slug ), // Post type
216
+               'context'      => 'normal',
217
+               'priority'     => 'high',
218
+               'show_names'   => true,
219
+          ) );
220 220
 
221
-		$cmb->add_field( array(
222
-			'name' => __( 'Workout Short Description', 'lsx-health-plan' ),
223
-			'id'   => $this->slug . '_short_description',
224
-			'type' => 'textarea_small',
225
-			'desc' => __( 'Add a small description for this workout (optional)', 'lsx-health-plan' ),
226
-		) );
221
+          $cmb->add_field( array(
222
+               'name' => __( 'Workout Short Description', 'lsx-health-plan' ),
223
+               'id'   => $this->slug . '_short_description',
224
+               'type' => 'textarea_small',
225
+               'desc' => __( 'Add a small description for this workout (optional)', 'lsx-health-plan' ),
226
+          ) );
227 227
 
228
-		$workout_sections = apply_filters( 'lsx_health_plan_workout_sections_amount', 6 );
229
-		if ( false !== $workout_sections && null !== $workout_sections ) {
230
-			$i = 1;
231
-			while ( $i <= $workout_sections ) {
228
+          $workout_sections = apply_filters( 'lsx_health_plan_workout_sections_amount', 6 );
229
+          if ( false !== $workout_sections && null !== $workout_sections ) {
230
+               $i = 1;
231
+               while ( $i <= $workout_sections ) {
232 232
 
233
-				$cmb_group = new_cmb2_box( array(
234
-					'id'           => $this->slug . '_section_' . $i . '_metabox',
235
-					'title'        => esc_html__( 'Exercise Group ', 'lsx-health-plan' ) . $i,
236
-					'object_types' => array( $this->slug ),
237
-				) );
233
+                    $cmb_group = new_cmb2_box( array(
234
+                         'id'           => $this->slug . '_section_' . $i . '_metabox',
235
+                         'title'        => esc_html__( 'Exercise Group ', 'lsx-health-plan' ) . $i,
236
+                         'object_types' => array( $this->slug ),
237
+                    ) );
238 238
 
239
-				$cmb_group->add_field( array(
240
-					'name'       => __( 'Title', 'lsx-health-plan' ),
241
-					'id'         => $this->slug . '_section_' . $i . '_title',
242
-					'type'       => 'text',
243
-					'show_on_cb' => 'cmb2_hide_if_no_cats',
244
-				) );
239
+                    $cmb_group->add_field( array(
240
+                         'name'       => __( 'Title', 'lsx-health-plan' ),
241
+                         'id'         => $this->slug . '_section_' . $i . '_title',
242
+                         'type'       => 'text',
243
+                         'show_on_cb' => 'cmb2_hide_if_no_cats',
244
+                    ) );
245 245
 
246
-				$cmb_group->add_field(
247
-					array(
248
-						'name'       => __( 'Description', 'lsx-health-plan' ),
249
-						'id'         => $this->slug . '_section_' . $i . '_description',
250
-						'type'       => 'wysiwyg',
251
-						'show_on_cb' => 'cmb2_hide_if_no_cats',
252
-						'options'    => array(
253
-							'textarea_rows' => 5,
254
-						),
255
-					)
256
-				);
246
+                    $cmb_group->add_field(
247
+                         array(
248
+                              'name'       => __( 'Description', 'lsx-health-plan' ),
249
+                              'id'         => $this->slug . '_section_' . $i . '_description',
250
+                              'type'       => 'wysiwyg',
251
+                              'show_on_cb' => 'cmb2_hide_if_no_cats',
252
+                              'options'    => array(
253
+                                   'textarea_rows' => 5,
254
+                              ),
255
+                         )
256
+                    );
257 257
 
258
-				/**
259
-				 * Repeatable Field Groups
260
-				 */
261
-				// $group_field_id is the field id string, so in this case: $prefix . 'demo'
262
-				$group_field_id = $cmb_group->add_field(
263
-					array(
264
-						'id'      => $this->slug . '_section_' . $i,
265
-						'type'    => 'group',
266
-						'options' => array(
267
-							'group_title'   => esc_html__( 'Exercise {#}', 'lsx-health-plan' ), // {#} gets replaced by row number
268
-							'add_button'    => esc_html__( 'Add New', 'lsx-health-plan' ),
269
-							'remove_button' => esc_html__( 'Delete', 'lsx-health-plan' ),
270
-							'sortable'      => true,
271
-							'closed'        => true, // true to have the groups closed by default
272
-						),
273
-					)
274
-				);
258
+                    /**
259
+                     * Repeatable Field Groups
260
+                     */
261
+                    // $group_field_id is the field id string, so in this case: $prefix . 'demo'
262
+                    $group_field_id = $cmb_group->add_field(
263
+                         array(
264
+                              'id'      => $this->slug . '_section_' . $i,
265
+                              'type'    => 'group',
266
+                              'options' => array(
267
+                                   'group_title'   => esc_html__( 'Exercise {#}', 'lsx-health-plan' ), // {#} gets replaced by row number
268
+                                   'add_button'    => esc_html__( 'Add New', 'lsx-health-plan' ),
269
+                                   'remove_button' => esc_html__( 'Delete', 'lsx-health-plan' ),
270
+                                   'sortable'      => true,
271
+                                   'closed'        => true, // true to have the groups closed by default
272
+                              ),
273
+                         )
274
+                    );
275 275
 
276
-				if ( false !== \lsx_health_plan\functions\get_option( 'exercise_enabled', false ) ) {
277
-					$cmb_group->add_group_field(
278
-						$group_field_id,
279
-						array(
280
-							'name'       => __( 'Exercise related to this workout', 'lsx-health-plan' ),
281
-							'id'         => 'connected_exercises',
282
-							'type'       => 'post_search_ajax',
283
-							// Optional :
284
-							'limit'      => 1, // Limit selection to X items only (default 1)
285
-							'sortable'   => true,  // Allow selected items to be sortable (default false)
286
-							'query_args' => array(
287
-								'post_type'      => array( 'exercise' ),
288
-								'post_status'    => array( 'publish' ),
289
-								'posts_per_page' => -1,
290
-							),
291
-						)
292
-					);
293
-				} else {
294
-					$cmb_group->add_group_field(
295
-						$group_field_id,
296
-						array(
297
-							'name'       => __( 'Video related to this workout', 'lsx-health-plan' ),
298
-							'id'         => 'connected_videos',
299
-							'type'       => 'post_search_ajax',
300
-							// Optional :
301
-							'limit'      => 1, // Limit selection to X items only (default 1)
302
-							'sortable'   => true,  // Allow selected items to be sortable (default false)
303
-							'query_args' => array(
304
-								'post_type'      => array( 'video' ),
305
-								'post_status'    => array( 'publish' ),
306
-								'posts_per_page' => -1,
307
-							),
308
-						)
309
-					);
310
-					$cmb_group->add_group_field(
311
-						$group_field_id,
312
-						array(
313
-							'name' => esc_html__( 'Workout Name', 'lsx-health-plan' ),
314
-							'id'   => 'name',
315
-							'type' => 'text',
316
-							// 'repeatable' => true, // Repeatable fields are supported w/in repeatable groups (for most types)
317
-						)
318
-					);
276
+                    if ( false !== \lsx_health_plan\functions\get_option( 'exercise_enabled', false ) ) {
277
+                         $cmb_group->add_group_field(
278
+                              $group_field_id,
279
+                              array(
280
+                                   'name'       => __( 'Exercise related to this workout', 'lsx-health-plan' ),
281
+                                   'id'         => 'connected_exercises',
282
+                                   'type'       => 'post_search_ajax',
283
+                                   // Optional :
284
+                                   'limit'      => 1, // Limit selection to X items only (default 1)
285
+                                   'sortable'   => true,  // Allow selected items to be sortable (default false)
286
+                                   'query_args' => array(
287
+                                        'post_type'      => array( 'exercise' ),
288
+                                        'post_status'    => array( 'publish' ),
289
+                                        'posts_per_page' => -1,
290
+                                   ),
291
+                              )
292
+                         );
293
+                    } else {
294
+                         $cmb_group->add_group_field(
295
+                              $group_field_id,
296
+                              array(
297
+                                   'name'       => __( 'Video related to this workout', 'lsx-health-plan' ),
298
+                                   'id'         => 'connected_videos',
299
+                                   'type'       => 'post_search_ajax',
300
+                                   // Optional :
301
+                                   'limit'      => 1, // Limit selection to X items only (default 1)
302
+                                   'sortable'   => true,  // Allow selected items to be sortable (default false)
303
+                                   'query_args' => array(
304
+                                        'post_type'      => array( 'video' ),
305
+                                        'post_status'    => array( 'publish' ),
306
+                                        'posts_per_page' => -1,
307
+                                   ),
308
+                              )
309
+                         );
310
+                         $cmb_group->add_group_field(
311
+                              $group_field_id,
312
+                              array(
313
+                                   'name' => esc_html__( 'Workout Name', 'lsx-health-plan' ),
314
+                                   'id'   => 'name',
315
+                                   'type' => 'text',
316
+                                   // 'repeatable' => true, // Repeatable fields are supported w/in repeatable groups (for most types)
317
+                              )
318
+                         );
319 319
 
320
-					$cmb_group->add_group_field(
321
-						$group_field_id,
322
-						array(
323
-							'name'    => __( 'Description', 'lsx-health-plan' ),
324
-							'id'      => 'description',
325
-							'type'    => 'wysiwyg',
326
-							'options' => array(
327
-								'textarea_rows' => 2,
328
-							),
329
-						)
330
-					);
331
-				}
320
+                         $cmb_group->add_group_field(
321
+                              $group_field_id,
322
+                              array(
323
+                                   'name'    => __( 'Description', 'lsx-health-plan' ),
324
+                                   'id'      => 'description',
325
+                                   'type'    => 'wysiwyg',
326
+                                   'options' => array(
327
+                                        'textarea_rows' => 2,
328
+                                   ),
329
+                              )
330
+                         );
331
+                    }
332 332
 
333
-				$cmb_group->add_group_field(
334
-					$group_field_id,
335
-					array(
336
-						'name' => esc_html__( 'Exercise title (Optional)', 'lsx-health-plan' ),
337
-						'id'   => 'alt_title',
338
-						'type' => 'text',
339
-					)
340
-				);
341
-				$cmb_group->add_group_field(
342
-					$group_field_id,
343
-					array(
344
-						'name' => esc_html__( 'Exercise Description (Optional)', 'lsx-health-plan' ),
345
-						'id'   => 'alt_description',
346
-						'type' => 'textarea_small',
347
-					)
348
-				);
349
-				$cmb_group->add_group_field(
350
-					$group_field_id,
351
-					array(
352
-						'name' => esc_html__( 'Reps / Time / Distance', 'lsx-health-plan' ),
353
-						'id'   => 'reps',
354
-						'type' => 'text',
355
-						// 'repeatable' => true, // Repeatable fields are supported w/in repeatable groups (for most types)
356
-					)
357
-				);
358
-				$cmb_group->add_group_field(
359
-					$group_field_id,
360
-					array(
361
-						'name'         => __( 'Exercise Image (Optional)', 'lsx-health-plan' ),
362
-						'id'           => 'exercise_alt_thumbnail',
363
-						'type'         => 'file',
364
-						'text'         => array(
365
-							'add_upload_file_text' => __( 'Add File', 'lsx-health-plan' ),
366
-						),
367
-						'desc'         => __( 'Upload an image 300px x 300px in size.', 'lsx-health-plan' ),
368
-						'query_args'   => array(
369
-							'type' => array(
370
-								'image/gif',
371
-								'image/jpeg',
372
-								'image/png',
373
-							),
374
-						),
375
-						'preview_size' => 'thumbnail',
376
-						'classes'      => 'lsx-field-col lsx-field-add-field  lsx-field-col-25',
377
-					)
378
-				);
333
+                    $cmb_group->add_group_field(
334
+                         $group_field_id,
335
+                         array(
336
+                              'name' => esc_html__( 'Exercise title (Optional)', 'lsx-health-plan' ),
337
+                              'id'   => 'alt_title',
338
+                              'type' => 'text',
339
+                         )
340
+                    );
341
+                    $cmb_group->add_group_field(
342
+                         $group_field_id,
343
+                         array(
344
+                              'name' => esc_html__( 'Exercise Description (Optional)', 'lsx-health-plan' ),
345
+                              'id'   => 'alt_description',
346
+                              'type' => 'textarea_small',
347
+                         )
348
+                    );
349
+                    $cmb_group->add_group_field(
350
+                         $group_field_id,
351
+                         array(
352
+                              'name' => esc_html__( 'Reps / Time / Distance', 'lsx-health-plan' ),
353
+                              'id'   => 'reps',
354
+                              'type' => 'text',
355
+                              // 'repeatable' => true, // Repeatable fields are supported w/in repeatable groups (for most types)
356
+                         )
357
+                    );
358
+                    $cmb_group->add_group_field(
359
+                         $group_field_id,
360
+                         array(
361
+                              'name'         => __( 'Exercise Image (Optional)', 'lsx-health-plan' ),
362
+                              'id'           => 'exercise_alt_thumbnail',
363
+                              'type'         => 'file',
364
+                              'text'         => array(
365
+                                   'add_upload_file_text' => __( 'Add File', 'lsx-health-plan' ),
366
+                              ),
367
+                              'desc'         => __( 'Upload an image 300px x 300px in size.', 'lsx-health-plan' ),
368
+                              'query_args'   => array(
369
+                                   'type' => array(
370
+                                        'image/gif',
371
+                                        'image/jpeg',
372
+                                        'image/png',
373
+                                   ),
374
+                              ),
375
+                              'preview_size' => 'thumbnail',
376
+                              'classes'      => 'lsx-field-col lsx-field-add-field  lsx-field-col-25',
377
+                         )
378
+                    );
379 379
 
380
-				$i++;
381
-			};
382
-		}
383
-	}
380
+                    $i++;
381
+               };
382
+          }
383
+     }
384 384
 }
Please login to merge, or discard this patch.
classes/integrations/woocommerce/class-account.php 1 patch
Indentation   +514 added lines, -514 removed lines patch added patch discarded remove patch
@@ -8,326 +8,326 @@  discard block
 block discarded – undo
8 8
  */
9 9
 class Account {
10 10
 
11
-	/**
12
-	 * Holds class instance
13
-	 *
14
-	 * @since 1.0.0
15
-	 *
16
-	 * @var      object \lsx_health_plan\classes\integrations\woocommerce\Account()
17
-	 */
18
-	protected static $instance = null;
19
-
20
-	/**
21
-	 * Contructor
22
-	 */
23
-	public function __construct() {
24
-		add_action( 'init', array( $this, 'init' ), 20, 1 );
25
-
26
-		// Redirect to the Edit Account Template.
27
-		add_filter( 'template_include', array( $this, 'account_endpoint_redirect' ), 99 );
28
-
29
-		add_action( 'woocommerce_edit_account_form', array( $this, 'print_user_frontend_fields' ), 10 );
30
-
31
-		add_filter( 'lsx_hp_profile_fields', array( $this, 'add_post_data_to_account_fields' ), 10, 1 );
32
-		add_action( 'show_user_profile', array( $this, 'print_user_admin_fields' ), 30 );
33
-
34
-		add_action( 'personal_options_update', array( $this, 'save_account_fields' ) );
35
-		add_action( 'edit_user_profile_update', array( $this, 'save_account_fields' ) );
36
-
37
-		add_action( 'woocommerce_save_account_details', array( $this, 'save_account_fields' ) );
38
-		add_filter( 'woocommerce_save_account_details_errors', array( $this, 'validate_user_frontend_fields' ), 10 );
39
-
40
-		// Profile Fields.
41
-		add_filter( 'woocommerce_form_field_text', array( $this, 'lsx_profile_photo_field_filter' ), 10, 4 );
42
-		add_action( 'woocommerce_after_edit_account_form', array( $this, 'action_woocommerce_after_edit_account_form' ), 10, 0 );
43
-	}
44
-
45
-	/**
46
-	 * Return an instance of this class.
47
-	 *
48
-	 * @since 1.0.0
49
-	 *
50
-	 * @return    object \lsx_health_plan\classes\integration\woocommerce\Account()    A single instance of this class.
51
-	 */
52
-	public static function get_instance() {
53
-		// If the single instance hasn't been set, set it now.
54
-		if ( null === self::$instance ) {
55
-			self::$instance = new self();
56
-		}
57
-		return self::$instance;
58
-	}
59
-
60
-	/**
61
-	 * Runs on init
62
-	 *
63
-	 * @return void
64
-	 */
65
-	public function init() {
66
-		remove_action( 'woocommerce_account_navigation', 'woocommerce_account_navigation' );
67
-	}
68
-
69
-	/**
70
-	 * Redirects to the my account template.
71
-	 *
72
-	 * @param string $template
73
-	 * @return string
74
-	 */
75
-	public function account_endpoint_redirect( $template ) {
76
-		if ( function_exists( 'is_account_page' ) && is_account_page() ) {
77
-			if ( empty( locate_template( array( 'page-template-my-plan.php' ) ) ) && file_exists( LSX_HEALTH_PLAN_PATH . 'templates/page-template-my-plan.php' ) ) {
78
-				$template = LSX_HEALTH_PLAN_PATH . 'templates/page-template-my-plan.php';
79
-			}
80
-		}
81
-		return $template;
82
-	}
83
-
84
-	/**
85
-	 * Add post values to account fields if set.
86
-	 *
87
-	 * @param array $fields
88
-	 *
89
-	 * @return array
90
-	 */
91
-	public function add_post_data_to_account_fields( $fields ) {
92
-		if ( empty( $_POST ) && wp_verify_nonce( sanitize_key( $_POST ) ) ) {
93
-			return $fields;
94
-		}
95
-
96
-		foreach ( $fields as $key => $field_args ) {
97
-			if ( isset( $_POST[ $key ] ) && empty( $_POST[ $key ] ) && wp_verify_nonce( sanitize_key( $_POST[ $key ] ) ) ) {
98
-				$fields[ $key ]['value'] = '';
99
-				continue;
100
-			}
101
-
102
-			if ( isset( $_POST[ $key ] ) ) {
103
-				$fields[ $key ]['value'] = sanitize_key( $_POST[ $key ] );
104
-			}
105
-		}
106
-
107
-		return $fields;
108
-	}
109
-
110
-	/**
111
-	 * Add fields to registration form and account area.
112
-	 */
113
-	public function print_user_frontend_fields() {
114
-		$fields            = $this->get_account_fields();
115
-		$is_user_logged_in = is_user_logged_in();
116
-
117
-		$all_disabled = \lsx_health_plan\functions\get_option( 'disable_all_stats', false );
118
-		if ( 'on' !== $all_disabled ) {
119
-			echo wp_kses_post( '<h2 class="title-lined my-stats-title">' . __( 'My Stats', 'lsx-health-plan' ) . '</h2><p><strong>' . __( 'My physical info', 'lsx-health-plan' ) . '</strong></p>' );
120
-			echo wp_kses_post( '<div class="my-stats-wrap"><div class="my-stats">' );
121
-			foreach ( $fields as $key => $field_args ) {
122
-				$value = null;
123
-				if ( ! $this->is_field_visible( $field_args ) ) {
124
-					continue;
125
-				}
126
-				if ( $is_user_logged_in ) {
127
-					$user_id = $this->get_edit_user_id();
128
-					$value   = $this->get_userdata( $user_id, $key );
129
-				}
130
-				$value = ( isset( $field_args['value'] ) && '' !== $field_args['value'] ) ? $field_args['value'] : $value;
131
-				woocommerce_form_field( $key, $field_args, $value );
132
-			}
133
-			$is_bmi_disabled = \lsx_health_plan\functions\get_option( 'disable_bmi_checkbox', false );
134
-			if ( 'on' !== $is_bmi_disabled ) {
135
-				echo wp_kses_post( '<p class="form-row calculate-bmi"><label>BMI</label><button class="btn border-btn">' . __( 'Calculate', 'lsx-health-plan' ) . '<i class="fa fa-calculator" aria-hidden="true"></i></button></p>' );
136
-				echo wp_kses_post( '</div>' );
137
-				echo wp_kses_post( '<div class="description"><p class="bmi-title"><strong>' . __( 'Your BMI score', 'lsx-health-plan' ) . '</strong></p>' );
138
-				echo wp_kses_post( '<p>' . __( "BMI is a measurement of a person's leanness or corpulence based on their height and weight, and is intended to quantify tissue mass. It is widely used as a general indicator of whether a person has a healthy body weight for their height.", 'lsx-health-plan' ) . '</p></div></div>' );
139
-			}
11
+     /**
12
+      * Holds class instance
13
+      *
14
+      * @since 1.0.0
15
+      *
16
+      * @var      object \lsx_health_plan\classes\integrations\woocommerce\Account()
17
+      */
18
+     protected static $instance = null;
19
+
20
+     /**
21
+      * Contructor
22
+      */
23
+     public function __construct() {
24
+          add_action( 'init', array( $this, 'init' ), 20, 1 );
25
+
26
+          // Redirect to the Edit Account Template.
27
+          add_filter( 'template_include', array( $this, 'account_endpoint_redirect' ), 99 );
28
+
29
+          add_action( 'woocommerce_edit_account_form', array( $this, 'print_user_frontend_fields' ), 10 );
30
+
31
+          add_filter( 'lsx_hp_profile_fields', array( $this, 'add_post_data_to_account_fields' ), 10, 1 );
32
+          add_action( 'show_user_profile', array( $this, 'print_user_admin_fields' ), 30 );
33
+
34
+          add_action( 'personal_options_update', array( $this, 'save_account_fields' ) );
35
+          add_action( 'edit_user_profile_update', array( $this, 'save_account_fields' ) );
36
+
37
+          add_action( 'woocommerce_save_account_details', array( $this, 'save_account_fields' ) );
38
+          add_filter( 'woocommerce_save_account_details_errors', array( $this, 'validate_user_frontend_fields' ), 10 );
39
+
40
+          // Profile Fields.
41
+          add_filter( 'woocommerce_form_field_text', array( $this, 'lsx_profile_photo_field_filter' ), 10, 4 );
42
+          add_action( 'woocommerce_after_edit_account_form', array( $this, 'action_woocommerce_after_edit_account_form' ), 10, 0 );
43
+     }
44
+
45
+     /**
46
+      * Return an instance of this class.
47
+      *
48
+      * @since 1.0.0
49
+      *
50
+      * @return    object \lsx_health_plan\classes\integration\woocommerce\Account()    A single instance of this class.
51
+      */
52
+     public static function get_instance() {
53
+          // If the single instance hasn't been set, set it now.
54
+          if ( null === self::$instance ) {
55
+               self::$instance = new self();
56
+          }
57
+          return self::$instance;
58
+     }
59
+
60
+     /**
61
+      * Runs on init
62
+      *
63
+      * @return void
64
+      */
65
+     public function init() {
66
+          remove_action( 'woocommerce_account_navigation', 'woocommerce_account_navigation' );
67
+     }
68
+
69
+     /**
70
+      * Redirects to the my account template.
71
+      *
72
+      * @param string $template
73
+      * @return string
74
+      */
75
+     public function account_endpoint_redirect( $template ) {
76
+          if ( function_exists( 'is_account_page' ) && is_account_page() ) {
77
+               if ( empty( locate_template( array( 'page-template-my-plan.php' ) ) ) && file_exists( LSX_HEALTH_PLAN_PATH . 'templates/page-template-my-plan.php' ) ) {
78
+                    $template = LSX_HEALTH_PLAN_PATH . 'templates/page-template-my-plan.php';
79
+               }
80
+          }
81
+          return $template;
82
+     }
83
+
84
+     /**
85
+      * Add post values to account fields if set.
86
+      *
87
+      * @param array $fields
88
+      *
89
+      * @return array
90
+      */
91
+     public function add_post_data_to_account_fields( $fields ) {
92
+          if ( empty( $_POST ) && wp_verify_nonce( sanitize_key( $_POST ) ) ) {
93
+               return $fields;
94
+          }
95
+
96
+          foreach ( $fields as $key => $field_args ) {
97
+               if ( isset( $_POST[ $key ] ) && empty( $_POST[ $key ] ) && wp_verify_nonce( sanitize_key( $_POST[ $key ] ) ) ) {
98
+                    $fields[ $key ]['value'] = '';
99
+                    continue;
100
+               }
101
+
102
+               if ( isset( $_POST[ $key ] ) ) {
103
+                    $fields[ $key ]['value'] = sanitize_key( $_POST[ $key ] );
104
+               }
105
+          }
106
+
107
+          return $fields;
108
+     }
109
+
110
+     /**
111
+      * Add fields to registration form and account area.
112
+      */
113
+     public function print_user_frontend_fields() {
114
+          $fields            = $this->get_account_fields();
115
+          $is_user_logged_in = is_user_logged_in();
116
+
117
+          $all_disabled = \lsx_health_plan\functions\get_option( 'disable_all_stats', false );
118
+          if ( 'on' !== $all_disabled ) {
119
+               echo wp_kses_post( '<h2 class="title-lined my-stats-title">' . __( 'My Stats', 'lsx-health-plan' ) . '</h2><p><strong>' . __( 'My physical info', 'lsx-health-plan' ) . '</strong></p>' );
120
+               echo wp_kses_post( '<div class="my-stats-wrap"><div class="my-stats">' );
121
+               foreach ( $fields as $key => $field_args ) {
122
+                    $value = null;
123
+                    if ( ! $this->is_field_visible( $field_args ) ) {
124
+                         continue;
125
+                    }
126
+                    if ( $is_user_logged_in ) {
127
+                         $user_id = $this->get_edit_user_id();
128
+                         $value   = $this->get_userdata( $user_id, $key );
129
+                    }
130
+                    $value = ( isset( $field_args['value'] ) && '' !== $field_args['value'] ) ? $field_args['value'] : $value;
131
+                    woocommerce_form_field( $key, $field_args, $value );
132
+               }
133
+               $is_bmi_disabled = \lsx_health_plan\functions\get_option( 'disable_bmi_checkbox', false );
134
+               if ( 'on' !== $is_bmi_disabled ) {
135
+                    echo wp_kses_post( '<p class="form-row calculate-bmi"><label>BMI</label><button class="btn border-btn">' . __( 'Calculate', 'lsx-health-plan' ) . '<i class="fa fa-calculator" aria-hidden="true"></i></button></p>' );
136
+                    echo wp_kses_post( '</div>' );
137
+                    echo wp_kses_post( '<div class="description"><p class="bmi-title"><strong>' . __( 'Your BMI score', 'lsx-health-plan' ) . '</strong></p>' );
138
+                    echo wp_kses_post( '<p>' . __( "BMI is a measurement of a person's leanness or corpulence based on their height and weight, and is intended to quantify tissue mass. It is widely used as a general indicator of whether a person has a healthy body weight for their height.", 'lsx-health-plan' ) . '</p></div></div>' );
139
+               }
140 140
 			
141
-		}
142
-	}
143
-
144
-	/**
145
-	 * Get user data.
146
-	 *
147
-	 * @param $user_id
148
-	 * @param $key
149
-	 *
150
-	 * @return mixed|string
151
-	 */
152
-	public function get_userdata( $user_id, $key ) {
153
-		if ( ! $this->is_userdata( $key ) ) {
154
-			return get_user_meta( $user_id, $key, true );
155
-		}
156
-
157
-		$userdata = get_userdata( $user_id );
158
-
159
-		if ( ! $userdata || ! isset( $userdata->{$key} ) ) {
160
-			return '';
161
-		}
162
-
163
-		return $userdata->{$key};
164
-	}
165
-
166
-	/**
167
-	 * Get currently editing user ID (frontend account/edit profile/edit other user).
168
-	 *
169
-	 * @return int
170
-	 */
171
-	public function get_edit_user_id() {
172
-		return ( isset( $_GET['user_id'] ) && wp_verify_nonce( sanitize_key( $_GET['user_id'] ) ) ) ? (int) $_GET['user_id'] : get_current_user_id();
173
-	}
174
-
175
-
176
-	/**
177
-	 * Save registration fields.
178
-	 *
179
-	 * @param int $customer_id
180
-	 */
181
-	public function save_account_fields( $customer_id ) {
182
-		$nonce_value = wc_get_var( $_REQUEST['save-account-details-nonce'], wc_get_var( $_REQUEST['_wpnonce'], '' ) ); // @codingStandardsIgnoreLine.
183
-		if ( ! wp_verify_nonce( $nonce_value, 'save_account_details' ) ) {
184
-			return;
185
-		}
186
-
187
-		$fields         = $this->get_account_fields();
188
-		$sanitized_data = array();
189
-		foreach ( $fields as $key => $field_args ) {
190
-			if ( ! $this->is_field_visible( $field_args ) ) {
191
-				continue;
192
-			}
193
-
194
-			$sanitize = isset( $field_args['sanitize'] ) ? $field_args['sanitize'] : 'wc_clean';
195
-			$value    = ( isset( $_POST[ $key ] ) ) ? call_user_func( $sanitize, $_POST[ $key ] ) : '';
196
-			if ( $this->is_userdata( $key ) ) {
197
-
198
-				$sanitized_data[ $key ] = $value;
199
-				continue;
200
-			}
201
-
202
-			if ( 'profile_photo' === $key ) {
203
-				// This handles the image uploads.
204
-				require_once ABSPATH . 'wp-admin/includes/image.php';
205
-				require_once ABSPATH . 'wp-admin/includes/file.php';
206
-				require_once ABSPATH . 'wp-admin/includes/media.php';
207
-
208
-				$id = media_handle_upload( $key, 0, '' );
209
-				if ( ! is_wp_error( $id ) ) {
210
-					update_term_meta( $customer_id, $key . '_id', $id );
211
-					update_term_meta( $customer_id, $key, $id );
212
-				}
213
-			} else {
214
-				delete_user_meta( $customer_id, $key );
215
-				update_user_meta( $customer_id, $key, $value );
216
-			}
217
-		}
218
-
219
-		if ( ! empty( $sanitized_data ) ) {
220
-			$sanitized_data['ID'] = $customer_id;
221
-			wp_update_user( $sanitized_data );
222
-		}
223
-	}
224
-
225
-
226
-	/**
227
-	 * Is this field core user data.
228
-	 *
229
-	 * @param $key
230
-	 *
231
-	 * @return bool
232
-	 */
233
-	public function is_userdata( $key ) {
234
-		$userdata = array(
235
-			'user_pass',
236
-			'user_login',
237
-			'user_nicename',
238
-			'user_url',
239
-			'user_email',
240
-			'display_name',
241
-			'nickname',
242
-			'first_name',
243
-			'last_name',
244
-			'description',
245
-			'rich_editing',
246
-			'user_registered',
247
-			'role',
248
-			'jabber',
249
-			'aim',
250
-			'yim',
251
-			'show_admin_bar_front',
252
-		);
253
-
254
-		return in_array( $key, $userdata, true );
255
-	}
256
-
257
-	/**
258
-	 * Is field visible.
259
-	 *
260
-	 * @param $field_args
261
-	 *
262
-	 * @return bool
263
-	 */
264
-	public function is_field_visible( $field_args ) {
265
-		$visible = true;
266
-		$action  = filter_input( INPUT_POST, 'action' );
267
-
268
-		if ( is_admin() && ! empty( $field_args['hide_in_admin'] ) ) {
269
-			$visible = false;
270
-		} elseif ( ( is_account_page() || 'save_account_details' === $action ) && is_user_logged_in() && ! empty( $field_args['hide_in_account'] ) ) {
271
-			$visible = false;
272
-		} elseif ( ( is_account_page() || 'save_account_details' === $action ) && ! is_user_logged_in() && ! empty( $field_args['hide_in_registration'] ) ) {
273
-			$visible = false;
274
-		} elseif ( is_checkout() && ! empty( $field_args['hide_in_checkout'] ) ) {
275
-			$visible = false;
276
-		}
277
-
278
-		// Disable the fitness fields if needed.
279
-		$weight_key  = __( 'Weight:' );
280
-		$waist_key   = __( 'Waist:' );
281
-		$fitness_key = __( 'BMI Score:' );
282
-		if ( $weight_key === $field_args['label'] || $waist_key === $field_args['label'] || $fitness_key === $field_args['label'] ) {
283
-
284
-			// Check if all stats are disabled.
285
-			$all_disabled = \lsx_health_plan\functions\get_option( 'disable_all_stats', false );
286
-
287
-			$option_key = '';
288
-			switch ( $field_args['label'] ) {
289
-				case $weight_key:
290
-					$option_key = 'disable_weight_checkbox';
291
-					break;
292
-
293
-				case $weight_key:
294
-					$option_key = 'disable_height_checkbox';
295
-					break;
141
+          }
142
+     }
143
+
144
+     /**
145
+      * Get user data.
146
+      *
147
+      * @param $user_id
148
+      * @param $key
149
+      *
150
+      * @return mixed|string
151
+      */
152
+     public function get_userdata( $user_id, $key ) {
153
+          if ( ! $this->is_userdata( $key ) ) {
154
+               return get_user_meta( $user_id, $key, true );
155
+          }
156
+
157
+          $userdata = get_userdata( $user_id );
158
+
159
+          if ( ! $userdata || ! isset( $userdata->{$key} ) ) {
160
+               return '';
161
+          }
162
+
163
+          return $userdata->{$key};
164
+     }
165
+
166
+     /**
167
+      * Get currently editing user ID (frontend account/edit profile/edit other user).
168
+      *
169
+      * @return int
170
+      */
171
+     public function get_edit_user_id() {
172
+          return ( isset( $_GET['user_id'] ) && wp_verify_nonce( sanitize_key( $_GET['user_id'] ) ) ) ? (int) $_GET['user_id'] : get_current_user_id();
173
+     }
174
+
175
+
176
+     /**
177
+      * Save registration fields.
178
+      *
179
+      * @param int $customer_id
180
+      */
181
+     public function save_account_fields( $customer_id ) {
182
+          $nonce_value = wc_get_var( $_REQUEST['save-account-details-nonce'], wc_get_var( $_REQUEST['_wpnonce'], '' ) ); // @codingStandardsIgnoreLine.
183
+          if ( ! wp_verify_nonce( $nonce_value, 'save_account_details' ) ) {
184
+               return;
185
+          }
186
+
187
+          $fields         = $this->get_account_fields();
188
+          $sanitized_data = array();
189
+          foreach ( $fields as $key => $field_args ) {
190
+               if ( ! $this->is_field_visible( $field_args ) ) {
191
+                    continue;
192
+               }
193
+
194
+               $sanitize = isset( $field_args['sanitize'] ) ? $field_args['sanitize'] : 'wc_clean';
195
+               $value    = ( isset( $_POST[ $key ] ) ) ? call_user_func( $sanitize, $_POST[ $key ] ) : '';
196
+               if ( $this->is_userdata( $key ) ) {
197
+
198
+                    $sanitized_data[ $key ] = $value;
199
+                    continue;
200
+               }
201
+
202
+               if ( 'profile_photo' === $key ) {
203
+                    // This handles the image uploads.
204
+                    require_once ABSPATH . 'wp-admin/includes/image.php';
205
+                    require_once ABSPATH . 'wp-admin/includes/file.php';
206
+                    require_once ABSPATH . 'wp-admin/includes/media.php';
207
+
208
+                    $id = media_handle_upload( $key, 0, '' );
209
+                    if ( ! is_wp_error( $id ) ) {
210
+                         update_term_meta( $customer_id, $key . '_id', $id );
211
+                         update_term_meta( $customer_id, $key, $id );
212
+                    }
213
+               } else {
214
+                    delete_user_meta( $customer_id, $key );
215
+                    update_user_meta( $customer_id, $key, $value );
216
+               }
217
+          }
218
+
219
+          if ( ! empty( $sanitized_data ) ) {
220
+               $sanitized_data['ID'] = $customer_id;
221
+               wp_update_user( $sanitized_data );
222
+          }
223
+     }
224
+
225
+
226
+     /**
227
+      * Is this field core user data.
228
+      *
229
+      * @param $key
230
+      *
231
+      * @return bool
232
+      */
233
+     public function is_userdata( $key ) {
234
+          $userdata = array(
235
+               'user_pass',
236
+               'user_login',
237
+               'user_nicename',
238
+               'user_url',
239
+               'user_email',
240
+               'display_name',
241
+               'nickname',
242
+               'first_name',
243
+               'last_name',
244
+               'description',
245
+               'rich_editing',
246
+               'user_registered',
247
+               'role',
248
+               'jabber',
249
+               'aim',
250
+               'yim',
251
+               'show_admin_bar_front',
252
+          );
253
+
254
+          return in_array( $key, $userdata, true );
255
+     }
256
+
257
+     /**
258
+      * Is field visible.
259
+      *
260
+      * @param $field_args
261
+      *
262
+      * @return bool
263
+      */
264
+     public function is_field_visible( $field_args ) {
265
+          $visible = true;
266
+          $action  = filter_input( INPUT_POST, 'action' );
267
+
268
+          if ( is_admin() && ! empty( $field_args['hide_in_admin'] ) ) {
269
+               $visible = false;
270
+          } elseif ( ( is_account_page() || 'save_account_details' === $action ) && is_user_logged_in() && ! empty( $field_args['hide_in_account'] ) ) {
271
+               $visible = false;
272
+          } elseif ( ( is_account_page() || 'save_account_details' === $action ) && ! is_user_logged_in() && ! empty( $field_args['hide_in_registration'] ) ) {
273
+               $visible = false;
274
+          } elseif ( is_checkout() && ! empty( $field_args['hide_in_checkout'] ) ) {
275
+               $visible = false;
276
+          }
277
+
278
+          // Disable the fitness fields if needed.
279
+          $weight_key  = __( 'Weight:' );
280
+          $waist_key   = __( 'Waist:' );
281
+          $fitness_key = __( 'BMI Score:' );
282
+          if ( $weight_key === $field_args['label'] || $waist_key === $field_args['label'] || $fitness_key === $field_args['label'] ) {
283
+
284
+               // Check if all stats are disabled.
285
+               $all_disabled = \lsx_health_plan\functions\get_option( 'disable_all_stats', false );
286
+
287
+               $option_key = '';
288
+               switch ( $field_args['label'] ) {
289
+                    case $weight_key:
290
+                         $option_key = 'disable_weight_checkbox';
291
+                         break;
292
+
293
+                    case $weight_key:
294
+                         $option_key = 'disable_height_checkbox';
295
+                         break;
296 296
 				
297
-				case $waist_key:
298
-					$option_key = 'disable_waist_checkbox';
299
-					break;
300
-
301
-				case $fitness_key:
302
-					$option_key = 'disable_bmi_checkbox';
303
-					break;
304
-			}
305
-			$is_disabled = \lsx_health_plan\functions\get_option( $option_key, false );
306
-			if ( 'on' === $all_disabled || 'on' === $is_disabled ) {
307
-				$visible = false;
308
-			}
309
-		}
310
-		return $visible;
311
-	}
312
-
313
-	/**
314
-	 * Add fields to admin area.
315
-	 */
316
-	public function print_user_admin_fields() {
317
-		$fields = $this->get_account_fields();
318
-		?>
297
+                    case $waist_key:
298
+                         $option_key = 'disable_waist_checkbox';
299
+                         break;
300
+
301
+                    case $fitness_key:
302
+                         $option_key = 'disable_bmi_checkbox';
303
+                         break;
304
+               }
305
+               $is_disabled = \lsx_health_plan\functions\get_option( $option_key, false );
306
+               if ( 'on' === $all_disabled || 'on' === $is_disabled ) {
307
+                    $visible = false;
308
+               }
309
+          }
310
+          return $visible;
311
+     }
312
+
313
+     /**
314
+      * Add fields to admin area.
315
+      */
316
+     public function print_user_admin_fields() {
317
+          $fields = $this->get_account_fields();
318
+          ?>
319 319
 		<h2><?php esc_html_e( 'Additional Information', 'lsx-health-plan' ); ?></h2>
320 320
 		<table class="form-table" id="iconic-additional-information">
321 321
 			<tbody>
322 322
 			<?php foreach ( $fields as $key => $field_args ) { ?>
323 323
 				<?php
324
-				if ( ! $this->is_field_visible( $field_args ) ) {
325
-					continue;
326
-				}
324
+                    if ( ! $this->is_field_visible( $field_args ) ) {
325
+                         continue;
326
+                    }
327 327
 
328
-				$user_id = $this->get_edit_user_id();
329
-				$value   = get_user_meta( $user_id, $key, true );
330
-				?>
328
+                    $user_id = $this->get_edit_user_id();
329
+                    $value   = get_user_meta( $user_id, $key, true );
330
+                    ?>
331 331
 				<tr>
332 332
 					<th>
333 333
 						<label for="<?php echo esc_html( $key ); ?>"><?php echo esc_html( $field_args['label'] ); ?></label>
@@ -341,209 +341,209 @@  discard block
 block discarded – undo
341 341
 			</tbody>
342 342
 		</table>
343 343
 		<?php
344
-	}
345
-
346
-	/**
347
-	 * Validate fields on frontend.
348
-	 *
349
-	 * @param WP_Error $errors
350
-	 *
351
-	 * @return WP_Error
352
-	 */
353
-	public function validate_user_frontend_fields( $errors ) {
354
-		$fields = $this->get_account_fields();
355
-
356
-		foreach ( $fields as $key => $field_args ) {
357
-			if ( empty( $field_args['required'] ) ) {
358
-				continue;
359
-			}
360
-
361
-			/*if ( ! isset( $_POST['register'] ) && wp_verify_nonce( sanitize_key( $_POST['register'] ) ) && ! empty( $field_args['hide_in_account'] ) ) {
344
+     }
345
+
346
+     /**
347
+      * Validate fields on frontend.
348
+      *
349
+      * @param WP_Error $errors
350
+      *
351
+      * @return WP_Error
352
+      */
353
+     public function validate_user_frontend_fields( $errors ) {
354
+          $fields = $this->get_account_fields();
355
+
356
+          foreach ( $fields as $key => $field_args ) {
357
+               if ( empty( $field_args['required'] ) ) {
358
+                    continue;
359
+               }
360
+
361
+               /*if ( ! isset( $_POST['register'] ) && wp_verify_nonce( sanitize_key( $_POST['register'] ) ) && ! empty( $field_args['hide_in_account'] ) ) {
362 362
 				continue;
363 363
 			}*/
364 364
 
365
-			if ( isset( $_POST['register'] ) && wp_verify_nonce( sanitize_key( $_POST['register'] ) ) && ! empty( $field_args['hide_in_registration'] ) ) {
366
-				continue;
367
-			}
368
-
369
-			if ( empty( $_POST[ $key ] ) ) {
370
-				/* translators: %s: field */
371
-				$message = sprintf( __( '%s is a required field.', 'lsx-health-plan' ), '<strong>' . $field_args['label'] . '</strong>' );
372
-				$errors->add( $key, $message );
373
-			}
374
-		}
375
-
376
-		return $errors;
377
-	}
378
-
379
-	/**
380
-	 * Changes the text into a file upload.
381
-	 * @param $field
382
-	 * @param $key
383
-	 * @param $args
384
-	 * @param $value
385
-	 *
386
-	 * @return mixed
387
-	 */
388
-	public function lsx_profile_photo_field_filter( $field, $key, $args, $value ) {
389
-		if ( 'profile_photo' === $args['id'] ) {
390
-
391
-			if ( $args['required'] ) {
392
-				$args['class'][] = 'validate-required';
393
-				$required        = ' <abbr class="required" title="' . esc_attr__( 'required', 'lsx-health-plan' ) . '">*</abbr>';
394
-			} else {
395
-				$required = '';
396
-			}
397
-
398
-			if ( is_string( $args['label_class'] ) ) {
399
-				$args['label_class'] = array( $args['label_class'] );
400
-			}
401
-
402
-			if ( is_null( $value ) ) {
403
-				$value = $args['default'];
404
-			}
405
-
406
-			// Custom attribute handling.
407
-			$custom_attributes         = array();
408
-			$args['custom_attributes'] = array_filter( (array) $args['custom_attributes'], 'strlen' );
409
-
410
-			if ( $args['maxlength'] ) {
411
-				$args['custom_attributes']['maxlength'] = absint( $args['maxlength'] );
412
-			}
413
-
414
-			if ( ! empty( $args['autocomplete'] ) ) {
415
-				$args['custom_attributes']['autocomplete'] = $args['autocomplete'];
416
-			}
417
-
418
-			if ( true === $args['autofocus'] ) {
419
-				$args['custom_attributes']['autofocus'] = 'autofocus';
420
-			}
421
-
422
-			if ( ! empty( $args['custom_attributes'] ) && is_array( $args['custom_attributes'] ) ) {
423
-				foreach ( $args['custom_attributes'] as $attribute => $attribute_value ) {
424
-					$custom_attributes[] = esc_attr( $attribute ) . '="' . esc_attr( $attribute_value ) . '"';
425
-				}
426
-			}
427
-
428
-			if ( ! empty( $args['validate'] ) ) {
429
-				foreach ( $args['validate'] as $validate ) {
430
-					$args['class'][] = 'validate-' . $validate;
431
-				}
432
-			}
433
-
434
-			$field_html      = '';
435
-			$field           = '';
436
-			$label_id        = $args['id'];
437
-			$sort            = $args['priority'] ? $args['priority'] : '';
438
-			$field_container = '<p class="form-row %1$s" id="%2$s" data-priority="' . esc_attr( $sort ) . '">%3$s</p>';
439
-			$args['class'][] = 'validate-required';
440
-			$required        = ' <abbr class="required" title="' . esc_attr__( 'required', 'lsx-health-plan' ) . '">*</abbr>';
441
-
442
-			$field .= '<input accept="image/*" type="file" class="input-text ' . esc_attr( implode( ' ', $args['input_class'] ) ) . '" name="' . esc_attr( $key ) . '" id="' . esc_attr( $args['id'] ) . '" placeholder="' . esc_attr( $args['placeholder'] ) . '"  value="" ' . implode( ' ', $custom_attributes ) . ' />';
443
-
444
-			if ( '' !== $value && $value !== $args['default'] ) {
445
-				$field .= '<input type="text" class="input-text ' . esc_attr( implode( ' ', $args['input_class'] ) ) . '" name="' . esc_attr( $key ) . '_id" id="' . esc_attr( $args['id'] ) . '_id" placeholder="' . esc_attr( $args['placeholder'] ) . '_id"  value="' . esc_attr( $value ) . '" ' . implode( ' ', $custom_attributes ) . ' />';
446
-			}
447
-
448
-			$field .= '<input type="hidden" name="MAX_FILE_SIZE" value="500000" />';
449
-
450
-			if ( $args['label'] && 'checkbox' !== $args['type'] ) {
451
-				$field_html .= '<label for="' . esc_attr( $label_id ) . '" class="' . esc_attr( implode( ' ', $args['label_class'] ) ) . '">' . $args['label'] . $required . '</label>';
452
-			}
453
-
454
-			$field_html .= $field;
455
-
456
-			if ( $args['description'] ) {
457
-				$field_html .= '<span class="description">' . esc_html( $args['description'] ) . '</span>';
458
-			}
459
-
460
-			$container_class = esc_attr( implode( ' ', $args['class'] ) );
461
-			$container_id    = esc_attr( $args['id'] ) . '_field';
462
-			$field           = sprintf( $field_container, $container_class, $container_id, $field_html );
463
-		}
464
-		return $field;
465
-	}
466
-
467
-
468
-	public function action_woocommerce_after_edit_account_form() {
469
-		echo do_shortcode( '[avatar_upload /]' );
470
-	}
471
-
472
-	/**
473
-	 * Get additional account fields.
474
-	 *
475
-	 * @return array
476
-	 */
477
-	public function get_account_fields() {
478
-		$account_fields = apply_filters( 'lsx_hp_profile_fields', array(
479
-			'age'  => array(
480
-				'type'                 => 'text',
481
-				'label'                => __( 'Age:', 'lsx-health-plan' ),
482
-				'placeholder'          => __( '#', 'lsx-health-plan' ),
483
-				'hide_in_account'      => false,
484
-				'hide_in_admin'        => false,
485
-				'hide_in_checkout'     => false,
486
-				'hide_in_registration' => false,
487
-				'required'             => false,
488
-			),
489
-			'weight'  => array(
490
-				'type'                 => 'text',
491
-				'label'                => __( 'Weight:', 'lsx-health-plan' ),
492
-				'placeholder'          => __( 'kg', 'lsx-health-plan' ),
493
-				'hide_in_account'      => false,
494
-				'hide_in_admin'        => false,
495
-				'hide_in_checkout'     => false,
496
-				'hide_in_registration' => false,
497
-				'required'             => false,
498
-			),
499
-			'gender'   => array(
500
-				'type'                 => 'select',
501
-				'label'                => __( 'Gender:', 'lsx-health-plan' ),
502
-				'placeholder'          => __( 'm/f', 'lsx-health-plan' ),
503
-				'hide_in_account'      => false,
504
-				'hide_in_admin'        => false,
505
-				'hide_in_checkout'     => false,
506
-				'hide_in_registration' => false,
507
-				'required'             => false,
508
-				'options'     => array(
509
-					'male'   => __( 'Male', 'lsx-health-plan' ),
510
-					'female' => __( 'Female', 'lsx-health-plan' ),
511
-				),
512
-			),
513
-			'waist'   => array(
514
-				'type'                 => 'text',
515
-				'label'                => __( 'Waist:', 'lsx-health-plan' ),
516
-				'placeholder'          => __( 'cm', 'lsx-health-plan' ),
517
-				'hide_in_account'      => false,
518
-				'hide_in_admin'        => false,
519
-				'hide_in_checkout'     => false,
520
-				'hide_in_registration' => false,
521
-				'required'             => false,
522
-			),
523
-			'height'     => array(
524
-				'type'                 => 'text',
525
-				'label'                => __( 'Height:', 'lsx-health-plan' ),
526
-				'placeholder'          => __( 'cm', 'lsx-health-plan' ),
527
-				'hide_in_account'      => false,
528
-				'hide_in_admin'        => false,
529
-				'hide_in_checkout'     => false,
530
-				'hide_in_registration' => false,
531
-				'required'             => false,
532
-			),
533
-		) );
534
-
535
-		$is_weight_disabled = \lsx_health_plan\functions\get_option( 'disable_weight_checkbox', false );
536
-		if ( 'on' === $is_weight_disabled ) {
537
-			$account_fields['weight']['required'] = false;
538
-		}
539
-		$is_height_disabled = \lsx_health_plan\functions\get_option( 'disable_height_checkbox', false );
540
-		if ( 'on' === $is_height_disabled ) {
541
-			$account_fields['height']['required'] = false;
542
-		}
543
-		$is_waist_disabled = \lsx_health_plan\functions\get_option( 'disable_waist_checkbox', false );
544
-		if ( 'on' === $is_waist_disabled ) {
545
-			$account_fields['waist']['required'] = false;
546
-		}
547
-		return $account_fields;
548
-	}
365
+               if ( isset( $_POST['register'] ) && wp_verify_nonce( sanitize_key( $_POST['register'] ) ) && ! empty( $field_args['hide_in_registration'] ) ) {
366
+                    continue;
367
+               }
368
+
369
+               if ( empty( $_POST[ $key ] ) ) {
370
+                    /* translators: %s: field */
371
+                    $message = sprintf( __( '%s is a required field.', 'lsx-health-plan' ), '<strong>' . $field_args['label'] . '</strong>' );
372
+                    $errors->add( $key, $message );
373
+               }
374
+          }
375
+
376
+          return $errors;
377
+     }
378
+
379
+     /**
380
+      * Changes the text into a file upload.
381
+      * @param $field
382
+      * @param $key
383
+      * @param $args
384
+      * @param $value
385
+      *
386
+      * @return mixed
387
+      */
388
+     public function lsx_profile_photo_field_filter( $field, $key, $args, $value ) {
389
+          if ( 'profile_photo' === $args['id'] ) {
390
+
391
+               if ( $args['required'] ) {
392
+                    $args['class'][] = 'validate-required';
393
+                    $required        = ' <abbr class="required" title="' . esc_attr__( 'required', 'lsx-health-plan' ) . '">*</abbr>';
394
+               } else {
395
+                    $required = '';
396
+               }
397
+
398
+               if ( is_string( $args['label_class'] ) ) {
399
+                    $args['label_class'] = array( $args['label_class'] );
400
+               }
401
+
402
+               if ( is_null( $value ) ) {
403
+                    $value = $args['default'];
404
+               }
405
+
406
+               // Custom attribute handling.
407
+               $custom_attributes         = array();
408
+               $args['custom_attributes'] = array_filter( (array) $args['custom_attributes'], 'strlen' );
409
+
410
+               if ( $args['maxlength'] ) {
411
+                    $args['custom_attributes']['maxlength'] = absint( $args['maxlength'] );
412
+               }
413
+
414
+               if ( ! empty( $args['autocomplete'] ) ) {
415
+                    $args['custom_attributes']['autocomplete'] = $args['autocomplete'];
416
+               }
417
+
418
+               if ( true === $args['autofocus'] ) {
419
+                    $args['custom_attributes']['autofocus'] = 'autofocus';
420
+               }
421
+
422
+               if ( ! empty( $args['custom_attributes'] ) && is_array( $args['custom_attributes'] ) ) {
423
+                    foreach ( $args['custom_attributes'] as $attribute => $attribute_value ) {
424
+                         $custom_attributes[] = esc_attr( $attribute ) . '="' . esc_attr( $attribute_value ) . '"';
425
+                    }
426
+               }
427
+
428
+               if ( ! empty( $args['validate'] ) ) {
429
+                    foreach ( $args['validate'] as $validate ) {
430
+                         $args['class'][] = 'validate-' . $validate;
431
+                    }
432
+               }
433
+
434
+               $field_html      = '';
435
+               $field           = '';
436
+               $label_id        = $args['id'];
437
+               $sort            = $args['priority'] ? $args['priority'] : '';
438
+               $field_container = '<p class="form-row %1$s" id="%2$s" data-priority="' . esc_attr( $sort ) . '">%3$s</p>';
439
+               $args['class'][] = 'validate-required';
440
+               $required        = ' <abbr class="required" title="' . esc_attr__( 'required', 'lsx-health-plan' ) . '">*</abbr>';
441
+
442
+               $field .= '<input accept="image/*" type="file" class="input-text ' . esc_attr( implode( ' ', $args['input_class'] ) ) . '" name="' . esc_attr( $key ) . '" id="' . esc_attr( $args['id'] ) . '" placeholder="' . esc_attr( $args['placeholder'] ) . '"  value="" ' . implode( ' ', $custom_attributes ) . ' />';
443
+
444
+               if ( '' !== $value && $value !== $args['default'] ) {
445
+                    $field .= '<input type="text" class="input-text ' . esc_attr( implode( ' ', $args['input_class'] ) ) . '" name="' . esc_attr( $key ) . '_id" id="' . esc_attr( $args['id'] ) . '_id" placeholder="' . esc_attr( $args['placeholder'] ) . '_id"  value="' . esc_attr( $value ) . '" ' . implode( ' ', $custom_attributes ) . ' />';
446
+               }
447
+
448
+               $field .= '<input type="hidden" name="MAX_FILE_SIZE" value="500000" />';
449
+
450
+               if ( $args['label'] && 'checkbox' !== $args['type'] ) {
451
+                    $field_html .= '<label for="' . esc_attr( $label_id ) . '" class="' . esc_attr( implode( ' ', $args['label_class'] ) ) . '">' . $args['label'] . $required . '</label>';
452
+               }
453
+
454
+               $field_html .= $field;
455
+
456
+               if ( $args['description'] ) {
457
+                    $field_html .= '<span class="description">' . esc_html( $args['description'] ) . '</span>';
458
+               }
459
+
460
+               $container_class = esc_attr( implode( ' ', $args['class'] ) );
461
+               $container_id    = esc_attr( $args['id'] ) . '_field';
462
+               $field           = sprintf( $field_container, $container_class, $container_id, $field_html );
463
+          }
464
+          return $field;
465
+     }
466
+
467
+
468
+     public function action_woocommerce_after_edit_account_form() {
469
+          echo do_shortcode( '[avatar_upload /]' );
470
+     }
471
+
472
+     /**
473
+      * Get additional account fields.
474
+      *
475
+      * @return array
476
+      */
477
+     public function get_account_fields() {
478
+          $account_fields = apply_filters( 'lsx_hp_profile_fields', array(
479
+               'age'  => array(
480
+                    'type'                 => 'text',
481
+                    'label'                => __( 'Age:', 'lsx-health-plan' ),
482
+                    'placeholder'          => __( '#', 'lsx-health-plan' ),
483
+                    'hide_in_account'      => false,
484
+                    'hide_in_admin'        => false,
485
+                    'hide_in_checkout'     => false,
486
+                    'hide_in_registration' => false,
487
+                    'required'             => false,
488
+               ),
489
+               'weight'  => array(
490
+                    'type'                 => 'text',
491
+                    'label'                => __( 'Weight:', 'lsx-health-plan' ),
492
+                    'placeholder'          => __( 'kg', 'lsx-health-plan' ),
493
+                    'hide_in_account'      => false,
494
+                    'hide_in_admin'        => false,
495
+                    'hide_in_checkout'     => false,
496
+                    'hide_in_registration' => false,
497
+                    'required'             => false,
498
+               ),
499
+               'gender'   => array(
500
+                    'type'                 => 'select',
501
+                    'label'                => __( 'Gender:', 'lsx-health-plan' ),
502
+                    'placeholder'          => __( 'm/f', 'lsx-health-plan' ),
503
+                    'hide_in_account'      => false,
504
+                    'hide_in_admin'        => false,
505
+                    'hide_in_checkout'     => false,
506
+                    'hide_in_registration' => false,
507
+                    'required'             => false,
508
+                    'options'     => array(
509
+                         'male'   => __( 'Male', 'lsx-health-plan' ),
510
+                         'female' => __( 'Female', 'lsx-health-plan' ),
511
+                    ),
512
+               ),
513
+               'waist'   => array(
514
+                    'type'                 => 'text',
515
+                    'label'                => __( 'Waist:', 'lsx-health-plan' ),
516
+                    'placeholder'          => __( 'cm', 'lsx-health-plan' ),
517
+                    'hide_in_account'      => false,
518
+                    'hide_in_admin'        => false,
519
+                    'hide_in_checkout'     => false,
520
+                    'hide_in_registration' => false,
521
+                    'required'             => false,
522
+               ),
523
+               'height'     => array(
524
+                    'type'                 => 'text',
525
+                    'label'                => __( 'Height:', 'lsx-health-plan' ),
526
+                    'placeholder'          => __( 'cm', 'lsx-health-plan' ),
527
+                    'hide_in_account'      => false,
528
+                    'hide_in_admin'        => false,
529
+                    'hide_in_checkout'     => false,
530
+                    'hide_in_registration' => false,
531
+                    'required'             => false,
532
+               ),
533
+          ) );
534
+
535
+          $is_weight_disabled = \lsx_health_plan\functions\get_option( 'disable_weight_checkbox', false );
536
+          if ( 'on' === $is_weight_disabled ) {
537
+               $account_fields['weight']['required'] = false;
538
+          }
539
+          $is_height_disabled = \lsx_health_plan\functions\get_option( 'disable_height_checkbox', false );
540
+          if ( 'on' === $is_height_disabled ) {
541
+               $account_fields['height']['required'] = false;
542
+          }
543
+          $is_waist_disabled = \lsx_health_plan\functions\get_option( 'disable_waist_checkbox', false );
544
+          if ( 'on' === $is_waist_disabled ) {
545
+               $account_fields['waist']['required'] = false;
546
+          }
547
+          return $account_fields;
548
+     }
549 549
 }
Please login to merge, or discard this patch.