如果购物车有特定产品,则更改结帐 "Place Order" 文本

Change Checkout "Place Order" text if cart has a specific product

在 WooCommerce 中,如果购物车在 结帐页面上有特定的 产品(ID),我正在寻找更改 "Place Order" 文本的功能.

这对于吸引销售产品并同时提供不同服务(例如会员资格)的商店很有用。这将使下订单文本作为号召性用语按钮更能描述产品。

我创建了根据特定产品 ID 更改单个产品页面上的“添加到购物车”按钮文本的功能

add_filter( 'woocommerce_product_single_add_to_cart_text',
'woo_custom_cart_button_text' ); 

function woo_custom_cart_button_text( $text ) {
global $product;

if ( 123 === $product->id ) {
   $text = 'Product 123 text';
}
return $text;
}

并更改下单文本 全局;

add_filter( 'woocommerce_order_button_text', 'woo_custom_order_button_text' ); 

function woo_custom_order_button_text() {
    return __( 'Your new button text here', 'woocommerce' ); 
}

我正在寻找如何使它们适应结帐页面

谢谢。

如果我很好地理解了您的问题,您将在下方找到一个自定义函数,当购物车中有特定产品时,该函数将在结帐提交按钮上显示自定义文本:

add_filter( 'woocommerce_order_button_text', 'custom_checkout_button_text' );
function custom_checkout_button_text() {

    // Set HERE your specific product ID
    $specific_product_id = 37;
    $found = false;

    // Iterating trough each cart item
    foreach(WC()->cart->get_cart() as $cart_item)
        if($cart_item['product_id'] == $specific_product_id){
            $found = true; // product found in cart
            break; // we break the foreach loop
        }

    // If product is found in cart items we display the custom checkout button
    if($found)
        return __( 'Your new button text here', 'woocommerce' ); // custom text Here
    else
        return __( 'Place order', 'woocommerce' ); // Here the normal text
}

代码进入活动子主题的 function.php 文件(活动主题或任何插件文件)。

此代码已经过测试并且有效。


相似答案(多个产品 ID):