summary ) { echo '

' . esc_html( $this->summary ) . '

'; } } /** * Implement to output feature box long text * * @since 3.0 */ abstract public function output_feature_box_long(); /** * Create feature * * @since 3.0 */ public function __construct() { /** * Fires when Feature object is created * * @hook ep_feature_create * @param {Feature} $feature Current feature * @since 3.0 */ do_action( 'ep_feature_create', $this ); } /** * Returns requirements status of feature * * @since 2.2 * @return FeatureRequirementsStatus */ public function requirements_status() { $status = new FeatureRequirementsStatus( 0 ); /** * Filter feature requirement status * * @hook ep_{indexable_slug}_index_kill * @param {FeatureRequirementStatus} $status Current feature requirement status * @param {Feature} $feature Current feature * @since 2.2 * @return {FeatureRequirementStatus} New status */ return apply_filters( 'ep_feature_requirements_status', $status, $this ); } /** * Return feature settings * * @since 2.2.1 * @return array|bool */ public function get_settings() { if ( defined( 'EP_IS_NETWORK' ) && EP_IS_NETWORK ) { $feature_settings = get_site_option( 'ep_feature_settings', [] ); } else { $feature_settings = get_option( 'ep_feature_settings', [] ); } return ( ! empty( $feature_settings[ $this->slug ] ) ) ? $feature_settings[ $this->slug ] : false; } /** * Returns true if feature is active * * @since 2.2 * @return boolean */ public function is_active() { if ( defined( 'EP_IS_NETWORK' ) && EP_IS_NETWORK ) { $feature_settings = get_site_option( 'ep_feature_settings', [] ); } else { $feature_settings = get_option( 'ep_feature_settings', [] ); } $active = false; if ( ! empty( $feature_settings[ $this->slug ] ) && $feature_settings[ $this->slug ]['active'] ) { $active = true; } /** * Filter whether a feature is active or not * * @hook ep_feature_active * @param {bool} $active Whether feature is active or not * @param {array} $feature_settings Current feature settings * @param {Feature} $feature Current feature * @since 2.2 * @return {bool} New active value */ return apply_filters( 'ep_feature_active', $active, $feature_settings, $this ); } /** * To be run after initial feature activation * * @since 2.1 */ public function post_activation() { /** * Fires after feature is activated * * @hook ep_feature_post_activation * @param {string} $slug Feature slug * @param {Feature} $feature Current feature * @since 2.1 */ do_action( 'ep_feature_post_activation', $this->slug, $this ); } /** * Outputs feature box * * @since 2.1 */ public function output_feature_box() { $this->output_feature_box_summary(); /** * Fires before feature box summary is shown * * @hook ep_feature_box_summary * @param {string} $slug Feature slug * @param {Feature} $feature Current feature * @since 2.1 */ do_action( 'ep_feature_box_summary', $this->slug, $this ); ?>
output_feature_box_long(); ?>

slug, $this ); ?>
requirements_status(); $sync_url = ( defined( 'EP_IS_NETWORK' ) && EP_IS_NETWORK ) ? network_admin_url( 'admin.php?page=elasticpress-sync' ) : admin_url( 'admin.php?page=elasticpress-sync' ); ?>
message ) ) : $messages = (array) $requirements_status->message; ?>
requires_install_reindex ) : ?>


output_feature_box_settings(); ?>