1 | <?php |
||||
2 | /** |
||||
3 | * LSX_TO_Specials |
||||
4 | * |
||||
5 | * @package LSX_TO_Specials |
||||
6 | * @author LightSpeed |
||||
7 | * @license GPL-3.0+ |
||||
8 | * @link |
||||
9 | * @copyright 2018 LightSpeedDevelopment |
||||
10 | */ |
||||
11 | if (!class_exists( 'LSX_TO_Specials' ) ) { |
||||
12 | /** |
||||
13 | * Main plugin class. |
||||
14 | * |
||||
15 | * @package LSX_Specials |
||||
16 | * @author LightSpeed |
||||
17 | */ |
||||
18 | class LSX_TO_Specials { |
||||
19 | |||||
20 | /** |
||||
21 | * The plugins id |
||||
22 | */ |
||||
23 | public $plugin_slug = 'to-specials'; |
||||
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 | * Constructor |
||||
52 | */ |
||||
53 | public function __construct() { |
||||
54 | //Set the variables |
||||
55 | $this->set_vars(); |
||||
56 | $this->lsx_to_search_integration(); |
||||
57 | |||||
58 | // Make TO last plugin to load |
||||
59 | add_action( 'activated_plugin', array( $this, 'activated_plugin' ) ); |
||||
60 | |||||
61 | add_action( 'init', array( $this, 'load_plugin_textdomain' ) ); |
||||
62 | |||||
63 | if ( false !== $this->post_types ) { |
||||
64 | add_filter( 'lsx_to_framework_post_types', array( $this, 'post_types_filter' ) ); |
||||
65 | add_filter( 'lsx_to_post_types', array( $this, 'post_types_filter' ) ); |
||||
66 | add_filter( 'lsx_to_post_types_singular', array( $this, 'post_types_singular_filter' ) ); |
||||
67 | add_filter( 'lsx_to_settings_path', array( $this, 'plugin_path' ), 10, 2 ); |
||||
68 | } |
||||
69 | if ( false !== $this->taxonomies ) { |
||||
70 | add_filter( 'lsx_to_framework_taxonomies', array( $this, 'taxonomies_filter' ) ); |
||||
71 | add_filter( 'lsx_to_framework_taxonomies_plural', array( $this, 'taxonomies_plural_filter' ) ); |
||||
72 | } |
||||
73 | |||||
74 | require_once LSX_TO_SPECIALS_PATH . '/classes/class-to-specials-admin.php'; |
||||
75 | require_once LSX_TO_SPECIALS_PATH . '/classes/class-to-specials-frontend.php'; |
||||
76 | require_once LSX_TO_SPECIALS_PATH . '/includes/template-tags.php'; |
||||
77 | |||||
78 | // flush_rewrite_rules. |
||||
79 | register_activation_hook( LSX_TO_SPECIALS_CORE, array( $this, 'register_activation_hook' ) ); |
||||
80 | add_action( 'admin_init', array( $this, 'register_activation_hook_check' ) ); |
||||
81 | add_filter( 'wpseo_schema_graph_pieces', array( $this, 'add_graph_pieces' ), 11, 2 ); |
||||
82 | } |
||||
83 | |||||
84 | /** |
||||
85 | * Include the post type for the search integration |
||||
86 | */ |
||||
87 | public function lsx_to_search_integration() { |
||||
88 | add_filter( 'lsx_to_search_post_types', array( $this, 'post_types_filter' ) ); |
||||
89 | add_filter( 'lsx_to_search_taxonomies', array( $this, 'taxonomies_filter' ) ); |
||||
90 | } |
||||
91 | |||||
92 | /** |
||||
93 | * Load the plugin text domain for translation. |
||||
94 | */ |
||||
95 | public function load_plugin_textdomain() { |
||||
96 | load_plugin_textdomain( 'to-specials', FALSE, basename( LSX_TO_SPECIALS_PATH ) . '/languages'); |
||||
97 | } |
||||
98 | |||||
99 | /** |
||||
100 | * Sets the plugins variables |
||||
101 | */ |
||||
102 | public function set_vars() { |
||||
103 | $this->post_types = array( |
||||
104 | 'special' => __( 'Specials', 'to-specials' ), |
||||
105 | ); |
||||
106 | $this->post_types_singular = array( |
||||
107 | 'special' => __( 'Special', 'to-specials' ), |
||||
108 | ); |
||||
109 | $this->post_type_slugs = array_keys( $this->post_types ); |
||||
110 | $this->taxonomies = array( |
||||
111 | 'special-type' => __( 'Special Type', 'to-specials' ), |
||||
112 | ); |
||||
113 | $this->taxonomies_plural = array( |
||||
114 | 'special-type' => __( 'Special Types', 'to-specials' ), |
||||
115 | ); |
||||
116 | } |
||||
117 | |||||
118 | /** |
||||
119 | * Adds our post types to an array via a filter |
||||
120 | */ |
||||
121 | public function plugin_path( $path, $post_type ) { |
||||
122 | if ( false !== $this->post_types && array_key_exists( $post_type, $this->post_types ) ) { |
||||
0 ignored issues
–
show
Bug
introduced
by
![]() |
|||||
123 | $path = LSX_TO_SPECIALS_PATH; |
||||
124 | } |
||||
125 | return $path; |
||||
126 | } |
||||
127 | |||||
128 | /** |
||||
129 | * Adds our post types to an array via a filter |
||||
130 | */ |
||||
131 | public function post_types_slugs_filter( $post_types ) { |
||||
132 | if ( is_array( $post_types ) ) { |
||||
133 | $post_types = array_merge( $post_types, $this->post_type_slugs ); |
||||
0 ignored issues
–
show
$this->post_type_slugs of type boolean is incompatible with the type array expected by parameter $arrays of array_merge() .
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() |
|||||
134 | } else { |
||||
135 | $post_types = $this->post_type_slugs; |
||||
136 | } |
||||
137 | return $post_types; |
||||
138 | } |
||||
139 | |||||
140 | /** |
||||
141 | * Adds our post types to an array via a filter |
||||
142 | */ |
||||
143 | public function post_types_filter( $post_types ) { |
||||
144 | if ( is_array( $post_types ) && is_array( $this->post_types ) ) { |
||||
145 | $post_types = array_merge( $post_types, $this->post_types ); |
||||
146 | } elseif ( is_array( $this->post_types ) ) { |
||||
147 | $post_types = $this->post_types; |
||||
148 | } |
||||
149 | return $post_types; |
||||
150 | } |
||||
151 | |||||
152 | /** |
||||
153 | * Adds our post types to an array via a filter |
||||
154 | */ |
||||
155 | public function post_types_singular_filter( $post_types_singular ){ |
||||
156 | if ( is_array( $post_types_singular ) && is_array( $this->post_types_singular ) ) { |
||||
157 | $post_types_singular = array_merge( $post_types_singular, $this->post_types_singular ); |
||||
158 | } elseif ( is_array( $this->post_types_singular ) ) { |
||||
159 | $post_types_singular = $this->post_types_singular; |
||||
160 | } |
||||
161 | return $post_types_singular; |
||||
162 | } |
||||
163 | |||||
164 | /** |
||||
165 | * Adds our taxonomies to an array via a filter |
||||
166 | */ |
||||
167 | public function taxonomies_filter( $taxonomies ) { |
||||
168 | if ( is_array( $taxonomies ) && is_array( $this->taxonomies ) ) { |
||||
169 | $taxonomies = array_merge( $taxonomies, $this->taxonomies ); |
||||
170 | } elseif ( is_array( $this->taxonomies ) ) { |
||||
171 | $taxonomies = $this->taxonomies; |
||||
172 | } |
||||
173 | return $taxonomies; |
||||
174 | } |
||||
175 | |||||
176 | /** |
||||
177 | * Adds our taxonomies_plural to an array via a filter |
||||
178 | */ |
||||
179 | public function taxonomies_plural_filter( $taxonomies_plural ) { |
||||
180 | if ( is_array( $taxonomies_plural ) && is_array( $this->taxonomies_plural ) ) { |
||||
181 | $taxonomies_plural = array_merge( $taxonomies_plural, $this->taxonomies_plural ); |
||||
182 | } elseif ( is_array( $this->taxonomies_plural ) ) { |
||||
183 | $taxonomies_plural = $this->taxonomies_plural; |
||||
184 | } |
||||
185 | return $taxonomies_plural; |
||||
186 | } |
||||
187 | |||||
188 | /** |
||||
189 | * Make TO last plugin to load. |
||||
190 | */ |
||||
191 | public function activated_plugin() { |
||||
192 | if ( $plugins = get_option( 'active_plugins' ) ) { |
||||
193 | $search = preg_grep( '/.*\/tour-operator\.php/', $plugins ); |
||||
194 | $key = array_search( $search, $plugins ); |
||||
195 | |||||
196 | if ( is_array( $search ) && count( $search ) ) { |
||||
197 | foreach ( $search as $key => $path ) { |
||||
198 | array_splice( $plugins, $key, 1 ); |
||||
199 | array_push( $plugins, $path ); |
||||
200 | update_option( 'active_plugins', $plugins ); |
||||
201 | } |
||||
202 | } |
||||
203 | } |
||||
204 | } |
||||
205 | |||||
206 | /** |
||||
207 | * On plugin activation |
||||
208 | */ |
||||
209 | public function register_activation_hook() { |
||||
210 | if ( ! is_network_admin() && ! isset( $_GET['activate-multi'] ) ) { |
||||
211 | set_transient( '_tour_operators_specials_flush_rewrite_rules', 1, 30 ); |
||||
212 | } |
||||
213 | } |
||||
214 | |||||
215 | /** |
||||
216 | * On plugin activation (check) |
||||
217 | */ |
||||
218 | public function register_activation_hook_check() { |
||||
219 | if ( ! get_transient( '_tour_operators_specials_flush_rewrite_rules' ) ) { |
||||
220 | return; |
||||
221 | } |
||||
222 | delete_transient( '_tour_operators_specials_flush_rewrite_rules' ); |
||||
223 | flush_rewrite_rules(); |
||||
224 | } |
||||
225 | /** |
||||
226 | * Adds Schema pieces to our output. |
||||
227 | * |
||||
228 | * @param array $pieces Graph pieces to output. |
||||
229 | * @param \WPSEO_Schema_Context $context Object with context variables. |
||||
230 | * |
||||
231 | * @return array $pieces Graph pieces to output. |
||||
232 | */ |
||||
233 | public function add_graph_pieces( $pieces, $context ) { |
||||
234 | if ( class_exists( 'LSX_TO_Schema_Graph_Piece' ) ) { |
||||
235 | require_once LSX_TO_SPECIALS_PATH . 'classes/class-to-specials-schema.php'; |
||||
236 | $pieces[] = new LSX_TO_Specials_Schema( $context ); |
||||
0 ignored issues
–
show
The call to
LSX_TO_Specials_Schema::__construct() has too many arguments starting with $context .
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue. If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above. ![]() |
|||||
237 | } |
||||
238 | return $pieces; |
||||
239 | } |
||||
240 | } |
||||
241 | new LSX_TO_Specials(); |
||||
242 | } |
||||
243 |