Add force pull functionality and improve post content handling

This commit is contained in:
Matt Batchelder
2026-02-23 19:35:33 -05:00
parent 3b51382797
commit cdf176e224
5 changed files with 165 additions and 23 deletions

View File

@@ -257,6 +257,18 @@ add_action( 'admin_post_oribi_sync_pull', function () {
exit;
} );
add_action( 'admin_post_oribi_sync_force_pull', function () {
if ( ! current_user_can( 'manage_options' ) ) wp_die( 'Permission denied.' );
check_admin_referer( 'oribi_sync_force_pull' );
$result = oribi_sync_run( false, true );
set_transient( 'oribi_sync_result', $result, 60 );
wp_redirect( add_query_arg( 'oribi_sync_done', 'force_pull', admin_url( 'options-general.php?page=oribi-sync' ) ) );
exit;
} );
add_action( 'admin_post_oribi_sync_clear_pat', function () {
if ( ! current_user_can( 'manage_options' ) ) wp_die( 'Permission denied.' );
check_admin_referer( 'oribi_sync_clear_pat' );
@@ -330,9 +342,10 @@ function oribi_sync_settings_page() {
<?php if ( $sync_result ): ?>
<div class="notice <?php echo $sync_result['ok'] ? 'notice-success' : 'notice-error'; ?> is-dismissible">
<p><strong><?php
if ( $done === 'dry' ) echo 'Dry-run results';
elseif ( $done === 'pull' ) echo 'Pull complete';
else echo 'Sync complete';
if ( $done === 'dry' ) echo 'Dry-run results';
elseif ( $done === 'pull' ) echo 'Pull complete';
elseif ( $done === 'force_pull' ) echo 'Force Pull complete';
else echo 'Sync complete';
?></strong></p>
<?php oribi_sync_render_result_list( $sync_result ); ?>
</div>
@@ -469,6 +482,11 @@ function oribi_sync_settings_page() {
onclick="return confirm('Pull content from the repo (no push). Continue?');">
Pull Only
</a>
<a href="<?php echo esc_url( wp_nonce_url( admin_url( 'admin-post.php?action=oribi_sync_force_pull' ), 'oribi_sync_force_pull' ) ); ?>"
class="button"
onclick="return confirm('Force re-pull ALL content from the repo, bypassing change detection. Continue?');">
Force Pull
</a>
<a href="<?php echo esc_url( wp_nonce_url( admin_url( 'admin-post.php?action=oribi_sync_push_all' ), 'oribi_sync_push_all' ) ); ?>"
class="button"
onclick="return confirm('Push all synced pages to the repo (no pull). Continue?');">