218 lines
8.7 KiB
PHP
218 lines
8.7 KiB
PHP
<?php
|
|
/**
|
|
* Template for ElasticPress settings page
|
|
*
|
|
* @since 2.1
|
|
* @package elasticpress
|
|
*/
|
|
|
|
use ElasticPress\Dashboard;
|
|
use ElasticPress\Elasticsearch;
|
|
use ElasticPress\IndexHelper;
|
|
use ElasticPress\Utils;
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit; // Exit if accessed directly.
|
|
}
|
|
|
|
$index_meta = IndexHelper::factory()->get_index_meta();
|
|
|
|
$version = Elasticsearch::factory()->get_elasticsearch_version();
|
|
|
|
$host = Utils\get_host();
|
|
$is_epio = Utils\is_epio();
|
|
$credentials = Utils\get_epio_credentials();
|
|
$wpconfig = defined( 'EP_HOST' ) && EP_HOST;
|
|
|
|
$bulk_setting = Utils\get_option( 'ep_bulk_setting', 350 );
|
|
?>
|
|
|
|
<?php require_once __DIR__ . '/header.php'; ?>
|
|
|
|
<div class="error-overlay <?php if ( ! empty( $index_meta ) ) : ?>syncing<?php endif; ?>"></div>
|
|
<div class="wrap">
|
|
<h1><?php esc_html_e( 'Settings', 'elasticpress' ); ?></h1>
|
|
|
|
<form action="" method="post" class="ep-settings">
|
|
<?php wp_nonce_field( 'elasticpress_settings', 'ep_settings_nonce' ); ?>
|
|
|
|
<div class="ep-credentials">
|
|
<?php if ( ! $wpconfig ) : ?>
|
|
<h2 class="nav-tab-wrapper ep-credentials-tabs">
|
|
<button class="nav-tab ep-credentials-tab <?php if ( ! $host || $is_epio ) { ?>nav-tab-active initial<?php } ?>" data-epio type="button">
|
|
<img src="<?php echo esc_url( plugins_url( '/images/logo-icon.svg', dirname( __DIR__ ) ) ); ?>" width="16" height="16" alt="ElasticPress.io" />
|
|
<span>ElasticPress.io</span>
|
|
</button>
|
|
<button class="nav-tab ep-credentials-tab <?php if ( $host && ! $is_epio ) { ?>nav-tab-active initial<?php } ?>" type="button">
|
|
<span>Third-Party/Self-Hosted</span>
|
|
</button>
|
|
</h2>
|
|
<?php endif; ?>
|
|
|
|
<fieldset class="<?php if ( $wpconfig ) { ?>predefined<?php } ?>">
|
|
<?php if ( $is_epio || ! $wpconfig ) : ?>
|
|
<p class="ep-legend ep-additional-fields <?php if ( $host && ! $is_epio ) { ?>hidden<?php } ?>" aria-hidden="<?php if ( $host && ! $is_epio ) { ?>true<?php } else { ?>false<?php } ?>">
|
|
<a href="https://elasticpress.io/" target="_blank" rel="noreferrer noopener">ElasticPress.io</a> is a hosted Elasticsearch service built for ElasticPress, powered by <a href="https://10up.com/" target="_blank" rel="noreferrer noopener">10up</a>.
|
|
</p>
|
|
<?php endif; ?>
|
|
<table class="form-table">
|
|
<tbody>
|
|
<tr class="ep-host-row">
|
|
<th scope="row">
|
|
<label for="ep_host">
|
|
<?php if ( $is_epio ) : ?>
|
|
<?php esc_html_e( 'ElasticPress.io Host URL', 'elasticpress' ); ?>
|
|
<?php else : ?>
|
|
<?php esc_html_e( 'Elasticsearch Host URL', 'elasticpress' ); ?>
|
|
<?php endif; ?>
|
|
</label>
|
|
</th>
|
|
<td>
|
|
<?php
|
|
/**
|
|
* Filter whether to show host field in admin UI or not
|
|
*
|
|
* @hook ep_admin_show_host
|
|
* @param {boolean} $show True to show
|
|
* @return {boolean} New value
|
|
*/
|
|
$show_host = apply_filters( 'ep_admin_show_host', true );
|
|
$disabled = $wpconfig || ! $show_host;
|
|
$value = $show_host ? esc_url( $host ) : __( '••••••••••••••••', 'elasticpress' );
|
|
?>
|
|
<input <?php disabled( $disabled, true, true ); ?> placeholder="https://" type="text" value="<?php echo esc_attr( $value ); ?>" name="ep_host" id="ep_host">
|
|
<?php if ( $show_host ) : ?>
|
|
<?php if ( $wpconfig ) : ?>
|
|
<p class="description ep-host-legend"><?php esc_html_e( 'Host already defined in wp-config.php.', 'elasticpress' ); ?></p>
|
|
<?php elseif ( $is_epio ) : ?>
|
|
<p class="description ep-host-legend"><?php esc_html_e( 'Plug in your ElasticPress.io server here.', 'elasticpress' ); ?></p>
|
|
<?php else : ?>
|
|
<p class="description ep-host-legend"><?php esc_html_e( 'Plug in your Elasticsearch server here.', 'elasticpress' ); ?></p>
|
|
<?php endif; ?>
|
|
<?php endif; ?>
|
|
</td>
|
|
</tr>
|
|
<?php if ( $is_epio || ! $wpconfig ) : ?>
|
|
|
|
<tr class="ep-additional-fields <?php if ( $host && ! $is_epio ) { ?>hidden<?php } ?>" aria-hidden="<?php if ( $host && ! $is_epio ) { ?>true<?php } else { ?>false<?php } ?>">
|
|
<th scope="row">
|
|
<label for="ep_username"><?php esc_html_e( 'Subscription ID', 'elasticpress' ); ?></label>
|
|
</th>
|
|
<td>
|
|
<?php
|
|
/**
|
|
* Filter whether to show epio credentials fields in admin UI or not
|
|
*
|
|
* @hook ep_admin_show_credentials
|
|
* @param {boolean} $show True to show
|
|
* @return {boolean} New value
|
|
*/
|
|
if ( apply_filters( 'ep_admin_show_credentials', true ) ) :
|
|
?>
|
|
<input <?php if ( defined( 'EP_CREDENTIALS' ) && EP_CREDENTIALS ) : ?>disabled<?php endif; ?> type="text" value="<?php echo esc_attr( $credentials['username'] ); ?>" name="ep_credentials[username]" id="ep_username">
|
|
<?php endif ?>
|
|
<?php if ( defined( 'EP_CREDENTIALS' ) && EP_CREDENTIALS ) : ?>
|
|
<p class="description"><?php esc_html_e( 'Your Subscription ID is set in wp-config.php', 'elasticpress' ); ?></p>
|
|
<?php else : ?>
|
|
<p class="description"><?php esc_html_e( 'Plug in your subscription ID (or subscription name) here.', 'elasticpress' ); ?></p>
|
|
<?php endif; ?>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr class="ep-additional-fields <?php if ( $host && ! $is_epio ) { ?>hidden<?php } ?>" aria-hidden="<?php if ( $host && ! $is_epio ) { ?>true<?php } else { ?>false<?php } ?>">
|
|
<th scope="row">
|
|
<label for="ep_token"><?php esc_html_e( 'Subscription Token', 'elasticpress' ); ?></label>
|
|
</th>
|
|
<td>
|
|
<?php
|
|
/**
|
|
* Filter whether to show epio credentials fields in admin UI or not
|
|
*
|
|
* @hook ep_admin_show_credentials
|
|
* @param {boolean} $show True to show
|
|
* @return {boolean} New value
|
|
*/
|
|
if ( apply_filters( 'ep_admin_show_credentials', true ) ) :
|
|
?>
|
|
<input <?php if ( defined( 'EP_CREDENTIALS' ) && EP_CREDENTIALS ) : ?>disabled<?php endif; ?> type="text" value="<?php echo esc_attr( $credentials['token'] ); ?>" name="ep_credentials[token]" id="ep_token">
|
|
<?php endif ?>
|
|
<?php if ( defined( 'EP_CREDENTIALS' ) && EP_CREDENTIALS ) : ?>
|
|
<p class="description"><?php esc_html_e( 'Your Subscription Token is set in wp-config.php', 'elasticpress' ); ?></p>
|
|
<?php else : ?>
|
|
<p class="description"><?php esc_html_e( 'Plug in your subscription token here.', 'elasticpress' ); ?></p>
|
|
<?php endif; ?>
|
|
</td>
|
|
</tr>
|
|
<?php endif; ?>
|
|
</tbody>
|
|
</table>
|
|
</fieldset>
|
|
</div>
|
|
|
|
<div class="ep-credentials-general">
|
|
<table class="form-table">
|
|
<tbody>
|
|
<tr>
|
|
<th scope="row">
|
|
<label for="ep_language"><?php esc_html_e( 'Elasticsearch Language', 'elasticpress' ); ?></label>
|
|
</th>
|
|
<td>
|
|
<?php
|
|
$ep_language = Utils\get_language();
|
|
|
|
wp_dropdown_languages(
|
|
[
|
|
'id' => 'ep_language',
|
|
'name' => 'ep_language',
|
|
'selected' => $ep_language,
|
|
'languages' => Dashboard\get_available_languages( 'locales' ),
|
|
'show_option_site_default' => true,
|
|
'explicit_option_en_us' => true,
|
|
'show_available_translations' => false,
|
|
]
|
|
);
|
|
?>
|
|
<p class="description"><?php esc_html_e( 'Default language for your Elasticsearch mapping.', 'elasticpress' ); ?></p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">
|
|
<label><?php esc_html_e( 'Elasticsearch Version', 'elasticpress' ); ?></label></th>
|
|
<td>
|
|
<?php if ( $is_epio ) : ?>
|
|
<?php esc_html_e( 'ElasticPress.io Managed Platform' ); ?>
|
|
<?php else : ?>
|
|
<?php if ( ! empty( $version ) ) : ?>
|
|
<?php echo esc_html( $version ); ?>
|
|
<?php else : ?>
|
|
—
|
|
<?php endif; ?>
|
|
<?php endif; ?>
|
|
</td>
|
|
</tr>
|
|
<?php if ( ! empty( $host ) && ! has_filter( 'ep_index_posts_per_page' ) ) : ?>
|
|
<tr>
|
|
<th scope="row">
|
|
<label for="ep_bulk_setting"><?php esc_html_e( 'Content Items per Index Cycle ', 'elasticpress' ); ?></label>
|
|
</th>
|
|
<td>
|
|
<input type="text" name="ep_bulk_setting" id="ep_bulk_setting" value="<?php echo absint( $bulk_setting ); ?>">
|
|
</td>
|
|
</tr>
|
|
<?php endif; ?>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<?php
|
|
/**
|
|
* Fires after settings table is displayed for inserting custom settings.
|
|
*
|
|
* @hook ep_settings_custom
|
|
*/
|
|
do_action( 'ep_settings_custom' );
|
|
?>
|
|
|
|
<input type="submit" <?php if ( ! empty( $index_meta ) ) : ?>disabled<?php endif; ?> name="submit" id="submit" class="button button-primary" value="<?php esc_attr_e( 'Save Changes', 'elasticpress' ); ?>">
|
|
</form>
|
|
</div>
|