diff --git a/includes/classes/Feature/ElasticPressLabs.php b/includes/classes/Feature/ElasticPressLabs.php index 2296170..b96298d 100644 --- a/includes/classes/Feature/ElasticPressLabs.php +++ b/includes/classes/Feature/ElasticPressLabs.php @@ -81,6 +81,10 @@ public function output_feature_box_settings() { $settings = wp_parse_args( $settings, $this->default_settings ); foreach ( $this->subfeatures as $subfeature ) { + if ( ! $subfeature->is_available && ! $subfeature->is_active ) { + continue; + } + $this->subfeature_field( $subfeature->slug, $subfeature->title, @@ -189,9 +193,11 @@ private function register_subfeatures() { $this->add_to_subfeatures( array( - 'slug' => $subfeature->slug, - 'title' => $subfeature->title, - 'description' => $description, + 'slug' => $subfeature->slug, + 'title' => $subfeature->title, + 'description' => $description, + 'is_available' => method_exists( $subfeature, 'is_available' ) ? $subfeature->is_available() : true, + 'is_active' => $subfeature->is_active(), ) ); diff --git a/includes/classes/Feature/WooCommerceSubscriptionSearch.php b/includes/classes/Feature/WooCommerceSubscriptionSearch.php index 7a2bf60..46979b0 100644 --- a/includes/classes/Feature/WooCommerceSubscriptionSearch.php +++ b/includes/classes/Feature/WooCommerceSubscriptionSearch.php @@ -134,7 +134,11 @@ public function requirements_status() { $woocommerce_feature = \ElasticPress\Features::factory()->get_registered_feature( 'woocommerce' ); $protected_content_feature = \ElasticPress\Features::factory()->get_registered_feature( 'protected_content' ); - if ( ! $woocommerce_feature->is_active() || ! $protected_content_feature->is_active() ) { + + if ( ! $this->is_subscription_plugin_activated() ) { + $status->code = 2; + $status->message = esc_html__( 'This feature requires the WooCommerce Subscriptions plugin to be activated.', 'elasticpress-labs' ); + } elseif ( ! $woocommerce_feature->is_active() || ! $protected_content_feature->is_active() ) { $status->code = 2; $status->message = esc_html__( 'This feature requires the WooCommerce and Protected Content features to be enabled.', 'elasticpress-labs' ); } else { @@ -143,4 +147,13 @@ public function requirements_status() { return $status; } + + /** + * Check if WooCommerce Subscriptions plugin is activated. + * + * @return bool + */ + public function is_subscription_plugin_activated() : bool { + return is_plugin_active( 'woocommerce-subscriptions/woocommerce-subscriptions.php' ) && class_exists( '\WC_Subscriptions' ); + } }