143 lines
5.6 KiB
PHP
143 lines
5.6 KiB
PHP
<?php
|
|
/**
|
|
* Rollback Menu
|
|
*
|
|
* Provides the rollback screen view with releases.
|
|
*/
|
|
|
|
// Ensure we have our necessary query strings
|
|
if ( ( ! isset( $_GET['type'] ) && ! isset( $_GET['theme'] ) ) || ( ! isset( $_GET['type'] ) && ! isset( $_GET['plugin_file'] ) ) ) {
|
|
wp_die( __( 'WP Rollback is missing necessary parameters to continue. Please contact support.', 'wp-rollback' ) );
|
|
}
|
|
|
|
$theme_rollback = $_GET['type'] == 'theme' ? true : false;
|
|
$plugin_rollback = $_GET['type'] == 'plugin' ? true : false;
|
|
$plugins = get_plugins();
|
|
?>
|
|
<div class="wrap">
|
|
|
|
<div class="wpr-content-wrap">
|
|
|
|
<h1>
|
|
<img src="<?php echo WP_ROLLBACK_PLUGIN_URL; ?>/assets/images/wprb-icon-final.svg"
|
|
onerror="this.onerror=null; this.src='<?php echo WP_ROLLBACK_PLUGIN_URL; ?>/assets/images/wprb-logo.png';"><?php _e( 'WP Rollback', 'wp-rollback' ); ?>
|
|
</h1>
|
|
|
|
<p><?php echo apply_filters( 'wpr_rollback_description', sprintf( __( 'Please select which %1$s version you would like to rollback to from the releases listed below. You currently have version %2$s installed of %3$s.', 'wp-rollback' ), '<span class="type">' . ( $theme_rollback == true ? __( 'theme', 'wp-rollback' ) : __( 'plugin', 'wp-rollback' ) ) . '</span>', '<span class="current-version">' . esc_html( $args['current_version'] ) . '</span>', '<span class="rollback-name">' . esc_html( $args['rollback_name'] ) . '</span>' ) ); ?></p>
|
|
|
|
<div class="wpr-changelog"></div>
|
|
</div>
|
|
|
|
<?php
|
|
// A: Plugin rollbacks in first conditional:
|
|
if ( isset( $args['plugin_file'] ) && in_array( $args['plugin_file'], array_keys( $plugins ) ) ) {
|
|
|
|
$versions = WP_Rollback()->versions_select( 'plugin' );
|
|
|
|
} elseif ( $theme_rollback == true && isset( $_GET['theme_file'] ) ) {
|
|
|
|
// B: Theme rollback: set up our theme vars
|
|
$svn_tags = WP_Rollback()->get_svn_tags( 'theme', $_GET['theme_file'] );
|
|
WP_Rollback()->set_svn_versions_data( $svn_tags );
|
|
$this->current_version = $_GET['current_version'];
|
|
$versions = WP_Rollback()->versions_select( 'theme' );
|
|
|
|
} else {
|
|
// Fallback check
|
|
wp_die( __( 'Oh no! We\'re missing required rollback query strings. Please contact support so we can check this bug out and squash it!', 'wp-rollback' ) );
|
|
}
|
|
?>
|
|
|
|
<form name="check_for_rollbacks" class="rollback-form" action="<?php echo admin_url( '/index.php' ); ?>">
|
|
<?php
|
|
// Output Versions
|
|
if ( ! empty( $versions ) ) {
|
|
?>
|
|
|
|
<div class="wpr-versions-wrap">
|
|
|
|
<?php
|
|
do_action( 'wpr_pre_versions' );
|
|
|
|
echo apply_filters( 'wpr_versions_output', $versions );
|
|
|
|
do_action( 'wpr_post_version' );
|
|
?>
|
|
|
|
</div>
|
|
|
|
<?php } ?>
|
|
|
|
<div class="wpr-submit-wrap">
|
|
<a href="#wpr-modal-confirm" class="magnific-popup button-primary wpr-rollback-disabled"><?php _e( 'Rollback', 'wp-rollback' ); ?></a>
|
|
<input type="button" value="<?php _e( 'Cancel', 'wp-rollback' ); ?>" class="button" onclick="location.href='<?php echo wp_get_referer(); ?>';" />
|
|
</div>
|
|
<?php do_action( 'wpr_hidden_fields' ); ?>
|
|
<input type="hidden" name="page" value="wp-rollback">
|
|
<?php
|
|
// Important: We need the appropriate file to perform a rollback
|
|
if ( $plugin_rollback == true ) {
|
|
?>
|
|
<input type="hidden" name="plugin_file" value="<?php echo esc_attr( $args['plugin_file'] ); ?>">
|
|
<input type="hidden" name="plugin_slug" value="<?php echo esc_attr( $args['plugin_slug'] ); ?>">
|
|
<?php } else { ?>
|
|
<input type="hidden" name="theme_file" value="<?php echo esc_attr( $_GET['theme_file'] ); ?>">
|
|
<?php } ?>
|
|
<input type="hidden" name="rollback_name" value="<?php echo esc_attr( $args['rollback_name'] ); ?>">
|
|
<input type="hidden" name="installed_version" value="<?php echo esc_attr( $args['current_version'] ); ?>">
|
|
<?php wp_nonce_field( 'wpr_rollback_nonce' ); ?>
|
|
|
|
<div id="wpr-modal-confirm" class="white-popup mfp-hide">
|
|
<div class="wpr-modal-inner">
|
|
<p class="wpr-rollback-intro"><?php _e( 'Are you sure you want to perform the following rollback?', 'wp-rollback' ); ?></p>
|
|
|
|
<div class="rollback-details">
|
|
<table class="widefat">
|
|
<tbody>
|
|
<?php do_action( 'wpr_pre_rollback_table' ); ?>
|
|
<tr>
|
|
<td class="row-title">
|
|
<label for="tablecell">
|
|
<?php
|
|
if ( $plugin_rollback == true ) {
|
|
_e( 'Plugin Name:', 'wp-rollback' );
|
|
} else {
|
|
_e( 'Theme Name:', 'wp-rollback' );
|
|
}
|
|
?>
|
|
</label>
|
|
</td>
|
|
<td><span class="wpr-plugin-name"></span></td>
|
|
</tr>
|
|
<tr class="alternate">
|
|
<td class="row-title">
|
|
<label for="tablecell"><?php _e( 'Installed Version:', 'wp-rollback' ); ?></label>
|
|
</td>
|
|
<td><span class="wpr-installed-version"></span></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="row-title">
|
|
<label for="tablecell"><?php _e( 'New Version:', 'wp-rollback' ); ?></label>
|
|
</td>
|
|
<td><span class="wpr-new-version"></span></td>
|
|
</tr>
|
|
<?php do_action( 'wpr_post_rollback_table' ); ?>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="wpr-error">
|
|
<p><?php
|
|
_e( '<strong>Notice:</strong> We strongly recommend you <strong>create a complete backup</strong> of your WordPress files and database prior to performing a rollback. We are not responsible for any misuse, deletions, white screens, fatal errors, or any other issue resulting from the use of this plugin.', 'wp-rollback' );
|
|
?></p>
|
|
</div>
|
|
<?php do_action( 'wpr_pre_rollback_buttons' ); ?>
|
|
<input type="submit" value="<?php _e( 'Rollback', 'wp-rollback' ); ?>" class="button-primary wpr-go" />
|
|
<a href="#" class="button wpr-close"><?php _e( 'Cancel', 'wp-rollback' ); ?></a>
|
|
<?php do_action( 'wpr_post_rollback_buttons' ); ?>
|
|
</div>
|
|
</div>
|
|
|
|
</form>
|
|
|
|
</div>
|