为了账号安全,请及时绑定邮箱和手机立即绑定

在某些条件下,如何更改 WooCommerce 结账页面上的“您的订单”文本

在某些条件下,如何更改 WooCommerce 结账页面上的“您的订单”文本

PHP
慕田峪4524236 2023-09-08 14:13:18
使用此代码,我可以更改结帐页面中的“您的订单”文本。但我需要更改我的购物车中的特定产品或虚拟产品是否在我的购物车中。function custom_wc_translations($translated){    $text = array(    'Your order' => 'Your new phrase',    'any other string' => 'New string',    );    $translated = str_ireplace(  array_keys($text),  $text,  $translated );    return $translated;}add_filter( 'gettext', 'custom_wc_translations', 20 );我找到了此代码,但针对特定产品的不同位置。我怎样才能改变它?add_filter(  'gettext',  'change_conditionally_order_review_heading_text', 10, 3 );function change_conditionally_order_review_heading_text( $translated, $text, $domain  ) {    if( $text === 'Your Order' && is_checkout() && ! is_wc_endpoint_url() ){        // HERE set the desired specific product ID        $targeted_product_id = 1122;        // Loop through cart items        foreach( WC()->cart->get_cart() as $cart_item ) {            if( $targeted_product_id == $cart_item['data']->get_id() )                return __( 'İletişim Bilgileri', $domain );        }    }    return $translated;}
查看完整描述

1 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

您要更改的文本位于第54checkout/form-checkout.php

<h3 id="order_review_heading"><?php esc_html_e( 'Your order', 'woocommerce' ); ?></h3>

正如您将看到的,在之前和之后

  • woocommerce_checkout_before_order_review_heading

  • woocommerce_checkout_before_order_review钩子,只有这些不适用于H3标签

gettext如果您不想覆盖模板文件,建议您这样做。

要调试此文本和其他文本,您可以使用


function filter_gettext( $translated, $text, $domain  ) {

    echo '<pre>', print_r( $text , 1 ), '</pre>';

    return $translated;

}

add_filter( 'gettext',  'filter_gettext', 10, 3 );

所以要回答你的问题,这应该足够了


检查特定产品 ID

function filter_gettext( $translated, $text, $domain  ) {

    if( $text == 'Your order' && is_checkout() && ! is_wc_endpoint_url() ) {        

        // HERE set the desired specific product ID

        $targeted_product_id = 1122;


        // Loop through cart items

        foreach( WC()->cart->get_cart() as $cart_item ) {

            if( $targeted_product_id == $cart_item['data']->get_id() ) {

                $translated = __( 'İletişim Bilgileri', $domain );

            }

        }

    }

    return $translated;

}

add_filter( 'gettext',  'filter_gettext', 10, 3 );

更新 10/2020


您可以使用以下代码来检查多个产品ID

function filter_gettext( $translated, $text, $domain  ) {

    if( $text == 'Your order' && is_checkout() && ! is_wc_endpoint_url() ) {        

        // HERE set the desired specific product IDs

        $targeted_product_ids = array( 1122, 30, 815 );


        // Loop through cart items

        foreach( WC()->cart->get_cart() as $cart_item ) {

            // In array

            if ( in_array( $cart_item['data']->get_id(), $targeted_product_ids ) ) {

                $translated = __( 'İletişim Bilgileri', $domain );

            }

        }

    }


    return $translated;

}

add_filter( 'gettext',  'filter_gettext', 10, 3 );

要检查您可以使用的虚拟产品

function filter_gettext( $translated, $text, $domain  ) {

    if( $text == 'Your order' && is_checkout() && ! is_wc_endpoint_url() ) {

        // Loop through cart items

        foreach( WC()->cart->get_cart() as $cart_item ) {

            // Is virtual

            if ( $cart_item['data']->is_virtual() ) {

                $translated = __( 'İletişim Bilgileri', $domain );

            }

        }

    }

    return $translated;

}

add_filter( 'gettext',  'filter_gettext', 10, 3 );


查看完整回答
反对 回复 2023-09-08
  • 1 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信