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
← All changes | includes/Assets.php +187 -70 1.0.4 → 2.4.1 View file →
@@ -1,8 +1,10 @@
1 1 <?php
2 2
3 3 namespace Better_Payment\Lite;
4 4
5 +use Better_Payment\Lite\Traits\Helper as TraitsHelper;
6 +
5 7 /**
6 8 * Exit if accessed directly
7 9 */
8 10 if (!defined('ABSPATH')) {
@@ -10,23 +12,45 @@
10 12 }
11 13
12 14 /**
13 15 * Assets handler class
14 - *
16 + *
15 17 * @since 0.0.1
16 18 */
17 -class Assets extends Controller {
19 +class Assets extends Controller
20 +{
21 + use TraitsHelper;
18 22
19 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 + /**
20 31 * Class constructor
21 - *
32 + *
22 33 * @since 0.0.1
23 34 */
24 - public function __construct() {
25 - add_action( 'wp_enqueue_scripts', [ $this, 'register_assets' ] );
26 - add_action( 'admin_enqueue_scripts', [ $this, 'register_assets' ] );
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']);
27 42 }
28 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 +
29 53 /**
30 54 * All available scripts
31 55 *
32 56 * @return array
@@ -31,14 +55,44 @@
31 55 *
32 56 * @return array
33 57 * @since 0.0.1
34 58 */
35 - public function get_scripts() {
59 + public function get_scripts()
60 + {
36 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 + ],
37 91 'better-payment-common-script' => [
38 92 'src' => BETTER_PAYMENT_ASSETS . '/js/common.min.js',
39 - 'version' => filemtime( BETTER_PAYMENT_PATH . '/assets/js/common.min.js' ),
40 - 'deps' => [ 'jquery', 'wp-util' ]
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'],
41 95 ],
42 96 'better-payment-stripe' => [
43 97 'src' => 'https://js.stripe.com/v3/',
44 98 ],
@@ -43,36 +97,38 @@
43 97 'src' => 'https://js.stripe.com/v3/',
44 98 ],
45 99 'better-payment' => [
46 100 'src' => BETTER_PAYMENT_ASSETS . '/js/better-payment.min.js',
47 - 'version' => filemtime( BETTER_PAYMENT_PATH . '/assets/js/better-payment.min.js' ),
48 - 'deps' => [ 'jquery', 'better-payment-stripe', 'toastr-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'],
49 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 + ],
50 111 'toastr-js' => [
51 112 'src' => BETTER_PAYMENT_ASSETS . '/vendor/toastr/js/toastr.min.js',
52 - 'version' => filemtime( BETTER_PAYMENT_PATH . '/assets/vendor/toastr/js/toastr.min.js' ),
53 - 'deps' => [ 'jquery' ]
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']
54 115 ],
55 116 'bp-admin-settings' => [
56 117 'src' => BETTER_PAYMENT_ASSETS . '/js/admin.min.js',
57 - 'version' => filemtime( BETTER_PAYMENT_PATH . '/assets/js/admin.min.js' ),
58 - 'deps' => [ 'jquery' ]
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']
59 120 ],
60 - 'toastr-js-admin' => [
61 - 'src' => BETTER_PAYMENT_ASSETS . '/vendor/toastr/js/toastr.min.js',
62 - 'version' => filemtime( BETTER_PAYMENT_PATH . '/assets/vendor/toastr/js/toastr.min.js' ),
63 - 'deps' => [ 'jquery' ]
64 - ],
65 - 'sweetalert2-js' => [
66 - 'src' => BETTER_PAYMENT_ASSETS . '/vendor/sweetalert2/js/sweetalert2.min.js',
67 - 'version' => filemtime( BETTER_PAYMENT_PATH . '/assets/vendor/sweetalert2/js/sweetalert2.min.js' ),
68 - 'deps' => [ 'jquery' ]
69 - ],
70 121 'better-payment-script' => [
71 122 'src' => BETTER_PAYMENT_ASSETS . '/js/frontend.min.js',
72 - 'version' => filemtime( BETTER_PAYMENT_PATH . '/assets/js/frontend.min.js' ),
73 - 'deps' => [ 'jquery' ]
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']
74 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 + ],
75 131 ];
76 132 }
77 133
78 134 /**
@@ -80,20 +136,28 @@
80 136 *
81 137 * @return array
82 138 * @since 0.0.1
83 139 */
84 - public function get_styles() {
140 + public function get_styles()
141 + {
85 142 return [
86 143 'better-payment-common-style' => [
87 144 'src' => BETTER_PAYMENT_ASSETS . '/css/common.min.css',
88 - 'version' => filemtime( BETTER_PAYMENT_PATH . '/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,
89 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 + ],
90 153 'better-payment-el' => [
91 154 'src' => BETTER_PAYMENT_ASSETS . '/css/better-payment-el.min.css',
92 - 'version' => filemtime( BETTER_PAYMENT_PATH . '/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,
93 156 ],
94 157 'bp-icon-front' => [
95 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,
96 160 ],
97 161 'toastr-css' => [
98 162 'src' => BETTER_PAYMENT_ASSETS . '/vendor/toastr/css/toastr.min.css',
99 163 ],
@@ -99,74 +163,127 @@
99 163 ],
100 164 'jquery-ui' => [
101 165 'src' => BETTER_PAYMENT_ASSETS . '/vendor/jquery-ui/css/jquery-ui.min.css',
102 166 ],
103 - 'bp-settings-style' => [
104 - 'src' => BETTER_PAYMENT_ASSETS . '/css/style.min.css',
105 - ],
106 167 'bp-icon-admin' => [
107 168 'src' => BETTER_PAYMENT_ASSETS . '/icon/style.min.css',
108 - ],
109 - 'toastr-css-admin' => [
110 - 'src' => BETTER_PAYMENT_ASSETS . '/vendor/toastr/css/toastr.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,
111 170 ],
112 - 'sweetalert2-css' => [
113 - 'src' => BETTER_PAYMENT_ASSETS . '/vendor/sweetalert2/css/sweetalert2.min.css',
114 - ],
115 171 'better-payment-style' => [
116 172 'src' => BETTER_PAYMENT_ASSETS . '/css/frontend.min.css',
117 - 'version' => filemtime( BETTER_PAYMENT_PATH . '/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,
118 174 ],
119 175 'better-payment-admin-style' => [
120 176 'src' => BETTER_PAYMENT_ASSETS . '/css/admin.min.css',
121 - 'version' => filemtime( BETTER_PAYMENT_PATH . '/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,
122 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 + ],
123 205 ];
124 206 }
125 207
126 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 + /**
127 227 * Register scripts and styles
128 228 *
129 229 * @return void
130 230 * @since 0.0.1
131 231 */
132 - public function register_assets() {
232 + public function register_assets()
233 + {
234 + if ( $this->registered ) {
235 + return;
236 + }
237 + $this->registered = true;
238 +
133 239 $scripts = $this->get_scripts();
134 240 $styles = $this->get_styles();
135 241
136 - foreach ( $scripts as $handle => $script ) {
137 - $version = isset( $script['version'] ) ? $script['version'] : false;
138 - $deps = isset( $script['deps'] ) ? $script['deps'] : false;
242 + foreach ($scripts as $handle => $script) {
243 + $version = isset($script['version']) ? $script['version'] : false;
244 + $deps = isset($script['deps']) ? $script['deps'] : false;
139 245
140 - wp_register_script( $handle, $script['src'], $deps, $version, true );
246 + wp_register_script($handle, $script['src'], $deps, $version, true);
141 247 }
142 248
143 - foreach ( $styles as $handle => $style ) {
144 - $version = isset( $style['version'] ) ? $style['version'] : false;
145 - $deps = isset( $style['deps'] ) ? $style['deps'] : false;
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;
146 253
147 - wp_register_style( $handle, $style['src'], $deps, $version );
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 + }
148 259 }
149 260
150 - wp_localize_script( 'better-payment', 'betterPayment', [
151 - 'ajax_url' => admin_url( 'admin-ajax.php' ),
152 - 'nonce' => wp_create_nonce( 'better-payment' ),
153 - 'confirm' => __( 'Are you sure?', 'better-payment' ),
154 - 'error' => __( 'Something went wrong', 'better-payment' ),
155 - ] );
156 261
157 - wp_localize_script('bp-admin-settings', 'betterPaymentObj', array(
158 - 'nonce' => wp_create_nonce('better_payment_admin_nonce'),
159 - 'alerts' => [
160 - 'confirm' => __('Are you sure?', 'better-payment'),
161 - 'confirm_description' => __("You won't be able to revert this!", 'better-payment'),
162 - 'yes' => __('Yes, delete it!', 'better-payment'),
163 - 'no' => __('No, cancel!', 'better-payment'),
164 - ],
165 - 'messages' => [
166 - 'success' => __('Changes saved successfully!', 'better-payment'),
167 - 'error' => __('Opps! something went wrong!', 'better-payment'),
168 - 'no_action_taken' => __('No action taken!', 'better-payment'),
169 - ]
170 - ));
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 + }
171 288 }
172 289 }