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

使用此代码,我可以更改结帐页面中的“您的订单”文本。但我需要更改我的购物车中的特定产品或虚拟产品是否在我的购物车中。


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;

}


慕田峪4524236
浏览 85回答 1
1回答

翻过高山走不出你

您要更改的文本位于第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 );所以要回答你的问题,这应该足够了检查特定产品 IDfunction 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您可以使用以下代码来检查多个产品IDfunction 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 );
打开App,查看更多内容
随时随地看视频慕课网APP