Completed
Push — master ( 58fad2...348909 )
by Devin
24:06 queued 15:21
created

Give_Scripts::plugin_enqueue_scripts()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 16
rs 9.7333
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * Loads the plugin's scripts and styles.
5
 *
6
 * Registers and enqueues plugin styles and scripts. Asset versions are based
7
 * on the current plugin version.
8
 *
9
 * All script and style handles should be registered in this class even if they
10
 * are enqueued dynamically by other classes.
11
 *
12
 * @since 2.1.0
13
 */
14
class Give_Scripts {
15
16
	/**
17
	 * Whether RTL or not.
18
	 *
19
	 * @since  2.1.0
20
	 * @var    string
21
	 * @access private
22
	 */
23
	private $direction;
24
25
	/**
26
	 * Whether scripts should be loaded in the footer or not.
27
	 *
28
	 * @since  2.1.0
29
	 * @var    bool
30
	 * @access private
31
	 */
32
	private $scripts_footer;
33
34
	/**
35
	 * Instantiates the Assets class.
36
	 *
37
	 * @since 2.1.0
38
	 */
39
	public function __construct() {
40
		$this->direction      = ( is_rtl() || isset( $_GET['d'] ) && 'rtl' === $_GET['d'] ) ? '.rtl' : '';
0 ignored issues
show
introduced by
Detected access of super global var $_GET, probably need manual inspection.
Loading history...
introduced by
Detected usage of a non-sanitized input variable: $_GET
Loading history...
41
		$this->scripts_footer = give_is_setting_enabled( give_get_option( 'scripts_footer' ) ) ? true : false;
42
		$this->init();
43
	}
44
45
	/**
46
	 * Fires off hooks to register assets in WordPress.
47
	 *
48
	 * @since 2.1.0
49
	 */
50
	public function init() {
51
52
		add_action( 'admin_enqueue_scripts', array( $this, 'register_styles' ) );
53
		add_action( 'admin_enqueue_scripts', array( $this, 'register_scripts' ) );
54
		add_action( 'wp_enqueue_scripts', array( $this, 'register_styles' ) );
55
		add_action( 'wp_enqueue_scripts', array( $this, 'register_scripts' ) );
56
57
		if ( is_admin() ) {
58
			add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
59
			add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_styles' ) );
60
			add_action( 'enqueue_block_editor_assets', array( $this, 'gutenberg_admin_scripts' ) );
61
			add_action( 'admin_head', array( $this, 'global_admin_head' ) );
62
63
		} else {
64
			add_action( 'wp_enqueue_scripts', array( $this, 'public_enqueue_styles' ) );
65
			add_action( 'wp_enqueue_scripts', array( $this, 'public_enqueue_scripts' ) );
66
		}
67
	}
68
69
	/**
70
	 * Registers all plugin styles.
71
	 *
72
	 * @since 2.1.0
73
	 */
74
	public function register_styles() {
75
76
		// WP-admin.
77
		wp_register_style( 'give-admin-styles', GIVE_PLUGIN_URL . 'assets/dist/css/admin' . $this->direction . '.css', array(), GIVE_VERSION );
78
79
		// WP-admin: plugin page.
80
		wp_register_style(
81
			'plugin-deactivation-survey-css',
82
			GIVE_PLUGIN_URL . 'assets/dist/css/plugin-deactivation-survey.css',
83
			array(),
84
			GIVE_VERSION
85
		);
86
87
		// Frontend.
88
		if ( give_is_setting_enabled( give_get_option( 'css' ) ) ) {
89
			wp_register_style( 'give-styles', $this->get_frontend_stylesheet_uri(), array(), GIVE_VERSION, 'all' );
90
		}
91
	}
92
93
	/**
94
	 * Registers all plugin scripts.
95
	 *
96
	 * @since 2.1.0
97
	 */
98
	public function register_scripts() {
99
100
		// WP-Admin.
101
		wp_register_script( 'give-admin-scripts', GIVE_PLUGIN_URL . 'assets/dist/js/admin.js', array(
102
			'jquery',
103
			'jquery-ui-datepicker',
104
			'wp-color-picker',
105
			'jquery-query',
106
		), GIVE_VERSION );
107
108
		// WP-admin: plugin page.
109
		wp_register_script( 'plugin-deactivation-survey-js',
110
			GIVE_PLUGIN_URL . 'assets/dist/js/plugin-deactivation-survey.js',
111
			array( 'jquery' ),
112
			GIVE_VERSION,
113
			true
114
		);
115
116
		// Frontend.
117
		wp_register_script( 'give', GIVE_PLUGIN_URL . 'assets/dist/js/give.js', array( 'jquery' ), GIVE_VERSION, $this->scripts_footer );
118
	}
119
120
	/**
121
	 * Enqueues admin styles.
122
	 *
123
	 * @since 2.1.0
124
	 *
125
	 * @param string $hook Page hook.
126
	 */
127
	public function admin_enqueue_styles( $hook ) {
128
		// Give Admin Only.
129
		if ( ! apply_filters( 'give_load_admin_styles', give_is_admin_page(), $hook ) ) {
130
			return;
131
		}
132
133
		// Give enqueues.
134
		wp_enqueue_style( 'give-admin-styles' );
135
		wp_enqueue_style( 'give-admin-bar-notification' );
136
137
		// WP Core enqueues.
138
		wp_enqueue_style( 'wp-color-picker' );
139
		wp_enqueue_style( 'thickbox' ); // @TODO remove once we have modal API.
140
141
	}
142
143
	/**
144
	 * Enqueues admin scripts.
145
	 *
146
	 * @since 2.1.0
147
	 *
148
	 * @param string $hook Page hook.
149
	 */
150
	public function admin_enqueue_scripts( $hook ) {
151
		global $pagenow;
152
153
		// Plugin page script
154
		if ( 'plugins.php' === $pagenow ) {
155
			$this->plugin_enqueue_scripts();
156
		}
157
158
		// Give Admin Only.
159
		if ( ! apply_filters( 'give_load_admin_scripts', give_is_admin_page(), $hook ) ) {
160
			return;
161
		}
162
163
		// WP Scripts.
164
		wp_enqueue_script( 'wp-color-picker' );
165
		wp_enqueue_script( 'jquery-ui-datepicker' );
166
		wp_enqueue_script( 'thickbox' );
167
		wp_enqueue_media();
168
169
		// Give admin scripts.
170
		wp_enqueue_script( 'give-admin-scripts' );
171
172
		// Localize admin scripts
173
		$this->admin_localize_scripts();
174
	}
175
176
	/**
177
	 * Load admin plugin page related scripts, styles andd localize param
178
	 *
179
	 * @since  2.2.0
180
	 * @access private
181
	 */
182
	private function plugin_enqueue_scripts() {
183
		wp_enqueue_style( 'plugin-deactivation-survey-css' );
184
		wp_enqueue_script( 'plugin-deactivation-survey-js' );
185
186
		$localized_data = array(
187
			'nonce'                           => wp_create_nonce( 'deactivation_survey_nonce' ),
188
			'cancel'                          => __( 'Cancel', 'give' ),
189
			'deactivation_no_option_selected' => __( 'Error: Please select at least one option.', 'give' ),
190
			'submit_and_deactivate'           => __( 'Submit and Deactivate', 'give' ),
191
			'skip_and_deactivate'             => __( 'Skip & Deactivate', 'give' ),
192
			'please_fill_field'               => __( 'Error: Please fill the field.', 'give' ),
193
194
		);
195
196
		wp_localize_script( 'plugin-deactivation-survey-js', 'give_vars', $localized_data );
197
	}
198
199
	/**
200
	 * Localize admin scripts.
201
	 */
202
	public function admin_localize_scripts() {
203
204
		global $post, $pagenow;
205
		$give_options = give_get_settings();
206
207
		// Price Separators.
208
		$thousand_separator = give_get_price_thousand_separator();
209
		$decimal_separator  = give_get_price_decimal_separator();
210
		$number_decimals    = give_get_price_decimals();
211
212
		// Localize strings & variables for JS.
213
		$localized_data = array(
214
			'post_id'                           => isset( $post->ID ) ? $post->ID : null,
215
			'give_version'                      => GIVE_VERSION,
216
			'thousands_separator'               => $thousand_separator,
217
			'decimal_separator'                 => $decimal_separator,
218
			'number_decimals'                   => $number_decimals, // Use this for number of decimals instead of `currency_decimals`.
219
			'currency_decimals'                 => $number_decimals, // If you find usage of this variable then replace it with `number_decimals`.
220
			'currency_sign'                     => give_currency_filter( '' ),
221
			'currency_pos'                      => isset( $give_options['currency_position'] ) ? $give_options['currency_position'] : 'before',
222
			'quick_edit_warning'                => __( 'Not available for variable priced forms.', 'give' ),
223
			'delete_payment'                    => __( 'Are you sure you want to <strong>permanently</strong> delete this donation?', 'give' ),
224
			'delete_payment_note'               => __( 'Are you sure you want to delete this note?', 'give' ),
225
			'revoke_api_key'                    => __( 'Are you sure you want to revoke this API key?', 'give' ),
226
			'regenerate_api_key'                => __( 'Are you sure you want to regenerate this API key?', 'give' ),
227
			'resend_receipt'                    => __( 'Are you sure you want to resend the donation receipt?', 'give' ),
228
			'disconnect_user'                   => __( 'Are you sure you want to disconnect the user from this donor?', 'give' ),
229
			'one_option'                        => __( 'Choose a form', 'give' ),
230
			'one_or_more_option'                => __( 'Choose one or more forms', 'give' ),
231
			'ok'                                => __( 'Ok', 'give' ),
232
			'cancel'                            => __( 'Cancel', 'give' ),
233
			'success'                           => __( 'Success', 'give' ),
234
			'error'                             => __( 'Error', 'give' ),
235
			'close'                             => __( 'Close', 'give' ),
236
			'confirm'                           => __( 'Confirm', 'give' ),
237
			'copied'                            => __( 'Copied!', 'give' ),
238
			'shortcode_not_copy'                => __( 'Shortcode could not be copied.', 'give' ),
239
			'confirm_action'                    => __( 'Confirm Action', 'give' ),
240
			'confirm_deletion'                  => __( 'Confirm Deletion', 'give' ),
241
			'confirm_delete_donation'           => __( 'Confirm Delete Donation', 'give' ),
242
			'confirm_resend'                    => __( 'Confirm re-send', 'give' ),
243
			'confirm_bulk_action'               => __( 'Confirm bulk action', 'give' ),
244
			'restart_upgrade'                   => __( 'Do you want to restart the update process?', 'give' ),
245
			'restart_update'                    => __( 'It is recommended that you backup your database before proceeding. Do you want to run the update now?', 'give' ),
246
			'stop_upgrade'                      => __( 'Do you want to stop the update process now?', 'give' ),
247
			'import_failed'                     => __( 'Import failed', 'give' ),
248
			'flush_success'                     => __( 'Flush success', 'give' ),
249
			'flush_error'                       => __( 'Flush error', 'give' ),
250
			'no_form_selected'                  => __( 'No form selected', 'give' ),
251
			'batch_export_no_class'             => __( 'You must choose a method.', 'give' ),
252
			'batch_export_no_reqs'              => __( 'Required fields not completed.', 'give' ),
253
			'reset_stats_warn'                  => __( 'Are you sure you want to reset Give? This process is <strong><em>not reversible</em></strong> and will delete all data regardless of test or live mode. Please be sure you have a recent backup before proceeding.', 'give' ),
254
			'delete_test_donor'                 => __( 'Are you sure you want to delete all the test donors? This process will also delete test donations as well.', 'give' ),
255
			'delete_import_donor'               => __( 'Are you sure you want to delete all the imported donors? This process will also delete imported donations as well.', 'give' ),
256
			'delete_donations_only'             => __( 'Are you sure you want to delete all the donations in the specfied date range?', 'give' ),
257
			'price_format_guide'                => sprintf( __( 'Please enter amount in monetary decimal ( %1$s ) format without thousand separator ( %2$s ) .', 'give' ), $decimal_separator, $thousand_separator ),
258
			/* translators : %s: Donation form options metabox */
259
			'confirm_before_remove_row_text'    => __( 'Do you want to delete this item?', 'give' ),
260
			'matched_success_failure_page'      => __( 'You cannot set the success and failed pages to the same page', 'give' ),
261
			'dismiss_notice_text'               => __( 'Dismiss this notice.', 'give' ),
262
			'search_placeholder'                => __( 'Type to search all forms', 'give' ),
263
			'search_placeholder_donor'          => __( 'Type to search all donors', 'give' ),
264
			'search_placeholder_country'        => __( 'Type to search all countries', 'give' ),
265
			'search_placeholder_state'          => __( 'Type to search all states/provinces', 'give' ),
266
			'unlock_donor_fields_title'         => __( 'Action forbidden', 'give' ),
267
			'unlock_donor_fields_message'       => __( 'To edit first name and last name, please go to user profile of the donor.', 'give' ),
268
			'remove_from_bulk_delete'           => __( 'Remove from Bulk Delete', 'give' ),
269
			'donors_bulk_action'                => array(
270
				'no_donor_selected'  => array(
271
					'title' => __( 'No donors selected', 'give' ),
272
					'desc'  => __( 'You must choose at least one or more donors to delete.', 'give' ),
273
				),
274
				'no_action_selected' => array(
275
					'title' => __( 'No action selected', 'give' ),
276
					'desc'  => __( 'You must select a bulk action to proceed.', 'give' ),
277
				),
278
			),
279
			'donations_bulk_action'             => array(
280
				'titles'         => array(
281
					'zero' => __( 'No payments selected', 'give' ),
282
				),
283
				'delete'         => array(
284
					'zero'     => __( 'You must choose at least one or more donations to delete.', 'give' ),
285
					'single'   => __( 'Are you sure you want to permanently delete this donation?', 'give' ),
286
					'multiple' => __( 'Are you sure you want to permanently delete the selected {payment_count} donations?', 'give' ),
287
				),
288
				'resend-receipt' => array(
289
					'zero'     => __( 'You must choose at least one or more recipients to resend the email receipt.', 'give' ),
290
					'single'   => __( 'Are you sure you want to resend the email receipt to this recipient?', 'give' ),
291
					'multiple' => __( 'Are you sure you want to resend the emails receipt to {payment_count} recipients?', 'give' ),
292
				),
293
				'set-to-status'  => array(
294
					'zero'     => __( 'You must choose at least one or more donations to set status to {status}.', 'give' ),
295
					'single'   => __( 'Are you sure you want to set status of this donation to {status}?', 'give' ),
296
					'multiple' => __( 'Are you sure you want to set status of {payment_count} donations to {status}?', 'give' ),
297
				),
298
			),
299
			'updates'                           => array(
300
				'ajax_error' => __( 'Please reload this page and try again', 'give' ),
301
			),
302
			'metabox_fields'                    => array(
303
				'media' => array(
304
					'button_title' => __( 'Choose Image', 'give' ),
305
				),
306
				'file'  => array(
307
					'button_title' => __( 'Choose File', 'give' ),
308
				),
309
			),
310
			'chosen'                            => array(
311
				'no_results_msg'  => __( 'No results match {search_term}', 'give' ),
312
				'ajax_search_msg' => __( 'Searching results for match {search_term}', 'give' ),
313
			),
314
			'db_update_confirmation_msg_button' => __( 'Run Updates', 'give' ),
315
			'db_update_confirmation_msg'        => __( 'The following process will make updates to your site\'s database. Please create a database backup before proceeding with updates.', 'give' ),
316
			'error_message'                     => __( 'Something went wrong kindly try again!', 'give' ),
317
			'give_donation_import'              => 'give_donation_import',
318
			'core_settings_import'              => 'give_core_settings_import',
319
			'setting_not_save_message'          => __( 'Changes you made may not be saved.', 'give' ),
320
			'give_donation_amounts'             => array(
321
				'minimum' => apply_filters( 'give_donation_minimum_limit', 1 ),
322
				'maximum' => apply_filters( 'give_donation_maximum_limit', 999999.99 ),
323
			),
324
			'chosen_add_title_prefix'           => __( 'No result found. Press enter to add', 'give' ),
325
			'db_update_nonce'                   => wp_create_nonce( Give_Updates::$background_updater->get_identifier() ),
326
			'ajax'                              => give_test_ajax_works(),
327
			'donor_note_confirm_msg'            => __( 'Please confirm you would like to add a donor note. An email notification will be sent to the donor with the note. If you do not want to notify the donor you may add a private note or disable the donor note email.', 'give' ),
328
			'email_notification'            => array(
329
				'donor_note' => array(
330
					'status' => Give_Email_Notification_Util::is_email_notification_active( Give_Email_Notification::get_instance('donor-note' ) )
0 ignored issues
show
Coding Style introduced by
Expected 1 spaces after opening bracket; 0 found
Loading history...
331
				)
332
			),
333
		);
334
335
		wp_localize_script( 'give-admin-scripts', 'give_vars', $localized_data );
336
	}
337
338
	/**
339
	 * Global admin head.
340
	 */
341
	public function global_admin_head() {
342
		?>
343
		<style type="text/css" media="screen">
344
			@font-face {
345
				font-family: 'give-icomoon';
346
				src: url('<?php echo GIVE_PLUGIN_URL . 'assets/dist/fonts/icomoon.eot?ngjl88'; ?>');
0 ignored issues
show
introduced by
Expected a sanitizing function (see Codex for 'Data Validation'), but instead saw 'GIVE_PLUGIN_URL'
Loading history...
347
				src: url('<?php echo GIVE_PLUGIN_URL . 'assets/dist/fonts/icomoon.eot?#iefixngjl88'?>') format('embedded-opentype'),
0 ignored issues
show
introduced by
Expected a sanitizing function (see Codex for 'Data Validation'), but instead saw 'GIVE_PLUGIN_URL'
Loading history...
348
				url('<?php echo GIVE_PLUGIN_URL . 'assets/dist/fonts/icomoon.woff?ngjl88'; ?>') format('woff'),
0 ignored issues
show
introduced by
Expected a sanitizing function (see Codex for 'Data Validation'), but instead saw 'GIVE_PLUGIN_URL'
Loading history...
349
				url('<?php echo GIVE_PLUGIN_URL . 'assets/dist/fonts/icomoon.svg?ngjl88#icomoon'; ?>') format('svg');
0 ignored issues
show
introduced by
Expected a sanitizing function (see Codex for 'Data Validation'), but instead saw 'GIVE_PLUGIN_URL'
Loading history...
350
				font-weight: normal;
351
				font-style: normal;
352
			}
353
354
			.dashicons-give:before, #adminmenu div.wp-menu-image.dashicons-give:before {
355
				font-family: 'give-icomoon';
356
				font-size: 18px;
357
				width: 18px;
358
				height: 18px;
359
				content: "\e800";
360
			}
361
		</style>
362
		<?php
363
364
	}
365
366
	/**
367
	 * Enqueues public styles.
368
	 *
369
	 * @since 2.1.0
370
	 */
371
	public function public_enqueue_styles() {
372
		wp_enqueue_style( 'give-styles' );
373
	}
374
375
376
	/**
377
	 * Enqueues public scripts.
378
	 *
379
	 * @since 2.1.0
380
	 */
381
	public function public_enqueue_scripts() {
382
383
		// Call Babel Polyfill with common handle so that it is compatible with plugins and themes.
384
		if ( ! wp_script_is( 'babel-polyfill', 'enqueued' )
385
		     && give_is_setting_enabled( give_get_option( 'babel_polyfill_script', 'enabled' ) )
386
		) {
387
			wp_enqueue_script(
388
				'babel-polyfill',
389
				GIVE_PLUGIN_URL . 'assets/dist/js/babel-polyfill.js',
390
				array( 'jquery' ),
391
				GIVE_VERSION,
392
				false
393
			);
394
		}
395
396
		wp_enqueue_script( 'give' );
397
398
		$this->public_localize_scripts();
399
	}
400
401
	/**
402
	 * Localize / PHP to AJAX vars.
403
	 */
404
	public function public_localize_scripts() {
405
406
		/**
407
		 * Filter to modify access mail send notice
408
		 *
409
		 * @since 2.1.3
410
		 *
411
		 * @param string Send notice message for email access.
412
		 *
413
		 * @return  string $message Send notice message for email access.
414
		 */
415
		$message = (string) apply_filters( 'give_email_access_mail_send_notice', __( 'Please check your email and click on the link to access your complete donation history.', 'give' ) );
416
417
		$localize_give_vars = apply_filters( 'give_global_script_vars', array(
418
			'ajaxurl'                     => give_get_ajax_url(),
419
			'checkout_nonce'              => wp_create_nonce( 'give_checkout_nonce' ),
420
			// Do not use this nonce. Its deprecated.
421
			'currency'                    => give_get_currency(),
422
			'currency_sign'               => give_currency_filter( '' ),
423
			'currency_pos'                => give_get_currency_position(),
424
			'thousands_separator'         => give_get_price_thousand_separator(),
425
			'decimal_separator'           => give_get_price_decimal_separator(),
426
			'no_gateway'                  => __( 'Please select a payment method.', 'give' ),
427
			'bad_minimum'                 => __( 'The minimum custom donation amount for this form is', 'give' ),
428
			'bad_maximum'                 => __( 'The maximum custom donation amount for this form is', 'give' ),
429
			'general_loading'             => __( 'Loading...', 'give' ),
430
			'purchase_loading'            => __( 'Please Wait...', 'give' ),
431
			'number_decimals'             => give_get_price_decimals(),
432
			'give_version'                => GIVE_VERSION,
433
			'magnific_options'            => apply_filters(
434
				'give_magnific_options',
435
				array(
436
					'main_class'        => 'give-modal',
437
					'close_on_bg_click' => false,
438
				)
439
			),
440
			'form_translation'            => apply_filters(
441
				'give_form_translation_js',
442
				array(
443
					// Field name               Validation message.
444
					'payment-mode'           => __( 'Please select payment mode.', 'give' ),
445
					'give_first'             => __( 'Please enter your first name.', 'give' ),
446
					'give_email'             => __( 'Please enter a valid email address.', 'give' ),
447
					'give_user_login'        => __( 'Invalid email address or username.', 'give' ),
448
					'give_user_pass'         => __( 'Enter a password.', 'give' ),
449
					'give_user_pass_confirm' => __( 'Enter the password confirmation.', 'give' ),
450
					'give_agree_to_terms'    => __( 'You must agree to the terms and conditions.', 'give' ),
451
				)
452
			),
453
			'confirm_email_sent_message'  => $message,
454
			'ajax_vars'                   => apply_filters( 'give_global_ajax_vars', array(
455
				'ajaxurl'         => give_get_ajax_url(),
456
				'ajaxNonce'       => wp_create_nonce( 'give_ajax_nonce' ),
457
				'loading'         => __( 'Loading', 'give' ),
458
				// General loading message.
459
				'select_option'   => __( 'Please select an option', 'give' ),
460
				// Variable pricing error with multi-donation option enabled.
461
				'default_gateway' => give_get_default_gateway( null ),
462
				'permalinks'      => get_option( 'permalink_structure' ) ? '1' : '0',
463
				'number_decimals' => give_get_price_decimals(),
464
			) ),
465
			'cookie_hash'                 => COOKIEHASH,
466
			'session_nonce_cookie_name'   => Give()->session->get_cookie_name( 'nonce' ),
467
			'session_cookie_name'         => Give()->session->get_cookie_name( 'session' ),
468
			'delete_session_nonce_cookie' => absint( Give()->session->is_delete_nonce_cookie() ),
469
		) );
470
471
		wp_localize_script( 'give', 'give_global_vars', $localize_give_vars );
472
	}
473
474
	/**
475
	 * Get the stylesheet URI.
476
	 *
477
	 * @since   1.6
478
	 * @updated 2.0.1 Moved to class and renamed as method.
479
	 *
480
	 * @return string
481
	 */
482
	public function get_frontend_stylesheet_uri() {
483
484
		$file          = 'give' . $this->direction . '.css';
485
		$templates_dir = give_get_theme_template_dir_name();
486
487
		// Directory paths to CSS files to support checking via file_exists().
488
		$child_theme_style_sheet    = trailingslashit( get_stylesheet_directory() ) . $templates_dir . $file;
489
		$child_theme_style_sheet_2  = trailingslashit( get_stylesheet_directory() ) . $templates_dir . 'give' . $this->direction . '.css';
490
		$parent_theme_style_sheet   = trailingslashit( get_template_directory() ) . $templates_dir . $file;
491
		$parent_theme_style_sheet_2 = trailingslashit( get_template_directory() ) . $templates_dir . 'give' . $this->direction . '.css';
492
		$give_plugin_style_sheet    = trailingslashit( GIVE_PLUGIN_DIR ) . 'assets/dist/css/' . $file;
493
		$uri                        = false;
494
495
		/**
496
		 * Locate the Give stylesheet:
497
		 *
498
		 * a. Look in the child theme directory first, followed by the parent theme
499
		 * b. followed by the Give core templates directory also look for the min version first,
500
		 * c. followed by non minified version, even if SCRIPT_DEBUG is not enabled. This allows users to copy just give.css to their theme.
501
		 * d. Finally, fallback to the standard Give version. This is the default styles included within the plugin.
502
		 */
503
		if ( file_exists( $child_theme_style_sheet ) || ( ! empty( $suffix ) && ( $nonmin = file_exists( $child_theme_style_sheet_2 ) ) ) ) {
504 View Code Duplication
			if ( ! empty( $nonmin ) ) {
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated across your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
505
				$uri = trailingslashit( get_stylesheet_directory_uri() ) . $templates_dir . 'give' . $this->direction . '.css';
506
			} else {
507
				$uri = trailingslashit( get_stylesheet_directory_uri() ) . $templates_dir . $file;
508
			}
509
		} elseif ( file_exists( $parent_theme_style_sheet ) || ( ! empty( $suffix ) && ( $nonmin = file_exists( $parent_theme_style_sheet_2 ) ) ) ) {
510 View Code Duplication
			if ( ! empty( $nonmin ) ) {
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated across your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
511
				$uri = trailingslashit( get_template_directory_uri() ) . $templates_dir . 'give' . $this->direction . '.css';
512
			} else {
513
				$uri = trailingslashit( get_template_directory_uri() ) . $templates_dir . $file;
514
			}
515
		} elseif ( file_exists( $give_plugin_style_sheet ) ) {
516
			$uri = trailingslashit( GIVE_PLUGIN_URL ) . 'assets/dist/css/' . $file;
517
		}
518
519
		return apply_filters( 'give_get_stylesheet_uri', $uri );
520
521
	}
522
523
	/**
524
	 * Gutenberg admin scripts.
525
	 */
526
	public function gutenberg_admin_scripts() {
527
528
		// Enqueue the bundled block JS file
529
		//@todo: Update dependencies on 5.0 Stable release
530
		wp_enqueue_script(
531
			'give-blocks-js',
532
			GIVE_PLUGIN_URL . 'assets/dist/js/gutenberg.js',
533
			array(
534
				'wp-i18n',
535
				'wp-element',
536
				'wp-blocks',
537
				'wp-components',
538
				'wp-api',
539
				'wp-editor',
540
			),
541
			GIVE_VERSION
542
		);
543
544
		// Enqueue the bundled block css file
545
		wp_enqueue_style(
546
			'give-blocks-css',
547
			GIVE_PLUGIN_URL . 'assets/dist/css/gutenberg.css',
548
			array( 'give-styles' ),
549
			GIVE_VERSION
550
		);
551
552
	}
553
554
}
555