@@ -13,7 +13,7 @@ discard block |
||
13 | 13 | */ |
14 | 14 | |
15 | 15 | if ( ! defined( 'ABSPATH' ) ) { |
16 | - exit; |
|
16 | + exit; |
|
17 | 17 | } |
18 | 18 | |
19 | 19 | /** |
@@ -28,126 +28,126 @@ discard block |
||
28 | 28 | */ |
29 | 29 | class Wordlift_Admin_Setup { |
30 | 30 | |
31 | - /** |
|
32 | - * A {@link Wordlift_Key_Validation_Service} instance. |
|
33 | - * |
|
34 | - * @since 3.9.0 |
|
35 | - * @access private |
|
36 | - * @var Wordlift_Key_Validation_Service A {@link Wordlift_Key_Validation_Service} instance. |
|
37 | - */ |
|
38 | - private $key_validation_service; |
|
39 | - |
|
40 | - /** |
|
41 | - * A {@link Wordlift_Entity_Service} instance. |
|
42 | - * |
|
43 | - * @since 3.9.0 |
|
44 | - * @access private |
|
45 | - * @var Wordlift_Entity_Service $entity_service A {@link Wordlift_Entity_Service} instance. |
|
46 | - */ |
|
47 | - private $entity_service; |
|
48 | - |
|
49 | - /** |
|
50 | - * A {@link Wordlift_Admin_Language_Select_Element} element renderer. |
|
51 | - * |
|
52 | - * @since 3.20.0 |
|
53 | - * @access private |
|
54 | - * @var \Wordlift_Admin_Language_Select_Element $language_select_element A {@link Wordlift_Admin_Language_Select_Element} element renderer. |
|
55 | - */ |
|
56 | - private $language_select_element; |
|
57 | - |
|
58 | - /** |
|
59 | - * A {@link Wordlift_Admin_Country_Select_Element} element renderer. |
|
60 | - * |
|
61 | - * @since 3.20.0 |
|
62 | - * @access private |
|
63 | - * @var \Wordlift_Admin_Country_Select_Element $country_select_element A {@link Wordlift_Admin_Country_Select_Element} element renderer. |
|
64 | - */ |
|
65 | - private $country_select_element; |
|
66 | - |
|
67 | - /** |
|
68 | - * Initialize the class and set its properties. |
|
69 | - * |
|
70 | - * @param \Wordlift_Key_Validation_Service $key_validation_service A {@link Wordlift_Key_Validation_Service} instance. |
|
71 | - * @param \Wordlift_Entity_Service $entity_service A {@link Wordlift_Entity_Service} instance. |
|
72 | - * @param \Wordlift_Admin_Language_Select_Element $language_select_element A {@link Wordlift_Admin_Language_Select_Element} element renderer. |
|
73 | - * @param \Wordlift_Admin_Country_Select_Element $country_select_element A {@link Wordlift_Admin_Country_Select_Element} element renderer. |
|
74 | - * |
|
75 | - * @since 3.9.0 |
|
76 | - */ |
|
77 | - public function __construct( $key_validation_service, $entity_service, $language_select_element, $country_select_element ) { |
|
78 | - |
|
79 | - // Set a reference to the key validation service. |
|
80 | - $this->key_validation_service = $key_validation_service; |
|
81 | - |
|
82 | - // Set a reference to the entity service. |
|
83 | - $this->entity_service = $entity_service; |
|
84 | - |
|
85 | - // Set a reference to the UI elements language and country. |
|
86 | - $this->language_select_element = $language_select_element; |
|
87 | - $this->country_select_element = $country_select_element; |
|
88 | - |
|
89 | - // Hook to some WP's events: |
|
90 | - // When WP is loaded check whether the user decided to skip the set-up, i.e. don't show us even if WL is not set up. |
|
91 | - add_action( 'wp_loaded', array( $this, 'hide_notices' ) ); |
|
92 | - |
|
93 | - // Hook to `admin_menu` in order to add our own setup wizard page. |
|
94 | - add_action( 'admin_menu', array( $this, 'admin_menu' ) ); |
|
95 | - |
|
96 | - // Triggered when the user accesses the admin area, we decide whether to show our own wizard. |
|
97 | - add_action( 'admin_init', array( $this, 'show_page' ) ); |
|
98 | - |
|
99 | - /** |
|
100 | - * Filter: wl_feature__enable__notices. |
|
101 | - * |
|
102 | - * @param bool whether the notices needs to be enabled or not. |
|
103 | - * |
|
104 | - * @return bool |
|
105 | - * @since 3.27.6 |
|
106 | - */ |
|
107 | - if ( apply_filters( 'wl_feature__enable__notices', true ) ) { |
|
108 | - // Hook to `admin_notices` to display our notices. |
|
109 | - add_action( 'admin_notices', array( $this, 'admin_notices' ) ); |
|
110 | - } |
|
111 | - } |
|
112 | - |
|
113 | - /** |
|
114 | - * Hook to `admin_init` and redirect to WordLift's setup page if the `_wl_activation_redirect` transient flag is set. |
|
115 | - * |
|
116 | - * @since 3.9.0 |
|
117 | - */ |
|
118 | - public function admin_init() { |
|
119 | - |
|
120 | - // If the `_wl_activation_redirect` is set, the redirect to the setup page. |
|
121 | - if ( get_transient( '_wl_activation_redirect' ) ) { |
|
122 | - delete_transient( '_wl_activation_redirect' ); |
|
123 | - |
|
124 | - // If the user asked to skip the wizard then comply. |
|
125 | - if ( Wordlift_Configuration_Service::get_instance()->is_skip_wizard() ) { |
|
126 | - return; |
|
127 | - } |
|
128 | - |
|
129 | - // If we're already on the page or the user doesn't have permissions, return. |
|
130 | - if ( ( ! empty( $_GET['page'] ) && 'wl-setup' === $_GET['page'] ) || is_network_admin() || isset( $_GET['activate-multi'] ) || ! current_user_can( 'manage_options' ) ) { //phpcs:ignore WordPress.Security.NonceVerification.Recommended |
|
131 | - return; |
|
132 | - } |
|
133 | - |
|
134 | - // Finally redirect to the setup page. |
|
135 | - wp_safe_redirect( admin_url( 'index.php?page=wl-setup' ) ); |
|
136 | - |
|
137 | - exit; |
|
138 | - } |
|
139 | - |
|
140 | - } |
|
141 | - |
|
142 | - /** |
|
143 | - * Generate an admin notice suggesting to start the wizard if there is no configuration. |
|
144 | - * |
|
145 | - * @since 3.9.0 |
|
146 | - */ |
|
147 | - public function admin_notices() { |
|
148 | - |
|
149 | - // Use `wl_configuration_get_key` to check whether WL's key is set and that the user didn't disable the wizard. |
|
150 | - if ( '' === Wordlift_Configuration_Service::get_instance()->get_key() && ! Wordlift_Configuration_Service::get_instance()->is_skip_wizard() ) { ?> |
|
31 | + /** |
|
32 | + * A {@link Wordlift_Key_Validation_Service} instance. |
|
33 | + * |
|
34 | + * @since 3.9.0 |
|
35 | + * @access private |
|
36 | + * @var Wordlift_Key_Validation_Service A {@link Wordlift_Key_Validation_Service} instance. |
|
37 | + */ |
|
38 | + private $key_validation_service; |
|
39 | + |
|
40 | + /** |
|
41 | + * A {@link Wordlift_Entity_Service} instance. |
|
42 | + * |
|
43 | + * @since 3.9.0 |
|
44 | + * @access private |
|
45 | + * @var Wordlift_Entity_Service $entity_service A {@link Wordlift_Entity_Service} instance. |
|
46 | + */ |
|
47 | + private $entity_service; |
|
48 | + |
|
49 | + /** |
|
50 | + * A {@link Wordlift_Admin_Language_Select_Element} element renderer. |
|
51 | + * |
|
52 | + * @since 3.20.0 |
|
53 | + * @access private |
|
54 | + * @var \Wordlift_Admin_Language_Select_Element $language_select_element A {@link Wordlift_Admin_Language_Select_Element} element renderer. |
|
55 | + */ |
|
56 | + private $language_select_element; |
|
57 | + |
|
58 | + /** |
|
59 | + * A {@link Wordlift_Admin_Country_Select_Element} element renderer. |
|
60 | + * |
|
61 | + * @since 3.20.0 |
|
62 | + * @access private |
|
63 | + * @var \Wordlift_Admin_Country_Select_Element $country_select_element A {@link Wordlift_Admin_Country_Select_Element} element renderer. |
|
64 | + */ |
|
65 | + private $country_select_element; |
|
66 | + |
|
67 | + /** |
|
68 | + * Initialize the class and set its properties. |
|
69 | + * |
|
70 | + * @param \Wordlift_Key_Validation_Service $key_validation_service A {@link Wordlift_Key_Validation_Service} instance. |
|
71 | + * @param \Wordlift_Entity_Service $entity_service A {@link Wordlift_Entity_Service} instance. |
|
72 | + * @param \Wordlift_Admin_Language_Select_Element $language_select_element A {@link Wordlift_Admin_Language_Select_Element} element renderer. |
|
73 | + * @param \Wordlift_Admin_Country_Select_Element $country_select_element A {@link Wordlift_Admin_Country_Select_Element} element renderer. |
|
74 | + * |
|
75 | + * @since 3.9.0 |
|
76 | + */ |
|
77 | + public function __construct( $key_validation_service, $entity_service, $language_select_element, $country_select_element ) { |
|
78 | + |
|
79 | + // Set a reference to the key validation service. |
|
80 | + $this->key_validation_service = $key_validation_service; |
|
81 | + |
|
82 | + // Set a reference to the entity service. |
|
83 | + $this->entity_service = $entity_service; |
|
84 | + |
|
85 | + // Set a reference to the UI elements language and country. |
|
86 | + $this->language_select_element = $language_select_element; |
|
87 | + $this->country_select_element = $country_select_element; |
|
88 | + |
|
89 | + // Hook to some WP's events: |
|
90 | + // When WP is loaded check whether the user decided to skip the set-up, i.e. don't show us even if WL is not set up. |
|
91 | + add_action( 'wp_loaded', array( $this, 'hide_notices' ) ); |
|
92 | + |
|
93 | + // Hook to `admin_menu` in order to add our own setup wizard page. |
|
94 | + add_action( 'admin_menu', array( $this, 'admin_menu' ) ); |
|
95 | + |
|
96 | + // Triggered when the user accesses the admin area, we decide whether to show our own wizard. |
|
97 | + add_action( 'admin_init', array( $this, 'show_page' ) ); |
|
98 | + |
|
99 | + /** |
|
100 | + * Filter: wl_feature__enable__notices. |
|
101 | + * |
|
102 | + * @param bool whether the notices needs to be enabled or not. |
|
103 | + * |
|
104 | + * @return bool |
|
105 | + * @since 3.27.6 |
|
106 | + */ |
|
107 | + if ( apply_filters( 'wl_feature__enable__notices', true ) ) { |
|
108 | + // Hook to `admin_notices` to display our notices. |
|
109 | + add_action( 'admin_notices', array( $this, 'admin_notices' ) ); |
|
110 | + } |
|
111 | + } |
|
112 | + |
|
113 | + /** |
|
114 | + * Hook to `admin_init` and redirect to WordLift's setup page if the `_wl_activation_redirect` transient flag is set. |
|
115 | + * |
|
116 | + * @since 3.9.0 |
|
117 | + */ |
|
118 | + public function admin_init() { |
|
119 | + |
|
120 | + // If the `_wl_activation_redirect` is set, the redirect to the setup page. |
|
121 | + if ( get_transient( '_wl_activation_redirect' ) ) { |
|
122 | + delete_transient( '_wl_activation_redirect' ); |
|
123 | + |
|
124 | + // If the user asked to skip the wizard then comply. |
|
125 | + if ( Wordlift_Configuration_Service::get_instance()->is_skip_wizard() ) { |
|
126 | + return; |
|
127 | + } |
|
128 | + |
|
129 | + // If we're already on the page or the user doesn't have permissions, return. |
|
130 | + if ( ( ! empty( $_GET['page'] ) && 'wl-setup' === $_GET['page'] ) || is_network_admin() || isset( $_GET['activate-multi'] ) || ! current_user_can( 'manage_options' ) ) { //phpcs:ignore WordPress.Security.NonceVerification.Recommended |
|
131 | + return; |
|
132 | + } |
|
133 | + |
|
134 | + // Finally redirect to the setup page. |
|
135 | + wp_safe_redirect( admin_url( 'index.php?page=wl-setup' ) ); |
|
136 | + |
|
137 | + exit; |
|
138 | + } |
|
139 | + |
|
140 | + } |
|
141 | + |
|
142 | + /** |
|
143 | + * Generate an admin notice suggesting to start the wizard if there is no configuration. |
|
144 | + * |
|
145 | + * @since 3.9.0 |
|
146 | + */ |
|
147 | + public function admin_notices() { |
|
148 | + |
|
149 | + // Use `wl_configuration_get_key` to check whether WL's key is set and that the user didn't disable the wizard. |
|
150 | + if ( '' === Wordlift_Configuration_Service::get_instance()->get_key() && ! Wordlift_Configuration_Service::get_instance()->is_skip_wizard() ) { ?> |
|
151 | 151 | <div id="wl-message" class="updated"> |
152 | 152 | <p><?php esc_html_e( 'Welcome to WordLift – You‘re almost ready to start', 'wordlift' ); ?></p> |
153 | 153 | <p class="submit"> |
@@ -158,138 +158,138 @@ discard block |
||
158 | 158 | </p> |
159 | 159 | </div> |
160 | 160 | <?php |
161 | - } |
|
162 | - |
|
163 | - } |
|
164 | - |
|
165 | - /** |
|
166 | - * Handle hiding the wizard notices by user request. |
|
167 | - * |
|
168 | - * @since 3.9.0 |
|
169 | - */ |
|
170 | - public function hide_notices() { |
|
171 | - |
|
172 | - // If it's not a `wl-hide-notice` or the nonce is not set, return. |
|
173 | - if ( ! isset( $_GET['wl-hide-notice'], $_GET['_wl_notice_nonce'] ) ) { |
|
174 | - return; |
|
175 | - } |
|
176 | - |
|
177 | - // If the nonce is invalid, return an error. |
|
178 | - if ( ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_GET['_wl_notice_nonce'] ) ), 'wordlift_hide_notices_nonce' ) ) { |
|
179 | - wp_die( esc_html__( 'Action failed. Please refresh the page and retry.', 'wordlift' ) ); |
|
180 | - } |
|
181 | - |
|
182 | - // If the user doesn't have the right privileges, return an error. |
|
183 | - if ( ! current_user_can( 'manage_options' ) ) { |
|
184 | - wp_die( esc_html__( 'Cheatin’ huh?', 'wordlift' ) ); |
|
185 | - } |
|
186 | - |
|
187 | - // Store a flag telling to skip the wizard. |
|
188 | - Wordlift_Configuration_Service::get_instance()->set_skip_wizard( true ); |
|
189 | - |
|
190 | - } |
|
191 | - |
|
192 | - /** |
|
193 | - * Register the wizard page to be able to access it. |
|
194 | - * |
|
195 | - * @since 3.9.0 |
|
196 | - */ |
|
197 | - public function admin_menu() { |
|
198 | - /** |
|
199 | - * |
|
200 | - * @see https://github.com/insideout10/wordlift-plugin/issues/1209 |
|
201 | - * @since 3.27.7 |
|
202 | - */ |
|
203 | - // @todo: find another way to do this, since this is adding an empty space in WP's dashboard menu. |
|
204 | - add_dashboard_page( '', '', 'manage_options', 'wl-setup', '' ); |
|
205 | - } |
|
206 | - |
|
207 | - /** |
|
208 | - * Displays the wizard page. |
|
209 | - * |
|
210 | - * @since 3.9.0 |
|
211 | - */ |
|
212 | - public function show_page() { |
|
213 | - |
|
214 | - // First check if we are in the wizard page at all, if not do nothing. |
|
215 | - if ( empty( $_GET['page'] ) || 'wl-setup' !== $_GET['page'] ) { |
|
216 | - return; |
|
217 | - } |
|
218 | - |
|
219 | - // If it's a POST and the `wl-save-configuration` action is set, save the configuration. |
|
220 | - if ( isset( $_POST['action'] ) && 'wl-save-configuration' === $_POST['action'] ) { |
|
221 | - |
|
222 | - // Check the nonce and the user capabilities. |
|
223 | - check_admin_referer( 'wl-save-configuration' ); |
|
224 | - |
|
225 | - // Check if the user has the right privileges. |
|
226 | - if ( ! current_user_can( 'manage_options' ) ) { |
|
227 | - wp_die( esc_html__( 'Sorry, you do not have a permission to save the settings', 'wordlift' ) ); |
|
228 | - } |
|
229 | - |
|
230 | - // Save the configuration. |
|
231 | - $this->save_configuration( $_POST ); |
|
232 | - |
|
233 | - // Redirect to the admin's page. |
|
234 | - wp_safe_redirect( admin_url() ); |
|
235 | - exit(); |
|
236 | - } |
|
161 | + } |
|
162 | + |
|
163 | + } |
|
164 | + |
|
165 | + /** |
|
166 | + * Handle hiding the wizard notices by user request. |
|
167 | + * |
|
168 | + * @since 3.9.0 |
|
169 | + */ |
|
170 | + public function hide_notices() { |
|
171 | + |
|
172 | + // If it's not a `wl-hide-notice` or the nonce is not set, return. |
|
173 | + if ( ! isset( $_GET['wl-hide-notice'], $_GET['_wl_notice_nonce'] ) ) { |
|
174 | + return; |
|
175 | + } |
|
176 | + |
|
177 | + // If the nonce is invalid, return an error. |
|
178 | + if ( ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_GET['_wl_notice_nonce'] ) ), 'wordlift_hide_notices_nonce' ) ) { |
|
179 | + wp_die( esc_html__( 'Action failed. Please refresh the page and retry.', 'wordlift' ) ); |
|
180 | + } |
|
181 | + |
|
182 | + // If the user doesn't have the right privileges, return an error. |
|
183 | + if ( ! current_user_can( 'manage_options' ) ) { |
|
184 | + wp_die( esc_html__( 'Cheatin’ huh?', 'wordlift' ) ); |
|
185 | + } |
|
186 | + |
|
187 | + // Store a flag telling to skip the wizard. |
|
188 | + Wordlift_Configuration_Service::get_instance()->set_skip_wizard( true ); |
|
189 | + |
|
190 | + } |
|
191 | + |
|
192 | + /** |
|
193 | + * Register the wizard page to be able to access it. |
|
194 | + * |
|
195 | + * @since 3.9.0 |
|
196 | + */ |
|
197 | + public function admin_menu() { |
|
198 | + /** |
|
199 | + * |
|
200 | + * @see https://github.com/insideout10/wordlift-plugin/issues/1209 |
|
201 | + * @since 3.27.7 |
|
202 | + */ |
|
203 | + // @todo: find another way to do this, since this is adding an empty space in WP's dashboard menu. |
|
204 | + add_dashboard_page( '', '', 'manage_options', 'wl-setup', '' ); |
|
205 | + } |
|
206 | + |
|
207 | + /** |
|
208 | + * Displays the wizard page. |
|
209 | + * |
|
210 | + * @since 3.9.0 |
|
211 | + */ |
|
212 | + public function show_page() { |
|
213 | + |
|
214 | + // First check if we are in the wizard page at all, if not do nothing. |
|
215 | + if ( empty( $_GET['page'] ) || 'wl-setup' !== $_GET['page'] ) { |
|
216 | + return; |
|
217 | + } |
|
218 | + |
|
219 | + // If it's a POST and the `wl-save-configuration` action is set, save the configuration. |
|
220 | + if ( isset( $_POST['action'] ) && 'wl-save-configuration' === $_POST['action'] ) { |
|
221 | + |
|
222 | + // Check the nonce and the user capabilities. |
|
223 | + check_admin_referer( 'wl-save-configuration' ); |
|
224 | + |
|
225 | + // Check if the user has the right privileges. |
|
226 | + if ( ! current_user_can( 'manage_options' ) ) { |
|
227 | + wp_die( esc_html__( 'Sorry, you do not have a permission to save the settings', 'wordlift' ) ); |
|
228 | + } |
|
229 | + |
|
230 | + // Save the configuration. |
|
231 | + $this->save_configuration( $_POST ); |
|
232 | + |
|
233 | + // Redirect to the admin's page. |
|
234 | + wp_safe_redirect( admin_url() ); |
|
235 | + exit(); |
|
236 | + } |
|
237 | 237 | |
238 | 238 | // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable |
239 | - $language_select = $this->language_select_element; |
|
240 | - // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable |
|
241 | - $country_select = $this->country_select_element; |
|
239 | + $language_select = $this->language_select_element; |
|
240 | + // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable |
|
241 | + $country_select = $this->country_select_element; |
|
242 | 242 | |
243 | - include plugin_dir_path( __DIR__ ) . 'admin/partials/wordlift-admin-setup.php'; |
|
243 | + include plugin_dir_path( __DIR__ ) . 'admin/partials/wordlift-admin-setup.php'; |
|
244 | 244 | |
245 | - exit; |
|
246 | - } |
|
245 | + exit; |
|
246 | + } |
|
247 | 247 | |
248 | - /** |
|
249 | - * Save WordLift's configuration using the provided parameters. |
|
250 | - * |
|
251 | - * @param array $params An array of configuration parameters. |
|
252 | - * |
|
253 | - * @since 3.9.0 |
|
254 | - */ |
|
255 | - public function save_configuration( $params ) { |
|
248 | + /** |
|
249 | + * Save WordLift's configuration using the provided parameters. |
|
250 | + * |
|
251 | + * @param array $params An array of configuration parameters. |
|
252 | + * |
|
253 | + * @since 3.9.0 |
|
254 | + */ |
|
255 | + public function save_configuration( $params ) { |
|
256 | 256 | |
257 | - // We have the following parameters: |
|
258 | - // `key`, holding WL's key, |
|
259 | - // `vocabulary`, holding the vocabulary path, |
|
260 | - // `wl-country-code` with the country code (e.g. `us`), |
|
261 | - // `share-diagnostic`, the user preferences about sharing data with us. |
|
262 | - // `user_type`, the user type either `personal` or `company`, |
|
263 | - // `name`, with the `personal` or `company`'s name, |
|
264 | - // `logo`, the attachment id for the `personal` or `company` entity. |
|
257 | + // We have the following parameters: |
|
258 | + // `key`, holding WL's key, |
|
259 | + // `vocabulary`, holding the vocabulary path, |
|
260 | + // `wl-country-code` with the country code (e.g. `us`), |
|
261 | + // `share-diagnostic`, the user preferences about sharing data with us. |
|
262 | + // `user_type`, the user type either `personal` or `company`, |
|
263 | + // `name`, with the `personal` or `company`'s name, |
|
264 | + // `logo`, the attachment id for the `personal` or `company` entity. |
|
265 | 265 | |
266 | - // Store the key: |
|
267 | - Wordlift_Configuration_Service::get_instance()->set_key( $params['key'] ); |
|
266 | + // Store the key: |
|
267 | + Wordlift_Configuration_Service::get_instance()->set_key( $params['key'] ); |
|
268 | 268 | |
269 | - // Store the vocabulary path: |
|
270 | - Wordlift_Configuration_Service::get_instance()->set_entity_base_path( $params['vocabulary'] ); |
|
269 | + // Store the vocabulary path: |
|
270 | + Wordlift_Configuration_Service::get_instance()->set_entity_base_path( $params['vocabulary'] ); |
|
271 | 271 | |
272 | - // Store the site's country: |
|
273 | - Wordlift_Configuration_Service::get_instance()->set_country_code( $params['wl-country-code'] ); |
|
272 | + // Store the site's country: |
|
273 | + Wordlift_Configuration_Service::get_instance()->set_country_code( $params['wl-country-code'] ); |
|
274 | 274 | |
275 | - // Store the preferences in variable, because if the checkbox is not checked |
|
276 | - // the `share-diagnostic` will not exists in `$params` array. |
|
277 | - $share_diagnostic_preferences = empty( $params['share-diagnostic'] ) ? 'no' : 'yes'; |
|
275 | + // Store the preferences in variable, because if the checkbox is not checked |
|
276 | + // the `share-diagnostic` will not exists in `$params` array. |
|
277 | + $share_diagnostic_preferences = empty( $params['share-diagnostic'] ) ? 'no' : 'yes'; |
|
278 | 278 | |
279 | - // Store the diagnostic preferences: |
|
280 | - Wordlift_Configuration_Service::get_instance()->set_diagnostic_preferences( $share_diagnostic_preferences ); |
|
279 | + // Store the diagnostic preferences: |
|
280 | + Wordlift_Configuration_Service::get_instance()->set_diagnostic_preferences( $share_diagnostic_preferences ); |
|
281 | 281 | |
282 | - // Set the type URI, either http://schema.org/Person or http://schema.org/Organization. |
|
283 | - $type_uri = sprintf( 'http://schema.org/%s', 'organization' === $params['user_type'] ? 'Organization' : 'Person' ); |
|
282 | + // Set the type URI, either http://schema.org/Person or http://schema.org/Organization. |
|
283 | + $type_uri = sprintf( 'http://schema.org/%s', 'organization' === $params['user_type'] ? 'Organization' : 'Person' ); |
|
284 | 284 | |
285 | - // Create an entity for the publisher. |
|
286 | - $publisher_post_id = $this->entity_service->create( $params['name'], $type_uri, $params['logo'], 'publish' ); |
|
285 | + // Create an entity for the publisher. |
|
286 | + $publisher_post_id = $this->entity_service->create( $params['name'], $type_uri, $params['logo'], 'publish' ); |
|
287 | 287 | |
288 | - // Store the publisher entity post id in the configuration. |
|
289 | - Wordlift_Configuration_Service::get_instance()->set_publisher_id( $publisher_post_id ); |
|
288 | + // Store the publisher entity post id in the configuration. |
|
289 | + Wordlift_Configuration_Service::get_instance()->set_publisher_id( $publisher_post_id ); |
|
290 | 290 | |
291 | - flush_rewrite_rules(); // Needed because of possible change to the entity base path. |
|
291 | + flush_rewrite_rules(); // Needed because of possible change to the entity base path. |
|
292 | 292 | |
293 | - } |
|
293 | + } |
|
294 | 294 | |
295 | 295 | } |
@@ -12,7 +12,7 @@ discard block |
||
12 | 12 | * @since 3.9.0 |
13 | 13 | */ |
14 | 14 | |
15 | -if ( ! defined( 'ABSPATH' ) ) { |
|
15 | +if ( ! defined('ABSPATH')) { |
|
16 | 16 | exit; |
17 | 17 | } |
18 | 18 | |
@@ -74,7 +74,7 @@ discard block |
||
74 | 74 | * |
75 | 75 | * @since 3.9.0 |
76 | 76 | */ |
77 | - public function __construct( $key_validation_service, $entity_service, $language_select_element, $country_select_element ) { |
|
77 | + public function __construct($key_validation_service, $entity_service, $language_select_element, $country_select_element) { |
|
78 | 78 | |
79 | 79 | // Set a reference to the key validation service. |
80 | 80 | $this->key_validation_service = $key_validation_service; |
@@ -88,13 +88,13 @@ discard block |
||
88 | 88 | |
89 | 89 | // Hook to some WP's events: |
90 | 90 | // When WP is loaded check whether the user decided to skip the set-up, i.e. don't show us even if WL is not set up. |
91 | - add_action( 'wp_loaded', array( $this, 'hide_notices' ) ); |
|
91 | + add_action('wp_loaded', array($this, 'hide_notices')); |
|
92 | 92 | |
93 | 93 | // Hook to `admin_menu` in order to add our own setup wizard page. |
94 | - add_action( 'admin_menu', array( $this, 'admin_menu' ) ); |
|
94 | + add_action('admin_menu', array($this, 'admin_menu')); |
|
95 | 95 | |
96 | 96 | // Triggered when the user accesses the admin area, we decide whether to show our own wizard. |
97 | - add_action( 'admin_init', array( $this, 'show_page' ) ); |
|
97 | + add_action('admin_init', array($this, 'show_page')); |
|
98 | 98 | |
99 | 99 | /** |
100 | 100 | * Filter: wl_feature__enable__notices. |
@@ -104,9 +104,9 @@ discard block |
||
104 | 104 | * @return bool |
105 | 105 | * @since 3.27.6 |
106 | 106 | */ |
107 | - if ( apply_filters( 'wl_feature__enable__notices', true ) ) { |
|
107 | + if (apply_filters('wl_feature__enable__notices', true)) { |
|
108 | 108 | // Hook to `admin_notices` to display our notices. |
109 | - add_action( 'admin_notices', array( $this, 'admin_notices' ) ); |
|
109 | + add_action('admin_notices', array($this, 'admin_notices')); |
|
110 | 110 | } |
111 | 111 | } |
112 | 112 | |
@@ -118,21 +118,21 @@ discard block |
||
118 | 118 | public function admin_init() { |
119 | 119 | |
120 | 120 | // If the `_wl_activation_redirect` is set, the redirect to the setup page. |
121 | - if ( get_transient( '_wl_activation_redirect' ) ) { |
|
122 | - delete_transient( '_wl_activation_redirect' ); |
|
121 | + if (get_transient('_wl_activation_redirect')) { |
|
122 | + delete_transient('_wl_activation_redirect'); |
|
123 | 123 | |
124 | 124 | // If the user asked to skip the wizard then comply. |
125 | - if ( Wordlift_Configuration_Service::get_instance()->is_skip_wizard() ) { |
|
125 | + if (Wordlift_Configuration_Service::get_instance()->is_skip_wizard()) { |
|
126 | 126 | return; |
127 | 127 | } |
128 | 128 | |
129 | 129 | // If we're already on the page or the user doesn't have permissions, return. |
130 | - if ( ( ! empty( $_GET['page'] ) && 'wl-setup' === $_GET['page'] ) || is_network_admin() || isset( $_GET['activate-multi'] ) || ! current_user_can( 'manage_options' ) ) { //phpcs:ignore WordPress.Security.NonceVerification.Recommended |
|
130 | + if (( ! empty($_GET['page']) && 'wl-setup' === $_GET['page']) || is_network_admin() || isset($_GET['activate-multi']) || ! current_user_can('manage_options')) { //phpcs:ignore WordPress.Security.NonceVerification.Recommended |
|
131 | 131 | return; |
132 | 132 | } |
133 | 133 | |
134 | 134 | // Finally redirect to the setup page. |
135 | - wp_safe_redirect( admin_url( 'index.php?page=wl-setup' ) ); |
|
135 | + wp_safe_redirect(admin_url('index.php?page=wl-setup')); |
|
136 | 136 | |
137 | 137 | exit; |
138 | 138 | } |
@@ -147,14 +147,14 @@ discard block |
||
147 | 147 | public function admin_notices() { |
148 | 148 | |
149 | 149 | // Use `wl_configuration_get_key` to check whether WL's key is set and that the user didn't disable the wizard. |
150 | - if ( '' === Wordlift_Configuration_Service::get_instance()->get_key() && ! Wordlift_Configuration_Service::get_instance()->is_skip_wizard() ) { ?> |
|
150 | + if ('' === Wordlift_Configuration_Service::get_instance()->get_key() && ! Wordlift_Configuration_Service::get_instance()->is_skip_wizard()) { ?> |
|
151 | 151 | <div id="wl-message" class="updated"> |
152 | - <p><?php esc_html_e( 'Welcome to WordLift – You‘re almost ready to start', 'wordlift' ); ?></p> |
|
152 | + <p><?php esc_html_e('Welcome to WordLift – You‘re almost ready to start', 'wordlift'); ?></p> |
|
153 | 153 | <p class="submit"> |
154 | - <a href="<?php echo esc_url( admin_url( 'admin.php?page=wl-setup' ) ); ?>" |
|
155 | - class="button-primary"><?php esc_html_e( 'Run the Setup Wizard', 'wordlift' ); ?></a> |
|
154 | + <a href="<?php echo esc_url(admin_url('admin.php?page=wl-setup')); ?>" |
|
155 | + class="button-primary"><?php esc_html_e('Run the Setup Wizard', 'wordlift'); ?></a> |
|
156 | 156 | <a class="button-secondary skip" |
157 | - href="<?php echo esc_url( wp_nonce_url( add_query_arg( 'wl-hide-notice', 'install' ), 'wordlift_hide_notices_nonce', '_wl_notice_nonce' ) ); ?>"><?php esc_html_e( 'Skip Setup', 'wordlift' ); ?></a> |
|
157 | + href="<?php echo esc_url(wp_nonce_url(add_query_arg('wl-hide-notice', 'install'), 'wordlift_hide_notices_nonce', '_wl_notice_nonce')); ?>"><?php esc_html_e('Skip Setup', 'wordlift'); ?></a> |
|
158 | 158 | </p> |
159 | 159 | </div> |
160 | 160 | <?php |
@@ -170,22 +170,22 @@ discard block |
||
170 | 170 | public function hide_notices() { |
171 | 171 | |
172 | 172 | // If it's not a `wl-hide-notice` or the nonce is not set, return. |
173 | - if ( ! isset( $_GET['wl-hide-notice'], $_GET['_wl_notice_nonce'] ) ) { |
|
173 | + if ( ! isset($_GET['wl-hide-notice'], $_GET['_wl_notice_nonce'])) { |
|
174 | 174 | return; |
175 | 175 | } |
176 | 176 | |
177 | 177 | // If the nonce is invalid, return an error. |
178 | - if ( ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_GET['_wl_notice_nonce'] ) ), 'wordlift_hide_notices_nonce' ) ) { |
|
179 | - wp_die( esc_html__( 'Action failed. Please refresh the page and retry.', 'wordlift' ) ); |
|
178 | + if ( ! wp_verify_nonce(sanitize_text_field(wp_unslash($_GET['_wl_notice_nonce'])), 'wordlift_hide_notices_nonce')) { |
|
179 | + wp_die(esc_html__('Action failed. Please refresh the page and retry.', 'wordlift')); |
|
180 | 180 | } |
181 | 181 | |
182 | 182 | // If the user doesn't have the right privileges, return an error. |
183 | - if ( ! current_user_can( 'manage_options' ) ) { |
|
184 | - wp_die( esc_html__( 'Cheatin’ huh?', 'wordlift' ) ); |
|
183 | + if ( ! current_user_can('manage_options')) { |
|
184 | + wp_die(esc_html__('Cheatin’ huh?', 'wordlift')); |
|
185 | 185 | } |
186 | 186 | |
187 | 187 | // Store a flag telling to skip the wizard. |
188 | - Wordlift_Configuration_Service::get_instance()->set_skip_wizard( true ); |
|
188 | + Wordlift_Configuration_Service::get_instance()->set_skip_wizard(true); |
|
189 | 189 | |
190 | 190 | } |
191 | 191 | |
@@ -201,7 +201,7 @@ discard block |
||
201 | 201 | * @since 3.27.7 |
202 | 202 | */ |
203 | 203 | // @todo: find another way to do this, since this is adding an empty space in WP's dashboard menu. |
204 | - add_dashboard_page( '', '', 'manage_options', 'wl-setup', '' ); |
|
204 | + add_dashboard_page('', '', 'manage_options', 'wl-setup', ''); |
|
205 | 205 | } |
206 | 206 | |
207 | 207 | /** |
@@ -212,26 +212,26 @@ discard block |
||
212 | 212 | public function show_page() { |
213 | 213 | |
214 | 214 | // First check if we are in the wizard page at all, if not do nothing. |
215 | - if ( empty( $_GET['page'] ) || 'wl-setup' !== $_GET['page'] ) { |
|
215 | + if (empty($_GET['page']) || 'wl-setup' !== $_GET['page']) { |
|
216 | 216 | return; |
217 | 217 | } |
218 | 218 | |
219 | 219 | // If it's a POST and the `wl-save-configuration` action is set, save the configuration. |
220 | - if ( isset( $_POST['action'] ) && 'wl-save-configuration' === $_POST['action'] ) { |
|
220 | + if (isset($_POST['action']) && 'wl-save-configuration' === $_POST['action']) { |
|
221 | 221 | |
222 | 222 | // Check the nonce and the user capabilities. |
223 | - check_admin_referer( 'wl-save-configuration' ); |
|
223 | + check_admin_referer('wl-save-configuration'); |
|
224 | 224 | |
225 | 225 | // Check if the user has the right privileges. |
226 | - if ( ! current_user_can( 'manage_options' ) ) { |
|
227 | - wp_die( esc_html__( 'Sorry, you do not have a permission to save the settings', 'wordlift' ) ); |
|
226 | + if ( ! current_user_can('manage_options')) { |
|
227 | + wp_die(esc_html__('Sorry, you do not have a permission to save the settings', 'wordlift')); |
|
228 | 228 | } |
229 | 229 | |
230 | 230 | // Save the configuration. |
231 | - $this->save_configuration( $_POST ); |
|
231 | + $this->save_configuration($_POST); |
|
232 | 232 | |
233 | 233 | // Redirect to the admin's page. |
234 | - wp_safe_redirect( admin_url() ); |
|
234 | + wp_safe_redirect(admin_url()); |
|
235 | 235 | exit(); |
236 | 236 | } |
237 | 237 | |
@@ -240,7 +240,7 @@ discard block |
||
240 | 240 | // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable |
241 | 241 | $country_select = $this->country_select_element; |
242 | 242 | |
243 | - include plugin_dir_path( __DIR__ ) . 'admin/partials/wordlift-admin-setup.php'; |
|
243 | + include plugin_dir_path(__DIR__).'admin/partials/wordlift-admin-setup.php'; |
|
244 | 244 | |
245 | 245 | exit; |
246 | 246 | } |
@@ -252,7 +252,7 @@ discard block |
||
252 | 252 | * |
253 | 253 | * @since 3.9.0 |
254 | 254 | */ |
255 | - public function save_configuration( $params ) { |
|
255 | + public function save_configuration($params) { |
|
256 | 256 | |
257 | 257 | // We have the following parameters: |
258 | 258 | // `key`, holding WL's key, |
@@ -264,29 +264,29 @@ discard block |
||
264 | 264 | // `logo`, the attachment id for the `personal` or `company` entity. |
265 | 265 | |
266 | 266 | // Store the key: |
267 | - Wordlift_Configuration_Service::get_instance()->set_key( $params['key'] ); |
|
267 | + Wordlift_Configuration_Service::get_instance()->set_key($params['key']); |
|
268 | 268 | |
269 | 269 | // Store the vocabulary path: |
270 | - Wordlift_Configuration_Service::get_instance()->set_entity_base_path( $params['vocabulary'] ); |
|
270 | + Wordlift_Configuration_Service::get_instance()->set_entity_base_path($params['vocabulary']); |
|
271 | 271 | |
272 | 272 | // Store the site's country: |
273 | - Wordlift_Configuration_Service::get_instance()->set_country_code( $params['wl-country-code'] ); |
|
273 | + Wordlift_Configuration_Service::get_instance()->set_country_code($params['wl-country-code']); |
|
274 | 274 | |
275 | 275 | // Store the preferences in variable, because if the checkbox is not checked |
276 | 276 | // the `share-diagnostic` will not exists in `$params` array. |
277 | - $share_diagnostic_preferences = empty( $params['share-diagnostic'] ) ? 'no' : 'yes'; |
|
277 | + $share_diagnostic_preferences = empty($params['share-diagnostic']) ? 'no' : 'yes'; |
|
278 | 278 | |
279 | 279 | // Store the diagnostic preferences: |
280 | - Wordlift_Configuration_Service::get_instance()->set_diagnostic_preferences( $share_diagnostic_preferences ); |
|
280 | + Wordlift_Configuration_Service::get_instance()->set_diagnostic_preferences($share_diagnostic_preferences); |
|
281 | 281 | |
282 | 282 | // Set the type URI, either http://schema.org/Person or http://schema.org/Organization. |
283 | - $type_uri = sprintf( 'http://schema.org/%s', 'organization' === $params['user_type'] ? 'Organization' : 'Person' ); |
|
283 | + $type_uri = sprintf('http://schema.org/%s', 'organization' === $params['user_type'] ? 'Organization' : 'Person'); |
|
284 | 284 | |
285 | 285 | // Create an entity for the publisher. |
286 | - $publisher_post_id = $this->entity_service->create( $params['name'], $type_uri, $params['logo'], 'publish' ); |
|
286 | + $publisher_post_id = $this->entity_service->create($params['name'], $type_uri, $params['logo'], 'publish'); |
|
287 | 287 | |
288 | 288 | // Store the publisher entity post id in the configuration. |
289 | - Wordlift_Configuration_Service::get_instance()->set_publisher_id( $publisher_post_id ); |
|
289 | + Wordlift_Configuration_Service::get_instance()->set_publisher_id($publisher_post_id); |
|
290 | 290 | |
291 | 291 | flush_rewrite_rules(); // Needed because of possible change to the entity base path. |
292 | 292 |
@@ -7,194 +7,194 @@ |
||
7 | 7 | */ |
8 | 8 | class Wordlift_Notice_Service { |
9 | 9 | |
10 | - /** |
|
11 | - * The template used to display notices. The <em>notice dismissible</em> style classes make this notice dismissible |
|
12 | - * on the WordPress UI (via a small X button on the right side of the notice). |
|
13 | - * |
|
14 | - * @since 3.2.0 |
|
15 | - */ |
|
16 | - const TEMPLATE = '<div class="wl-notice notice is-dismissible %s"><p>%s</p></div>'; |
|
17 | - |
|
18 | - /** |
|
19 | - * The standard WordPress <em>update</em> style class. |
|
20 | - * |
|
21 | - * @since 3.2.0 |
|
22 | - */ |
|
23 | - const UPDATE = 'update'; |
|
24 | - |
|
25 | - /** |
|
26 | - * The standard WordPress <em>update-nag</em> style class. |
|
27 | - * |
|
28 | - * @since 3.2.0 |
|
29 | - */ |
|
30 | - const UPDATE_NAG = 'update-nag'; |
|
31 | - |
|
32 | - /** |
|
33 | - * The standard WordPress <em>error</em> style class. |
|
34 | - * |
|
35 | - * @since 3.2.0 |
|
36 | - */ |
|
37 | - const ERROR = 'error'; |
|
38 | - |
|
39 | - /** |
|
40 | - * A custom WordLift css style class used for WordLift suggestions. |
|
41 | - * |
|
42 | - * @since 3.3.0 |
|
43 | - */ |
|
44 | - const SUGGESTION = 'wl-suggestion'; |
|
45 | - |
|
46 | - /** |
|
47 | - * The array of notices. |
|
48 | - * |
|
49 | - * @since 3.2.0 |
|
50 | - * @access private |
|
51 | - * @var array $notices The array of notices. |
|
52 | - */ |
|
53 | - private $notices = array(); |
|
54 | - |
|
55 | - /** |
|
56 | - * A singleton instance of the Notice service. |
|
57 | - * |
|
58 | - * @since 3.2.0 |
|
59 | - * @access private |
|
60 | - * @var \Wordlift_Notice_Service $instance A singleton instance of the Notice service. |
|
61 | - */ |
|
62 | - private static $instance; |
|
63 | - |
|
64 | - /** |
|
65 | - * Create an instance of the Notice service. |
|
66 | - * |
|
67 | - * @since 3.2.0 |
|
68 | - */ |
|
69 | - public function __construct() { |
|
70 | - /** |
|
71 | - * Filter: wl_feature__enable__notices. |
|
72 | - * |
|
73 | - * @param bool whether the notices needs to be enabled or not. |
|
74 | - * |
|
75 | - * @return bool |
|
76 | - * @since 3.27.6 |
|
77 | - */ |
|
78 | - if ( apply_filters( 'wl_feature__enable__notices', true ) ) { |
|
79 | - // Hook to be called when to display notices. |
|
80 | - add_action( 'admin_notices', array( $this, 'admin_notices' ) ); |
|
81 | - } |
|
82 | - self::$instance = $this; |
|
83 | - |
|
84 | - } |
|
85 | - |
|
86 | - /** |
|
87 | - * Get the singleton instance of the Notice service. |
|
88 | - * |
|
89 | - * @return \Wordlift_Notice_Service The singleton instance of the Notice service. |
|
90 | - * @since 3.2.0 |
|
91 | - */ |
|
92 | - public static function get_instance() { |
|
93 | - |
|
94 | - return self::$instance; |
|
95 | - } |
|
96 | - |
|
97 | - /** |
|
98 | - * Add a notice. |
|
99 | - * |
|
100 | - * @param string $class The css class. |
|
101 | - * @param string $message The message. |
|
102 | - * |
|
103 | - * @since 3.2.0 |
|
104 | - */ |
|
105 | - public function add( $class, $message ) { |
|
106 | - |
|
107 | - $this->notices[] = sprintf( self::TEMPLATE, $class, $this->transform( $message ) ); |
|
108 | - |
|
109 | - } |
|
110 | - |
|
111 | - /** |
|
112 | - * Add an update notice (message with a white background and a green left border). |
|
113 | - * |
|
114 | - * @param string $message The message to display. |
|
115 | - * |
|
116 | - * @since 3.2.0 |
|
117 | - */ |
|
118 | - public function add_update( $message ) { |
|
119 | - |
|
120 | - $this->add( self::UPDATE, $message ); |
|
121 | - |
|
122 | - } |
|
123 | - |
|
124 | - /** |
|
125 | - * Add an update nag notice (message with a white background and a yellow left border). |
|
126 | - * |
|
127 | - * @param string $message The message to display. |
|
128 | - * |
|
129 | - * @since 3.2.0 |
|
130 | - */ |
|
131 | - public function add_update_nag( $message ) { |
|
132 | - |
|
133 | - $this->add( self::UPDATE_NAG, $message ); |
|
134 | - |
|
135 | - } |
|
136 | - |
|
137 | - /** |
|
138 | - * Add an error notice (message with a white background and a red left border). |
|
139 | - * |
|
140 | - * @param string $message The message to display. |
|
141 | - * |
|
142 | - * @since 3.2.0 |
|
143 | - */ |
|
144 | - public function add_error( $message ) { |
|
145 | - |
|
146 | - $this->add( self::ERROR, $message ); |
|
147 | - |
|
148 | - } |
|
149 | - |
|
150 | - /** |
|
151 | - * Add a suggestion notice (message with a white background and a WordLift brand colored left border). |
|
152 | - * |
|
153 | - * @param string $message The message to display. |
|
154 | - * |
|
155 | - * @since 3.3.0 |
|
156 | - */ |
|
157 | - public function add_suggestion( $message ) { |
|
158 | - |
|
159 | - $this->add( self::SUGGESTION, $message ); |
|
160 | - |
|
161 | - } |
|
162 | - |
|
163 | - /** |
|
164 | - * Print out the notices when the admin_notices action is called. |
|
165 | - * |
|
166 | - * @since 3.2.0 |
|
167 | - */ |
|
168 | - public function admin_notices() { |
|
169 | - |
|
170 | - foreach ( $this->notices as $notice ) { |
|
171 | - echo wp_kses( |
|
172 | - $notice, |
|
173 | - array( |
|
174 | - 'div' => array( 'class' => array() ), |
|
175 | - 'p' => array(), |
|
176 | - ) |
|
177 | - ); |
|
178 | - } |
|
179 | - |
|
180 | - } |
|
181 | - |
|
182 | - /** |
|
183 | - * Transform message depending on message type. Return a string |
|
184 | - * |
|
185 | - * @param string $message The message. |
|
186 | - * |
|
187 | - * @since 3.3.0 |
|
188 | - */ |
|
189 | - private function transform( $message ) { |
|
190 | - |
|
191 | - switch ( gettype( $message ) ) { |
|
192 | - case 'array': |
|
193 | - return implode( '<br />', $message ); |
|
194 | - default: |
|
195 | - return $message; |
|
196 | - } |
|
197 | - |
|
198 | - } |
|
10 | + /** |
|
11 | + * The template used to display notices. The <em>notice dismissible</em> style classes make this notice dismissible |
|
12 | + * on the WordPress UI (via a small X button on the right side of the notice). |
|
13 | + * |
|
14 | + * @since 3.2.0 |
|
15 | + */ |
|
16 | + const TEMPLATE = '<div class="wl-notice notice is-dismissible %s"><p>%s</p></div>'; |
|
17 | + |
|
18 | + /** |
|
19 | + * The standard WordPress <em>update</em> style class. |
|
20 | + * |
|
21 | + * @since 3.2.0 |
|
22 | + */ |
|
23 | + const UPDATE = 'update'; |
|
24 | + |
|
25 | + /** |
|
26 | + * The standard WordPress <em>update-nag</em> style class. |
|
27 | + * |
|
28 | + * @since 3.2.0 |
|
29 | + */ |
|
30 | + const UPDATE_NAG = 'update-nag'; |
|
31 | + |
|
32 | + /** |
|
33 | + * The standard WordPress <em>error</em> style class. |
|
34 | + * |
|
35 | + * @since 3.2.0 |
|
36 | + */ |
|
37 | + const ERROR = 'error'; |
|
38 | + |
|
39 | + /** |
|
40 | + * A custom WordLift css style class used for WordLift suggestions. |
|
41 | + * |
|
42 | + * @since 3.3.0 |
|
43 | + */ |
|
44 | + const SUGGESTION = 'wl-suggestion'; |
|
45 | + |
|
46 | + /** |
|
47 | + * The array of notices. |
|
48 | + * |
|
49 | + * @since 3.2.0 |
|
50 | + * @access private |
|
51 | + * @var array $notices The array of notices. |
|
52 | + */ |
|
53 | + private $notices = array(); |
|
54 | + |
|
55 | + /** |
|
56 | + * A singleton instance of the Notice service. |
|
57 | + * |
|
58 | + * @since 3.2.0 |
|
59 | + * @access private |
|
60 | + * @var \Wordlift_Notice_Service $instance A singleton instance of the Notice service. |
|
61 | + */ |
|
62 | + private static $instance; |
|
63 | + |
|
64 | + /** |
|
65 | + * Create an instance of the Notice service. |
|
66 | + * |
|
67 | + * @since 3.2.0 |
|
68 | + */ |
|
69 | + public function __construct() { |
|
70 | + /** |
|
71 | + * Filter: wl_feature__enable__notices. |
|
72 | + * |
|
73 | + * @param bool whether the notices needs to be enabled or not. |
|
74 | + * |
|
75 | + * @return bool |
|
76 | + * @since 3.27.6 |
|
77 | + */ |
|
78 | + if ( apply_filters( 'wl_feature__enable__notices', true ) ) { |
|
79 | + // Hook to be called when to display notices. |
|
80 | + add_action( 'admin_notices', array( $this, 'admin_notices' ) ); |
|
81 | + } |
|
82 | + self::$instance = $this; |
|
83 | + |
|
84 | + } |
|
85 | + |
|
86 | + /** |
|
87 | + * Get the singleton instance of the Notice service. |
|
88 | + * |
|
89 | + * @return \Wordlift_Notice_Service The singleton instance of the Notice service. |
|
90 | + * @since 3.2.0 |
|
91 | + */ |
|
92 | + public static function get_instance() { |
|
93 | + |
|
94 | + return self::$instance; |
|
95 | + } |
|
96 | + |
|
97 | + /** |
|
98 | + * Add a notice. |
|
99 | + * |
|
100 | + * @param string $class The css class. |
|
101 | + * @param string $message The message. |
|
102 | + * |
|
103 | + * @since 3.2.0 |
|
104 | + */ |
|
105 | + public function add( $class, $message ) { |
|
106 | + |
|
107 | + $this->notices[] = sprintf( self::TEMPLATE, $class, $this->transform( $message ) ); |
|
108 | + |
|
109 | + } |
|
110 | + |
|
111 | + /** |
|
112 | + * Add an update notice (message with a white background and a green left border). |
|
113 | + * |
|
114 | + * @param string $message The message to display. |
|
115 | + * |
|
116 | + * @since 3.2.0 |
|
117 | + */ |
|
118 | + public function add_update( $message ) { |
|
119 | + |
|
120 | + $this->add( self::UPDATE, $message ); |
|
121 | + |
|
122 | + } |
|
123 | + |
|
124 | + /** |
|
125 | + * Add an update nag notice (message with a white background and a yellow left border). |
|
126 | + * |
|
127 | + * @param string $message The message to display. |
|
128 | + * |
|
129 | + * @since 3.2.0 |
|
130 | + */ |
|
131 | + public function add_update_nag( $message ) { |
|
132 | + |
|
133 | + $this->add( self::UPDATE_NAG, $message ); |
|
134 | + |
|
135 | + } |
|
136 | + |
|
137 | + /** |
|
138 | + * Add an error notice (message with a white background and a red left border). |
|
139 | + * |
|
140 | + * @param string $message The message to display. |
|
141 | + * |
|
142 | + * @since 3.2.0 |
|
143 | + */ |
|
144 | + public function add_error( $message ) { |
|
145 | + |
|
146 | + $this->add( self::ERROR, $message ); |
|
147 | + |
|
148 | + } |
|
149 | + |
|
150 | + /** |
|
151 | + * Add a suggestion notice (message with a white background and a WordLift brand colored left border). |
|
152 | + * |
|
153 | + * @param string $message The message to display. |
|
154 | + * |
|
155 | + * @since 3.3.0 |
|
156 | + */ |
|
157 | + public function add_suggestion( $message ) { |
|
158 | + |
|
159 | + $this->add( self::SUGGESTION, $message ); |
|
160 | + |
|
161 | + } |
|
162 | + |
|
163 | + /** |
|
164 | + * Print out the notices when the admin_notices action is called. |
|
165 | + * |
|
166 | + * @since 3.2.0 |
|
167 | + */ |
|
168 | + public function admin_notices() { |
|
169 | + |
|
170 | + foreach ( $this->notices as $notice ) { |
|
171 | + echo wp_kses( |
|
172 | + $notice, |
|
173 | + array( |
|
174 | + 'div' => array( 'class' => array() ), |
|
175 | + 'p' => array(), |
|
176 | + ) |
|
177 | + ); |
|
178 | + } |
|
179 | + |
|
180 | + } |
|
181 | + |
|
182 | + /** |
|
183 | + * Transform message depending on message type. Return a string |
|
184 | + * |
|
185 | + * @param string $message The message. |
|
186 | + * |
|
187 | + * @since 3.3.0 |
|
188 | + */ |
|
189 | + private function transform( $message ) { |
|
190 | + |
|
191 | + switch ( gettype( $message ) ) { |
|
192 | + case 'array': |
|
193 | + return implode( '<br />', $message ); |
|
194 | + default: |
|
195 | + return $message; |
|
196 | + } |
|
197 | + |
|
198 | + } |
|
199 | 199 | |
200 | 200 | } |
@@ -75,9 +75,9 @@ discard block |
||
75 | 75 | * @return bool |
76 | 76 | * @since 3.27.6 |
77 | 77 | */ |
78 | - if ( apply_filters( 'wl_feature__enable__notices', true ) ) { |
|
78 | + if (apply_filters('wl_feature__enable__notices', true)) { |
|
79 | 79 | // Hook to be called when to display notices. |
80 | - add_action( 'admin_notices', array( $this, 'admin_notices' ) ); |
|
80 | + add_action('admin_notices', array($this, 'admin_notices')); |
|
81 | 81 | } |
82 | 82 | self::$instance = $this; |
83 | 83 | |
@@ -102,9 +102,9 @@ discard block |
||
102 | 102 | * |
103 | 103 | * @since 3.2.0 |
104 | 104 | */ |
105 | - public function add( $class, $message ) { |
|
105 | + public function add($class, $message) { |
|
106 | 106 | |
107 | - $this->notices[] = sprintf( self::TEMPLATE, $class, $this->transform( $message ) ); |
|
107 | + $this->notices[] = sprintf(self::TEMPLATE, $class, $this->transform($message)); |
|
108 | 108 | |
109 | 109 | } |
110 | 110 | |
@@ -115,9 +115,9 @@ discard block |
||
115 | 115 | * |
116 | 116 | * @since 3.2.0 |
117 | 117 | */ |
118 | - public function add_update( $message ) { |
|
118 | + public function add_update($message) { |
|
119 | 119 | |
120 | - $this->add( self::UPDATE, $message ); |
|
120 | + $this->add(self::UPDATE, $message); |
|
121 | 121 | |
122 | 122 | } |
123 | 123 | |
@@ -128,9 +128,9 @@ discard block |
||
128 | 128 | * |
129 | 129 | * @since 3.2.0 |
130 | 130 | */ |
131 | - public function add_update_nag( $message ) { |
|
131 | + public function add_update_nag($message) { |
|
132 | 132 | |
133 | - $this->add( self::UPDATE_NAG, $message ); |
|
133 | + $this->add(self::UPDATE_NAG, $message); |
|
134 | 134 | |
135 | 135 | } |
136 | 136 | |
@@ -141,9 +141,9 @@ discard block |
||
141 | 141 | * |
142 | 142 | * @since 3.2.0 |
143 | 143 | */ |
144 | - public function add_error( $message ) { |
|
144 | + public function add_error($message) { |
|
145 | 145 | |
146 | - $this->add( self::ERROR, $message ); |
|
146 | + $this->add(self::ERROR, $message); |
|
147 | 147 | |
148 | 148 | } |
149 | 149 | |
@@ -154,9 +154,9 @@ discard block |
||
154 | 154 | * |
155 | 155 | * @since 3.3.0 |
156 | 156 | */ |
157 | - public function add_suggestion( $message ) { |
|
157 | + public function add_suggestion($message) { |
|
158 | 158 | |
159 | - $this->add( self::SUGGESTION, $message ); |
|
159 | + $this->add(self::SUGGESTION, $message); |
|
160 | 160 | |
161 | 161 | } |
162 | 162 | |
@@ -167,11 +167,11 @@ discard block |
||
167 | 167 | */ |
168 | 168 | public function admin_notices() { |
169 | 169 | |
170 | - foreach ( $this->notices as $notice ) { |
|
170 | + foreach ($this->notices as $notice) { |
|
171 | 171 | echo wp_kses( |
172 | 172 | $notice, |
173 | 173 | array( |
174 | - 'div' => array( 'class' => array() ), |
|
174 | + 'div' => array('class' => array()), |
|
175 | 175 | 'p' => array(), |
176 | 176 | ) |
177 | 177 | ); |
@@ -186,11 +186,11 @@ discard block |
||
186 | 186 | * |
187 | 187 | * @since 3.3.0 |
188 | 188 | */ |
189 | - private function transform( $message ) { |
|
189 | + private function transform($message) { |
|
190 | 190 | |
191 | - switch ( gettype( $message ) ) { |
|
191 | + switch (gettype($message)) { |
|
192 | 192 | case 'array': |
193 | - return implode( '<br />', $message ); |
|
193 | + return implode('<br />', $message); |
|
194 | 194 | default: |
195 | 195 | return $message; |
196 | 196 | } |
@@ -18,133 +18,133 @@ |
||
18 | 18 | */ |
19 | 19 | abstract class Wordlift_Admin_Page { |
20 | 20 | |
21 | - /** |
|
22 | - * Define the {@link Wordlift_Admin_Page} constructor. |
|
23 | - * |
|
24 | - * @since 3.20.0 |
|
25 | - */ |
|
26 | - public function __construct() { |
|
27 | - add_action( 'admin_menu', array( $this, 'admin_menu' ), 10, 0 ); |
|
28 | - } |
|
29 | - |
|
30 | - /** |
|
31 | - * Get the parent slug. |
|
32 | - * |
|
33 | - * @return string The parent slug (default 'wl_admin_menu'). |
|
34 | - * @since 3.11.0 |
|
35 | - */ |
|
36 | - protected function get_parent_slug() { |
|
37 | - |
|
38 | - return 'wl_admin_menu'; |
|
39 | - } |
|
40 | - |
|
41 | - /** |
|
42 | - * Get the required capability. |
|
43 | - * |
|
44 | - * @return string The capability (default 'manage_options'). |
|
45 | - * @since 3.11.0 |
|
46 | - */ |
|
47 | - protected function get_capability() { |
|
48 | - |
|
49 | - return 'manage_options'; |
|
50 | - } |
|
51 | - |
|
52 | - /** |
|
53 | - * Get the page title. Will be translated. |
|
54 | - * |
|
55 | - * @return string The page title. |
|
56 | - * @since 3.11.0 |
|
57 | - */ |
|
58 | - abstract public function get_page_title(); |
|
59 | - |
|
60 | - /** |
|
61 | - * Get the menu title. Will be translated. |
|
62 | - * |
|
63 | - * @return string The menu title. |
|
64 | - * @since 3.11.0 |
|
65 | - */ |
|
66 | - abstract public function get_menu_title(); |
|
67 | - |
|
68 | - /** |
|
69 | - * Get the menu slug. |
|
70 | - * |
|
71 | - * @return string The menu slug. |
|
72 | - * @since 3.11.0 |
|
73 | - */ |
|
74 | - abstract public function get_menu_slug(); |
|
75 | - |
|
76 | - /** |
|
77 | - * Get the page url. |
|
78 | - * |
|
79 | - * @return string The escaped url of the admin page |
|
80 | - * @since 3.14.0 |
|
81 | - */ |
|
82 | - public function get_url() { |
|
83 | - |
|
84 | - // ideally should have used menu_page_url, but it is loaded later than some usages. |
|
85 | - $url = admin_url( 'admin.php?page=' . $this->get_menu_slug() ); |
|
86 | - |
|
87 | - return esc_url( $url ); |
|
88 | - } |
|
89 | - |
|
90 | - /** |
|
91 | - * Get the partial file name, used in the {@link render} function. |
|
92 | - * |
|
93 | - * @return string The partial file name. |
|
94 | - * @since 3.11.0 |
|
95 | - */ |
|
96 | - abstract public function get_partial_name(); |
|
97 | - |
|
98 | - /** |
|
99 | - * The `admin_menu` callback. Will call {@link add_submenu_page} to add the |
|
100 | - * page to the admin menu. |
|
101 | - * |
|
102 | - * @return false|string The resulting page's hook_suffix, or false if the user does not have the capability required. |
|
103 | - * @since 3.11.0 |
|
104 | - */ |
|
105 | - public function admin_menu() { |
|
106 | - // Add the sub-menu page. |
|
107 | - // |
|
108 | - // See http://codex.wordpress.org/Function_Reference/add_submenu_page |
|
109 | - $page = add_submenu_page( |
|
110 | - $this->get_parent_slug(), |
|
111 | - $this->get_page_title(), |
|
112 | - $this->get_menu_title(), |
|
113 | - $this->get_capability(), // The required capability, provided by the calling hook. |
|
114 | - $this->get_menu_slug(), |
|
115 | - array( $this, 'render' ) |
|
116 | - ); |
|
117 | - |
|
118 | - // Set a hook to enqueue scripts only when the settings page is displayed. |
|
119 | - add_action( |
|
120 | - 'admin_print_scripts-' . $page, |
|
121 | - array( |
|
122 | - $this, |
|
123 | - 'enqueue_scripts', |
|
124 | - ) |
|
125 | - ); |
|
126 | - |
|
127 | - // Finally return the page hook_suffix. |
|
128 | - return $page; |
|
129 | - } |
|
130 | - |
|
131 | - /** |
|
132 | - * Enqueue scripts for the specific page. Subclasses can override this function |
|
133 | - * to provide their own styles/scripts. |
|
134 | - * |
|
135 | - * @since 3.11.0 |
|
136 | - */ |
|
137 | - public function enqueue_scripts() { |
|
138 | - } |
|
139 | - |
|
140 | - /** |
|
141 | - * Render the page. |
|
142 | - */ |
|
143 | - public function render() { |
|
144 | - |
|
145 | - // Include the partial. |
|
146 | - include plugin_dir_path( __FILE__ ) . 'partials/' . $this->get_partial_name(); |
|
147 | - |
|
148 | - } |
|
21 | + /** |
|
22 | + * Define the {@link Wordlift_Admin_Page} constructor. |
|
23 | + * |
|
24 | + * @since 3.20.0 |
|
25 | + */ |
|
26 | + public function __construct() { |
|
27 | + add_action( 'admin_menu', array( $this, 'admin_menu' ), 10, 0 ); |
|
28 | + } |
|
29 | + |
|
30 | + /** |
|
31 | + * Get the parent slug. |
|
32 | + * |
|
33 | + * @return string The parent slug (default 'wl_admin_menu'). |
|
34 | + * @since 3.11.0 |
|
35 | + */ |
|
36 | + protected function get_parent_slug() { |
|
37 | + |
|
38 | + return 'wl_admin_menu'; |
|
39 | + } |
|
40 | + |
|
41 | + /** |
|
42 | + * Get the required capability. |
|
43 | + * |
|
44 | + * @return string The capability (default 'manage_options'). |
|
45 | + * @since 3.11.0 |
|
46 | + */ |
|
47 | + protected function get_capability() { |
|
48 | + |
|
49 | + return 'manage_options'; |
|
50 | + } |
|
51 | + |
|
52 | + /** |
|
53 | + * Get the page title. Will be translated. |
|
54 | + * |
|
55 | + * @return string The page title. |
|
56 | + * @since 3.11.0 |
|
57 | + */ |
|
58 | + abstract public function get_page_title(); |
|
59 | + |
|
60 | + /** |
|
61 | + * Get the menu title. Will be translated. |
|
62 | + * |
|
63 | + * @return string The menu title. |
|
64 | + * @since 3.11.0 |
|
65 | + */ |
|
66 | + abstract public function get_menu_title(); |
|
67 | + |
|
68 | + /** |
|
69 | + * Get the menu slug. |
|
70 | + * |
|
71 | + * @return string The menu slug. |
|
72 | + * @since 3.11.0 |
|
73 | + */ |
|
74 | + abstract public function get_menu_slug(); |
|
75 | + |
|
76 | + /** |
|
77 | + * Get the page url. |
|
78 | + * |
|
79 | + * @return string The escaped url of the admin page |
|
80 | + * @since 3.14.0 |
|
81 | + */ |
|
82 | + public function get_url() { |
|
83 | + |
|
84 | + // ideally should have used menu_page_url, but it is loaded later than some usages. |
|
85 | + $url = admin_url( 'admin.php?page=' . $this->get_menu_slug() ); |
|
86 | + |
|
87 | + return esc_url( $url ); |
|
88 | + } |
|
89 | + |
|
90 | + /** |
|
91 | + * Get the partial file name, used in the {@link render} function. |
|
92 | + * |
|
93 | + * @return string The partial file name. |
|
94 | + * @since 3.11.0 |
|
95 | + */ |
|
96 | + abstract public function get_partial_name(); |
|
97 | + |
|
98 | + /** |
|
99 | + * The `admin_menu` callback. Will call {@link add_submenu_page} to add the |
|
100 | + * page to the admin menu. |
|
101 | + * |
|
102 | + * @return false|string The resulting page's hook_suffix, or false if the user does not have the capability required. |
|
103 | + * @since 3.11.0 |
|
104 | + */ |
|
105 | + public function admin_menu() { |
|
106 | + // Add the sub-menu page. |
|
107 | + // |
|
108 | + // See http://codex.wordpress.org/Function_Reference/add_submenu_page |
|
109 | + $page = add_submenu_page( |
|
110 | + $this->get_parent_slug(), |
|
111 | + $this->get_page_title(), |
|
112 | + $this->get_menu_title(), |
|
113 | + $this->get_capability(), // The required capability, provided by the calling hook. |
|
114 | + $this->get_menu_slug(), |
|
115 | + array( $this, 'render' ) |
|
116 | + ); |
|
117 | + |
|
118 | + // Set a hook to enqueue scripts only when the settings page is displayed. |
|
119 | + add_action( |
|
120 | + 'admin_print_scripts-' . $page, |
|
121 | + array( |
|
122 | + $this, |
|
123 | + 'enqueue_scripts', |
|
124 | + ) |
|
125 | + ); |
|
126 | + |
|
127 | + // Finally return the page hook_suffix. |
|
128 | + return $page; |
|
129 | + } |
|
130 | + |
|
131 | + /** |
|
132 | + * Enqueue scripts for the specific page. Subclasses can override this function |
|
133 | + * to provide their own styles/scripts. |
|
134 | + * |
|
135 | + * @since 3.11.0 |
|
136 | + */ |
|
137 | + public function enqueue_scripts() { |
|
138 | + } |
|
139 | + |
|
140 | + /** |
|
141 | + * Render the page. |
|
142 | + */ |
|
143 | + public function render() { |
|
144 | + |
|
145 | + // Include the partial. |
|
146 | + include plugin_dir_path( __FILE__ ) . 'partials/' . $this->get_partial_name(); |
|
147 | + |
|
148 | + } |
|
149 | 149 | |
150 | 150 | } |
@@ -24,7 +24,7 @@ discard block |
||
24 | 24 | * @since 3.20.0 |
25 | 25 | */ |
26 | 26 | public function __construct() { |
27 | - add_action( 'admin_menu', array( $this, 'admin_menu' ), 10, 0 ); |
|
27 | + add_action('admin_menu', array($this, 'admin_menu'), 10, 0); |
|
28 | 28 | } |
29 | 29 | |
30 | 30 | /** |
@@ -82,9 +82,9 @@ discard block |
||
82 | 82 | public function get_url() { |
83 | 83 | |
84 | 84 | // ideally should have used menu_page_url, but it is loaded later than some usages. |
85 | - $url = admin_url( 'admin.php?page=' . $this->get_menu_slug() ); |
|
85 | + $url = admin_url('admin.php?page='.$this->get_menu_slug()); |
|
86 | 86 | |
87 | - return esc_url( $url ); |
|
87 | + return esc_url($url); |
|
88 | 88 | } |
89 | 89 | |
90 | 90 | /** |
@@ -110,14 +110,14 @@ discard block |
||
110 | 110 | $this->get_parent_slug(), |
111 | 111 | $this->get_page_title(), |
112 | 112 | $this->get_menu_title(), |
113 | - $this->get_capability(), // The required capability, provided by the calling hook. |
|
113 | + $this->get_capability(), // The required capability, provided by the calling hook. |
|
114 | 114 | $this->get_menu_slug(), |
115 | - array( $this, 'render' ) |
|
115 | + array($this, 'render') |
|
116 | 116 | ); |
117 | 117 | |
118 | 118 | // Set a hook to enqueue scripts only when the settings page is displayed. |
119 | 119 | add_action( |
120 | - 'admin_print_scripts-' . $page, |
|
120 | + 'admin_print_scripts-'.$page, |
|
121 | 121 | array( |
122 | 122 | $this, |
123 | 123 | 'enqueue_scripts', |
@@ -143,7 +143,7 @@ discard block |
||
143 | 143 | public function render() { |
144 | 144 | |
145 | 145 | // Include the partial. |
146 | - include plugin_dir_path( __FILE__ ) . 'partials/' . $this->get_partial_name(); |
|
146 | + include plugin_dir_path(__FILE__).'partials/'.$this->get_partial_name(); |
|
147 | 147 | |
148 | 148 | } |
149 | 149 |
@@ -19,125 +19,125 @@ |
||
19 | 19 | */ |
20 | 20 | class Wordlift_Admin_Author_Element implements Wordlift_Admin_Element { |
21 | 21 | |
22 | - /** |
|
23 | - * The {@link Wordlift_Publisher_Service} instance. |
|
24 | - * |
|
25 | - * @since 3.14.0 |
|
26 | - * @access private |
|
27 | - * @var \Wordlift_Publisher_Service $publisher_service The {@link Wordlift_Publisher_Service} instance. |
|
28 | - */ |
|
29 | - private $publisher_service; |
|
30 | - |
|
31 | - /** |
|
32 | - * A {@link Wordlift_Admin_Select2_Element} instance. |
|
33 | - * |
|
34 | - * @since 3.14.0 |
|
35 | - * @access private |
|
36 | - * @var \Wordlift_Admin_Select2_Element $select_element A {@link Wordlift_Admin_Select2_Element} instance. |
|
37 | - */ |
|
38 | - private $select_element; |
|
39 | - |
|
40 | - /** |
|
41 | - * Create a {@link Wordlift_Admin_Person_Element} instance. |
|
42 | - * |
|
43 | - * @param \Wordlift_Publisher_Service $publisher_service The {@link Wordlift_Publisher_Service} instance. |
|
44 | - * @param \Wordlift_Admin_Select2_Element $select_element The {@link Wordlift_Admin_Select_Element} instance. |
|
45 | - * |
|
46 | - * @since 3.14.0 |
|
47 | - */ |
|
48 | - public function __construct( $publisher_service, $select_element ) { |
|
49 | - |
|
50 | - $this->publisher_service = $publisher_service; |
|
51 | - |
|
52 | - // Child elements. |
|
53 | - $this->select_element = $select_element; |
|
54 | - |
|
55 | - } |
|
56 | - |
|
57 | - /** |
|
58 | - * @inheritdoc |
|
59 | - */ |
|
60 | - public function render( $args ) { |
|
61 | - |
|
62 | - // Parse the arguments and merge with default values. |
|
63 | - $params = wp_parse_args( |
|
64 | - $args, |
|
65 | - array( |
|
66 | - 'id' => uniqid( 'wl-input-' ), |
|
67 | - 'name' => uniqid( 'wl-input-' ), |
|
68 | - 'current_entity' => 0, |
|
69 | - ) |
|
70 | - ); |
|
71 | - |
|
72 | - $current_entity_id = $params['current_entity']; |
|
73 | - $data = $this->publisher_service->query(); |
|
74 | - |
|
75 | - // Set a default to show when no entity is associated and a way to unassign. |
|
76 | - array_unshift( |
|
77 | - $data, |
|
78 | - array( |
|
79 | - 'id' => '0', |
|
80 | - 'text' => '<em>' . __( '(none)', 'wordlift' ) . '</em>', |
|
81 | - 'type' => '', |
|
82 | - 'thumbnail_url' => plugin_dir_url( __DIR__ ) . 'images/pixel.png', |
|
83 | - ) |
|
84 | - ); |
|
85 | - |
|
86 | - // Finally do the render, passing along also the current selected entity |
|
87 | - // id and the options data. |
|
88 | - return $this->do_render( $params, $current_entity_id, $data ); |
|
89 | - } |
|
90 | - |
|
91 | - /** |
|
92 | - * Render the `select` using the provided parameters. |
|
93 | - * |
|
94 | - * @param array $params The array of parameters from the `render` function. |
|
95 | - * @param int $current_post_id The currently selected {@link WP_Post} `id`. |
|
96 | - * @param array $data An array of Select2 options. |
|
97 | - * |
|
98 | - * @return \Wordlift_Admin_Author_Element $this Return this element. |
|
99 | - * @since 3.14.0 |
|
100 | - */ |
|
101 | - protected function do_render( $params, $current_post_id, $data ) { |
|
102 | - |
|
103 | - // Queue the script which will initialize the select and style it. |
|
104 | - wp_enqueue_script( 'wl-author-element', plugin_dir_url( __DIR__ ) . 'js/1/author.js', array( 'wordlift-select2' ), WORDLIFT_VERSION, false ); |
|
105 | - wp_enqueue_style( 'wl-author-element', plugin_dir_url( __DIR__ ) . 'js/1/author.css', array(), WORDLIFT_VERSION ); |
|
106 | - |
|
107 | - // Prepare the URLs for entities which don't have logos. |
|
108 | - $person_thumbnail_url = plugin_dir_url( __DIR__ ) . '../images/person.png'; |
|
109 | - $organization_thumbnail_url = plugin_dir_url( __DIR__ ) . '../images/organization.png'; |
|
110 | - |
|
111 | - // Get the current post. |
|
112 | - $current_post = $current_post_id ? get_post( $current_post_id ) : null; |
|
113 | - |
|
114 | - // Finally render the Select. |
|
115 | - $this->select_element->render( |
|
116 | - array( |
|
117 | - // Id. |
|
118 | - 'id' => $params['id'], |
|
119 | - // Name. |
|
120 | - 'name' => $params['name'], |
|
121 | - // Class names. |
|
122 | - 'class' => 'wl-select2-element', |
|
123 | - // The selected id. |
|
124 | - 'value' => $current_post_id, |
|
125 | - // The selected item (must be in the options for Select2 to display it). |
|
126 | - 'options' => $current_post ? array( $current_post->ID => $current_post->post_title ) : array(), |
|
127 | - // Data attributes. |
|
128 | - 'data' => array( |
|
129 | - // The list of available options. |
|
130 | - 'wl-select2-data' => wp_json_encode( $data ), |
|
131 | - // The HTML template for each option. |
|
132 | - 'wl-select2-template-result' => "<div class='wl-select2-result'><span class='wl-select2-thumbnail' style='background-image: url( <%- obj.thumbnail_url || ( 'Organization' === obj.type ? '$organization_thumbnail_url' : '$person_thumbnail_url' ) %> );'> </span><span class='wl-select2'><%- obj.text %></span><span class='wl-select2-type'><%- obj.type %></span></div>", |
|
133 | - // The HTML template for the selected option. |
|
134 | - 'wl-select2-template-selection' => "<div class='wl-select2-selection'><span class='wl-select2-thumbnail' style='background-image: url( <%- obj.thumbnail_url || ( 'Organization' === obj.type ? '$organization_thumbnail_url' : '$person_thumbnail_url' ) %> );'> </span><span class='wl-select2'><%- obj.text %></span><span class='wl-select2-type'><%- obj.type %></span></div>", |
|
135 | - ), |
|
136 | - ) |
|
137 | - ); |
|
138 | - |
|
139 | - // Finally return the element instance. |
|
140 | - return $this; |
|
141 | - } |
|
22 | + /** |
|
23 | + * The {@link Wordlift_Publisher_Service} instance. |
|
24 | + * |
|
25 | + * @since 3.14.0 |
|
26 | + * @access private |
|
27 | + * @var \Wordlift_Publisher_Service $publisher_service The {@link Wordlift_Publisher_Service} instance. |
|
28 | + */ |
|
29 | + private $publisher_service; |
|
30 | + |
|
31 | + /** |
|
32 | + * A {@link Wordlift_Admin_Select2_Element} instance. |
|
33 | + * |
|
34 | + * @since 3.14.0 |
|
35 | + * @access private |
|
36 | + * @var \Wordlift_Admin_Select2_Element $select_element A {@link Wordlift_Admin_Select2_Element} instance. |
|
37 | + */ |
|
38 | + private $select_element; |
|
39 | + |
|
40 | + /** |
|
41 | + * Create a {@link Wordlift_Admin_Person_Element} instance. |
|
42 | + * |
|
43 | + * @param \Wordlift_Publisher_Service $publisher_service The {@link Wordlift_Publisher_Service} instance. |
|
44 | + * @param \Wordlift_Admin_Select2_Element $select_element The {@link Wordlift_Admin_Select_Element} instance. |
|
45 | + * |
|
46 | + * @since 3.14.0 |
|
47 | + */ |
|
48 | + public function __construct( $publisher_service, $select_element ) { |
|
49 | + |
|
50 | + $this->publisher_service = $publisher_service; |
|
51 | + |
|
52 | + // Child elements. |
|
53 | + $this->select_element = $select_element; |
|
54 | + |
|
55 | + } |
|
56 | + |
|
57 | + /** |
|
58 | + * @inheritdoc |
|
59 | + */ |
|
60 | + public function render( $args ) { |
|
61 | + |
|
62 | + // Parse the arguments and merge with default values. |
|
63 | + $params = wp_parse_args( |
|
64 | + $args, |
|
65 | + array( |
|
66 | + 'id' => uniqid( 'wl-input-' ), |
|
67 | + 'name' => uniqid( 'wl-input-' ), |
|
68 | + 'current_entity' => 0, |
|
69 | + ) |
|
70 | + ); |
|
71 | + |
|
72 | + $current_entity_id = $params['current_entity']; |
|
73 | + $data = $this->publisher_service->query(); |
|
74 | + |
|
75 | + // Set a default to show when no entity is associated and a way to unassign. |
|
76 | + array_unshift( |
|
77 | + $data, |
|
78 | + array( |
|
79 | + 'id' => '0', |
|
80 | + 'text' => '<em>' . __( '(none)', 'wordlift' ) . '</em>', |
|
81 | + 'type' => '', |
|
82 | + 'thumbnail_url' => plugin_dir_url( __DIR__ ) . 'images/pixel.png', |
|
83 | + ) |
|
84 | + ); |
|
85 | + |
|
86 | + // Finally do the render, passing along also the current selected entity |
|
87 | + // id and the options data. |
|
88 | + return $this->do_render( $params, $current_entity_id, $data ); |
|
89 | + } |
|
90 | + |
|
91 | + /** |
|
92 | + * Render the `select` using the provided parameters. |
|
93 | + * |
|
94 | + * @param array $params The array of parameters from the `render` function. |
|
95 | + * @param int $current_post_id The currently selected {@link WP_Post} `id`. |
|
96 | + * @param array $data An array of Select2 options. |
|
97 | + * |
|
98 | + * @return \Wordlift_Admin_Author_Element $this Return this element. |
|
99 | + * @since 3.14.0 |
|
100 | + */ |
|
101 | + protected function do_render( $params, $current_post_id, $data ) { |
|
102 | + |
|
103 | + // Queue the script which will initialize the select and style it. |
|
104 | + wp_enqueue_script( 'wl-author-element', plugin_dir_url( __DIR__ ) . 'js/1/author.js', array( 'wordlift-select2' ), WORDLIFT_VERSION, false ); |
|
105 | + wp_enqueue_style( 'wl-author-element', plugin_dir_url( __DIR__ ) . 'js/1/author.css', array(), WORDLIFT_VERSION ); |
|
106 | + |
|
107 | + // Prepare the URLs for entities which don't have logos. |
|
108 | + $person_thumbnail_url = plugin_dir_url( __DIR__ ) . '../images/person.png'; |
|
109 | + $organization_thumbnail_url = plugin_dir_url( __DIR__ ) . '../images/organization.png'; |
|
110 | + |
|
111 | + // Get the current post. |
|
112 | + $current_post = $current_post_id ? get_post( $current_post_id ) : null; |
|
113 | + |
|
114 | + // Finally render the Select. |
|
115 | + $this->select_element->render( |
|
116 | + array( |
|
117 | + // Id. |
|
118 | + 'id' => $params['id'], |
|
119 | + // Name. |
|
120 | + 'name' => $params['name'], |
|
121 | + // Class names. |
|
122 | + 'class' => 'wl-select2-element', |
|
123 | + // The selected id. |
|
124 | + 'value' => $current_post_id, |
|
125 | + // The selected item (must be in the options for Select2 to display it). |
|
126 | + 'options' => $current_post ? array( $current_post->ID => $current_post->post_title ) : array(), |
|
127 | + // Data attributes. |
|
128 | + 'data' => array( |
|
129 | + // The list of available options. |
|
130 | + 'wl-select2-data' => wp_json_encode( $data ), |
|
131 | + // The HTML template for each option. |
|
132 | + 'wl-select2-template-result' => "<div class='wl-select2-result'><span class='wl-select2-thumbnail' style='background-image: url( <%- obj.thumbnail_url || ( 'Organization' === obj.type ? '$organization_thumbnail_url' : '$person_thumbnail_url' ) %> );'> </span><span class='wl-select2'><%- obj.text %></span><span class='wl-select2-type'><%- obj.type %></span></div>", |
|
133 | + // The HTML template for the selected option. |
|
134 | + 'wl-select2-template-selection' => "<div class='wl-select2-selection'><span class='wl-select2-thumbnail' style='background-image: url( <%- obj.thumbnail_url || ( 'Organization' === obj.type ? '$organization_thumbnail_url' : '$person_thumbnail_url' ) %> );'> </span><span class='wl-select2'><%- obj.text %></span><span class='wl-select2-type'><%- obj.type %></span></div>", |
|
135 | + ), |
|
136 | + ) |
|
137 | + ); |
|
138 | + |
|
139 | + // Finally return the element instance. |
|
140 | + return $this; |
|
141 | + } |
|
142 | 142 | |
143 | 143 | } |
@@ -45,7 +45,7 @@ discard block |
||
45 | 45 | * |
46 | 46 | * @since 3.14.0 |
47 | 47 | */ |
48 | - public function __construct( $publisher_service, $select_element ) { |
|
48 | + public function __construct($publisher_service, $select_element) { |
|
49 | 49 | |
50 | 50 | $this->publisher_service = $publisher_service; |
51 | 51 | |
@@ -57,14 +57,14 @@ discard block |
||
57 | 57 | /** |
58 | 58 | * @inheritdoc |
59 | 59 | */ |
60 | - public function render( $args ) { |
|
60 | + public function render($args) { |
|
61 | 61 | |
62 | 62 | // Parse the arguments and merge with default values. |
63 | 63 | $params = wp_parse_args( |
64 | 64 | $args, |
65 | 65 | array( |
66 | - 'id' => uniqid( 'wl-input-' ), |
|
67 | - 'name' => uniqid( 'wl-input-' ), |
|
66 | + 'id' => uniqid('wl-input-'), |
|
67 | + 'name' => uniqid('wl-input-'), |
|
68 | 68 | 'current_entity' => 0, |
69 | 69 | ) |
70 | 70 | ); |
@@ -77,15 +77,15 @@ discard block |
||
77 | 77 | $data, |
78 | 78 | array( |
79 | 79 | 'id' => '0', |
80 | - 'text' => '<em>' . __( '(none)', 'wordlift' ) . '</em>', |
|
80 | + 'text' => '<em>'.__('(none)', 'wordlift').'</em>', |
|
81 | 81 | 'type' => '', |
82 | - 'thumbnail_url' => plugin_dir_url( __DIR__ ) . 'images/pixel.png', |
|
82 | + 'thumbnail_url' => plugin_dir_url(__DIR__).'images/pixel.png', |
|
83 | 83 | ) |
84 | 84 | ); |
85 | 85 | |
86 | 86 | // Finally do the render, passing along also the current selected entity |
87 | 87 | // id and the options data. |
88 | - return $this->do_render( $params, $current_entity_id, $data ); |
|
88 | + return $this->do_render($params, $current_entity_id, $data); |
|
89 | 89 | } |
90 | 90 | |
91 | 91 | /** |
@@ -98,18 +98,18 @@ discard block |
||
98 | 98 | * @return \Wordlift_Admin_Author_Element $this Return this element. |
99 | 99 | * @since 3.14.0 |
100 | 100 | */ |
101 | - protected function do_render( $params, $current_post_id, $data ) { |
|
101 | + protected function do_render($params, $current_post_id, $data) { |
|
102 | 102 | |
103 | 103 | // Queue the script which will initialize the select and style it. |
104 | - wp_enqueue_script( 'wl-author-element', plugin_dir_url( __DIR__ ) . 'js/1/author.js', array( 'wordlift-select2' ), WORDLIFT_VERSION, false ); |
|
105 | - wp_enqueue_style( 'wl-author-element', plugin_dir_url( __DIR__ ) . 'js/1/author.css', array(), WORDLIFT_VERSION ); |
|
104 | + wp_enqueue_script('wl-author-element', plugin_dir_url(__DIR__).'js/1/author.js', array('wordlift-select2'), WORDLIFT_VERSION, false); |
|
105 | + wp_enqueue_style('wl-author-element', plugin_dir_url(__DIR__).'js/1/author.css', array(), WORDLIFT_VERSION); |
|
106 | 106 | |
107 | 107 | // Prepare the URLs for entities which don't have logos. |
108 | - $person_thumbnail_url = plugin_dir_url( __DIR__ ) . '../images/person.png'; |
|
109 | - $organization_thumbnail_url = plugin_dir_url( __DIR__ ) . '../images/organization.png'; |
|
108 | + $person_thumbnail_url = plugin_dir_url(__DIR__).'../images/person.png'; |
|
109 | + $organization_thumbnail_url = plugin_dir_url(__DIR__).'../images/organization.png'; |
|
110 | 110 | |
111 | 111 | // Get the current post. |
112 | - $current_post = $current_post_id ? get_post( $current_post_id ) : null; |
|
112 | + $current_post = $current_post_id ? get_post($current_post_id) : null; |
|
113 | 113 | |
114 | 114 | // Finally render the Select. |
115 | 115 | $this->select_element->render( |
@@ -123,11 +123,11 @@ discard block |
||
123 | 123 | // The selected id. |
124 | 124 | 'value' => $current_post_id, |
125 | 125 | // The selected item (must be in the options for Select2 to display it). |
126 | - 'options' => $current_post ? array( $current_post->ID => $current_post->post_title ) : array(), |
|
126 | + 'options' => $current_post ? array($current_post->ID => $current_post->post_title) : array(), |
|
127 | 127 | // Data attributes. |
128 | 128 | 'data' => array( |
129 | 129 | // The list of available options. |
130 | - 'wl-select2-data' => wp_json_encode( $data ), |
|
130 | + 'wl-select2-data' => wp_json_encode($data), |
|
131 | 131 | // The HTML template for each option. |
132 | 132 | 'wl-select2-template-result' => "<div class='wl-select2-result'><span class='wl-select2-thumbnail' style='background-image: url( <%- obj.thumbnail_url || ( 'Organization' === obj.type ? '$organization_thumbnail_url' : '$person_thumbnail_url' ) %> );'> </span><span class='wl-select2'><%- obj.text %></span><span class='wl-select2-type'><%- obj.type %></span></div>", |
133 | 133 | // The HTML template for the selected option. |
@@ -18,54 +18,54 @@ discard block |
||
18 | 18 | */ |
19 | 19 | class Wordlift_Admin_Radio_Input_Element implements Wordlift_Admin_Element { |
20 | 20 | |
21 | - /** |
|
22 | - * Output the HTML for an input box type settings_page. |
|
23 | - * |
|
24 | - * @param array $args { |
|
25 | - * An array of arguments. |
|
26 | - * |
|
27 | - * @type string $name The name attribute of the input element. Mandatory. |
|
28 | - * @type string $id The id attribute of the input element. Optional, |
|
29 | - * randomly generated one is used if not supplied. |
|
30 | - * @type string $value The value of the input element. Optional, defaults |
|
31 | - * to empty string. |
|
32 | - * @type string $css_class The class attribute for the input element. If empty |
|
33 | - * string no class attribute will be added. Optional, |
|
34 | - * defaults to empty string. |
|
35 | - * @type string $description The description text to be displayed below the element. |
|
36 | - * Can include some HTML element. If empty string no |
|
37 | - * description will be displayed. Optional, defaults to |
|
38 | - * empty string. |
|
39 | - * } |
|
40 | - * @return $this|Wordlift_Admin_Element |
|
41 | - * @since 3.13.0 |
|
42 | - */ |
|
43 | - public function render( $args ) { |
|
44 | - /* |
|
21 | + /** |
|
22 | + * Output the HTML for an input box type settings_page. |
|
23 | + * |
|
24 | + * @param array $args { |
|
25 | + * An array of arguments. |
|
26 | + * |
|
27 | + * @type string $name The name attribute of the input element. Mandatory. |
|
28 | + * @type string $id The id attribute of the input element. Optional, |
|
29 | + * randomly generated one is used if not supplied. |
|
30 | + * @type string $value The value of the input element. Optional, defaults |
|
31 | + * to empty string. |
|
32 | + * @type string $css_class The class attribute for the input element. If empty |
|
33 | + * string no class attribute will be added. Optional, |
|
34 | + * defaults to empty string. |
|
35 | + * @type string $description The description text to be displayed below the element. |
|
36 | + * Can include some HTML element. If empty string no |
|
37 | + * description will be displayed. Optional, defaults to |
|
38 | + * empty string. |
|
39 | + * } |
|
40 | + * @return $this|Wordlift_Admin_Element |
|
41 | + * @since 3.13.0 |
|
42 | + */ |
|
43 | + public function render( $args ) { |
|
44 | + /* |
|
45 | 45 | * Parse the arguments and merge with default values. |
46 | 46 | * Name intentionally do not have a default as it has to be in SyncEvent |
47 | 47 | * with form handling code |
48 | 48 | */ |
49 | - $params = wp_parse_args( |
|
50 | - $args, |
|
51 | - array( |
|
52 | - 'id' => uniqid( 'wl-input-' ), |
|
53 | - 'value' => '', |
|
54 | - 'css_class' => '', |
|
55 | - 'description' => '', |
|
56 | - ) |
|
57 | - ); |
|
49 | + $params = wp_parse_args( |
|
50 | + $args, |
|
51 | + array( |
|
52 | + 'id' => uniqid( 'wl-input-' ), |
|
53 | + 'value' => '', |
|
54 | + 'css_class' => '', |
|
55 | + 'description' => '', |
|
56 | + ) |
|
57 | + ); |
|
58 | 58 | |
59 | - // Set the readonly and class attributes and the description. |
|
60 | - $value = $params['value']; |
|
61 | - ?> |
|
59 | + // Set the readonly and class attributes and the description. |
|
60 | + $value = $params['value']; |
|
61 | + ?> |
|
62 | 62 | |
63 | 63 | <input type="radio" id="<?php echo esc_attr( $params['id'] ); ?>" |
64 | 64 | name="<?php echo esc_attr( $params['name'] ); ?>" |
65 | 65 | value="yes" |
66 | 66 | <?php |
67 | - if ( ! empty( $params['css_class'] ) ) { |
|
68 | - ?> |
|
67 | + if ( ! empty( $params['css_class'] ) ) { |
|
68 | + ?> |
|
69 | 69 | class="<?php echo esc_attr( $params['css_class'] ); ?>" <?php } ?> |
70 | 70 | <?php checked( $value, 'yes' ); ?> |
71 | 71 | /> Yes |
@@ -73,8 +73,8 @@ discard block |
||
73 | 73 | name="<?php echo esc_attr( $params['name'] ); ?>" |
74 | 74 | value="no" |
75 | 75 | <?php |
76 | - if ( ! empty( $params['css_class'] ) ) { |
|
77 | - ?> |
|
76 | + if ( ! empty( $params['css_class'] ) ) { |
|
77 | + ?> |
|
78 | 78 | class="<?php echo esc_attr( $params['css_class'] ); ?>" <?php } ?> |
79 | 79 | <?php checked( $value, 'no' ); ?> |
80 | 80 | /> No |
@@ -82,7 +82,7 @@ discard block |
||
82 | 82 | <p><?php echo wp_kses( $params['description'], array( 'a' => array( 'href' => array() ) ) ); ?></p><?php } ?> |
83 | 83 | <?php |
84 | 84 | |
85 | - return $this; |
|
86 | - } |
|
85 | + return $this; |
|
86 | + } |
|
87 | 87 | |
88 | 88 | } |
@@ -40,7 +40,7 @@ discard block |
||
40 | 40 | * @return $this|Wordlift_Admin_Element |
41 | 41 | * @since 3.13.0 |
42 | 42 | */ |
43 | - public function render( $args ) { |
|
43 | + public function render($args) { |
|
44 | 44 | /* |
45 | 45 | * Parse the arguments and merge with default values. |
46 | 46 | * Name intentionally do not have a default as it has to be in SyncEvent |
@@ -49,7 +49,7 @@ discard block |
||
49 | 49 | $params = wp_parse_args( |
50 | 50 | $args, |
51 | 51 | array( |
52 | - 'id' => uniqid( 'wl-input-' ), |
|
52 | + 'id' => uniqid('wl-input-'), |
|
53 | 53 | 'value' => '', |
54 | 54 | 'css_class' => '', |
55 | 55 | 'description' => '', |
@@ -60,26 +60,26 @@ discard block |
||
60 | 60 | $value = $params['value']; |
61 | 61 | ?> |
62 | 62 | |
63 | - <input type="radio" id="<?php echo esc_attr( $params['id'] ); ?>" |
|
64 | - name="<?php echo esc_attr( $params['name'] ); ?>" |
|
63 | + <input type="radio" id="<?php echo esc_attr($params['id']); ?>" |
|
64 | + name="<?php echo esc_attr($params['name']); ?>" |
|
65 | 65 | value="yes" |
66 | 66 | <?php |
67 | - if ( ! empty( $params['css_class'] ) ) { |
|
67 | + if ( ! empty($params['css_class'])) { |
|
68 | 68 | ?> |
69 | - class="<?php echo esc_attr( $params['css_class'] ); ?>" <?php } ?> |
|
70 | - <?php checked( $value, 'yes' ); ?> |
|
69 | + class="<?php echo esc_attr($params['css_class']); ?>" <?php } ?> |
|
70 | + <?php checked($value, 'yes'); ?> |
|
71 | 71 | /> Yes |
72 | - <input type="radio" id="<?php echo esc_attr( $params['id'] ); ?>" |
|
73 | - name="<?php echo esc_attr( $params['name'] ); ?>" |
|
72 | + <input type="radio" id="<?php echo esc_attr($params['id']); ?>" |
|
73 | + name="<?php echo esc_attr($params['name']); ?>" |
|
74 | 74 | value="no" |
75 | 75 | <?php |
76 | - if ( ! empty( $params['css_class'] ) ) { |
|
76 | + if ( ! empty($params['css_class'])) { |
|
77 | 77 | ?> |
78 | - class="<?php echo esc_attr( $params['css_class'] ); ?>" <?php } ?> |
|
79 | - <?php checked( $value, 'no' ); ?> |
|
78 | + class="<?php echo esc_attr($params['css_class']); ?>" <?php } ?> |
|
79 | + <?php checked($value, 'no'); ?> |
|
80 | 80 | /> No |
81 | - <?php if ( ! empty( $params['description'] ) ) { ?> |
|
82 | - <p><?php echo wp_kses( $params['description'], array( 'a' => array( 'href' => array() ) ) ); ?></p><?php } ?> |
|
81 | + <?php if ( ! empty($params['description'])) { ?> |
|
82 | + <p><?php echo wp_kses($params['description'], array('a' => array('href' => array()))); ?></p><?php } ?> |
|
83 | 83 | <?php |
84 | 84 | |
85 | 85 | return $this; |
@@ -18,37 +18,37 @@ discard block |
||
18 | 18 | */ |
19 | 19 | class Wordlift_Admin_Country_Select_Element extends Wordlift_Admin_Select_Element { |
20 | 20 | |
21 | - /** |
|
22 | - * Adds a filter that will add data `country-codes` attrbiute to the country select |
|
23 | - * to allow front-end validation. |
|
24 | - * |
|
25 | - * @since 3.18.0 |
|
26 | - */ |
|
27 | - public function __construct() { |
|
28 | - // Adds the country codes as data attribute to allow front-end validation. |
|
29 | - add_filter( 'wl_admin_select_element_data_attributes', array( $this, 'add_country_codes_data' ), 10, 1 ); |
|
30 | - } |
|
21 | + /** |
|
22 | + * Adds a filter that will add data `country-codes` attrbiute to the country select |
|
23 | + * to allow front-end validation. |
|
24 | + * |
|
25 | + * @since 3.18.0 |
|
26 | + */ |
|
27 | + public function __construct() { |
|
28 | + // Adds the country codes as data attribute to allow front-end validation. |
|
29 | + add_filter( 'wl_admin_select_element_data_attributes', array( $this, 'add_country_codes_data' ), 10, 1 ); |
|
30 | + } |
|
31 | 31 | |
32 | - /** |
|
33 | - * @inheritdoc |
|
34 | - */ |
|
35 | - public function render_options( $params ) { |
|
36 | - // Print all the supported countries, preselecting the one configured |
|
37 | - // in WP (or United Kingdom if not supported). We now use the `Wordlift_Countries` |
|
38 | - // class which provides the list of countries supported by WordLift. |
|
39 | - // |
|
40 | - // https://github.com/insideout10/wordlift-plugin/issues/713 |
|
32 | + /** |
|
33 | + * @inheritdoc |
|
34 | + */ |
|
35 | + public function render_options( $params ) { |
|
36 | + // Print all the supported countries, preselecting the one configured |
|
37 | + // in WP (or United Kingdom if not supported). We now use the `Wordlift_Countries` |
|
38 | + // class which provides the list of countries supported by WordLift. |
|
39 | + // |
|
40 | + // https://github.com/insideout10/wordlift-plugin/issues/713 |
|
41 | 41 | |
42 | - $lang = ( isset( $params['lang'] ) ) ? $params['lang'] : false; |
|
42 | + $lang = ( isset( $params['lang'] ) ) ? $params['lang'] : false; |
|
43 | 43 | |
44 | - // Get WordLift's supported countries. |
|
45 | - $countries = Wordlift_Countries::get_countries( $lang ); |
|
44 | + // Get WordLift's supported countries. |
|
45 | + $countries = Wordlift_Countries::get_countries( $lang ); |
|
46 | 46 | |
47 | - // If we support WP's configured language, then use that, otherwise use English by default. |
|
48 | - $language = isset( $countries[ $params['value'] ] ) ? $params['value'] : 'uk'; |
|
47 | + // If we support WP's configured language, then use that, otherwise use English by default. |
|
48 | + $language = isset( $countries[ $params['value'] ] ) ? $params['value'] : 'uk'; |
|
49 | 49 | |
50 | - foreach ( $countries as $code => $label ) : |
|
51 | - ?> |
|
50 | + foreach ( $countries as $code => $label ) : |
|
51 | + ?> |
|
52 | 52 | <option |
53 | 53 | value="<?php echo esc_attr( $code ); ?>" |
54 | 54 | <?php echo selected( $code, $language, false ); ?> |
@@ -56,50 +56,50 @@ discard block |
||
56 | 56 | <?php echo esc_html( $label ); ?> |
57 | 57 | </option> |
58 | 58 | <?php |
59 | - endforeach; |
|
60 | - } |
|
59 | + endforeach; |
|
60 | + } |
|
61 | 61 | |
62 | - /** |
|
63 | - * Returns select options html. |
|
64 | - * |
|
65 | - * @since 3.18.0 |
|
66 | - * |
|
67 | - * @return void Echoes select options or empty string if required params are not set. |
|
68 | - */ |
|
69 | - public function get_options_html() { |
|
70 | - $html = ''; |
|
62 | + /** |
|
63 | + * Returns select options html. |
|
64 | + * |
|
65 | + * @since 3.18.0 |
|
66 | + * |
|
67 | + * @return void Echoes select options or empty string if required params are not set. |
|
68 | + */ |
|
69 | + public function get_options_html() { |
|
70 | + $html = ''; |
|
71 | 71 | |
72 | - // Check whether the required params are set. |
|
72 | + // Check whether the required params are set. |
|
73 | 73 | // phpcs:ignore Standard.Category.SniffName.ErrorCode |
74 | - if ( ! empty( $_POST['lang'] ) && ! empty( $_POST['value'] ) ) { //phpcs:ignore WordPress.Security.NonceVerification.Missing |
|
75 | - ob_start(); |
|
76 | - // Get the new options. |
|
77 | - // phpcs:ignore Standard.Category.SniffName.ErrorCode |
|
78 | - $this->render_options( $_POST ); //phpcs:ignore WordPress.Security.NonceVerification.Missing |
|
74 | + if ( ! empty( $_POST['lang'] ) && ! empty( $_POST['value'] ) ) { //phpcs:ignore WordPress.Security.NonceVerification.Missing |
|
75 | + ob_start(); |
|
76 | + // Get the new options. |
|
77 | + // phpcs:ignore Standard.Category.SniffName.ErrorCode |
|
78 | + $this->render_options( $_POST ); //phpcs:ignore WordPress.Security.NonceVerification.Missing |
|
79 | 79 | |
80 | - $html = ob_get_clean(); |
|
81 | - } |
|
80 | + $html = ob_get_clean(); |
|
81 | + } |
|
82 | 82 | |
83 | - // Return the html. |
|
84 | - wp_send_json_success( $html ); |
|
85 | - } |
|
83 | + // Return the html. |
|
84 | + wp_send_json_success( $html ); |
|
85 | + } |
|
86 | 86 | |
87 | - /** |
|
88 | - * Modify the field data attributes by adding`country-code` |
|
89 | - * to existing attributes. |
|
90 | - * |
|
91 | - * @param array $attributes Current data attributes. |
|
92 | - * |
|
93 | - * @since 3.18.0 |
|
94 | - * |
|
95 | - * @return array $attributes Modified attributes. |
|
96 | - */ |
|
97 | - public function add_country_codes_data( $attributes ) { |
|
98 | - // Add the country codes. |
|
99 | - $attributes['country-codes'] = wp_json_encode( Wordlift_Countries::get_codes() ); |
|
87 | + /** |
|
88 | + * Modify the field data attributes by adding`country-code` |
|
89 | + * to existing attributes. |
|
90 | + * |
|
91 | + * @param array $attributes Current data attributes. |
|
92 | + * |
|
93 | + * @since 3.18.0 |
|
94 | + * |
|
95 | + * @return array $attributes Modified attributes. |
|
96 | + */ |
|
97 | + public function add_country_codes_data( $attributes ) { |
|
98 | + // Add the country codes. |
|
99 | + $attributes['country-codes'] = wp_json_encode( Wordlift_Countries::get_codes() ); |
|
100 | 100 | |
101 | - // Return the attributes. |
|
102 | - return $attributes; |
|
103 | - } |
|
101 | + // Return the attributes. |
|
102 | + return $attributes; |
|
103 | + } |
|
104 | 104 | |
105 | 105 | } |
@@ -26,34 +26,34 @@ discard block |
||
26 | 26 | */ |
27 | 27 | public function __construct() { |
28 | 28 | // Adds the country codes as data attribute to allow front-end validation. |
29 | - add_filter( 'wl_admin_select_element_data_attributes', array( $this, 'add_country_codes_data' ), 10, 1 ); |
|
29 | + add_filter('wl_admin_select_element_data_attributes', array($this, 'add_country_codes_data'), 10, 1); |
|
30 | 30 | } |
31 | 31 | |
32 | 32 | /** |
33 | 33 | * @inheritdoc |
34 | 34 | */ |
35 | - public function render_options( $params ) { |
|
35 | + public function render_options($params) { |
|
36 | 36 | // Print all the supported countries, preselecting the one configured |
37 | 37 | // in WP (or United Kingdom if not supported). We now use the `Wordlift_Countries` |
38 | 38 | // class which provides the list of countries supported by WordLift. |
39 | 39 | // |
40 | 40 | // https://github.com/insideout10/wordlift-plugin/issues/713 |
41 | 41 | |
42 | - $lang = ( isset( $params['lang'] ) ) ? $params['lang'] : false; |
|
42 | + $lang = (isset($params['lang'])) ? $params['lang'] : false; |
|
43 | 43 | |
44 | 44 | // Get WordLift's supported countries. |
45 | - $countries = Wordlift_Countries::get_countries( $lang ); |
|
45 | + $countries = Wordlift_Countries::get_countries($lang); |
|
46 | 46 | |
47 | 47 | // If we support WP's configured language, then use that, otherwise use English by default. |
48 | - $language = isset( $countries[ $params['value'] ] ) ? $params['value'] : 'uk'; |
|
48 | + $language = isset($countries[$params['value']]) ? $params['value'] : 'uk'; |
|
49 | 49 | |
50 | - foreach ( $countries as $code => $label ) : |
|
50 | + foreach ($countries as $code => $label) : |
|
51 | 51 | ?> |
52 | 52 | <option |
53 | - value="<?php echo esc_attr( $code ); ?>" |
|
54 | - <?php echo selected( $code, $language, false ); ?> |
|
53 | + value="<?php echo esc_attr($code); ?>" |
|
54 | + <?php echo selected($code, $language, false); ?> |
|
55 | 55 | > |
56 | - <?php echo esc_html( $label ); ?> |
|
56 | + <?php echo esc_html($label); ?> |
|
57 | 57 | </option> |
58 | 58 | <?php |
59 | 59 | endforeach; |
@@ -71,17 +71,17 @@ discard block |
||
71 | 71 | |
72 | 72 | // Check whether the required params are set. |
73 | 73 | // phpcs:ignore Standard.Category.SniffName.ErrorCode |
74 | - if ( ! empty( $_POST['lang'] ) && ! empty( $_POST['value'] ) ) { //phpcs:ignore WordPress.Security.NonceVerification.Missing |
|
74 | + if ( ! empty($_POST['lang']) && ! empty($_POST['value'])) { //phpcs:ignore WordPress.Security.NonceVerification.Missing |
|
75 | 75 | ob_start(); |
76 | 76 | // Get the new options. |
77 | 77 | // phpcs:ignore Standard.Category.SniffName.ErrorCode |
78 | - $this->render_options( $_POST ); //phpcs:ignore WordPress.Security.NonceVerification.Missing |
|
78 | + $this->render_options($_POST); //phpcs:ignore WordPress.Security.NonceVerification.Missing |
|
79 | 79 | |
80 | 80 | $html = ob_get_clean(); |
81 | 81 | } |
82 | 82 | |
83 | 83 | // Return the html. |
84 | - wp_send_json_success( $html ); |
|
84 | + wp_send_json_success($html); |
|
85 | 85 | } |
86 | 86 | |
87 | 87 | /** |
@@ -94,9 +94,9 @@ discard block |
||
94 | 94 | * |
95 | 95 | * @return array $attributes Modified attributes. |
96 | 96 | */ |
97 | - public function add_country_codes_data( $attributes ) { |
|
97 | + public function add_country_codes_data($attributes) { |
|
98 | 98 | // Add the country codes. |
99 | - $attributes['country-codes'] = wp_json_encode( Wordlift_Countries::get_codes() ); |
|
99 | + $attributes['country-codes'] = wp_json_encode(Wordlift_Countries::get_codes()); |
|
100 | 100 | |
101 | 101 | // Return the attributes. |
102 | 102 | return $attributes; |
@@ -18,75 +18,75 @@ |
||
18 | 18 | */ |
19 | 19 | class Wordlift_Admin_Input_Element implements Wordlift_Admin_Element { |
20 | 20 | |
21 | - /** |
|
22 | - * Output the HTML for an input box type settings_page |
|
23 | - * |
|
24 | - * @param array $args An array with the following keys: |
|
25 | - * Parameters controlling the result. |
|
26 | - * |
|
27 | - * @type string name The name attribute of the input element. Mandatory. |
|
28 | - * |
|
29 | - * @type string id The id attribute of the input element. Optional. |
|
30 | - * @type string id The id attribute of the input element. |
|
31 | - * Optional, randomly generated one is used if not supplied. |
|
32 | - * @type string value The value of the input element. |
|
33 | - * Optional, defaults to empty string. |
|
34 | - * @type bool readonly Indicates whether the input is read only. |
|
35 | - * Optional, defaults to read-write |
|
36 | - * @type string css_class The class attribute for the input element. |
|
37 | - * If empty string no class attribute will be added. |
|
38 | - * Optional, defaults to empty string. |
|
39 | - * @type string description The descriptio text to be displayed below the element. |
|
40 | - * Can include some HTML element. |
|
41 | - * If empty string no description will be displayed. |
|
42 | - * Optional, defaults to empty string. |
|
43 | - * @since 3.21.0 added the ability to use a $type arg. |
|
44 | - * |
|
45 | - * @return $this|Wordlift_Admin_Element |
|
46 | - */ |
|
47 | - public function render( $args ) { |
|
21 | + /** |
|
22 | + * Output the HTML for an input box type settings_page |
|
23 | + * |
|
24 | + * @param array $args An array with the following keys: |
|
25 | + * Parameters controlling the result. |
|
26 | + * |
|
27 | + * @type string name The name attribute of the input element. Mandatory. |
|
28 | + * |
|
29 | + * @type string id The id attribute of the input element. Optional. |
|
30 | + * @type string id The id attribute of the input element. |
|
31 | + * Optional, randomly generated one is used if not supplied. |
|
32 | + * @type string value The value of the input element. |
|
33 | + * Optional, defaults to empty string. |
|
34 | + * @type bool readonly Indicates whether the input is read only. |
|
35 | + * Optional, defaults to read-write |
|
36 | + * @type string css_class The class attribute for the input element. |
|
37 | + * If empty string no class attribute will be added. |
|
38 | + * Optional, defaults to empty string. |
|
39 | + * @type string description The descriptio text to be displayed below the element. |
|
40 | + * Can include some HTML element. |
|
41 | + * If empty string no description will be displayed. |
|
42 | + * Optional, defaults to empty string. |
|
43 | + * @since 3.21.0 added the ability to use a $type arg. |
|
44 | + * |
|
45 | + * @return $this|Wordlift_Admin_Element |
|
46 | + */ |
|
47 | + public function render( $args ) { |
|
48 | 48 | |
49 | - /* |
|
49 | + /* |
|
50 | 50 | * Parse the arguments and merge with default values. |
51 | 51 | * Name intentionally do not have a default as it has to be in SyncEvent |
52 | 52 | * with form handling code |
53 | 53 | */ |
54 | - $pre_params = wp_parse_args( |
|
55 | - $args, |
|
56 | - array( |
|
57 | - 'id' => uniqid( 'wl-input-' ), |
|
58 | - 'value' => '', |
|
59 | - 'readonly' => false, |
|
60 | - 'css_class' => '', |
|
61 | - 'description' => '', |
|
62 | - ) |
|
63 | - ); |
|
64 | - $params = apply_filters( 'wl_admin_input_element_params', $pre_params ); |
|
65 | - // allow different types of input - default to 'text'. |
|
66 | - $input_type = ! empty( $params['type'] ) ? $params['type'] : 'text'; |
|
67 | - ?> |
|
54 | + $pre_params = wp_parse_args( |
|
55 | + $args, |
|
56 | + array( |
|
57 | + 'id' => uniqid( 'wl-input-' ), |
|
58 | + 'value' => '', |
|
59 | + 'readonly' => false, |
|
60 | + 'css_class' => '', |
|
61 | + 'description' => '', |
|
62 | + ) |
|
63 | + ); |
|
64 | + $params = apply_filters( 'wl_admin_input_element_params', $pre_params ); |
|
65 | + // allow different types of input - default to 'text'. |
|
66 | + $input_type = ! empty( $params['type'] ) ? $params['type'] : 'text'; |
|
67 | + ?> |
|
68 | 68 | |
69 | 69 | <input type="<?php echo esc_attr( $input_type ); ?>" |
70 | 70 | id="<?php echo esc_attr( $params['id'] ); ?>" |
71 | 71 | name="<?php echo esc_attr( $params['name'] ); ?>" |
72 | 72 | value="<?php echo esc_attr( $params['value'] ); ?>" |
73 | 73 | <?php |
74 | - if ( ! empty( $params['readonly'] ) ) { |
|
75 | - ?> |
|
74 | + if ( ! empty( $params['readonly'] ) ) { |
|
75 | + ?> |
|
76 | 76 | readonly="readonly" <?php } ?> |
77 | 77 | <?php |
78 | - if ( ! empty( $params['css_class'] ) ) { |
|
79 | - ?> |
|
78 | + if ( ! empty( $params['css_class'] ) ) { |
|
79 | + ?> |
|
80 | 80 | class="<?php echo esc_attr( $params['css_class'] ); ?>" <?php } ?> |
81 | 81 | /> |
82 | 82 | <?php |
83 | - if ( ! empty( $params['description'] ) ) { |
|
84 | - ?> |
|
83 | + if ( ! empty( $params['description'] ) ) { |
|
84 | + ?> |
|
85 | 85 | <p><?php echo wp_kses( $params['description'], array( 'a' => array( 'href' => array() ) ) ); ?></p><?php } ?> |
86 | 86 | |
87 | 87 | <?php |
88 | 88 | |
89 | - return $this; |
|
90 | - } |
|
89 | + return $this; |
|
90 | + } |
|
91 | 91 | |
92 | 92 | } |
@@ -44,7 +44,7 @@ discard block |
||
44 | 44 | * |
45 | 45 | * @return $this|Wordlift_Admin_Element |
46 | 46 | */ |
47 | - public function render( $args ) { |
|
47 | + public function render($args) { |
|
48 | 48 | |
49 | 49 | /* |
50 | 50 | * Parse the arguments and merge with default values. |
@@ -54,35 +54,35 @@ discard block |
||
54 | 54 | $pre_params = wp_parse_args( |
55 | 55 | $args, |
56 | 56 | array( |
57 | - 'id' => uniqid( 'wl-input-' ), |
|
57 | + 'id' => uniqid('wl-input-'), |
|
58 | 58 | 'value' => '', |
59 | 59 | 'readonly' => false, |
60 | 60 | 'css_class' => '', |
61 | 61 | 'description' => '', |
62 | 62 | ) |
63 | 63 | ); |
64 | - $params = apply_filters( 'wl_admin_input_element_params', $pre_params ); |
|
64 | + $params = apply_filters('wl_admin_input_element_params', $pre_params); |
|
65 | 65 | // allow different types of input - default to 'text'. |
66 | - $input_type = ! empty( $params['type'] ) ? $params['type'] : 'text'; |
|
66 | + $input_type = ! empty($params['type']) ? $params['type'] : 'text'; |
|
67 | 67 | ?> |
68 | 68 | |
69 | - <input type="<?php echo esc_attr( $input_type ); ?>" |
|
70 | - id="<?php echo esc_attr( $params['id'] ); ?>" |
|
71 | - name="<?php echo esc_attr( $params['name'] ); ?>" |
|
72 | - value="<?php echo esc_attr( $params['value'] ); ?>" |
|
69 | + <input type="<?php echo esc_attr($input_type); ?>" |
|
70 | + id="<?php echo esc_attr($params['id']); ?>" |
|
71 | + name="<?php echo esc_attr($params['name']); ?>" |
|
72 | + value="<?php echo esc_attr($params['value']); ?>" |
|
73 | 73 | <?php |
74 | - if ( ! empty( $params['readonly'] ) ) { |
|
74 | + if ( ! empty($params['readonly'])) { |
|
75 | 75 | ?> |
76 | 76 | readonly="readonly" <?php } ?> |
77 | 77 | <?php |
78 | - if ( ! empty( $params['css_class'] ) ) { |
|
78 | + if ( ! empty($params['css_class'])) { |
|
79 | 79 | ?> |
80 | - class="<?php echo esc_attr( $params['css_class'] ); ?>" <?php } ?> |
|
80 | + class="<?php echo esc_attr($params['css_class']); ?>" <?php } ?> |
|
81 | 81 | /> |
82 | 82 | <?php |
83 | - if ( ! empty( $params['description'] ) ) { |
|
83 | + if ( ! empty($params['description'])) { |
|
84 | 84 | ?> |
85 | - <p><?php echo wp_kses( $params['description'], array( 'a' => array( 'href' => array() ) ) ); ?></p><?php } ?> |
|
85 | + <p><?php echo wp_kses($params['description'], array('a' => array('href' => array()))); ?></p><?php } ?> |
|
86 | 86 | |
87 | 87 | <?php |
88 | 88 |
@@ -18,48 +18,48 @@ discard block |
||
18 | 18 | */ |
19 | 19 | class Wordlift_Admin_Tabs_Element implements Wordlift_Admin_Element { |
20 | 20 | |
21 | - /** |
|
22 | - * Render the element. |
|
23 | - * |
|
24 | - * @param array $args { |
|
25 | - * Parameters controlling the html being output. |
|
26 | - * |
|
27 | - * @type integer $active The index of the active panel on first render |
|
28 | - * a zero based number of the tab actual placement |
|
29 | - * |
|
30 | - * @type array $tabs { |
|
31 | - * The array of tabs to be rendered. |
|
32 | - * The index of the elements is expected to be an ascending integers |
|
33 | - * tabs with lower index values will be render first (on the left) |
|
34 | - * |
|
35 | - * @type string $label The label used for the tab. |
|
36 | - * @type callable $callback The callback to call to render the |
|
37 | - * Tab "panel". |
|
38 | - * @type array $args The arguments array passed to the callback. |
|
39 | - * } |
|
40 | - * } |
|
41 | - * |
|
42 | - * @return \Wordlift_Admin_Element The element instance. |
|
43 | - * @since 3.11.0 |
|
44 | - */ |
|
45 | - public function render( $args ) { |
|
21 | + /** |
|
22 | + * Render the element. |
|
23 | + * |
|
24 | + * @param array $args { |
|
25 | + * Parameters controlling the html being output. |
|
26 | + * |
|
27 | + * @type integer $active The index of the active panel on first render |
|
28 | + * a zero based number of the tab actual placement |
|
29 | + * |
|
30 | + * @type array $tabs { |
|
31 | + * The array of tabs to be rendered. |
|
32 | + * The index of the elements is expected to be an ascending integers |
|
33 | + * tabs with lower index values will be render first (on the left) |
|
34 | + * |
|
35 | + * @type string $label The label used for the tab. |
|
36 | + * @type callable $callback The callback to call to render the |
|
37 | + * Tab "panel". |
|
38 | + * @type array $args The arguments array passed to the callback. |
|
39 | + * } |
|
40 | + * } |
|
41 | + * |
|
42 | + * @return \Wordlift_Admin_Element The element instance. |
|
43 | + * @since 3.11.0 |
|
44 | + */ |
|
45 | + public function render( $args ) { |
|
46 | 46 | |
47 | - // Enqueue the jQuery UI Tabs script. |
|
48 | - wp_enqueue_script( 'jquery-ui-tabs' ); |
|
47 | + // Enqueue the jQuery UI Tabs script. |
|
48 | + wp_enqueue_script( 'jquery-ui-tabs' ); |
|
49 | 49 | |
50 | - // Parse the arguments and merge with default values. |
|
51 | - $params = wp_parse_args( |
|
52 | - $args, |
|
53 | - array( |
|
54 | - 'tabs' => array(), |
|
55 | - 'active' => 0, |
|
56 | - ) |
|
57 | - ); |
|
50 | + // Parse the arguments and merge with default values. |
|
51 | + $params = wp_parse_args( |
|
52 | + $args, |
|
53 | + array( |
|
54 | + 'tabs' => array(), |
|
55 | + 'active' => 0, |
|
56 | + ) |
|
57 | + ); |
|
58 | 58 | |
59 | - // Following is the HTML code: |
|
60 | - // - the labels are printed, using the tab's `label`, |
|
61 | - // - the panels are printed, using the tab's `callback`. |
|
62 | - ?> |
|
59 | + // Following is the HTML code: |
|
60 | + // - the labels are printed, using the tab's `label`, |
|
61 | + // - the panels are printed, using the tab's `callback`. |
|
62 | + ?> |
|
63 | 63 | <div |
64 | 64 | class="wl-tabs-element" |
65 | 65 | data-active="<?php echo esc_attr( $params['active'] ); ?>" |
@@ -82,7 +82,7 @@ discard block |
||
82 | 82 | |
83 | 83 | <?php |
84 | 84 | |
85 | - return $this; |
|
86 | - } |
|
85 | + return $this; |
|
86 | + } |
|
87 | 87 | |
88 | 88 | } |
@@ -42,10 +42,10 @@ discard block |
||
42 | 42 | * @return \Wordlift_Admin_Element The element instance. |
43 | 43 | * @since 3.11.0 |
44 | 44 | */ |
45 | - public function render( $args ) { |
|
45 | + public function render($args) { |
|
46 | 46 | |
47 | 47 | // Enqueue the jQuery UI Tabs script. |
48 | - wp_enqueue_script( 'jquery-ui-tabs' ); |
|
48 | + wp_enqueue_script('jquery-ui-tabs'); |
|
49 | 49 | |
50 | 50 | // Parse the arguments and merge with default values. |
51 | 51 | $params = wp_parse_args( |
@@ -62,20 +62,20 @@ discard block |
||
62 | 62 | ?> |
63 | 63 | <div |
64 | 64 | class="wl-tabs-element" |
65 | - data-active="<?php echo esc_attr( $params['active'] ); ?>" |
|
65 | + data-active="<?php echo esc_attr($params['active']); ?>" |
|
66 | 66 | > |
67 | 67 | <ul class="nav-tab-wrapper"> |
68 | - <?php foreach ( $params['tabs'] as $index => $tab ) : ?> |
|
68 | + <?php foreach ($params['tabs'] as $index => $tab) : ?> |
|
69 | 69 | <li class="nav-tab"> |
70 | - <a href="#tabs-<?php echo esc_html( $index + 1 ); ?>"> |
|
71 | - <?php echo esc_html( $tab['label'] ); ?> |
|
70 | + <a href="#tabs-<?php echo esc_html($index + 1); ?>"> |
|
71 | + <?php echo esc_html($tab['label']); ?> |
|
72 | 72 | </a> |
73 | 73 | </li> |
74 | 74 | <?php endforeach; ?> |
75 | 75 | </ul> |
76 | - <?php foreach ( $params['tabs'] as $index => $tab ) : ?> |
|
77 | - <div id="tabs-<?php echo esc_html( $index + 1 ); ?>"> |
|
78 | - <?php call_user_func( $tab['callback'], $tab['args'] ); ?> |
|
76 | + <?php foreach ($params['tabs'] as $index => $tab) : ?> |
|
77 | + <div id="tabs-<?php echo esc_html($index + 1); ?>"> |
|
78 | + <?php call_user_func($tab['callback'], $tab['args']); ?> |
|
79 | 79 | </div> |
80 | 80 | <?php endforeach; ?> |
81 | 81 | </div> |
@@ -18,13 +18,13 @@ discard block |
||
18 | 18 | */ |
19 | 19 | class Wordlift_Admin_Select2_Element extends Wordlift_Admin_Select_Element { |
20 | 20 | |
21 | - /** |
|
22 | - * @inheritdoc |
|
23 | - */ |
|
24 | - public function render_options( $params ) { |
|
25 | - // Loop through all params and add the options. |
|
26 | - foreach ( $params['options'] as $value => $label ) : |
|
27 | - ?> |
|
21 | + /** |
|
22 | + * @inheritdoc |
|
23 | + */ |
|
24 | + public function render_options( $params ) { |
|
25 | + // Loop through all params and add the options. |
|
26 | + foreach ( $params['options'] as $value => $label ) : |
|
27 | + ?> |
|
28 | 28 | <option |
29 | 29 | value="<?php echo esc_attr( $value ); ?>" |
30 | 30 | <?php selected( $params['value'], $value ); ?> |
@@ -32,26 +32,26 @@ discard block |
||
32 | 32 | <?php echo esc_html( $label ); ?> |
33 | 33 | </option> |
34 | 34 | <?php |
35 | - endforeach; |
|
36 | - } |
|
35 | + endforeach; |
|
36 | + } |
|
37 | 37 | |
38 | - /** |
|
39 | - * @inheritdoc |
|
40 | - */ |
|
41 | - protected function enqueue_resources() { |
|
42 | - // Enqueue select2 library js and css. |
|
43 | - // Underscore is needed for Select2's `templateResult` and `templateSelection` templates. |
|
44 | - wp_enqueue_script( |
|
45 | - 'wordlift-select2', |
|
46 | - plugin_dir_url( __DIR__ ) . 'js/select2/js/select2' . ( ! defined( 'SCRIPT_DEBUG' ) || ! SCRIPT_DEBUG ? '.min' : '' ) . '.js', |
|
47 | - array( |
|
48 | - 'jquery', |
|
49 | - 'underscore', |
|
50 | - ), |
|
51 | - '4.0.3', |
|
52 | - false |
|
53 | - ); |
|
54 | - wp_enqueue_style( 'wordlift-select2', plugin_dir_url( __DIR__ ) . 'js/select2/css/select2' . ( ! defined( 'SCRIPT_DEBUG' ) || ! SCRIPT_DEBUG ? '.min' : '' ) . '.css', array(), '4.0.3' ); |
|
55 | - } |
|
38 | + /** |
|
39 | + * @inheritdoc |
|
40 | + */ |
|
41 | + protected function enqueue_resources() { |
|
42 | + // Enqueue select2 library js and css. |
|
43 | + // Underscore is needed for Select2's `templateResult` and `templateSelection` templates. |
|
44 | + wp_enqueue_script( |
|
45 | + 'wordlift-select2', |
|
46 | + plugin_dir_url( __DIR__ ) . 'js/select2/js/select2' . ( ! defined( 'SCRIPT_DEBUG' ) || ! SCRIPT_DEBUG ? '.min' : '' ) . '.js', |
|
47 | + array( |
|
48 | + 'jquery', |
|
49 | + 'underscore', |
|
50 | + ), |
|
51 | + '4.0.3', |
|
52 | + false |
|
53 | + ); |
|
54 | + wp_enqueue_style( 'wordlift-select2', plugin_dir_url( __DIR__ ) . 'js/select2/css/select2' . ( ! defined( 'SCRIPT_DEBUG' ) || ! SCRIPT_DEBUG ? '.min' : '' ) . '.css', array(), '4.0.3' ); |
|
55 | + } |
|
56 | 56 | |
57 | 57 | } |
@@ -21,15 +21,15 @@ discard block |
||
21 | 21 | /** |
22 | 22 | * @inheritdoc |
23 | 23 | */ |
24 | - public function render_options( $params ) { |
|
24 | + public function render_options($params) { |
|
25 | 25 | // Loop through all params and add the options. |
26 | - foreach ( $params['options'] as $value => $label ) : |
|
26 | + foreach ($params['options'] as $value => $label) : |
|
27 | 27 | ?> |
28 | 28 | <option |
29 | - value="<?php echo esc_attr( $value ); ?>" |
|
30 | - <?php selected( $params['value'], $value ); ?> |
|
29 | + value="<?php echo esc_attr($value); ?>" |
|
30 | + <?php selected($params['value'], $value); ?> |
|
31 | 31 | > |
32 | - <?php echo esc_html( $label ); ?> |
|
32 | + <?php echo esc_html($label); ?> |
|
33 | 33 | </option> |
34 | 34 | <?php |
35 | 35 | endforeach; |
@@ -43,7 +43,7 @@ discard block |
||
43 | 43 | // Underscore is needed for Select2's `templateResult` and `templateSelection` templates. |
44 | 44 | wp_enqueue_script( |
45 | 45 | 'wordlift-select2', |
46 | - plugin_dir_url( __DIR__ ) . 'js/select2/js/select2' . ( ! defined( 'SCRIPT_DEBUG' ) || ! SCRIPT_DEBUG ? '.min' : '' ) . '.js', |
|
46 | + plugin_dir_url(__DIR__).'js/select2/js/select2'.( ! defined('SCRIPT_DEBUG') || ! SCRIPT_DEBUG ? '.min' : '').'.js', |
|
47 | 47 | array( |
48 | 48 | 'jquery', |
49 | 49 | 'underscore', |
@@ -51,7 +51,7 @@ discard block |
||
51 | 51 | '4.0.3', |
52 | 52 | false |
53 | 53 | ); |
54 | - wp_enqueue_style( 'wordlift-select2', plugin_dir_url( __DIR__ ) . 'js/select2/css/select2' . ( ! defined( 'SCRIPT_DEBUG' ) || ! SCRIPT_DEBUG ? '.min' : '' ) . '.css', array(), '4.0.3' ); |
|
54 | + wp_enqueue_style('wordlift-select2', plugin_dir_url(__DIR__).'js/select2/css/select2'.( ! defined('SCRIPT_DEBUG') || ! SCRIPT_DEBUG ? '.min' : '').'.css', array(), '4.0.3'); |
|
55 | 55 | } |
56 | 56 | |
57 | 57 | } |