PluginProbe
Better Payment – Instant Payments, Donations, Fundraising with Subscriptions & More / 2.2.1
Better Payment – Instant Payments, Donations, Fundraising with Subscriptions & More v2.2.1
2.3.4 2.3.3 2.3.2 2.3.1 2.3.0 2.2.2 2.2.1 2.2.0 2.1.2 2.1.1 trunk 0.0.1 0.0.2 0.0.3 0.0.4 0.0.5 0.0.6 0.0.7 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 All 66 releases
better-payment / includes / Assets.php

Assets.php in Better Payment – Instant Payments, Donations, Fundraising with Subscriptions & More 2.2.1, at includes/Assets.php

320 lines 16.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Better_Payment\Lite;
4
5 use Better_Payment\Lite\Traits\Helper as TraitsHelper;
6
7 /**
8 * Exit if accessed directly
9 */
10 if (!defined('ABSPATH')) {
11 exit;
12 }
13
14 /**
15 * Assets handler class
16 *
17 * @since 0.0.1
18 */
19 class Assets extends Controller
20 {
21 use TraitsHelper;
22
23 /**
24 * Guard flag — register_assets() must only build and register handles once per request.
25 *
26 * @var bool
27 */
28 private $registered = false;
29
30 /**
31 * Class constructor
32 *
33 * @since 0.0.1
34 */
35 public function __construct()
36 {
37 add_action('init', [$this, 'register_assets']);
38 add_action('enqueue_block_editor_assets', [$this, 'register_localize_script']);
39 add_action('wp_enqueue_scripts', [$this, 'register_assets']);
40 add_action('admin_enqueue_scripts', [$this, 'register_assets']);
41 add_action('elementor/editor/before_enqueue_scripts', [$this, 'register_assets']);
42 }
43
44 public function register_localize_script()
45 {
46 // Localize BetterPaymentLocalize for block editor
47 wp_localize_script('better-payment-block-localize', 'BetterPaymentLocalize', array(
48 'ajaxurl' => admin_url( 'admin-ajax.php' ),
49 'nonce' => wp_create_nonce( 'better_payment_block_nonce' ),
50 ));
51 }
52
53 /**
54 * All available scripts
55 *
56 * @return array
57 * @since 0.0.1
58 */
59 public function get_scripts()
60 {
61 return [
62 'better-payment-block-localize' => [
63 'src' => file_exists( BETTER_PAYMENT_PATH . '/assets/js/block-localize.min.js' )
64 ? BETTER_PAYMENT_ASSETS . '/js/block-localize.min.js'
65 : BETTER_PAYMENT_ASSETS . '/js/block-localize.js',
66 'version' => BETTER_PAYMENT_VERSION,
67 'deps' => array(),
68 ],
69 'better-payment-vendor-bundle' => [
70 'src' => BETTER_PAYMENT_ASSETS . '/blocks/vendors/js/bundles.min.js',
71 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/blocks/vendors/js/bundles.min.js') ? filemtime(BETTER_PAYMENT_PATH . '/assets/blocks/vendors/js/bundles.min.js') : BETTER_PAYMENT_VERSION,
72 'deps' => array(),
73 ],
74 'better-payment-babel-bundle' => [
75 'src' => BETTER_PAYMENT_ASSETS . '/blocks/vendors/js/bundle.babel.min.js',
76 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/blocks/vendors/js/bundle.babel.min.js') ? filemtime(BETTER_PAYMENT_PATH . '/assets/blocks/vendors/js/bundle.babel.min.js') : BETTER_PAYMENT_VERSION,
77 'deps' => array(),
78 ],
79 'better-payment-controls' => [
80 'src' => BETTER_PAYMENT_ASSETS . '/blocks/controls/modules.min.js',
81 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/blocks/controls/modules.min.js') ? filemtime(BETTER_PAYMENT_PATH . '/assets/blocks/controls/modules.min.js') : BETTER_PAYMENT_VERSION,
82 'deps' => array_merge(
83 $this->get_controls_dependencies(),
84 ['wp-polyfill', 'better-payment-block-localize','better-payment-vendor-bundle', 'better-payment-babel-bundle']),
85 ],
86 'better-payment-controls-frontend' => [
87 'src' => BETTER_PAYMENT_ASSETS . '/blocks/controls/frontend.min.js',
88 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/blocks/controls/frontend.min.js') ? filemtime(BETTER_PAYMENT_PATH . '/assets/blocks/controls/frontend.min.js') : BETTER_PAYMENT_VERSION,
89 'deps' => []
90 ],
91 'better-payment-common-script' => [
92 'src' => BETTER_PAYMENT_ASSETS . '/js/common.min.js',
93 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/js/common.min.js') ? filemtime(BETTER_PAYMENT_PATH . '/assets/js/common.min.js') : BETTER_PAYMENT_VERSION,
94 'deps' => ['jquery', 'wp-util']
95 ],
96 'better-payment-stripe' => [
97 'src' => 'https://js.stripe.com/v3/',
98 ],
99 'better-payment' => [
100 'src' => BETTER_PAYMENT_ASSETS . '/js/better-payment.min.js',
101 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/js/better-payment.min.js') ? filemtime(BETTER_PAYMENT_PATH . '/assets/js/better-payment.min.js') : BETTER_PAYMENT_VERSION,
102 'deps' => ['jquery', 'better-payment-stripe', 'toastr-js']
103 ],
104 'bp-dashboard-pagination' => [
105 'src' => file_exists( BETTER_PAYMENT_PATH . '/assets/js/bp-dashboard-pagination.min.js' )
106 ? BETTER_PAYMENT_ASSETS . '/js/bp-dashboard-pagination.min.js'
107 : BETTER_PAYMENT_ASSETS . '/js/bp-dashboard-pagination.js',
108 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/js/bp-dashboard-pagination.min.js') ? filemtime(BETTER_PAYMENT_PATH . '/assets/js/bp-dashboard-pagination.min.js') : BETTER_PAYMENT_VERSION,
109 'deps' => [],
110 ],
111 'toastr-js' => [
112 'src' => BETTER_PAYMENT_ASSETS . '/vendor/toastr/js/toastr.min.js',
113 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/vendor/toastr/js/toastr.min.js') ? filemtime(BETTER_PAYMENT_PATH . '/assets/vendor/toastr/js/toastr.min.js') : BETTER_PAYMENT_VERSION,
114 'deps' => ['jquery']
115 ],
116 'bp-admin-settings' => [
117 'src' => BETTER_PAYMENT_ASSETS . '/js/admin.min.js',
118 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/js/admin.min.js') ? filemtime(BETTER_PAYMENT_PATH . '/assets/js/admin.min.js') : BETTER_PAYMENT_VERSION,
119 'deps' => ['jquery']
120 ],
121 'toastr-js-admin' => [
122 'src' => BETTER_PAYMENT_ASSETS . '/vendor/toastr/js/toastr.min.js',
123 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/vendor/toastr/js/toastr.min.js') ? filemtime(BETTER_PAYMENT_PATH . '/assets/vendor/toastr/js/toastr.min.js') : BETTER_PAYMENT_VERSION,
124 'deps' => ['jquery']
125 ],
126 'sweetalert2-js' => [
127 'src' => BETTER_PAYMENT_ASSETS . '/vendor/sweetalert2/js/sweetalert2.min.js',
128 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/vendor/sweetalert2/js/sweetalert2.min.js') ? filemtime(BETTER_PAYMENT_PATH . '/assets/vendor/sweetalert2/js/sweetalert2.min.js') : BETTER_PAYMENT_VERSION,
129 'deps' => ['jquery']
130 ],
131 'better-payment-script' => [
132 'src' => BETTER_PAYMENT_ASSETS . '/js/frontend.min.js',
133 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/js/frontend.min.js') ? filemtime(BETTER_PAYMENT_PATH . '/assets/js/frontend.min.js') : BETTER_PAYMENT_VERSION,
134 'deps' => ['jquery']
135 ],
136 'fundraising-campaign-script' => [
137 'src' => BETTER_PAYMENT_ASSETS . '/js/fundraising-campaign.min.js',
138 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/js/fundraising-campaign.min.js') ? filemtime(BETTER_PAYMENT_PATH . '/assets/js/fundraising-campaign.min.js') : BETTER_PAYMENT_VERSION,
139 'deps' => ['jquery']
140 ],
141 ];
142 }
143
144 /**
145 * All available styles
146 *
147 * @return array
148 * @since 0.0.1
149 */
150 public function get_styles()
151 {
152 return [
153 'better-payment-common-style' => [
154 'src' => BETTER_PAYMENT_ASSETS . '/css/common.min.css',
155 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/css/common.min.css') ? filemtime(BETTER_PAYMENT_PATH . '/assets/css/common.min.css') : BETTER_PAYMENT_VERSION,
156 ],
157 'bp-dashboard-pagination-style' => [
158 'src' => file_exists( BETTER_PAYMENT_PATH . '/assets/css/bp-dashboard-pagination.min.css' )
159 ? BETTER_PAYMENT_ASSETS . '/css/bp-dashboard-pagination.min.css'
160 : BETTER_PAYMENT_ASSETS . '/css/bp-dashboard-pagination.css',
161 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/css/bp-dashboard-pagination.min.css') ? filemtime(BETTER_PAYMENT_PATH . '/assets/css/bp-dashboard-pagination.min.css') : BETTER_PAYMENT_VERSION,
162 ],
163 'better-payment-el' => [
164 'src' => BETTER_PAYMENT_ASSETS . '/css/better-payment-el.min.css',
165 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/css/better-payment-el.min.css') ? filemtime(BETTER_PAYMENT_PATH . '/assets/css/better-payment-el.min.css') : BETTER_PAYMENT_VERSION,
166 ],
167 'bp-icon-front' => [
168 'src' => BETTER_PAYMENT_ASSETS . '/icon/style.min.css',
169 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/icon/style.min.css') ? filemtime(BETTER_PAYMENT_PATH . '/assets/icon/style.min.css') : BETTER_PAYMENT_VERSION,
170 ],
171 'toastr-css' => [
172 'src' => BETTER_PAYMENT_ASSETS . '/vendor/toastr/css/toastr.min.css',
173 ],
174 'jquery-ui' => [
175 'src' => BETTER_PAYMENT_ASSETS . '/vendor/jquery-ui/css/jquery-ui.min.css',
176 ],
177 'bp-settings-style' => [
178 'src' => BETTER_PAYMENT_ASSETS . '/css/style.min.css',
179 ],
180 'bp-icon-admin' => [
181 'src' => BETTER_PAYMENT_ASSETS . '/icon/style.min.css',
182 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/icon/style.min.css') ? filemtime(BETTER_PAYMENT_PATH . '/assets/icon/style.min.css') : BETTER_PAYMENT_VERSION,
183 ],
184 'toastr-css-admin' => [
185 'src' => BETTER_PAYMENT_ASSETS . '/vendor/toastr/css/toastr.min.css',
186 ],
187 'sweetalert2-css' => [
188 'src' => BETTER_PAYMENT_ASSETS . '/vendor/sweetalert2/css/sweetalert2.min.css',
189 ],
190 'better-payment-style' => [
191 'src' => BETTER_PAYMENT_ASSETS . '/css/frontend.min.css',
192 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/css/frontend.min.css') ? filemtime(BETTER_PAYMENT_PATH . '/assets/css/frontend.min.css') : BETTER_PAYMENT_VERSION,
193 ],
194 'better-payment-admin-style' => [
195 'src' => BETTER_PAYMENT_ASSETS . '/css/admin.min.css',
196 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/css/admin.min.css') ? filemtime(BETTER_PAYMENT_PATH . '/assets/css/admin.min.css') : BETTER_PAYMENT_VERSION,
197 ],
198 'bp-font-awesome' => [
199 'src' => file_exists( BETTER_PAYMENT_PATH . '/assets/vendor/fontawesome/css/all.min.css' )
200 ? BETTER_PAYMENT_ASSETS . '/vendor/fontawesome/css/all.min.css'
201 : 'https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6/css/all.min.css',
202 'version' => file_exists( BETTER_PAYMENT_PATH . '/assets/vendor/fontawesome/css/all.min.css' )
203 ? filemtime( BETTER_PAYMENT_PATH . '/assets/vendor/fontawesome/css/all.min.css' )
204 : '6',
205 ],
206 'fundraising-campaign-style' => [
207 'src' => BETTER_PAYMENT_ASSETS . '/css/fundraising-campaign.min.css',
208 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/css/fundraising-campaign.min.css') ? filemtime(BETTER_PAYMENT_PATH . '/assets/css/fundraising-campaign.min.css') : BETTER_PAYMENT_VERSION,
209 ],
210 'better-payment-editor-style' => [
211 'src' => BETTER_PAYMENT_ASSETS . '/css/editor.min.css',
212 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/css/editor.min.css') ? filemtime(BETTER_PAYMENT_PATH . '/assets/css/editor.min.css') : BETTER_PAYMENT_VERSION,
213 'admin_enqueue' => true,
214 ],
215 'better-payment-controls-style' => [
216 'src' => BETTER_PAYMENT_ASSETS . '/blocks/controls/style.min.css',
217 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/blocks/controls/style.min.css') ? filemtime(BETTER_PAYMENT_PATH . '/assets/blocks/controls/style.min.css') : BETTER_PAYMENT_VERSION,
218 'admin_enqueue' => true,
219 ],
220 ];
221 }
222
223 /**
224 * Get controls dependencies from asset file
225 *
226 * @return array
227 * @since 0.0.1
228 */
229 private function get_controls_dependencies()
230 {
231 $asset_file = BETTER_PAYMENT_PATH . '/assets/blocks/controls/modules.min.asset.php';
232
233 if (file_exists($asset_file)) {
234 $asset = include $asset_file;
235 return isset($asset['dependencies']) ? $asset['dependencies'] : ['wp-blocks', 'wp-element', 'wp-components', 'wp-i18n', 'wp-block-editor', 'wp-data'];
236 }
237
238 return ['wp-blocks', 'wp-element', 'wp-components', 'wp-i18n', 'wp-block-editor', 'wp-data'];
239 }
240
241 /**
242 * Register scripts and styles
243 *
244 * @return void
245 * @since 0.0.1
246 */
247 public function register_assets()
248 {
249 if ( $this->registered ) {
250 return;
251 }
252 $this->registered = true;
253
254 $scripts = $this->get_scripts();
255 $styles = $this->get_styles();
256
257 foreach ($scripts as $handle => $script) {
258 $version = isset($script['version']) ? $script['version'] : false;
259 $deps = isset($script['deps']) ? $script['deps'] : false;
260
261 wp_register_script($handle, $script['src'], $deps, $version, true);
262 }
263
264 foreach ($styles as $handle => $style) {
265 $version = isset($style['version']) ? $style['version'] : false;
266 $deps = isset($style['deps']) ? $style['deps'] : false;
267 $admin_enqueue = isset($style['admin_enqueue']) ? $style['admin_enqueue'] : false;
268
269 wp_register_style($handle, $style['src'], $deps, $version);
270
271 if ($admin_enqueue && is_admin()) {
272 wp_enqueue_style($handle, $style['src'], $deps, $version);
273 }
274 }
275
276
277 wp_localize_script('better-payment', 'betterPayment', [
278 'ajax_url' => admin_url('admin-ajax.php'),
279 'nonce' => wp_create_nonce('better-payment'),
280 'confirm' => __('Are you sure?', 'better-payment'),
281 'error' => __('Something went wrong', 'better-payment'),
282 'custom_texts' => [
283 'redirecting' => __('Redirecting', 'better-payment'),
284 // 'field' => __('Field', 'better-payment'),
285 // 'required' => __('Required', 'better-payment'),
286 'field_is_required' => __('field is required', 'better-payment'),
287 'business_email_is_required' => __('Business Email is required', 'better-payment'),
288 'payment_amount_field_is_required' => __('Payment Amount field is required', 'better-payment'),
289 'minimum_amount_is_one' => __('Minimum amount is 1', 'better-payment'),
290 'something_went_wrong' => __('Something went wrong', 'better-payment'),
291 'paypal_payment_timeout' => __('Payment verification timed out. Please contact support if your payment was charged.', 'better-payment'),
292 ],
293 'currency_symbols' => $this->get_currency_symbols_list(),
294 ]);
295
296 wp_localize_script('bp-admin-settings', 'betterPaymentObj', array(
297 'nonce' => wp_create_nonce('better_payment_admin_nonce'),
298 'alerts' => [
299 'confirm' => __('Are you sure?', 'better-payment'),
300 'confirm_description' => __("You won't be able to revert this!", 'better-payment'),
301 'yes' => __('Yes, delete it!', 'better-payment'),
302 'no' => __('No, cancel!', 'better-payment'),
303 ],
304 'messages' => [
305 'success' => __('Changes saved successfully!', 'better-payment'),
306 'error' => __('Opps! something went wrong!', 'better-payment'),
307 'no_action_taken' => __('No action taken!', 'better-payment'),
308 ]
309 ));
310
311 if (is_admin() && function_exists('get_current_screen')) {
312 $screen = get_current_screen();
313 $hook = $screen && isset($screen->id) ? $screen->id : null;
314 if ($hook && $hook == 'elementor_page_elementor-element-manager') {
315 wp_enqueue_style('bp-icon-admin', BETTER_PAYMENT_ASSETS . '/icon/style.min.css', array(), BETTER_PAYMENT_VERSION);
316 }
317 }
318 }
319 }
320