diff --git a/src/php/Plugin.php b/src/php/Plugin.php index d88cbcbf2..c410f2f89 100644 --- a/src/php/Plugin.php +++ b/src/php/Plugin.php @@ -142,10 +142,6 @@ public function load_plugin() { new Upgrader( PLUGIN_VERSION, $this->db ); new Admin_Bar(); - if ( is_admin() ) { - new Promotion_Manager(); - } - $this->init_snippet_files(); add_action( 'rest_api_init', [ $this, 'init_rest_api' ], 1 ); diff --git a/tests/unit/Plugin_Test.php b/tests/unit/Plugin_Test.php new file mode 100644 index 000000000..16fe57ace --- /dev/null +++ b/tests/unit/Plugin_Test.php @@ -0,0 +1,50 @@ +get_elementor_promotion_callbacks(); + + $plugin = new Plugin(); + $plugin->load_plugin(); + + $this->assertCount( count( $callbacks_before ) + 1, $this->get_elementor_promotion_callbacks() ); + } + + /** + * Retrieve the callbacks that initialize Elementor promotions. + * + * @return array + */ + private function get_elementor_promotion_callbacks(): array { + global $wp_filter; + + $promotion_callbacks = []; + + foreach ( $wp_filter['elementor/init']->callbacks ?? [] as $callbacks ) { + foreach ( $callbacks as $callback ) { + $function = $callback['function']; + + if ( is_array( $function ) && $function[0] instanceof Elementor_Editor && 'promotion_in_custom_css_section' === $function[1] ) { + $promotion_callbacks[] = $function; + } + } + } + + return $promotion_callbacks; + } +}