Reputation: 236
I am trying to display a custom field value to my Woocommerce email template that was created as part of a product import.
This custom field is called 'Reference number'.
How do I do this?
Edit:
This works:
<td class="td" style="text-align:<?php echo esc_attr( $text_align ); ?>; vertical-align:middle; font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;">
<?php echo wp_kses_post( $sku ); ?>
</td>
This doesn't:
<td class="td" style="text-align:<?php echo esc_attr( $text_align ); ?>; vertical-align:middle; font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;">
<?php echo $product->get_meta( 'Reference number' );
?>
</td>
The meta_key has been taken from the DB
Upvotes: 2
Views: 7013
Reputation: 254373
It seems that you have imported products with custom data and you need to get a specific custom value (a custom field).
1) First you have to find out how is registered your custom field "product code":
In backend product list, open an imported product edit page. Search in "Custom fields" Metabox:
If you don't find it this way, in admin product list, when hovering a product line, you can get the product ID displayed as follow:
Then in your database using phpMyAdmin search on wp_postmeta
table for a specific product ID (Here 53
):
You will get the list of the product metadata items… Search in the meta_key
column:
You should find it this time.
2) Once you have this meta key, let say that _product_code
is the meta key, you will get easily the value. There is mainly 2 ways to get and display this custom field value:
Using the WC_Data method get_meta()
from the defined WC_Product
Object $product
:
echo $product->get_meta( '_product_code' );
Using WordPress get_post_meta()
function from a $product_id
defined product ID variable:
echo get_post_meta( $product_id, '_product_code', true );
or from the defined WC_Product
Object $product
echo get_post_meta( $product->get_id(), '_product_code', true );
Upvotes: 8