WordPress.org

Make WordPress Core

Ticket #12706: 12706.6.diff

File 12706.6.diff, 5.3 KB (added by lukecavanagh, 3 years ago)

Patch refresh

  • src/wp-admin/includes/meta-boxes.php

     
    3737
    3838<div id="minor-publishing-actions">
    3939<div id="save-action">
    40 <?php if ( 'publish' != $post->post_status && 'future' != $post->post_status && 'pending' != $post->post_status ) { ?>
    41 <input <?php if ( 'private' == $post->post_status ) { ?>style="display:none"<?php } ?> type="submit" name="save" id="save-post" value="<?php esc_attr_e('Save Draft'); ?>" class="button" />
     40        <?php
     41        $btnHideArray = array("publish","future","private");
     42
     43        if ( !in_array( $post->post_status, $btnHideArray ) )
     44        {
     45                $phrase = 'Save '.ucfirst($post->post_status);
     46                echo '<input type="submit" name="save" id="save-post" value="'. __($phrase) .'" class="button" />';
     47        }
     48        ?>
    4249<span class="spinner"></span>
    43 <?php } elseif ( 'pending' == $post->post_status && $can_publish ) { ?>
    44 <input type="submit" name="save" id="save-post" value="<?php esc_attr_e('Save as Pending'); ?>" class="button" />
    45 <span class="spinner"></span>
    46 <?php } ?>
    4750</div>
    4851<?php if ( is_post_type_viewable( $post_type_object ) ) : ?>
    4952<div id="preview-action">
     
    7780<div class="misc-pub-section misc-pub-post-status">
    7881<?php _e( 'Status:' ) ?> <span id="post-status-display"><?php
    7982
    80 switch ( $post->post_status ) {
    81         case 'private':
    82                 _e('Privately Published');
    83                 break;
    84         case 'publish':
    85                 _e('Published');
    86                 break;
    87         case 'future':
    88                 _e('Scheduled');
    89                 break;
    90         case 'pending':
    91                 _e('Pending Review');
    92                 break;
    93         case 'draft':
    94         case 'auto-draft':
    95                 _e('Draft');
    96                 break;
    97 }
     83                global $wp_post_statuses, $allowed_post_status;
     84
     85                foreach($wp_post_statuses as $key => $wp_post_status){
     86                                if($key == $post->post_status && $wp_post_status->show_in_admin_status_list){
     87                                                $allowed_post_status = true;
     88                                                echo __($wp_post_status->label);
     89                                }
     90                                elseif($key == $post->post_status){
     91                                                $allowed_post_status = false;
     92                                                echo __($wp_post_status->label);
     93                                }
     94                }
    9895?>
    9996</span>
    100 <?php if ( 'publish' == $post->post_status || 'private' == $post->post_status || $can_publish ) { ?>
     97<?php if ( $allowed_post_status && ('publish' == $post->post_status || 'private' == $post->post_status || $can_publish )) { ?>
    10198<a href="#post_status" <?php if ( 'private' == $post->post_status ) { ?>style="display:none;" <?php } ?>class="edit-post-status hide-if-no-js" role="button"><span aria-hidden="true"><?php _e( 'Edit' ); ?></span> <span class="screen-reader-text"><?php _e( 'Edit status' ); ?></span></a>
    10299
    103100<div id="post-status-select" class="hide-if-js">
     
    104101<input type="hidden" name="hidden_post_status" id="hidden_post_status" value="<?php echo esc_attr( ('auto-draft' == $post->post_status ) ? 'draft' : $post->post_status); ?>" />
    105102<label for="post_status" class="screen-reader-text"><?php _e( 'Set status' ) ?></label>
    106103<select name="post_status" id="post_status">
    107 <?php if ( 'publish' == $post->post_status ) : ?>
    108 <option<?php selected( $post->post_status, 'publish' ); ?> value='publish'><?php _e('Published') ?></option>
    109 <?php elseif ( 'private' == $post->post_status ) : ?>
    110 <option<?php selected( $post->post_status, 'private' ); ?> value='publish'><?php _e('Privately Published') ?></option>
    111 <?php elseif ( 'future' == $post->post_status ) : ?>
    112 <option<?php selected( $post->post_status, 'future' ); ?> value='future'><?php _e('Scheduled') ?></option>
    113 <?php endif; ?>
    114 <option<?php selected( $post->post_status, 'pending' ); ?> value='pending'><?php _e('Pending Review') ?></option>
    115 <?php if ( 'auto-draft' == $post->post_status ) : ?>
    116 <option<?php selected( $post->post_status, 'auto-draft' ); ?> value='draft'><?php _e('Draft') ?></option>
    117 <?php else : ?>
    118 <option<?php selected( $post->post_status, 'draft' ); ?> value='draft'><?php _e('Draft') ?></option>
    119 <?php endif; ?>
     104<?php
     105                $ppf = array('publish','private','future');
     106                $ad = array('auto-draft','draft');
     107                $adSet = false;
     108
     109                foreach($wp_post_statuses as $key => $wp_post_status){
     110                                $show = false;
     111                                if($wp_post_status->show_in_admin_status_list){
     112                                                if(in_array($key, $ppf)){
     113                                                                // Show just one of those
     114                                                                if($post->post_status == $key){
     115                                                                                        $show = true;
     116                                                                }
     117                                                } elseif($key == 'trash'){
     118                                                                // Don't show
     119                                                                $show = false;
     120                                                } else{
     121                                                                $show = true;
     122                                                }
     123
     124                                                if($show){
     125                                                                echo "<option ".selected( $post->post_status, $key, false )."  value='".$key."'>". __($wp_post_status->label) ."</option>";
     126                                                }
     127                                }
     128                }
     129?>
    120130</select>
    121131 <a href="#post_status" class="save-post-status hide-if-no-js button"><?php _e('OK'); ?></a>
    122132 <a href="#post_status" class="cancel-post-status hide-if-no-js button-cancel"><?php _e('Cancel'); ?></a>
  • src/wp-admin/js/post.js

     
    797797                                if ( $('option:selected', postStatus).val() == 'pending' ) {
    798798                                        $('#save-post').show().val( postL10n.savePending );
    799799                                } else {
    800                                         $('#save-post').show().val( postL10n.saveDraft );
     800                                        var phrase = 'Save '+$('option:selected', postStatus).val();
     801                                        $('#save-post').show().val(phrase);
    801802                                }
    802803                        }
    803804                        return true;