PluginProbe
Better Payment – Instant Payments, Donations, Fundraising with Subscriptions & More / trunk
Better Payment – Instant Payments, Donations, Fundraising with Subscriptions & More vtrunk
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 1.0.7 All 65 releases
better-payment / includes / Assets.php

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

324 lines 16.6 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 'better-payment-wc-subscriptions' => [
207 'src' => BETTER_PAYMENT_ASSETS . '/css/woocommerce-subscriptions.css',
208 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/css/woocommerce-subscriptions.css') ? filemtime(BETTER_PAYMENT_PATH . '/assets/css/woocommerce-subscriptions.css') : BETTER_PAYMENT_VERSION,
209 ],
210 'fundraising-campaign-style' => [
211 'src' => BETTER_PAYMENT_ASSETS . '/css/fundraising-campaign.min.css',
212 '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,
213 ],
214 'better-payment-editor-style' => [
215 'src' => BETTER_PAYMENT_ASSETS . '/css/editor.min.css',
216 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/css/editor.min.css') ? filemtime(BETTER_PAYMENT_PATH . '/assets/css/editor.min.css') : BETTER_PAYMENT_VERSION,
217 'admin_enqueue' => true,
218 ],
219 'better-payment-controls-style' => [
220 'src' => BETTER_PAYMENT_ASSETS . '/blocks/controls/style.min.css',
221 '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,
222 'admin_enqueue' => true,
223 ],
224 ];
225 }
226
227 /**
228 * Get controls dependencies from asset file
229 *
230 * @return array
231 * @since 0.0.1
232 */
233 private function get_controls_dependencies()
234 {
235 $asset_file = BETTER_PAYMENT_PATH . '/assets/blocks/controls/modules.min.asset.php';
236
237 if (file_exists($asset_file)) {
238 $asset = include $asset_file;
239 return isset($asset['dependencies']) ? $asset['dependencies'] : ['wp-blocks', 'wp-element', 'wp-components', 'wp-i18n', 'wp-block-editor', 'wp-data'];
240 }
241
242 return ['wp-blocks', 'wp-element', 'wp-components', 'wp-i18n', 'wp-block-editor', 'wp-data'];
243 }
244
245 /**
246 * Register scripts and styles
247 *
248 * @return void
249 * @since 0.0.1
250 */
251 public function register_assets()
252 {
253 if ( $this->registered ) {
254 return;
255 }
256 $this->registered = true;
257
258 $scripts = $this->get_scripts();
259 $styles = $this->get_styles();
260
261 foreach ($scripts as $handle => $script) {
262 $version = isset($script['version']) ? $script['version'] : false;
263 $deps = isset($script['deps']) ? $script['deps'] : false;
264
265 wp_register_script($handle, $script['src'], $deps, $version, true);
266 }
267
268 foreach ($styles as $handle => $style) {
269 $version = isset($style['version']) ? $style['version'] : false;
270 $deps = isset($style['deps']) ? $style['deps'] : false;
271 $admin_enqueue = isset($style['admin_enqueue']) ? $style['admin_enqueue'] : false;
272
273 wp_register_style($handle, $style['src'], $deps, $version);
274
275 if ($admin_enqueue && is_admin()) {
276 wp_enqueue_style($handle, $style['src'], $deps, $version);
277 }
278 }
279
280
281 wp_localize_script('better-payment', 'betterPayment', [
282 'ajax_url' => admin_url('admin-ajax.php'),
283 'nonce' => wp_create_nonce('better-payment'),
284 'confirm' => __('Are you sure?', 'better-payment'),
285 'error' => __('Something went wrong', 'better-payment'),
286 'custom_texts' => [
287 'redirecting' => __('Redirecting', 'better-payment'),
288 // 'field' => __('Field', 'better-payment'),
289 // 'required' => __('Required', 'better-payment'),
290 'field_is_required' => __('field is required', 'better-payment'),
291 'business_email_is_required' => __('Business Email is required', 'better-payment'),
292 'payment_amount_field_is_required' => __('Payment Amount field is required', 'better-payment'),
293 'minimum_amount_is_one' => __('Minimum amount is 1', 'better-payment'),
294 'something_went_wrong' => __('Something went wrong', 'better-payment'),
295 'paypal_payment_timeout' => __('Payment verification timed out. Please contact support if your payment was charged.', 'better-payment'),
296 ],
297 'currency_symbols' => $this->get_currency_symbols_list(),
298 ]);
299
300 wp_localize_script('bp-admin-settings', 'betterPaymentObj', array(
301 'nonce' => wp_create_nonce('better_payment_admin_nonce'),
302 'alerts' => [
303 'confirm' => __('Are you sure?', 'better-payment'),
304 'confirm_description' => __("You won't be able to revert this!", 'better-payment'),
305 'yes' => __('Yes, delete it!', 'better-payment'),
306 'no' => __('No, cancel!', 'better-payment'),
307 ],
308 'messages' => [
309 'success' => __('Changes saved successfully!', 'better-payment'),
310 'error' => __('Opps! something went wrong!', 'better-payment'),
311 'no_action_taken' => __('No action taken!', 'better-payment'),
312 ]
313 ));
314
315 if (is_admin() && function_exists('get_current_screen')) {
316 $screen = get_current_screen();
317 $hook = $screen && isset($screen->id) ? $screen->id : null;
318 if ($hook && $hook == 'elementor_page_elementor-element-manager') {
319 wp_enqueue_style('bp-icon-admin', BETTER_PAYMENT_ASSETS . '/icon/style.min.css', array(), BETTER_PAYMENT_VERSION);
320 }
321 }
322 }
323 }
324