在Woocommerce 3中的“谢谢”页面添加其他消息

ExampleNeed add custom message after "Thank you. Your order has been received.". A variable has been added to my message. It contains the percentage of the total amount of the order.

The following code works but I am not sure about it:

add_filter('woocommerce_thankyou_order_received_text', 'woo_change_order_received_text', 10, 2 );
function woo_change_order_received_text( $str, $order ) {
    // Get order total
    $order_total = $order->get_total();
    $percent = get_option( 'wc-custom-percent' ); // Percentage
    $order_saving = (float)($percent * $order_total / 100); // Bonus amount

    $new_str = $str . ' You participate in the bonus program, your bonus interest from this order is' . $order_saving . ' euros. <a href="#">Learn more about the bonus program.</a>';
    return $new_str;
}

Is it a better way to do it? How can I enhance my code?

Your code is correct, but you could make it a bit better using sprintf() and translatable texts:

add_filter('woocommerce_thankyou_order_received_text', 'woo_change_order_received_text', 20, 2 );
function woo_change_order_received_text( $thankyou_text, $order ) {
    $order_saving = (float)( get_option( 'wc-custom-percent' ) * $order->get_total() / 100 ); // Bonus amount
    $bonus_link   = '#';

    return sprintf( __("%s You participate in the bonus program, your bonus interest from this order is %s. %s", "woocommerce"),
    $thankyou_text,
    wc_price($order_saving),
    '<a href="'.$bonus_link.'">' . __("Learn more about the bonus program.", "woocommerce") . '</a>' );
}

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

enter image description here

add_action( 'woocommerce_thankyou', 'my_custom_thankyou_page', 20 );
function my_custom_thankyou_page( $order_id ){  
    $order = wc_get_order($order_id);
    $order_total = $order->get_total();
    $percent = get_option( 'wc-custom-percent' ); // Percentage
    $order_saving = (float)($percent * $order_total / 100); // Bonus amount

    $new_str = ' You participate in the bonus program, your bonus interest from this order is' . $order_saving . ' euros. <a href="#">Learn more about the bonus program.</a>';
    return $new_str;

}