what do you want to do to the title?
you will have to use the action, which contains the order id, and you will have to get all the product ids in that order in the callback function, and update the post object and have it save.
im unsure on what you want to do with the title, so i cant really give an example before knowing the use case.
is the action to use
woocommerce_order_status_completed
this is untested, but its a start to get where you want to go.
dont use on a live site. if you have a demo playground enable WP_DEBUG in wp-config.php incase you have any errors.
Code:
<?php
add_action('woocommerce_order_status_completed', 'change_title_on_competed_status' 10, 1);
function change_title_on_competed_status( $order_id ) {
$order = wc_get_order( $order_id );
foreach ( $order->get_items() as $item_id => $product_item ) {
$product_id = $product_item->get_product_id();
$product_title = $product_item->get_name();
$args = array('ID' => $product_id, 'post_title' => $product_title . ' add text on to end if you want?');
wp_update_post( $args );
}
}