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' : ''; |
|
|
|
|
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' ) ) |
|
|
|
|
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'; ?>'); |
|
|
|
|
347
|
|
|
src: url('<?php echo GIVE_PLUGIN_URL . 'assets/dist/fonts/icomoon.eot?#iefixngjl88'?>') format('embedded-opentype'), |
|
|
|
|
348
|
|
|
url('<?php echo GIVE_PLUGIN_URL . 'assets/dist/fonts/icomoon.woff?ngjl88'; ?>') format('woff'), |
|
|
|
|
349
|
|
|
url('<?php echo GIVE_PLUGIN_URL . 'assets/dist/fonts/icomoon.svg?ngjl88#icomoon'; ?>') format('svg'); |
|
|
|
|
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 ) ) { |
|
|
|
|
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 ) ) { |
|
|
|
|
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
|
|
|
|