PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.6.1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.6.1
4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / app / src / Concerns / HasBlockTheme.php
surecart / app / src / Concerns Last commit date
Arrayable.php 3 years ago HasBlockTheme.php 3 years ago
HasBlockTheme.php
79 lines
1 <?php
2
3 namespace SureCart\Concerns;
4
5 use SureCartCore\Helpers\MixedType;
6
7 trait HasBlockTheme {
8
9 /**
10 * Register theme
11 *
12 * @param string $block_name Name of the block.
13 * @param string $slug Lowercase slug for style.
14 * @param string $name Display name of style.
15 * @param string $path Relative path in dist directory.
16 *
17 * @return void
18 */
19 public function registerBlockTheme( $block_name, $slug, $name, $path ) {
20 $url = trailingslashit( \SureCart::core()->assets()->getUrl() ) . $path;
21
22 wp_register_style(
23 "surecart/themes/$slug",
24 $url,
25 false,
26 $this->generateFileVersion( $url )
27 );
28
29 register_block_style(
30 "surecart/$block_name",
31 [
32 'name' => $slug,
33 'label' => $name,
34 'style_handle' => "surecart/themes/$slug",
35 ]
36 );
37 }
38
39 /**
40 * Remove the protocol from an http/https url.
41 *
42 * @param string $url Url for the source.
43 * @return string
44 */
45 protected function removeProtocol( $url ) {
46 return preg_replace( '~^https?:~i', '', $url );
47 }
48
49 /**
50 * Generate a version for a given asset src.
51 *
52 * @param string $src Source for the asset.
53 * @return integer|boolean
54 */
55 protected function generateFileVersion( $src ) {
56 // Normalize both URLs in order to avoid problems with http, https
57 // and protocol-less cases.
58 $src = $this->removeProtocol( $src );
59 $home_url = $this->removeProtocol( WP_CONTENT_URL );
60 $version = false;
61
62 // Generate the absolute path to the file.
63 $file_path = MixedType::normalizePath(
64 str_replace(
65 [ $home_url, '/' ],
66 [ WP_CONTENT_DIR, DIRECTORY_SEPARATOR ],
67 $src
68 )
69 );
70
71 if ( file_exists( $file_path ) ) {
72 // Use the last modified time of the file as a version.
73 $version = filemtime( $file_path );
74 }
75
76 return $version;
77 }
78 }
79