i have this function :
//Function allow edit completed orders
add_filter( ‘wc_order_is_editable’, ‘wc_make_completed_orders_editable’, 10, 2 );
function wc_make_completed_orders_editable( $is_editable, $order ) {
if ( $order->get_status() == ‘completed’ ) {
$is_editable = true;
}
return $is_editable;
}
and this function:
// 1 New order status AFTER woo 2.2 Termine
add_action( ‘init’, ‘register_my_new_order_statuses’ );
function register_my_new_order_statuses() {
register_post_status( ‘wc-termine’, array(
‘label’ => _x( ‘Payée’, ‘Order status’, ‘woocommerce’ ),
‘public’ => true,
‘exclude_from_search’ => false,
‘show_in_admin_all_list’ => true,
‘show_in_admin_status_list’ => true,
‘label_count’ => _n_noop( ‘Payée <span class=”count”>(%s)</span>’, ‘Payée <span class=”count”>(%s)</span>’, ‘woocommerce’ )
) );
}
add_filter( ‘wc_order_statuses’, ‘my_new_wc_order_statuses’ );
// Register in wc_order_statuses.
function my_new_wc_order_statuses( $order_statuses ) {
$order_statuses[‘wc-termine’] = _x( ‘Payée’, ‘Order status’, ‘woocommerce’ );
return $order_statuses;
}
/*
* 2 CHANGE STATUSES ORDER IN DROPDOWN LIST
* @param array $wc_statuses_arr Array of all order statuses on the website
*/
function change_statuses_order( $wc_statuses_arr ){
$new_statuses_arr = array(
‘wc-processing’ => $wc_statuses_arr[‘wc-processing’], // 1
‘wc-termine’ => $wc_statuses_arr[‘wc-termine’], // 2
‘wc-completed’ => $wc_statuses_arr[‘wc-completed’], // 3
‘wc-cancelled’ => $wc_statuses_arr[‘wc-cancelled’], // 4
‘wc-refunded’ => $wc_statuses_arr[‘wc-refunded’], // 5
‘wc-failed’ => $wc_statuses_arr[‘wc-failed’], // 6
‘wc-pending’ => $wc_statuses_arr[‘wc-pending’], // 7
‘wc-on-hold’ => $wc_statuses_arr[‘wc-on-hold’] // 8
);
return $new_statuses_arr;
}
add_filter( ‘wc_order_statuses’, ‘change_statuses_order’ );
// 3. ADD COLOR TO IN PROGRESS BUTTON
add_action(‘admin_head’, ‘styling_admin_order_list’ );
function styling_admin_order_list() {
global $pagenow, $post;
if( $pagenow != ‘edit.php’) return; // Exit
if( get_post_type($post->ID) != ‘shop_order’ ) return; // Exit
// HERE below set your custom status
$order_status = ‘Payée’; // <==== HERE
?>
<style>
.order-status.status-<?php echo sanitize_title( $order_status ); ?> {
background: #0394fc;
color: #ffffff;
}
</style>
<?php
}
add_filter( ‘woocommerce_reports_order_statuses’, ‘include_custom_order_status_to_reports’, 20, 1 );
function include_custom_order_status_to_reports( $statuses ){
// Adding the custom order status to the 3 default woocommerce order statuses
return array( ‘processing’, ‘termine’, ‘completed’, ‘on-hold’ );
}