PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.13.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.13.0
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 / WordPress / CompatibilityService.php
surecart / app / src / WordPress Last commit date
Admin 2 years ago Assets 2 years ago Pages 3 years ago PostTypes 2 years ago Shortcodes 2 years ago Sitemap 2 years ago Templates 2 years ago Users 3 years ago ActionsService.php 3 years ago CompatibilityService.php 2 years ago HealthService.php 2 years ago LineItemStateService.php 2 years ago PluginService.php 3 years ago PluginServiceProvider.php 2 years ago RecaptchaValidationService.php 2 years ago StateService.php 2 years ago ThemeService.php 2 years ago ThemeServiceProvider.php 3 years ago TranslationsServiceProvider.php 3 years ago
CompatibilityService.php
131 lines
1 <?php
2 /**
3 * @package SureCartAppCore
4 * @author SureCart <support@surecart.com>
5 * @copyright SureCart
6 * @license https://www.gnu.org/licenses/gpl-2.0.html GPL-2.0
7 * @link https://surecart.com
8 */
9
10 namespace SureCart\WordPress;
11
12 use SureCart\WordPress\Admin\Notices\AdminNoticesService;
13
14 /**
15 * Provides compatibility with other plugins.
16 */
17 class CompatibilityService {
18 /**
19 * Bootstrap the service.
20 *
21 * @return void
22 */
23 public function bootstrap() {
24 // UAG fix.
25 add_action( 'render_block_data', [ $this, 'maybeEnqueueUAGBAssets' ] );
26 // SC Form Shortcode fix.
27 add_filter( 'surecart/shortcode/render', [ $this, 'maybeEnqueueUAGBAssetsForShortcode' ], 5, 3 );
28 // rankmath fix.
29 add_action( 'rank_math/head', [ $this, 'rankMathFix' ] );
30 // Show gutenberg active notice.
31 add_action( 'admin_init', [ $this, 'gutenbergActiveNotice' ] );
32 }
33
34 /**
35 * Prevent rankmath from outputting og:tags on our custom pages.
36 *
37 * @return void
38 */
39 public function rankMathFix() {
40 if ( is_singular( 'sc_product' ) || is_singular( 'sc_collection' ) ) {
41 remove_all_actions( 'rank_math/opengraph/facebook' );
42 remove_all_actions( 'rank_math/opengraph/twitter' );
43 }
44 }
45
46 /**
47 * Render block data.
48 *
49 * @param array $parsed_block Block data.
50 *
51 * @return array
52 */
53 public function maybeEnqueueUAGBAssets( $parsed_block ) {
54 // UAGB must be activated.
55 if ( ! class_exists( '\UAGB_Post_Assets' ) ) {
56 return $parsed_block;
57 }
58
59 // must be our checkout form block.
60 if ( 'surecart/checkout-form' !== $parsed_block['blockName'] ) {
61 return $parsed_block;
62 }
63
64 // must have an ID.
65 if ( empty( $parsed_block['attrs']['id'] ) ) {
66 return $parsed_block;
67 }
68
69 // If Spectra Blocks are present in the form, enqueue the assets.
70 $post_assets_instance = new \UAGB_Post_Assets( $parsed_block['attrs']['id'] );
71 $post_assets_instance->enqueue_scripts(); // This will enqueue the JS and CSS files.
72
73 if ( ! empty( $post_assets_instance->file_generation ) && 'disabled' === $post_assets_instance->file_generation ) {
74 add_action( 'wp_footer', array( $post_assets_instance, 'print_stylesheet' ) ); // As on checkout page, the wp_head action is loaded late & Spectra prints inline CSS on that action for file_generation disabled case, we need to print the CSS on footer.
75 }
76
77 return $parsed_block;
78 }
79
80 /**
81 * Filter SC Form Shortcode to load the Spectra Blocks Assets.
82 *
83 * @param string $output Content.
84 * @param array $attributes Shortcode attributes.
85 * @param string $name Shortcode Tag.
86 *
87 * @return array
88 */
89 public function maybeEnqueueUAGBAssetsForShortcode( $output, $attributes, $name ) {
90 // UAGB must be activated.
91 if ( ! class_exists( '\UAGB_Post_Assets' ) ) {
92 return $output;
93 }
94
95 // must be our form shortcode.
96 if ( 'sc_form' !== $name ) {
97 return $output;
98 }
99
100 // must have an ID.
101 if ( empty( $attributes['id'] ) ) {
102 return $output;
103 }
104
105 // If Spectra Blocks are present in the form, enqueue the assets.
106 $post_assets_instance = new \UAGB_Post_Assets( $attributes['id'] );
107 $post_assets_instance->enqueue_scripts();
108
109 return $output;
110 }
111
112 /**
113 * Show the Gutenberg active notice.
114 *
115 * @return void
116 */
117 public function gutenbergActiveNotice(): void {
118 if ( is_plugin_active( 'gutenberg/gutenberg.php' ) ) {
119 ( new AdminNoticesService() )->add(
120 [
121 'name' => 'gutenberg_active_notice',
122 'type' => 'warning',
123 'title' => esc_html__( 'SureCart', 'surecart' ),
124 'text' => wp_kses_post( __( '<p>The Gutenberg plugin is currently active. SureCart blocks might not perform as expected within the block editor. If you encounter any issues, consider disabling the Gutenberg plugin.<p>', 'surecart' ) ),
125 ]
126 );
127 }
128 }
129 }
130
131