Issues (1030)

classes/class-lsx-activities.php (1 issue)

1
<?php
2
/**
3
 * LSX_Activities
4
 *
5
 * @package   LSX_Activities
6
 * @author    LightSpeed
7
 * @license   GPL-2.0+
8
 * @link      
9
 * @copyright 2018 LightSpeedDevelopment
10
 */
11
if (!class_exists( 'LSX_Activities' ) ) {
12
	/**
13
	 * Main plugin class.
14
	 *
15
	 * @package LSX_Activities
16
	 * @author  LightSpeed
17
	 */
18
	class LSX_Activities {
19
		
20
		/**
21
		 * The plugins id
22
		 */
23
		public $plugin_slug = 'lsx-activities';
24
25
		/**
26
		 * The post types the plugin registers
27
		 */
28
		public $post_types = false;	
29
30
		/**
31
		 * The singular post types the plugin registers
32
		 */
33
		public $post_types_singular = false;	
34
35
		/**
36
		 * An array of the post types slugs plugin registers
37
		 */
38
		public $post_type_slugs = false;			
39
40
		/**
41
		 * The taxonomies the plugin registers
42
		 */
43
		public $taxonomies = false;				
44
45
		/**
46
		 * The taxonomies the plugin registers (plural)
47
		 */
48
		public $taxonomies_plural = false;
49
50
		/**
51
		 * Hold the TO options
52
		 */
53
		public $options = array();
54
55
		/**
56
		 * Hold the GoogleMaps API key
57
		 */
58
		public $api_key = false;
59
60
		/**
61
		 * Constructor
62
		 */
63
		public function __construct() {
64
			//Set the variables
65
			$this->set_vars();
66
			$this->lsx_to_search_integration();
67
68
			// Make TO last plugin to load
69
			add_action( 'activated_plugin', array( $this, 'activated_plugin' ) );
70
			
71
			add_action('init',array($this,'load_plugin_textdomain'));
72
73
			if(false !== $this->post_types){
74
				add_filter( 'lsx_to_framework_post_types', array( $this, 'post_types_filter') );
75
				add_filter( 'lsx_to_post_types', array( $this, 'post_types_filter') );
76
				add_filter( 'lsx_to_post_types_singular', array( $this, 'post_types_singular_filter') );
77
				add_filter('lsx_to_settings_path',array( $this, 'plugin_path'),10,2);
78
			}
79
			if(false !== $this->taxonomies){
80
				add_filter( 'lsx_to_framework_taxonomies', array( $this, 'taxonomies_filter') );
81
				add_filter( 'lsx_to_framework_taxonomies_plural', array( $this, 'taxonomies_plural_filter') );
82
			}	
83
84
			require_once(LSX_ACTIVITIES_PATH . '/classes/class-lsx-activities-admin.php');
85
			require_once(LSX_ACTIVITIES_PATH . '/classes/class-lsx-activities-frontend.php');
86
			require_once(LSX_ACTIVITIES_PATH . '/includes/template-tags.php');
87
88
			// flush_rewrite_rules()
0 ignored issues
show
Unused Code Comprehensibility introduced by
67% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
89
			register_activation_hook( LSX_ACTIVITIES_CORE, array( $this, 'register_activation_hook' ) );
90
			add_action( 'admin_init', array( $this, 'register_activation_hook_check' ) );
91
		}
92
93
		/**
94
		 * Include the post type for the search integration
95
		 */
96
		public function lsx_to_search_integration(){
97
			add_filter( 'lsx_to_search_post_types', array( $this, 'post_types_filter') );
98
			add_filter( 'lsx_to_search_taxonomies', array( $this, 'taxonomies_filter') );
99
		}
100
	
101
		/**
102
		 * Load the plugin text domain for translation.
103
		 */
104
		public function load_plugin_textdomain() {
105
			load_plugin_textdomain( 'lsx-activities', FALSE, basename( LSX_ACTIVITIES_PATH ) . '/languages');
106
		}
107
108
		/**
109
		 * Sets the plugins variables
110
		 */
111
		public function set_vars() {
112
			$this->post_types = array(
113
				'activity'	=>	__('Activities','lsx-activities')
114
			);
115
			$this->post_types_singular = array(
116
				'activity'	=>	__('Activity','lsx-activities')
117
			);
118
			$this->post_type_slugs = array_keys($this->post_types);
119
120
			$this->options = get_option('_lsx-to_settings',false);
121
			if((false !== $this->options && isset($this->options['api']['googlemaps_key'])) || defined('GOOGLEMAPS_API_KEY')) {
122
123
				if (!defined('GOOGLEMAPS_API_KEY')) {
124
					$this->api_key = $this->options['api']['googlemaps_key'];
125
				} else {
126
					$this->api_key = GOOGLEMAPS_API_KEY;
127
				}
128
			}
129
		}
130
131
		/**
132
		 * Adds our post types to an array via a filter
133
		 */
134
		public function plugin_path($path,$post_type){
135
			if(false !== $this->post_types && array_key_exists($post_type,$this->post_types)){
136
				$path = LSX_ACTIVITIES_PATH;
137
			}
138
			return $path;
139
		}	
140
141
		/**
142
		 * Adds our post types to an array via a filter
143
		 */
144
		public function post_types_slugs_filter($post_types){
145
			if(is_array($post_types)){
146
				$post_types = array_merge($post_types,$this->post_type_slugs);
147
			}else{
148
				$post_types = $this->post_type_slugs;
149
			}
150
			return $post_types;
151
		}
152
153
		/**
154
		 * Adds our post types to an array via a filter
155
		 */
156
		public function post_types_filter($post_types){
157
			if(is_array($post_types) && is_array($this->post_types)){
158
				$post_types = array_merge($post_types,$this->post_types);
159
			}elseif(is_array($this->post_types)){
160
				$post_types = $this->post_types;
161
			}
162
			return $post_types;
163
		}	
164
165
		/**
166
		 * Adds our post types to an array via a filter
167
		 */
168
		public function post_types_singular_filter($post_types_singular){
169
			if(is_array($post_types_singular) && is_array($this->post_types_singular)){
170
				$post_types_singular = array_merge($post_types_singular,$this->post_types_singular);
171
			}elseif(is_array($this->post_types_singular)){
172
				$post_types_singular = $this->post_types_singular;
173
			}
174
			return $post_types_singular;
175
		}	
176
177
		/**
178
		 * Adds our taxonomies to an array via a filter
179
		 */
180
		public function taxonomies_filter($taxonomies){
181
			if(is_array($taxonomies) && is_array($this->taxonomies)){
182
				$taxonomies = array_merge($taxonomies,$this->taxonomies);
183
			}elseif(is_array($this->taxonomies)){
184
				$taxonomies = $this->taxonomies;
185
			}
186
			return $taxonomies;
187
		}
188
189
		/**
190
		 * Adds our taxonomies_plural to an array via a filter
191
		 */
192
		public function taxonomies_plural_filter($taxonomies_plural){
193
			if(is_array($taxonomies_plural) && is_array($this->taxonomies_plural)){
194
				$taxonomies_plural = array_merge($taxonomies_plural,$this->taxonomies_plural);
195
			}elseif(is_array($this->taxonomies_plural)){
196
				$taxonomies_plural = $this->taxonomies_plural;
197
			}
198
			return $taxonomies_plural;
199
		}
200
	
201
		/**
202
		 * Make TO last plugin to load.
203
		 */
204
		public function activated_plugin() {
205
			if ( $plugins = get_option( 'active_plugins' ) ) {
206
				$search = preg_grep( '/.*\/tour-operator\.php/', $plugins );
207
				$key = array_search( $search, $plugins );
208
209
				if ( is_array( $search ) && count( $search ) ) {
210
					foreach ( $search as $key => $path ) {
211
						array_splice( $plugins, $key, 1 );
212
						array_push( $plugins, $path );
213
						update_option( 'active_plugins', $plugins );
214
					}
215
				}
216
			}
217
		}
218
	
219
		/**
220
		 * On plugin activation
221
		 */
222
		public function register_activation_hook() {
223
			if ( ! is_network_admin() && ! isset( $_GET['activate-multi'] ) ) {
224
				set_transient( '_tour_operators_activities_flush_rewrite_rules', 1, 30 );
225
			}
226
		}
227
		
228
		/**
229
		 * On plugin activation (check)
230
		 */
231
		public function register_activation_hook_check() {
232
			if ( ! get_transient( '_tour_operators_activities_flush_rewrite_rules' ) ) {
233
				return;
234
			}
235
236
			delete_transient( '_tour_operators_activities_flush_rewrite_rules' );
237
			flush_rewrite_rules();
238
		}
239
240
	}
241
	new LSX_Activities();
242
}