PluginProbe
Better Payment – Instant Payments, Donations, Fundraising with Subscriptions & More / 2.4.1
Better Payment – Instant Payments, Donations, Fundraising with Subscriptions & More v2.4.1
2.4.1 2.4.0 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 All 68 releases
better-payment / includes / Assets.php

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

290 lines 14.7 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 'better-payment-script' => [
122 'src' => BETTER_PAYMENT_ASSETS . '/js/frontend.min.js',
123 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/js/frontend.min.js') ? filemtime(BETTER_PAYMENT_PATH . '/assets/js/frontend.min.js') : BETTER_PAYMENT_VERSION,
124 'deps' => ['jquery']
125 ],
126 'fundraising-campaign-script' => [
127 'src' => BETTER_PAYMENT_ASSETS . '/js/fundraising-campaign.min.js',
128 '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,
129 'deps' => ['jquery']
130 ],
131 ];
132 }
133
134 /**
135 * All available styles
136 *
137 * @return array
138 * @since 0.0.1
139 */
140 public function get_styles()
141 {
142 return [
143 'better-payment-common-style' => [
144 'src' => BETTER_PAYMENT_ASSETS . '/css/common.min.css',
145 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/css/common.min.css') ? filemtime(BETTER_PAYMENT_PATH . '/assets/css/common.min.css') : BETTER_PAYMENT_VERSION,
146 ],
147 'bp-dashboard-pagination-style' => [
148 'src' => file_exists( BETTER_PAYMENT_PATH . '/assets/css/bp-dashboard-pagination.min.css' )
149 ? BETTER_PAYMENT_ASSETS . '/css/bp-dashboard-pagination.min.css'
150 : BETTER_PAYMENT_ASSETS . '/css/bp-dashboard-pagination.css',
151 '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,
152 ],
153 'better-payment-el' => [
154 'src' => BETTER_PAYMENT_ASSETS . '/css/better-payment-el.min.css',
155 '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,
156 ],
157 'bp-icon-front' => [
158 'src' => BETTER_PAYMENT_ASSETS . '/icon/style.min.css',
159 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/icon/style.min.css') ? filemtime(BETTER_PAYMENT_PATH . '/assets/icon/style.min.css') : BETTER_PAYMENT_VERSION,
160 ],
161 'toastr-css' => [
162 'src' => BETTER_PAYMENT_ASSETS . '/vendor/toastr/css/toastr.min.css',
163 ],
164 'jquery-ui' => [
165 'src' => BETTER_PAYMENT_ASSETS . '/vendor/jquery-ui/css/jquery-ui.min.css',
166 ],
167 'bp-icon-admin' => [
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 'better-payment-style' => [
172 'src' => BETTER_PAYMENT_ASSETS . '/css/frontend.min.css',
173 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/css/frontend.min.css') ? filemtime(BETTER_PAYMENT_PATH . '/assets/css/frontend.min.css') : BETTER_PAYMENT_VERSION,
174 ],
175 'better-payment-admin-style' => [
176 'src' => BETTER_PAYMENT_ASSETS . '/css/admin.min.css',
177 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/css/admin.min.css') ? filemtime(BETTER_PAYMENT_PATH . '/assets/css/admin.min.css') : BETTER_PAYMENT_VERSION,
178 ],
179 'bp-font-awesome' => [
180 'src' => file_exists( BETTER_PAYMENT_PATH . '/assets/vendor/fontawesome/css/all.min.css' )
181 ? BETTER_PAYMENT_ASSETS . '/vendor/fontawesome/css/all.min.css'
182 : 'https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6/css/all.min.css',
183 'version' => file_exists( BETTER_PAYMENT_PATH . '/assets/vendor/fontawesome/css/all.min.css' )
184 ? filemtime( BETTER_PAYMENT_PATH . '/assets/vendor/fontawesome/css/all.min.css' )
185 : '6',
186 ],
187 'better-payment-wc-subscriptions' => [
188 'src' => BETTER_PAYMENT_ASSETS . '/css/woocommerce-subscriptions.css',
189 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/css/woocommerce-subscriptions.css') ? filemtime(BETTER_PAYMENT_PATH . '/assets/css/woocommerce-subscriptions.css') : BETTER_PAYMENT_VERSION,
190 ],
191 'fundraising-campaign-style' => [
192 'src' => BETTER_PAYMENT_ASSETS . '/css/fundraising-campaign.min.css',
193 '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,
194 ],
195 'better-payment-editor-style' => [
196 'src' => BETTER_PAYMENT_ASSETS . '/css/editor.min.css',
197 'version' => file_exists(BETTER_PAYMENT_PATH . '/assets/css/editor.min.css') ? filemtime(BETTER_PAYMENT_PATH . '/assets/css/editor.min.css') : BETTER_PAYMENT_VERSION,
198 'admin_enqueue' => true,
199 ],
200 'better-payment-controls-style' => [
201 'src' => BETTER_PAYMENT_ASSETS . '/blocks/controls/style.min.css',
202 '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,
203 'admin_enqueue' => true,
204 ],
205 ];
206 }
207
208 /**
209 * Get controls dependencies from asset file
210 *
211 * @return array
212 * @since 0.0.1
213 */
214 private function get_controls_dependencies()
215 {
216 $asset_file = BETTER_PAYMENT_PATH . '/assets/blocks/controls/modules.min.asset.php';
217
218 if (file_exists($asset_file)) {
219 $asset = include $asset_file;
220 return isset($asset['dependencies']) ? $asset['dependencies'] : ['wp-blocks', 'wp-element', 'wp-components', 'wp-i18n', 'wp-block-editor', 'wp-data'];
221 }
222
223 return ['wp-blocks', 'wp-element', 'wp-components', 'wp-i18n', 'wp-block-editor', 'wp-data'];
224 }
225
226 /**
227 * Register scripts and styles
228 *
229 * @return void
230 * @since 0.0.1
231 */
232 public function register_assets()
233 {
234 if ( $this->registered ) {
235 return;
236 }
237 $this->registered = true;
238
239 $scripts = $this->get_scripts();
240 $styles = $this->get_styles();
241
242 foreach ($scripts as $handle => $script) {
243 $version = isset($script['version']) ? $script['version'] : false;
244 $deps = isset($script['deps']) ? $script['deps'] : false;
245
246 wp_register_script($handle, $script['src'], $deps, $version, true);
247 }
248
249 foreach ($styles as $handle => $style) {
250 $version = isset($style['version']) ? $style['version'] : false;
251 $deps = isset($style['deps']) ? $style['deps'] : false;
252 $admin_enqueue = isset($style['admin_enqueue']) ? $style['admin_enqueue'] : false;
253
254 wp_register_style($handle, $style['src'], $deps, $version);
255
256 if ($admin_enqueue && is_admin()) {
257 wp_enqueue_style($handle, $style['src'], $deps, $version);
258 }
259 }
260
261
262 wp_localize_script('better-payment', 'betterPayment', [
263 'ajax_url' => admin_url('admin-ajax.php'),
264 'nonce' => wp_create_nonce('better-payment'),
265 'confirm' => __('Are you sure?', 'better-payment'),
266 'error' => __('Something went wrong', 'better-payment'),
267 'custom_texts' => [
268 'redirecting' => __('Redirecting', 'better-payment'),
269 // 'field' => __('Field', 'better-payment'),
270 // 'required' => __('Required', 'better-payment'),
271 'field_is_required' => __('field is required', 'better-payment'),
272 'business_email_is_required' => __('Business Email is required', 'better-payment'),
273 'payment_amount_field_is_required' => __('Payment Amount field is required', 'better-payment'),
274 'minimum_amount_is_one' => __('Minimum amount is 1', 'better-payment'),
275 'something_went_wrong' => __('Something went wrong', 'better-payment'),
276 'paypal_payment_timeout' => __('Payment verification timed out. Please contact support if your payment was charged.', 'better-payment'),
277 ],
278 'currency_symbols' => $this->get_currency_symbols_list(),
279 ]);
280
281 if (is_admin() && function_exists('get_current_screen')) {
282 $screen = get_current_screen();
283 $hook = $screen && isset($screen->id) ? $screen->id : null;
284 if ($hook && $hook == 'elementor_page_elementor-element-manager') {
285 wp_enqueue_style('bp-icon-admin', BETTER_PAYMENT_ASSETS . '/icon/style.min.css', array(), BETTER_PAYMENT_VERSION);
286 }
287 }
288 }
289 }
290