Alex Foo
Alex Foo

Reputation: 43

Add a new block inside Orders meta box in Woocommerce

I am trying to add a new block inside the Orders meta box from Woocommerce. I know there are three possible hooks to add custom data to the existing blocks.

These hooks are executed inside an order_data_column block and that's what I do not want to do. I would like to add a new custom order_data_column with my custom data.

I tried it creating a new class which extends the WC_Meta_Box_Order_Data and overriding the output method but it did not work...

Upvotes: 2

Views: 754

Answers (1)

LoicTheAztec
LoicTheAztec

Reputation: 253968

You can add a block to orders metabox using the following code (for example):

add_action( 'woocommerce_admin_order_data_after_shipping_address', 'additional_admin_order_data_block_after_shipping_address', 100 );
function additional_admin_order_data_block_after_shipping_address(){

    echo '</div><div class="order_data_column">
    <h3>' . esc_html__( 'Block title', 'woocommerce' ) . '</h3>';

    // here goes your code and content

    // Fake content output just for testing
    echo '<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante.</p>';
}

Code goes in function.php file of your active child theme (active theme). Tested and works.

enter image description here

But you will need to change some styling CSS rules (which is another question).

Upvotes: 3

Related Questions