Display custom data on Woocommerce admin order preview

后端 未结 1 1845
感情败类
感情败类 2020-12-10 00:15

I would like to add some custom data to the end of the preview order in Woocommerce order listing page.

For that I have tried the hook \'woocommerce_admin_order_prev

相关标签:
1条回答
  • 2020-12-10 00:38

    You can't get the order object as it's a template that loads specific data via Ajax and there is no arguments for woocommerce_admin_order_preview_end action hook.

    Instead the filter hook woocommerce_admin_order_preview_get_order_details will allow you first to add some custom data that you will be able to call and display it after in woocommerce_admin_order_preview_end action hook.

    The code:

    // Add custom order meta data to make it accessible in Order preview template
    add_filter( 'woocommerce_admin_order_preview_get_order_details', 'admin_order_preview_add_custom_meta_data', 10, 2 );
    function admin_order_preview_add_custom_meta_data( $data, $order ) {
        // Replace '_custom_meta_key' by the correct postmeta key
        if( $custom_value = $order->get_meta('_custom_meta_key') )
            $data['custom_key'] = $custom_value; // <= Store the value in the data array.
    
        return $data;
    }
    
    // Display custom values in Order preview
    add_action( 'woocommerce_admin_order_preview_end', 'custom_display_order_data_in_admin' );
    function custom_display_order_data_in_admin(){
        // Call the stored value and display it
        echo '<div>Value: {{data.custom_key}}</div><br>';
    }
    

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

    Note: You can also use woocommerce_admin_order_preview_start hook if needed…

    0 讨论(0)
提交回复
热议问题