Dies ist, was ich verwendet habe, um einen benutzerdefinierten Bestellstatus mit dem Namen "In Rechnung gestellt" zu erstellen. Fügen Sie dies der Datei functions.php Ihres Themas hinzu
// New order status AFTER woo 2.2
add_action( 'init', 'register_my_new_order_statuses' );
function register_my_new_order_statuses() {
register_post_status( 'wc-invoiced', array(
'label' => _x( 'Invoiced', '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( 'Invoiced <span class="count">(%s)</span>', 'Invoiced<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-invoiced'] = _x( 'Invoiced', 'Order status', 'woocommerce' );
return $order_statuses;
}
Um Ihren neuen Status zum Dropdown-Menü "Massenbearbeitung" des Administrators hinzuzufügen, müssen Sie Javascript verwenden. Fügen Sie der admin_footer
Aktion Ihre Funktion hinzu . Meine Funktion sieht dann ungefähr so aus:
function custom_bulk_admin_footer() {
global $post_type;
if ( $post_type == 'shop_order' ) {
?>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('<option>').val('mark_invoiced').text('<?php _e( 'Mark invoiced', 'textdomain' ); ?>').appendTo("select[name='action']");
jQuery('<option>').val('mark_invoiced').text('<?php _e( 'Mark invoiced', 'textdomain' ); ?>').appendTo("select[name='action2']");
});
</script>
<?php
}
}
Die Aktion wird zweimal hinzugefügt, da sich oben und unten in der Bestellliste eine Massenaktion befindet.
Als Abschluss für oben und um JavaScript nicht zum Hinzufügen der Aktionen in der Liste der Massenaktionen zu verwenden, können Sie den Hook verwenden, um Massenaktionen hinzuzufügen / neu anzuordnen
bulk_actions-edit-shop_order
. Zum Beispiel:Prost!
quelle