Woocommerce变更单已收到页面标题

时间:2018-08-24 16:21:03

标签: php wordpress woocommerce checkout hook-woocommerce

我正在尝试更改/添加“已收到订单” Woocommerce页面的标题。

以下代码段有效-我可以使用以下代码更改现有的 TEXT

    add_filter('woocommerce_thankyou_order_received_text', 'woo_change_order_received_text', 10, 2 );
function woo_change_order_received_text( $str, $order ) {
    $new_str = $str . ' We have emailed the purchase receipt to you.';
    return $new_str;
}

以下代码段无效。 -我无法更改/添加 TITLE ,也无法传入用户名进行个性化设置。这是代码,也是我要实现的输出的图像。...添加了“您真是FIRSTNAME”

    <?php
add_filter( 'the_title', 'woo_personalize_order_received_title', 10, 2 );
function woo_personalize_order_received_title( $title, $id ) {
    if ( is_order_received_page() && get_the_ID() === $id ) {
        global $wp;
        // Get the order. Line 9 to 17 are present in order_received() in includes/shortcodes/class-wc-shortcode-checkout.php file
        $order_id  = apply_filters( 'woocommerce_thankyou_order_id', absint( $wp->query_vars['order-received'] ) );
        $order_key = apply_filters( 'woocommerce_thankyou_order_key', empty( $_GET['key'] ) ? '' : wc_clean( $_GET['key'] ) );
        if ( $order_id > 0 ) {
            $order = wc_get_order( $order_id );
            if ( $order->get_order_key() != $order_key ) {
                $order = false;
            }
        }
        if ( isset ( $order ) ) {
            //$title = sprintf( "You are awesome, %s!", esc_html( $order->billing_first_name ) ); // use this for WooCommerce versions older then v2.7
        $title = sprintf( "You are awesome, %s!", esc_html( $order->get_billing_first_name() ) );
        }
    }
    return $title;
}

enter image description here

这应该可行,因为有一些示例,例如here ...我只是不知道为什么主标题甚至都不会出现?

1 个答案:

答案 0 :(得分:0)

作为一种解决方法,我检查了CSS并将标题下的文本更改为更大的尺寸和所需的字体系列。

然后通过下面的PHP,我在标题中创建了带有客户名称的自定义文本。

    add_filter('woocommerce_thankyou_order_received_text', 'woo_change_order_received_text', 10, 2 );
function woo_change_order_received_text( $str, $order ) {
    $new_str = sprintf( "You are awesome, %s :) - We've recieved your order.", esc_html( $order->get_billing_first_name() ) );
    return $new_str;
}