{"id":1207,"date":"2026-02-08T18:28:03","date_gmt":"2026-02-08T18:28:03","guid":{"rendered":"https:\/\/spelldot.com\/?p=820"},"modified":"2026-07-01T19:58:38","modified_gmt":"2026-07-01T16:58:38","slug":"create-custom-columns-from-order-meta-delivery-date-po-number-gift-message-no-code","status":"publish","type":"post","link":"https:\/\/presta.site\/blog\/en\/create-custom-columns-from-order-meta-delivery-date-po-number-gift-message-no-code\/","title":{"rendered":"Create Custom Columns from Order Meta (Delivery Date, PO Number, Gift Message) &#8211; No Code"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Your orders carry data that WooCommerce hides from you. By adding <strong>woocommerce custom order columns<\/strong>, you can reveal delivery dates, PO numbers, gift messages, and warehouse codes &#8211; which are normally stored as order meta, buried inside each order. To see any of it without custom columns, you open the order, scroll down, find the field, close the order. Repeat 200 times a day.<\/p>\n\n\n<!--more-->\n\n\n<p class=\"wp-block-paragraph\">What if that data sat right in your orders list, in its own column?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This post shows you how to create custom columns in OrderFusion for any order meta field. No code, no developer, no plugin configuration files. Five clicks and done. Mastering custom columns is a key part of modern <a href=\"https:\/\/presta.site\/blog\/en\/woocommerce-order-management-in-2025\/\">WooCommerce order management in 2025<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What order meta actually is<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Every WooCommerce order stores extra data as &#8220;meta fields.&#8221; These are name-value pairs attached to the order. Some come from WooCommerce itself (billing phone, paid date). Others come from plugins you&#8217;ve installed &#8211; a delivery date picker saves <code class=\"codecolorer text default\"><span class=\"text\">_delivery_date<\/span><\/code>, a PO number field saves <code class=\"codecolorer text default\"><span class=\"text\">_po_number<\/span><\/code>, a gift message box saves <code class=\"codecolorer text default\"><span class=\"text\">_gift_message<\/span><\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The problem: WooCommerce doesn&#8217;t show this data in the orders list. It&#8217;s only visible when you open each order individually.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">OrderFusion fixes that. You pick a meta field, give it a column name, and it appears in your orders list next to order number, status, and total.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Before you start: find your meta key<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Every custom column needs a meta key &#8211; the internal name WooCommerce uses to store the data. The most reliable way to find it: <strong>check your plugin&#8217;s documentation.<\/strong> Most plugins list their meta keys in a settings page, FAQ, or support docs. For example, the popular Order Delivery Date plugin by Tyche Softwares uses <code class=\"codecolorer text default\"><span class=\"text\">_orddd_timestamp<\/span><\/code>, not something obvious like <code class=\"codecolorer text default\"><span class=\"text\">_delivery_date<\/span><\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the docs don&#8217;t help, you can look inside an order:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n \t<li>Open any order that has the data you want to display<\/li>\n \t<li>Scroll down to the <strong>Custom Fields<\/strong> section (if you don&#8217;t see it, click <strong>Screen Options<\/strong> at the top of the page and check the Custom Fields box)<\/li>\n \t<li>Look at the &#8220;Name&#8221; column &#8211; that&#8217;s your meta key<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">One important catch: most plugins prefix their meta keys with an underscore (like <code class=\"codecolorer text default\"><span class=\"text\">_delivery_date<\/span><\/code>), and WordPress hides underscore-prefixed keys from the Custom Fields section by default. So the field you&#8217;re looking for might not appear here. That&#8217;s normal. Fall back to the plugin&#8217;s documentation or contact their support.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On newer WooCommerce stores using HPOS (High-Performance Order Storage), the Custom Fields section may not appear on the order page at all. Plugin documentation is your best bet in that case.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Whatever method you use, copy the key exactly &#8211; case-sensitive, including any underscores.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Create your first custom column<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s the full process. It takes about 30 seconds.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n \t<li>Go to <strong>WooCommerce &gt; Orders<\/strong><\/li>\n \t<li>Click <strong>Screen Options<\/strong> (top-right corner)<\/li>\n \t<li>In the <strong>Columns<\/strong> section, click the <strong>+<\/strong> button<\/li>\n \t<li>Fill in the form:<\/li>\n \t<li><strong>Column Name<\/strong>: What you want the header to say (e.g., &#8220;Delivery Date&#8221;)<\/li>\n \t<li><strong>Meta Key<\/strong>: The exact key from the step above (e.g., <code class=\"codecolorer text default\"><span class=\"text\">_delivery_date<\/span><\/code>)<\/li>\n \t<li><strong>Column Type<\/strong>: How to format the data &#8211; Text, Number, Date, or Yes\/No<\/li>\n \t<li>Click <strong>Create Column<\/strong><\/li>\n \t<li>Check the new column&#8217;s box to enable it<\/li>\n \t<li>Close <strong>Screen Options<\/strong><\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Your column appears in the orders list immediately.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/presta.site\/blog\/wp-content\/themes\/twentyfifteen-child\/assets\/orderfusion\/custom-column-form.png\"><img decoding=\"async\" src=\"https:\/\/presta.site\/blog\/wp-content\/themes\/twentyfifteen-child\/assets\/orderfusion\/custom-column-form.png\" alt=\"OrderFusion Create Custom Column form with Delivery date column name and _delivery_date meta key\" \/><\/a><\/p>\n\n\n\n<pre><code>Tip: OrderFusion offers common meta key suggestions when you click\nthe + button. Click a suggestion to auto-fill the form.\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Picking the right column type<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The column type controls how OrderFusion displays the raw meta value. Pick the wrong one and dates show as Unix timestamps, yes\/no fields show as &#8220;1&#8221; and &#8220;0.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Text<\/strong> &#8211; Default. Shows the raw value as-is. Works for PO numbers, gift messages, notes, codes. Use this when nothing else fits.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Number<\/strong> &#8211; Formats numeric values. Good for quantities, weights, or amounts stored without currency symbols.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Date<\/strong> &#8211; Converts timestamps and date strings into readable dates. If your delivery date plugin stores <code class=\"codecolorer text default\"><span class=\"text\">2025-03-15<\/span><\/code> or a Unix timestamp, this column type turns it into a clean, human-readable format.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Yes\/No<\/strong> &#8211; Converts <code class=\"codecolorer text default\"><span class=\"text\">1<\/span><\/code>\/<code class=\"codecolorer text default\"><span class=\"text\">0<\/span><\/code>, <code class=\"codecolorer text default\"><span class=\"text\">yes<\/span><\/code>\/<code class=\"codecolorer text default\"><span class=\"text\">no<\/span><\/code>, or <code class=\"codecolorer text default\"><span class=\"text\">true<\/span><\/code>\/<code class=\"codecolorer text default\"><span class=\"text\">false<\/span><\/code> values into checkmark icons. Perfect for &#8220;Gift wrap requested?&#8221; or &#8220;Fragile?&#8221; or &#8220;Insurance added?&#8221; fields.<\/p>\n\n\n\t<div class=\"pst-app-cta pst-app-cta--woocommerce\">\r\n\t\t<p class=\"pst-app-cta-label\">WooCommerce Plugin<\/p>\r\n\t\t<p class=\"pst-app-cta-title\">Want to filter orders, add custom columns, and export CSV from your WooCommerce admin? Try <a href=\"https:\/\/presta.site\/en\/wordpress-woocommerce\/42-orderfusion-filters-and-columns-manager-for-woocommerce.html\">OrderFusion<\/a> \u2014 free Lite on WordPress.org, Pro on WooCommerce.com.<\/p>\r\n\t\t<p class=\"pst-app-cta-link\">\r\n\t\t\t<a href=\"https:\/\/wordpress.org\/plugins\/sdc-orderfusion-lite\/\" target=\"_blank\" rel=\"noopener\">Install OrderFusion Lite (free)<\/a>\r\n\t\t\t&nbsp;\u00b7&nbsp;\r\n\t\t\t<a href=\"https:\/\/woocommerce.com\/products\/sdc-orderfusion\/\" target=\"_blank\" rel=\"noopener\">View OrderFusion Pro on WooCommerce.com<\/a>\r\n\t\t<\/p>\r\n\t<\/div>\r\n\t\n\n\n\n<h2 class=\"wp-block-heading\">Three columns worth building today<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Here are three custom columns that save real time for real stores. Each one replaces something you&#8217;re probably doing by hand.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Delivery date<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If you use a delivery date picker plugin at checkout, customers choose when they want their order delivered. That date lives in order meta. Without a column for it, your fulfillment team opens every order to check the delivery schedule.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n \t<li><strong>Column Name<\/strong>: Expected Delivery<\/li>\n \t<li><strong>Meta Key<\/strong>: <code class=\"codecolorer text default\"><span class=\"text\">_delivery_date<\/span><\/code> (check your plugin&#8217;s documentation)<\/li>\n \t<li><strong>Column Type<\/strong>: Date<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Now your fulfillment team sees delivery dates at a glance. Sort by the column to process today&#8217;s deliveries first.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. PO number<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">B2B stores and wholesale accounts often require purchase order numbers for invoicing and payment tracking. Customers enter a PO number at checkout, and your accounting team needs it to match invoices to payments.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n \t<li><strong>Column Name<\/strong>: PO Number<\/li>\n \t<li><strong>Meta Key<\/strong>: <code class=\"codecolorer text default\"><span class=\"text\">_po_number<\/span><\/code> (varies by plugin)<\/li>\n \t<li><strong>Column Type<\/strong>: Text<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">No more opening orders one by one just to copy a PO number into your accounting software.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Gift message<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Stores that offer gift messages need to see them before packing. A fulfillment worker who misses a gift message ships the item with a price tag visible and no card included. That&#8217;s a bad customer experience you can avoid.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n \t<li><strong>Column Name<\/strong>: Gift Message<\/li>\n \t<li><strong>Meta Key<\/strong>: <code class=\"codecolorer text default\"><span class=\"text\">_gift_message<\/span><\/code> (varies by plugin)<\/li>\n \t<li><strong>Column Type<\/strong>: Text<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Now the message is visible in the orders list. Your packing team scans for non-empty values and includes the card.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/presta.site\/blog\/wp-content\/themes\/twentyfifteen-child\/assets\/orderfusion\/custom-columns-list.png\"><img decoding=\"async\" src=\"https:\/\/presta.site\/blog\/wp-content\/themes\/twentyfifteen-child\/assets\/orderfusion\/custom-columns-list.png\" alt=\"WooCommerce orders list with Delivery date and Gift Message custom columns visible\" \/><\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Combine custom columns with views<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Custom columns become more useful inside saved views. A view captures your complete workspace &#8211; columns, filters, sort order &#8211; and restores it with one click. If you frequently <a href=\"https:\/\/presta.site\/blog\/en\/filter-woocommerce-orders-by-sku\/\">filter orders by SKU<\/a> or other specific criteria, you can <a href=\"https:\/\/presta.site\/blog\/en\/saved-views-woocommerce-orders\/\">save column layouts as views<\/a> to instantly access those exact configurations later.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example: build a &#8220;This Week&#8217;s Deliveries&#8221; view.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n \t<li>Create a custom &#8220;Expected Delivery&#8221; column (as described above)<\/li>\n \t<li>Create a custom &#8220;Delivery Date Range&#8221; filter (click <strong>+<\/strong> in the Filters section, same meta key, type: Date range)<\/li>\n \t<li>Enable both the column and the filter<\/li>\n \t<li>Set the filter to this week&#8217;s date range<\/li>\n \t<li>Add built-in columns: Order #, Customer name, Products<\/li>\n \t<li>Click the <strong>+<\/strong> in the custom views block above the orders list<\/li>\n \t<li>Name it &#8220;This Week&#8217;s Deliveries&#8221; and save<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Your fulfillment team loads this view every morning with one click. The delivery date column shows when each order needs to arrive, and the filter hides everything outside this week.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pin the view for faster access. It shows as a badge above the orders list with a live count of matching orders &#8211; like &#8220;(12) This Week&#8217;s Deliveries&#8221; &#8211; so your team sees at a glance how many orders need attention today.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Managing your custom columns<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A few things to know once you start building columns:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Edit anytime.<\/strong> Click the column name in Screen Options to reopen the form. Change the name, meta key, or type.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Delete when done.<\/strong> Click the delete icon next to the column name. The data stays in your orders; only the column display disappears.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Reorder freely.<\/strong> Hover over any column in Screen Options and drag the move icon. Place your most-checked custom columns on the left side of the table.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Team visibility.<\/strong> Every team member sees your custom columns and can enable them. Only you, the creator, can edit or delete them.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">When a column shows blank<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The most common issue with custom columns: every cell is empty. This almost always means the meta key doesn&#8217;t match.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fix it:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n \t<li>Open an order you know has the data<\/li>\n \t<li>Scroll to Custom Fields<\/li>\n \t<li>Copy the exact meta key (watch for underscores and capitalization)<\/li>\n \t<li>Edit your custom column to use that exact key<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">If Custom Fields shows nothing for that order, the data might not exist yet. A &#8220;Tracking Number&#8221; column shows blank because no tracking numbers have been entered. That&#8217;s normal &#8211; the column populates as data gets added.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Try it yourself<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Build one column right now. Open Screen Options, click the <strong>+<\/strong> in the Columns section, and create a column for any meta field your store uses. The whole process takes 30 seconds.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Want to see it in action first? You can <a href=\"https:\/\/wordpress.org\/plugins\/sdc-orderfusion\/\" target=\"_blank\" rel=\"noopener\">install OrderFusion Lite from WordPress.org<\/a> to try it out on your own store. The free version includes everything you need to start building custom columns.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For the full column reference and troubleshooting, check the <a href=\"https:\/\/woocommerce.com\/document\/sdc-orderfusion\/\" target=\"_blank\" rel=\"nofollow noopener\">OrderFusion documentation<\/a>.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Your orders carry data that WooCommerce hides from you. By adding woocommerce custom order columns, you can reveal delivery dates, PO numbers, gift messages, and warehouse codes &#8211; which are normally stored as order meta, buried inside each order. To see any of it without custom columns, you open the order, scroll down, find the &hellip; <a href=\"https:\/\/presta.site\/blog\/en\/create-custom-columns-from-order-meta-delivery-date-po-number-gift-message-no-code\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Create Custom Columns from Order Meta (Delivery Date, PO Number, Gift Message) &#8211; No Code<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1402,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[232],"tags":[199,191,197],"class_list":["post-1207","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-orderfusion","tag-columns","tag-order-management","tag-orders"],"_links":{"self":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts\/1207","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/comments?post=1207"}],"version-history":[{"count":5,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts\/1207\/revisions"}],"predecessor-version":[{"id":1405,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts\/1207\/revisions\/1405"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/media\/1402"}],"wp:attachment":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/media?parent=1207"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/categories?post=1207"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/tags?post=1207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}