Editing HTML in purchase notes in WooCommerce can be a cumbersome process, especially if it’s just a part of it, like a download link. I couldn’t find a filter for displaying the purchase note for a product on the front-end, but this will automatically change it before an order is placed:
<?php
/**
* Add automated notes to orders
*/
function add_custom_note($order_id, $order)
{
$items = $order->get_items();
if (empty($items)) return;
// Change to your custom field or option
$field = get_field('field', 'option');
if (!$field) return;
foreach ($items as $item) {
$product = $item->get_product();
// Change to your product SKU
if ('SKU' === $product->get_sku()) {
$note = sprintf('Note: %s', $field);
if ($note !== $product->get_purchase_note()) {
$product->set_purchase_note($note);
$product->save();
}
}
}
}
add_action('woocommerce_new_order', 'add_custom_note', 20, 2);