PluginProbe ʕ •ᴥ•ʔ
ShopPress – Shop Builder for Elementor and WooCommerce / trunk
ShopPress – Shop Builder for Elementor and WooCommerce vtrunk
shop-press / Assets.php
shop-press Last commit date
Admin 1 week ago Elementor 1 week ago Modules 1 week ago Templates 1 week ago blocks 1 week ago build 1 week ago includes 1 week ago languages 1 week ago public 1 week ago vendor 1 week ago Assets.php 1 year ago Plugin.php 1 week ago Settings.php 2 years ago changelog.txt 1 week ago readme.txt 1 week ago shop-press.php 1 week ago
Assets.php
253 lines
1 <?php
2 /**
3 * Plugin Assets.
4 *
5 * @package ShopPress
6 */
7
8 namespace ShopPress;
9
10 defined( 'ABSPATH' ) || exit;
11
12 class Assets {
13 /**
14 * Init.
15 *
16 * @since 1.2.0
17 */
18 public static function init() {
19 self::hooks();
20 }
21
22 /**
23 * Init hooks.
24 *
25 * @since 1.2.0
26 */
27 private static function hooks() {
28 add_action( 'shoppress_quick_view_before_content', array( __CLASS__, 'register_scripts' ), 0 );
29 add_action( 'wp_enqueue_scripts', array( __CLASS__, 'register_scripts' ), 0 );
30 add_action( 'elementor/editor/before_enqueue_scripts', array( __CLASS__, 'register_scripts' ), 0 );
31 add_action( 'admin_enqueue_scripts', array( __CLASS__, 'admin_register_scripts' ), 0 );
32 }
33
34 /**
35 * Returns an array of scripts with their URLs.
36 *
37 * @since 1.2.0
38 *
39 * @return array
40 */
41 public static function get_scripts_list() {
42 $sp_deps = array( 'jquery', 'sp-frontend' );
43
44 $scripts = array(
45 'sp-frontend' => array(
46 'src' => SHOPPRESS_URL . 'public/dist/js/frontend.min.js',
47 'deps' => array( 'jquery' ),
48 ),
49 'sp-cart-totals' => SHOPPRESS_URL . 'public/widgets/cart-totals/cart-totals.js',
50 'sp-wishlist' => SHOPPRESS_URL . 'public/modules/wishlist/wishlist.js',
51 'sp-products-loop' => SHOPPRESS_URL . 'public/widgets/products/products.js',
52 'sp-recent-products' => SHOPPRESS_URL . 'public/widgets/recent-products/recent-products.js',
53 'sp-nicescroll-script' => SHOPPRESS_URL . 'public/lib/nicescroll/jquery.nicescroll.js',
54 'sp-ajax-search' => SHOPPRESS_URL . 'public/widgets/ajax-search/ajax-search.js',
55 'sp-size-chart' => SHOPPRESS_URL . 'public/widgets/size-chart/size-chart.js',
56 'sp-suggest-price' => SHOPPRESS_URL . 'public/widgets/suggest-price/suggest-price.js',
57 'sp-multi-step-checkout' => SHOPPRESS_URL . 'public/modules/checkout/multistep/multistep.js',
58 'sp-shopify-checkout' => SHOPPRESS_URL . 'public/modules/checkout/shopify/shopify.js',
59 'sp-flash-sale-countdown' => SHOPPRESS_URL . 'public/modules/flash-sale-countdown/flash-sale-countdown.js',
60 'sp-variation-swatches' => array(
61 'src' => SHOPPRESS_URL . 'public/modules/variation-swatches/front/js/sp-variation-swatches.js',
62 'deps' => array( 'jquery', 'wc-add-to-cart-variation' ),
63 ),
64 'sp-menu-cart' => array(
65 'src' => SHOPPRESS_URL . 'public/modules/menu-cart/menu-cart.js',
66 'deps' => $sp_deps,
67 ),
68 'sp-quickview' => array(
69 'src' => SHOPPRESS_URL . 'public/modules/quick-view/static-quick-view.js',
70 'deps' => $sp_deps,
71 ),
72 'sp-compare' => array(
73 'src' => SHOPPRESS_URL . 'public/modules/compare/compare.js',
74 'deps' => $sp_deps,
75 ),
76 'sp-my-account-notifications' => array(
77 'src' => SHOPPRESS_URL . 'public/modules/notifications/notifications.js',
78 'deps' => $sp_deps,
79 ),
80 'sp-product-filters' => array(
81 'src' => SHOPPRESS_URL . 'public/widgets/product-filters/product-filters.js',
82 'deps' => $sp_deps,
83 ),
84 'sp-single-ajax-add-to-cart' => array(
85 'src' => SHOPPRESS_URL . 'public/modules/single-ajax-add-to-cart/single-ajax-add-to-cart.js',
86 'deps' => $sp_deps,
87 ),
88 'sp-header-toggle' => SHOPPRESS_URL . 'public/widgets/header-toggle/header-toggle.js',
89 'slick' => array(
90 'src' => SHOPPRESS_URL . 'public/lib/slick/slick.min.js',
91 'deps' => $sp_deps,
92 ),
93 );
94
95 return apply_filters( 'shoppress/register_scripts', $scripts );
96 }
97
98 /**
99 * Returns an array of styles with their URLs.
100 *
101 * @since 1.2.0
102 *
103 * @return array
104 */
105 public static function get_styles_list() {
106 $styles = array(
107 'sp-frontend' => SHOPPRESS_URL . 'public/dist/css/frontend.min.css',
108 'sp-frontend-rtl' => SHOPPRESS_URL . 'public/dist/css/frontend.min-rtl.css',
109 'sp-compare' => SHOPPRESS_URL . 'public/dist/css/compare.css',
110 'sp-compare-rtl' => SHOPPRESS_URL . 'public/dist/css/compare-rtl.css',
111 'sp-products-loop' => SHOPPRESS_URL . 'public/dist/css/products-loop.css',
112 'sp-products-loop-rtl' => SHOPPRESS_URL . 'public/dist/css/products-loop-rtl.css',
113 'sp-ajax-search' => SHOPPRESS_URL . 'public/dist/css/widgets/ajax-search.css',
114 'sp-ajax-search-rtl' => SHOPPRESS_URL . 'public/dist/css/widgets/ajax-search-rtl.css',
115 'sp-size-chart' => SHOPPRESS_URL . 'public/dist/css/size-chart.css',
116 'sp-pr-general' => SHOPPRESS_URL . 'public/dist/css/pr-general.css',
117 'sp-pr-general-rtl' => SHOPPRESS_URL . 'public/dist/css/pr-general-rtl.css',
118 'sp-my-wishlist' => SHOPPRESS_URL . 'public/dist/css/my-wishlist.css',
119 'sp-my-wishlist-rtl' => SHOPPRESS_URL . 'public/dist/css/my-wishlist-rtl.css',
120 'sp-quickview' => SHOPPRESS_URL . 'public/dist/css/quick-view.css',
121 'sp-quickview-rtl' => SHOPPRESS_URL . 'public/dist/css/quick-view-rtl.css',
122 'sp-shop' => SHOPPRESS_URL . 'public/dist/css/shop.css',
123 'sp-variation-swatches' => SHOPPRESS_URL . 'public/modules/variation-swatches/front/css/sp-variation-swatches.css',
124 'sp-variation-swatches-rtl' => SHOPPRESS_URL . 'public/modules/variation-swatches/front/css/sp-variation-swatches-rtl.css',
125 'sp-cart' => SHOPPRESS_URL . 'public/dist/css/cart.css',
126 'sp-cart-rtl' => SHOPPRESS_URL . 'public/dist/css/cart-rtl.css',
127 'sp-mini-cart' => SHOPPRESS_URL . 'public/dist/css/mini-cart.css',
128 'sp-mini-cart-rtl' => SHOPPRESS_URL . 'public/dist/css/mini-cart-rtl.css',
129 'sp-my-account' => SHOPPRESS_URL . 'public/dist/css/my-account.css',
130 'sp-checkout' => SHOPPRESS_URL . 'public/dist/css/checkout.css',
131 'sp-checkout-rtl' => SHOPPRESS_URL . 'public/dist/css/checkout-rtl.css',
132 'sp-multi-step-checkout' => SHOPPRESS_URL . 'public/dist/css/multi-step-checkout.css',
133 'sp-multi-step-checkout-rtl' => SHOPPRESS_URL . 'public/dist/css/multi-step-checkout-rtl.css',
134 'sp-shopify-checkout' => SHOPPRESS_URL . 'public/dist/css/shopify-checkout.css',
135 'sp-shopify-checkout-rtl' => SHOPPRESS_URL . 'public/dist/css/shopify-checkout-rtl.css',
136 'sp-single' => SHOPPRESS_URL . 'public/dist/css/single.css',
137 'sp-single-rtl' => SHOPPRESS_URL . 'public/dist/css/single-rtl.css',
138 'sp-menu-wishlist' => SHOPPRESS_URL . 'public/dist/css/menu-wishlist.css',
139 'sp-menu-wishlist-rtl' => SHOPPRESS_URL . 'public/dist/css/menu-wishlist-rtl.css',
140 'sp-astra-checkout' => SHOPPRESS_URL . 'public/lib/compatibility/astra/checkout.css',
141 'sp-astra-cart' => SHOPPRESS_URL . 'public/lib/compatibility/astra/cart.css',
142 'sp-astra-single' => SHOPPRESS_URL . 'public/lib/compatibility/astra/single.css',
143 'sp-astra-my-account' => SHOPPRESS_URL . 'public/lib/compatibility/astra/my-account.css',
144 'sp-flash-sale-countdown' => SHOPPRESS_URL . 'public/dist/css/flash-sale-countdown.css',
145 'sp-flash-sale-countdown-rtl' => SHOPPRESS_URL . 'public/dist/css/flash-sale-countdown-rtl.css',
146 'sp-mobile-panel' => SHOPPRESS_URL . 'public/modules/mobile-panel/mobile-panel.css',
147 'sp-my-account-notifications' => SHOPPRESS_URL . 'public/dist/css/notifications.css',
148 'sp-my-account-notifications-rtl' => SHOPPRESS_URL . 'public/dist/css/notifications-rtl.css',
149 'sp-sticky-add-to-cart' => SHOPPRESS_URL . 'public/dist/css/sticky-add-to-cart.css',
150 'sp-sticky-add-to-cart-rtl' => SHOPPRESS_URL . 'public/dist/css/sticky-add-to-cart-rtl.css',
151 'sp-product-filters' => SHOPPRESS_URL . 'public/dist/css/widgets/filters.css',
152 'sp-product-filters-rtl' => SHOPPRESS_URL . 'public/dist/css/widgets/filters-rtl.css',
153 'sp-header-toggle' => SHOPPRESS_URL . 'public/widgets/header-toggle/header-toggle.css',
154 'sp-header-toggle-rtl' => SHOPPRESS_URL . 'public/widgets/header-toggle/header-toggle-rtl.css',
155 'sp-categories-grid' => SHOPPRESS_URL . 'public/widgets/categories-grid/categories-grid.css',
156 'sp-brands' => SHOPPRESS_URL . 'public/dist/css/brands.css',
157 'sp-brands-rtl' => SHOPPRESS_URL . 'public/dist/css/brands-rtl.css',
158 'slick' => SHOPPRESS_URL . 'public/lib/slick/slick.css',
159
160 );
161
162 return apply_filters( 'shoppress/register_styles', $styles );
163 }
164
165 /**
166 * Register Scripts
167 *
168 * @since 1.2.0
169 */
170 public static function register_scripts() {
171 $scripts = self::get_scripts_list();
172 $styles = self::get_styles_list();
173
174 foreach ( $scripts as $handle => $script ) {
175 $src = $script['src'] ?? $script;
176 $deps = $script['deps'] ?? array( 'jquery' );
177
178 wp_register_script( $handle, $src, $deps, SHOPPRESS_VERSION, true );
179 }
180
181 foreach ( $styles as $handle => $style ) {
182 $src = $style['src'] ?? $style;
183 $deps = $style['deps'] ?? array();
184
185 wp_register_style( $handle, $src, $deps, SHOPPRESS_VERSION );
186 }
187 }
188
189 /**
190 * Returns an array of admin scripts with their URLs.
191 *
192 * @since 1.2.0
193 *
194 * @return array
195 */
196 private static function get_admin_scripts_list() {
197 $scripts = array(
198 'sp-backend' => SHOPPRESS_URL . 'public/admin/backend.js',
199 'sp-admin-announcement' => SHOPPRESS_URL . 'public/dist/admin/announcement.js',
200 'sp-admin-message' => SHOPPRESS_URL . 'public/dist/admin/message.js',
201 'sp-backorder-admin' => SHOPPRESS_URL . 'public/modules/backorder/backorder-admin.js',
202 'select2' => SHOPPRESS_URL . 'public/lib/select2/select2.min.js',
203 );
204
205 return apply_filters( 'shoppress/register_admin_scripts', $scripts );
206 }
207
208 /**
209 * Returns an array of admin styles with their URLs.
210 *
211 * @since 1.2.0
212 *
213 * @return array
214 */
215 private static function get_admin_styles_list() {
216 $styles = array(
217 'sp-backend' => SHOPPRESS_URL . 'public/dist/admin/backend.css',
218 'sp-admin-announcement' => SHOPPRESS_URL . 'public/dist/admin/announcement.css',
219 'sp-admin' => SHOPPRESS_URL . 'build/index.css',
220 'sp-admin-rtl' => SHOPPRESS_URL . 'public/admin/admin-rtl.css',
221 'sp-admin-message' => SHOPPRESS_URL . 'public/dist/admin/message.css',
222 'sp-backorder-admin' => SHOPPRESS_URL . 'public/modules/backorder/backorder-admin.css',
223 'select2' => SHOPPRESS_URL . 'public/lib/select2/select2.min.css',
224 );
225
226 return apply_filters( 'shoppress/register_admin_styles', $styles );
227 }
228
229 /**
230 * Register Admin Scripts
231 *
232 * @since 1.2.0
233 */
234 public static function admin_register_scripts() {
235 $scripts = self::get_admin_scripts_list();
236 $styles = self::get_admin_styles_list();
237
238 foreach ( $scripts as $handle => $script ) {
239 $src = $script['src'] ?? $script;
240 $deps = $script['deps'] ?? array( 'jquery' );
241
242 wp_register_script( $handle, $src, $deps, SHOPPRESS_VERSION, true );
243 }
244
245 foreach ( $styles as $handle => $style ) {
246 $src = $style['src'] ?? $style;
247 $deps = $style['deps'] ?? array();
248
249 wp_register_style( $handle, $src, $deps, SHOPPRESS_VERSION );
250 }
251 }
252 }
253