示例#1
0
function vp_show_undo_confirm()
{
    if (vp_is_ajax()) {
        require_once VERSIONPRESS_PLUGIN_DIR . '/admin/undo.php';
    } else {
        // @codingStandardsIgnoreLine
        wp_safe_redirect(admin_url('admin.php?page=versionpress/admin/undo.php&method=' . $_GET['method'] . '&commit=' . $_GET['commit']));
        exit;
    }
}
示例#2
0
use VersionPress\Git\Reverter;
if (!in_array($_GET['method'], ['undo', 'rollback'])) {
    exit;
}
global $versionPressContainer;
/** @var GitRepository $repository */
$repository = $versionPressContainer->resolve(VersionPressServices::GIT_REPOSITORY);
/** @var Reverter $reverter */
$reverter = $versionPressContainer->resolve(VersionPressServices::REVERTER);
/** @var CommitMessageParser $commitMessageParser */
$commitMessageParser = $versionPressContainer->resolve(VersionPressServices::COMMIT_MESSAGE_PARSER);
$canRevert = $reverter->canRevert();
$commit = $repository->getCommit($_GET['commit']);
$changeInfo = $commitMessageParser->parse($commit->getMessage());
$method = $_GET['method'];
$title = $method == 'undo' ? "<div class='title-content'>Undo <em>{$changeInfo->getChangeDescription()}</em> ?</div>" : "<div class='title-content'>Roll back to <em>{$commit->getDate()->format('d-M-y H:i:s')}</em> ?</div>";
$message = "\n        <p>\n            For Early Access releases, please have a backup.\n            <a href='http://docs.versionpress.net/en/feature-focus/undo-and-rollback' target='_blank'>\n                Learn more about reverts.\n            </a>\n        </p>";
$errors = !$canRevert ? "\n        <p class='undo-warning'>\n            <span class='icon vp-icon-warning'></span>\n            You have <a href='http://docs.versionpress.net/en/feature-focus/undo-and-rollback#uncommitted-files' target='_blank'>uncommitted changes</a> in your WordPress directory.<br>Please commit them before doing a revert.\n        </p>" : "";
$proceedUrl = add_query_arg(['action' => 'vp_' . $method, 'commit' => $commit->getHash(), '_wpnonce' => wp_create_nonce('vp_revert')], admin_url('admin.php'));
$buttonProceed = "<a " . "class='button " . (!$canRevert ? "disabled" : "") . "' " . "id='popover-ok-button' " . "href='" . (!$canRevert ? "javascript:;" : $proceedUrl) . "'>Proceed</a>";
$buttonCancel = "<a " . "class='button cancel' " . "id='popover-cancel-button' " . "href='" . (vp_is_ajax() ? "javascript:;" : menu_page_url('versionpress', false)) . "'>Cancel</a>";
$body = "\n        <div>\n            {$message}\n            {$errors}\n            <div class='button-container'>\n                {$buttonProceed}\n                {$buttonCancel}\n            </div>\n        </div>\n    ";
if (vp_is_ajax()) {
    $response = new stdClass();
    $response->body = $body;
    echo json_encode($response);
    wp_die();
} else {
    echo "<h3>{$title}</h3>";
    echo $body;
}